
    if (!window._bubble_page_load_data) {
        window._bubble_page_load_data = {}
    }
    if (!window._bubble_page_load_data.js_execution_timings) {
      window._bubble_page_load_data.js_execution_timings = {}
    }
    window._bubble_page_load_data.js_execution_timings.static_js_start_execution = Date.now();
window.preloaded = window.preloaded || {};

window.preloaded['app/page_metadata:index'] = true;
/*! jQuery Migrate v3.4.1 | (c) OpenJS Foundation and other contributors | jquery.org/license */
// BUBBLE PATCH NOTES - offset() changed below, see comment
"undefined"==typeof jQuery.migrateMute&&(jQuery.migrateMute=true),function(t){"use strict";"function"==typeof define&&define.amd?define(["jquery"],function(e){return t(e,window)}):"object"==typeof module&&module.exports?module.exports=t(require("jquery"),window):t(jQuery,window)}(function(s,n){"use strict";function e(e){return 0<=function(e,t){for(var r=/^(\d+)\.(\d+)\.(\d+)/,n=r.exec(e)||[],o=r.exec(t)||[],a=1;a<=3;a++){if(+o[a]<+n[a])return 1;if(+n[a]<+o[a])return-1}return 0}(s.fn.jquery,e)}s.migrateVersion="3.4.1";var t=Object.create(null);s.migrateDisablePatches=function(){for(var e=0;e<arguments.length;e++)t[arguments[e]]=!0},s.migrateEnablePatches=function(){for(var e=0;e<arguments.length;e++)delete t[arguments[e]]},s.migrateIsPatchEnabled=function(e){return!t[e]},n.console&&n.console.log&&(s&&e("3.0.0")&&!e("5.0.0")||n.console.log("JQMIGRATE: jQuery 3.x-4.x REQUIRED"),s.migrateWarnings&&n.console.log("JQMIGRATE: Migrate plugin loaded multiple times"),n.console.log("JQMIGRATE: Migrate is installed"+(s.migrateMute?"":" with logging active")+", version "+s.migrateVersion));var o={};function u(e,t){var r=n.console;!s.migrateIsPatchEnabled(e)||s.migrateDeduplicateWarnings&&o[t]||(o[t]=!0,s.migrateWarnings.push(t+" ["+e+"]"),r&&r.warn&&!s.migrateMute&&(r.warn("JQMIGRATE: "+t),s.migrateTrace&&r.trace&&r.trace()))}function r(e,t,r,n,o){Object.defineProperty(e,t,{configurable:!0,enumerable:!0,get:function(){return u(n,o),r},set:function(e){u(n,o),r=e}})}function a(e,t,r,n,o){var a=e[t];e[t]=function(){return o&&u(n,o),(s.migrateIsPatchEnabled(n)?r:a||s.noop).apply(this,arguments)}}function c(e,t,r,n,o){if(!o)throw new Error("No warning message provided");return a(e,t,r,n,o),0}function i(e,t,r,n){return a(e,t,r,n),0}s.migrateDeduplicateWarnings=!0,s.migrateWarnings=[],void 0===s.migrateTrace&&(s.migrateTrace=!0),s.migrateReset=function(){o={},s.migrateWarnings.length=0},"BackCompat"===n.document.compatMode&&u("quirks","jQuery is not compatible with Quirks Mode");var d,l,p,f={},m=s.fn.init,y=s.find,h=/\[(\s*[-\w]+\s*)([~|^$*]?=)\s*([-\w#]*?#[-\w#]*)\s*\]/,g=/\[(\s*[-\w]+\s*)([~|^$*]?=)\s*([-\w#]*?#[-\w#]*)\s*\]/g,v=/^[\s\uFEFF\xA0]+|([^\s\uFEFF\xA0])[\s\uFEFF\xA0]+$/g;for(d in i(s.fn,"init",function(e){var t=Array.prototype.slice.call(arguments);return s.migrateIsPatchEnabled("selector-empty-id")&&"string"==typeof e&&"#"===e&&(u("selector-empty-id","jQuery( '#' ) is not a valid selector"),t[0]=[]),m.apply(this,t)},"selector-empty-id"),s.fn.init.prototype=s.fn,i(s,"find",function(t){var r=Array.prototype.slice.call(arguments);if("string"==typeof t&&h.test(t))try{n.document.querySelector(t)}catch(e){t=t.replace(g,function(e,t,r,n){return"["+t+r+'"'+n+'"]'});try{n.document.querySelector(t),u("selector-hash","Attribute selector with '#' must be quoted: "+r[0]),r[0]=t}catch(e){u("selector-hash","Attribute selector with '#' was not fixed: "+r[0])}}return y.apply(this,r)},"selector-hash"),y)Object.prototype.hasOwnProperty.call(y,d)&&(s.find[d]=y[d]);c(s.fn,"size",function(){return this.length},"size","jQuery.fn.size() is deprecated and removed; use the .length property"),c(s,"parseJSON",function(){return JSON.parse.apply(null,arguments)},"parseJSON","jQuery.parseJSON is deprecated; use JSON.parse"),c(s,"holdReady",s.holdReady,"holdReady","jQuery.holdReady is deprecated"),c(s,"unique",s.uniqueSort,"unique","jQuery.unique is deprecated; use jQuery.uniqueSort"),r(s.expr,"filters",s.expr.pseudos,"expr-pre-pseudos","jQuery.expr.filters is deprecated; use jQuery.expr.pseudos"),r(s.expr,":",s.expr.pseudos,"expr-pre-pseudos","jQuery.expr[':'] is deprecated; use jQuery.expr.pseudos"),e("3.1.1")&&c(s,"trim",function(e){return null==e?"":(e+"").replace(v,"$1")},"trim","jQuery.trim is deprecated; use String.prototype.trim"),e("3.2.0")&&(c(s,"nodeName",function(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()},"nodeName","jQuery.nodeName is deprecated"),c(s,"isArray",Array.isArray,"isArray","jQuery.isArray is deprecated; use Array.isArray")),e("3.3.0")&&(c(s,"isNumeric",function(e){var t=typeof e;return("number"==t||"string"==t)&&!isNaN(e-parseFloat(e))},"isNumeric","jQuery.isNumeric() is deprecated"),s.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(e,t){f["[object "+t+"]"]=t.toLowerCase()}),c(s,"type",function(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?f[Object.prototype.toString.call(e)]||"object":typeof e},"type","jQuery.type is deprecated"),c(s,"isFunction",function(e){return"function"==typeof e},"isFunction","jQuery.isFunction() is deprecated"),c(s,"isWindow",function(e){return null!=e&&e===e.window},"isWindow","jQuery.isWindow() is deprecated")),s.ajax&&(l=s.ajax,p=/(=)\?(?=&|$)|\?\?/,i(s,"ajax",function(){var e=l.apply(this,arguments);return e.promise&&(c(e,"success",e.done,"jqXHR-methods","jQXHR.success is deprecated and removed"),c(e,"error",e.fail,"jqXHR-methods","jQXHR.error is deprecated and removed"),c(e,"complete",e.always,"jqXHR-methods","jQXHR.complete is deprecated and removed")),e},"jqXHR-methods"),e("4.0.0")||s.ajaxPrefilter("+json",function(e){!1!==e.jsonp&&(p.test(e.url)||"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&p.test(e.data))&&u("jsonp-promotion","JSON-to-JSONP auto-promotion is deprecated")}));var j=s.fn.removeAttr,b=s.fn.toggleClass,w=/\S+/g;function x(e){return e.replace(/-([a-z])/g,function(e,t){return t.toUpperCase()})}i(s.fn,"removeAttr",function(e){var r=this,n=!1;return s.each(e.match(w),function(e,t){s.expr.match.bool.test(t)&&r.each(function(){if(!1!==s(this).prop(t))return!(n=!0)}),n&&(u("removeAttr-bool","jQuery.fn.removeAttr no longer sets boolean properties: "+t),r.prop(t,!1))}),j.apply(this,arguments)},"removeAttr-bool"),i(s.fn,"toggleClass",function(t){return void 0!==t&&"boolean"!=typeof t?b.apply(this,arguments):(u("toggleClass-bool","jQuery.fn.toggleClass( boolean ) is deprecated"),this.each(function(){var e=this.getAttribute&&this.getAttribute("class")||"";e&&s.data(this,"__className__",e),this.setAttribute&&this.setAttribute("class",!e&&!1!==t&&s.data(this,"__className__")||"")}))},"toggleClass-bool");var Q,A,R=!1,C=/^[a-z]/,N=/^(?:Border(?:Top|Right|Bottom|Left)?(?:Width|)|(?:Margin|Padding)?(?:Top|Right|Bottom|Left)?|(?:Min|Max)?(?:Width|Height))$/;s.swap&&s.each(["height","width","reliableMarginRight"],function(e,t){var r=s.cssHooks[t]&&s.cssHooks[t].get;r&&(s.cssHooks[t].get=function(){var e;return R=!0,e=r.apply(this,arguments),R=!1,e})}),i(s,"swap",function(e,t,r,n){var o,a,i={};for(a in R||u("swap","jQuery.swap() is undocumented and deprecated"),t)i[a]=e.style[a],e.style[a]=t[a];for(a in o=r.apply(e,n||[]),t)e.style[a]=i[a];return o},"swap"),e("3.4.0")&&"undefined"!=typeof Proxy&&(s.cssProps=new Proxy(s.cssProps||{},{set:function(){return u("cssProps","jQuery.cssProps is deprecated"),Reflect.set.apply(this,arguments)}})),e("4.0.0")?(A={animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,gridArea:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnStart:!0,gridRow:!0,gridRowEnd:!0,gridRowStart:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},"undefined"!=typeof Proxy?s.cssNumber=new Proxy(A,{get:function(){return u("css-number","jQuery.cssNumber is deprecated"),Reflect.get.apply(this,arguments)},set:function(){return u("css-number","jQuery.cssNumber is deprecated"),Reflect.set.apply(this,arguments)}}):s.cssNumber=A):A=s.cssNumber,Q=s.fn.css,i(s.fn,"css",function(e,t){var r,n,o=this;return e&&"object"==typeof e&&!Array.isArray(e)?(s.each(e,function(e,t){s.fn.css.call(o,e,t)}),this):("number"==typeof t&&(r=x(e),n=r,C.test(n)&&N.test(n[0].toUpperCase()+n.slice(1))||A[r]||u("css-number",'Number-typed values are deprecated for jQuery.fn.css( "'+e+'", value )')),Q.apply(this,arguments))},"css-number");var S,P,k,H,E=s.data;i(s,"data",function(e,t,r){var n,o,a;if(t&&"object"==typeof t&&2===arguments.length){for(a in n=s.hasData(e)&&E.call(this,e),o={},t)a!==x(a)?(u("data-camelCase","jQuery.data() always sets/gets camelCased names: "+a),n[a]=t[a]):o[a]=t[a];return E.call(this,e,o),t}return t&&"string"==typeof t&&t!==x(t)&&(n=s.hasData(e)&&E.call(this,e))&&t in n?(u("data-camelCase","jQuery.data() always sets/gets camelCased names: "+t),2<arguments.length&&(n[t]=r),n[t]):E.apply(this,arguments)},"data-camelCase"),s.fx&&(k=s.Tween.prototype.run,H=function(e){return e},i(s.Tween.prototype,"run",function(){1<s.easing[this.easing].length&&(u("easing-one-arg","'jQuery.easing."+this.easing.toString()+"' should use only one argument"),s.easing[this.easing]=H),k.apply(this,arguments)},"easing-one-arg"),S=s.fx.interval,P="jQuery.fx.interval is deprecated",n.requestAnimationFrame&&Object.defineProperty(s.fx,"interval",{configurable:!0,enumerable:!0,get:function(){return n.document.hidden||u("fx-interval",P),s.migrateIsPatchEnabled("fx-interval")&&void 0===S?13:S},set:function(e){u("fx-interval",P),S=e}}));var M=s.fn.load,q=s.event.add,O=s.event.fix;s.event.props=[],s.event.fixHooks={},r(s.event.props,"concat",s.event.props.concat,"event-old-patch","jQuery.event.props.concat() is deprecated and removed"),i(s.event,"fix",function(e){var t,r=e.type,n=this.fixHooks[r],o=s.event.props;if(o.length){u("event-old-patch","jQuery.event.props are deprecated and removed: "+o.join());while(o.length)s.event.addProp(o.pop())}if(n&&!n._migrated_&&(n._migrated_=!0,u("event-old-patch","jQuery.event.fixHooks are deprecated and removed: "+r),(o=n.props)&&o.length))while(o.length)s.event.addProp(o.pop());return t=O.call(this,e),n&&n.filter?n.filter(t,e):t},"event-old-patch"),i(s.event,"add",function(e,t){return e===n&&"load"===t&&"complete"===n.document.readyState&&u("load-after-event","jQuery(window).on('load'...) called after load event occurred"),q.apply(this,arguments)},"load-after-event"),s.each(["load","unload","error"],function(e,t){i(s.fn,t,function(){var e=Array.prototype.slice.call(arguments,0);return"load"===t&&"string"==typeof e[0]?M.apply(this,e):(u("shorthand-removed-v3","jQuery.fn."+t+"() is deprecated"),e.splice(0,0,t),arguments.length?this.on.apply(this,e):(this.triggerHandler.apply(this,e),this))},"shorthand-removed-v3")}),s.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,r){c(s.fn,r,function(e,t){return 0<arguments.length?this.on(r,null,e,t):this.trigger(r)},"shorthand-deprecated-v3","jQuery.fn."+r+"() event shorthand is deprecated")}),s(function(){s(n.document).triggerHandler("ready")}),s.event.special.ready={setup:function(){this===n.document&&u("ready-event","'ready' event is deprecated")}},c(s.fn,"bind",function(e,t,r){return this.on(e,null,t,r)},"pre-on-methods","jQuery.fn.bind() is deprecated"),c(s.fn,"unbind",function(e,t){return this.off(e,null,t)},"pre-on-methods","jQuery.fn.unbind() is deprecated"),c(s.fn,"delegate",function(e,t,r,n){return this.on(t,e,r,n)},"pre-on-methods","jQuery.fn.delegate() is deprecated"),c(s.fn,"undelegate",function(e,t,r){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",r)},"pre-on-methods","jQuery.fn.undelegate() is deprecated"),c(s.fn,"hover",function(e,t){return this.on("mouseenter",e).on("mouseleave",t||e)},"pre-on-methods","jQuery.fn.hover() is deprecated");function T(e){var t=n.document.implementation.createHTMLDocument("");return t.body.innerHTML=e,t.body&&t.body.innerHTML}var F=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\/\0>\x20\t\r\n\f]*)[^>]*)\/>/gi;s.UNSAFE_restoreLegacyHtmlPrefilter=function(){s.migrateEnablePatches("self-closed-tags")},i(s,"htmlPrefilter",function(e){var t,r;return(r=(t=e).replace(F,"<$1></$2>"))!==t&&T(t)!==T(r)&&u("self-closed-tags","HTML tags must be properly nested and closed: "+t),e.replace(F,"<$1></$2>")},"self-closed-tags"),s.migrateDisablePatches("self-closed-tags");var D,W,_,I=s.fn.offset;return i(s.fn,"offset",function(){
    var e=this[0];
    // BUBBLE PATCH NOTES - offset() changed below, see comment in non-minified
    if (!e) return {left:0, top:0};
    return(!e||e.nodeType&&e.getBoundingClientRect)
        ?I.apply(this,arguments)
        :(u("offset-valid-elem","jQuery.fn.offset() requires a valid DOM element"),arguments.length
            ?this
            :({left:0,top:0}))},"offset-valid-elem"
),s.ajax&&(D=s.param,i(s,"param",function(e,t){var r=s.ajaxSettings&&s.ajaxSettings.traditional;return void 0===t&&r&&(u("param-ajax-traditional","jQuery.param() no longer uses jQuery.ajaxSettings.traditional"),t=r),D.call(this,e,t)},"param-ajax-traditional")),c(s.fn,"andSelf",s.fn.addBack,"andSelf","jQuery.fn.andSelf() is deprecated and removed, use jQuery.fn.addBack()"),s.Deferred&&(W=s.Deferred,_=[["resolve","done",s.Callbacks("once memory"),s.Callbacks("once memory"),"resolved"],["reject","fail",s.Callbacks("once memory"),s.Callbacks("once memory"),"rejected"],["notify","progress",s.Callbacks("memory"),s.Callbacks("memory")]],i(s,"Deferred",function(e){var a=W(),i=a.promise();function t(){var o=arguments;return s.Deferred(function(n){s.each(_,function(e,t){var r="function"==typeof o[e]&&o[e];a[t[1]](function(){var e=r&&r.apply(this,arguments);e&&"function"==typeof e.promise?e.promise().done(n.resolve).fail(n.reject).progress(n.notify):n[t[0]+"With"](this===i?n.promise():this,r?[e]:arguments)})}),o=null}).promise()}return c(a,"pipe",t,"deferred-pipe","deferred.pipe() is deprecated"),c(i,"pipe",t,"deferred-pipe","deferred.pipe() is deprecated"),e&&e.call(a,a),a},"deferred-pipe"),s.Deferred.exceptionHook=W.exceptionHook),s});

window.preloaded['js/vendor:jquery-migrate-3.4.1.min.js'] = true;

window.bubble_version = 23;
window.preloaded['app/metadata:bubble_version'] = true;
window._bubble_page_load_data.hardcoded_plugins = window._bubble_page_load_data.hardcoded_plugins || {};
window._bubble_page_load_data.hardcoded_plugins['stripe'] = true;
window.__code__ = window.__code__ || {};
if(!window.__code__['bc1fcdbb1735fce369f95b6ae74e43ffbea91a11fa536a526f22fc961b1a033b']){window.__code__['bc1fcdbb1735fce369f95b6ae74e43ffbea91a11fa536a526f22fc961b1a033b']=1;

"use strict";(()=>{var __create=Object.create;var __defProp=Object.defineProperty;var __getOwnPropDesc=Object.getOwnPropertyDescriptor;var __getOwnPropNames=Object.getOwnPropertyNames;var __getProtoOf=Object.getPrototypeOf,__hasOwnProp=Object.prototype.hasOwnProperty;var __require=(x=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(x,{get:(a,b)=>(typeof require<"u"?require:a)[b]}):x)(function(x){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+x+'" is not supported')});var __esm=(fn,res)=>function(){return fn&&(res=(0,fn[__getOwnPropNames(fn)[0]])(fn=0)),res};var __commonJS=(cb,mod)=>function(){return mod||(0,cb[__getOwnPropNames(cb)[0]])((mod={exports:{}}).exports,mod),mod.exports};var __copyProps=(to,from,except,desc)=>{if(from&&typeof from=="object"||typeof from=="function")for(let key of __getOwnPropNames(from))!__hasOwnProp.call(to,key)&&key!==except&&__defProp(to,key,{get:()=>from[key],enumerable:!(desc=__getOwnPropDesc(from,key))||desc.enumerable});return to};var __toESM=(mod,isNodeMode,target)=>(target=mod!=null?__create(__getProtoOf(mod)):{},__copyProps(isNodeMode||!mod||!mod.__esModule?__defProp(target,"default",{value:mod,enumerable:!0}):target,mod));var init_define_process_env=__esm({"<define:process.env>"(){}});var require_base64_js=__commonJS({"node_modules/base64-js/index.js"(exports){"use strict";init_define_process_env();init_shim();exports.byteLength=byteLength;exports.toByteArray=toByteArray;exports.fromByteArray=fromByteArray;var lookup=[],revLookup=[],Arr=typeof Uint8Array<"u"?Uint8Array:Array,code="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";for(i=0,len=code.length;i<len;++i)lookup[i]=code[i],revLookup[code.charCodeAt(i)]=i;var i,len;revLookup["-".charCodeAt(0)]=62;revLookup["_".charCodeAt(0)]=63;function getLens(b64){var len2=b64.length;if(len2%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var validLen=b64.indexOf("=");validLen===-1&&(validLen=len2);var placeHoldersLen=validLen===len2?0:4-validLen%4;return[validLen,placeHoldersLen]}function byteLength(b64){var lens=getLens(b64),validLen=lens[0],placeHoldersLen=lens[1];return(validLen+placeHoldersLen)*3/4-placeHoldersLen}function _byteLength(b64,validLen,placeHoldersLen){return(validLen+placeHoldersLen)*3/4-placeHoldersLen}function toByteArray(b64){var tmp,lens=getLens(b64),validLen=lens[0],placeHoldersLen=lens[1],arr=new Arr(_byteLength(b64,validLen,placeHoldersLen)),curByte=0,len2=placeHoldersLen>0?validLen-4:validLen,i2;for(i2=0;i2<len2;i2+=4)tmp=revLookup[b64.charCodeAt(i2)]<<18|revLookup[b64.charCodeAt(i2+1)]<<12|revLookup[b64.charCodeAt(i2+2)]<<6|revLookup[b64.charCodeAt(i2+3)],arr[curByte++]=tmp>>16&255,arr[curByte++]=tmp>>8&255,arr[curByte++]=tmp&255;return placeHoldersLen===2&&(tmp=revLookup[b64.charCodeAt(i2)]<<2|revLookup[b64.charCodeAt(i2+1)]>>4,arr[curByte++]=tmp&255),placeHoldersLen===1&&(tmp=revLookup[b64.charCodeAt(i2)]<<10|revLookup[b64.charCodeAt(i2+1)]<<4|revLookup[b64.charCodeAt(i2+2)]>>2,arr[curByte++]=tmp>>8&255,arr[curByte++]=tmp&255),arr}function tripletToBase64(num){return lookup[num>>18&63]+lookup[num>>12&63]+lookup[num>>6&63]+lookup[num&63]}function encodeChunk(uint8,start,end){for(var tmp,output=[],i2=start;i2<end;i2+=3)tmp=(uint8[i2]<<16&16711680)+(uint8[i2+1]<<8&65280)+(uint8[i2+2]&255),output.push(tripletToBase64(tmp));return output.join("")}function fromByteArray(uint8){for(var tmp,len2=uint8.length,extraBytes=len2%3,parts=[],maxChunkLength=16383,i2=0,len22=len2-extraBytes;i2<len22;i2+=maxChunkLength)parts.push(encodeChunk(uint8,i2,i2+maxChunkLength>len22?len22:i2+maxChunkLength));return extraBytes===1?(tmp=uint8[len2-1],parts.push(lookup[tmp>>2]+lookup[tmp<<4&63]+"==")):extraBytes===2&&(tmp=(uint8[len2-2]<<8)+uint8[len2-1],parts.push(lookup[tmp>>10]+lookup[tmp>>4&63]+lookup[tmp<<2&63]+"=")),parts.join("")}}});var require_ieee754=__commonJS({"node_modules/ieee754/index.js"(exports){init_define_process_env();init_shim();exports.read=function(buffer,offset,isLE,mLen,nBytes){var e,m,eLen=nBytes*8-mLen-1,eMax=(1<<eLen)-1,eBias=eMax>>1,nBits=-7,i=isLE?nBytes-1:0,d=isLE?-1:1,s=buffer[offset+i];for(i+=d,e=s&(1<<-nBits)-1,s>>=-nBits,nBits+=eLen;nBits>0;e=e*256+buffer[offset+i],i+=d,nBits-=8);for(m=e&(1<<-nBits)-1,e>>=-nBits,nBits+=mLen;nBits>0;m=m*256+buffer[offset+i],i+=d,nBits-=8);if(e===0)e=1-eBias;else{if(e===eMax)return m?NaN:(s?-1:1)*(1/0);m=m+Math.pow(2,mLen),e=e-eBias}return(s?-1:1)*m*Math.pow(2,e-mLen)};exports.write=function(buffer,value,offset,isLE,mLen,nBytes){var e,m,c,eLen=nBytes*8-mLen-1,eMax=(1<<eLen)-1,eBias=eMax>>1,rt=mLen===23?Math.pow(2,-24)-Math.pow(2,-77):0,i=isLE?0:nBytes-1,d=isLE?1:-1,s=value<0||value===0&&1/value<0?1:0;for(value=Math.abs(value),isNaN(value)||value===1/0?(m=isNaN(value)?1:0,e=eMax):(e=Math.floor(Math.log(value)/Math.LN2),value*(c=Math.pow(2,-e))<1&&(e--,c*=2),e+eBias>=1?value+=rt/c:value+=rt*Math.pow(2,1-eBias),value*c>=2&&(e++,c/=2),e+eBias>=eMax?(m=0,e=eMax):e+eBias>=1?(m=(value*c-1)*Math.pow(2,mLen),e=e+eBias):(m=value*Math.pow(2,eBias-1)*Math.pow(2,mLen),e=0));mLen>=8;buffer[offset+i]=m&255,i+=d,m/=256,mLen-=8);for(e=e<<mLen|m,eLen+=mLen;eLen>0;buffer[offset+i]=e&255,i+=d,e/=256,eLen-=8);buffer[offset+i-d]|=s*128}}});var require_buffer=__commonJS({"node_modules/node-stdlib-browser/node_modules/buffer/index.js"(exports){"use strict";init_define_process_env();init_shim();var base64=require_base64_js(),ieee754=require_ieee754(),customInspectSymbol=typeof Symbol=="function"&&typeof Symbol.for=="function"?Symbol.for("nodejs.util.inspect.custom"):null;exports.Buffer=Buffer3;exports.SlowBuffer=SlowBuffer;exports.INSPECT_MAX_BYTES=50;var K_MAX_LENGTH=2147483647;exports.kMaxLength=K_MAX_LENGTH;Buffer3.TYPED_ARRAY_SUPPORT=typedArraySupport();!Buffer3.TYPED_ARRAY_SUPPORT&&typeof console<"u"&&typeof console.error=="function"&&console.error("This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support.");function typedArraySupport(){try{var arr=new Uint8Array(1),proto={foo:function(){return 42}};return Object.setPrototypeOf(proto,Uint8Array.prototype),Object.setPrototypeOf(arr,proto),arr.foo()===42}catch(e){return!1}}Object.defineProperty(Buffer3.prototype,"parent",{enumerable:!0,get:function(){if(Buffer3.isBuffer(this))return this.buffer}});Object.defineProperty(Buffer3.prototype,"offset",{enumerable:!0,get:function(){if(Buffer3.isBuffer(this))return this.byteOffset}});function createBuffer(length){if(length>K_MAX_LENGTH)throw new RangeError('The value "'+length+'" is invalid for option "size"');var buf=new Uint8Array(length);return Object.setPrototypeOf(buf,Buffer3.prototype),buf}function Buffer3(arg,encodingOrOffset,length){if(typeof arg=="number"){if(typeof encodingOrOffset=="string")throw new TypeError('The "string" argument must be of type string. Received type number');return allocUnsafe(arg)}return from(arg,encodingOrOffset,length)}Buffer3.poolSize=8192;function from(value,encodingOrOffset,length){if(typeof value=="string")return fromString(value,encodingOrOffset);if(ArrayBuffer.isView(value))return fromArrayView(value);if(value==null)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof value);if(isInstance(value,ArrayBuffer)||value&&isInstance(value.buffer,ArrayBuffer)||typeof SharedArrayBuffer<"u"&&(isInstance(value,SharedArrayBuffer)||value&&isInstance(value.buffer,SharedArrayBuffer)))return fromArrayBuffer(value,encodingOrOffset,length);if(typeof value=="number")throw new TypeError('The "value" argument must not be of type number. Received type number');var valueOf=value.valueOf&&value.valueOf();if(valueOf!=null&&valueOf!==value)return Buffer3.from(valueOf,encodingOrOffset,length);var b=fromObject(value);if(b)return b;if(typeof Symbol<"u"&&Symbol.toPrimitive!=null&&typeof value[Symbol.toPrimitive]=="function")return Buffer3.from(value[Symbol.toPrimitive]("string"),encodingOrOffset,length);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof value)}Buffer3.from=function(value,encodingOrOffset,length){return from(value,encodingOrOffset,length)};Object.setPrototypeOf(Buffer3.prototype,Uint8Array.prototype);Object.setPrototypeOf(Buffer3,Uint8Array);function assertSize(size){if(typeof size!="number")throw new TypeError('"size" argument must be of type number');if(size<0)throw new RangeError('The value "'+size+'" is invalid for option "size"')}function alloc(size,fill,encoding){return assertSize(size),size<=0?createBuffer(size):fill!==void 0?typeof encoding=="string"?createBuffer(size).fill(fill,encoding):createBuffer(size).fill(fill):createBuffer(size)}Buffer3.alloc=function(size,fill,encoding){return alloc(size,fill,encoding)};function allocUnsafe(size){return assertSize(size),createBuffer(size<0?0:checked(size)|0)}Buffer3.allocUnsafe=function(size){return allocUnsafe(size)};Buffer3.allocUnsafeSlow=function(size){return allocUnsafe(size)};function fromString(string,encoding){if((typeof encoding!="string"||encoding==="")&&(encoding="utf8"),!Buffer3.isEncoding(encoding))throw new TypeError("Unknown encoding: "+encoding);var length=byteLength(string,encoding)|0,buf=createBuffer(length),actual=buf.write(string,encoding);return actual!==length&&(buf=buf.slice(0,actual)),buf}function fromArrayLike(array){for(var length=array.length<0?0:checked(array.length)|0,buf=createBuffer(length),i=0;i<length;i+=1)buf[i]=array[i]&255;return buf}function fromArrayView(arrayView){if(isInstance(arrayView,Uint8Array)){var copy=new Uint8Array(arrayView);return fromArrayBuffer(copy.buffer,copy.byteOffset,copy.byteLength)}return fromArrayLike(arrayView)}function fromArrayBuffer(array,byteOffset,length){if(byteOffset<0||array.byteLength<byteOffset)throw new RangeError('"offset" is outside of buffer bounds');if(array.byteLength<byteOffset+(length||0))throw new RangeError('"length" is outside of buffer bounds');var buf;return byteOffset===void 0&&length===void 0?buf=new Uint8Array(array):length===void 0?buf=new Uint8Array(array,byteOffset):buf=new Uint8Array(array,byteOffset,length),Object.setPrototypeOf(buf,Buffer3.prototype),buf}function fromObject(obj){if(Buffer3.isBuffer(obj)){var len=checked(obj.length)|0,buf=createBuffer(len);return buf.length===0||obj.copy(buf,0,0,len),buf}if(obj.length!==void 0)return typeof obj.length!="number"||numberIsNaN(obj.length)?createBuffer(0):fromArrayLike(obj);if(obj.type==="Buffer"&&Array.isArray(obj.data))return fromArrayLike(obj.data)}function checked(length){if(length>=K_MAX_LENGTH)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+K_MAX_LENGTH.toString(16)+" bytes");return length|0}function SlowBuffer(length){return+length!=length&&(length=0),Buffer3.alloc(+length)}Buffer3.isBuffer=function(b){return b!=null&&b._isBuffer===!0&&b!==Buffer3.prototype};Buffer3.compare=function(a,b){if(isInstance(a,Uint8Array)&&(a=Buffer3.from(a,a.offset,a.byteLength)),isInstance(b,Uint8Array)&&(b=Buffer3.from(b,b.offset,b.byteLength)),!Buffer3.isBuffer(a)||!Buffer3.isBuffer(b))throw new TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array');if(a===b)return 0;for(var x=a.length,y=b.length,i=0,len=Math.min(x,y);i<len;++i)if(a[i]!==b[i]){x=a[i],y=b[i];break}return x<y?-1:y<x?1:0};Buffer3.isEncoding=function(encoding){switch(String(encoding).toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"latin1":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return!0;default:return!1}};Buffer3.concat=function(list,length){if(!Array.isArray(list))throw new TypeError('"list" argument must be an Array of Buffers');if(list.length===0)return Buffer3.alloc(0);var i;if(length===void 0)for(length=0,i=0;i<list.length;++i)length+=list[i].length;var buffer=Buffer3.allocUnsafe(length),pos=0;for(i=0;i<list.length;++i){var buf=list[i];if(isInstance(buf,Uint8Array))pos+buf.length>buffer.length?Buffer3.from(buf).copy(buffer,pos):Uint8Array.prototype.set.call(buffer,buf,pos);else if(Buffer3.isBuffer(buf))buf.copy(buffer,pos);else throw new TypeError('"list" argument must be an Array of Buffers');pos+=buf.length}return buffer};function byteLength(string,encoding){if(Buffer3.isBuffer(string))return string.length;if(ArrayBuffer.isView(string)||isInstance(string,ArrayBuffer))return string.byteLength;if(typeof string!="string")throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof string);var len=string.length,mustMatch=arguments.length>2&&arguments[2]===!0;if(!mustMatch&&len===0)return 0;for(var loweredCase=!1;;)switch(encoding){case"ascii":case"latin1":case"binary":return len;case"utf8":case"utf-8":return utf8ToBytes(string).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return len*2;case"hex":return len>>>1;case"base64":return base64ToBytes(string).length;default:if(loweredCase)return mustMatch?-1:utf8ToBytes(string).length;encoding=(""+encoding).toLowerCase(),loweredCase=!0}}Buffer3.byteLength=byteLength;function slowToString(encoding,start,end){var loweredCase=!1;if((start===void 0||start<0)&&(start=0),start>this.length||((end===void 0||end>this.length)&&(end=this.length),end<=0)||(end>>>=0,start>>>=0,end<=start))return"";for(encoding||(encoding="utf8");;)switch(encoding){case"hex":return hexSlice(this,start,end);case"utf8":case"utf-8":return utf8Slice(this,start,end);case"ascii":return asciiSlice(this,start,end);case"latin1":case"binary":return latin1Slice(this,start,end);case"base64":return base64Slice(this,start,end);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return utf16leSlice(this,start,end);default:if(loweredCase)throw new TypeError("Unknown encoding: "+encoding);encoding=(encoding+"").toLowerCase(),loweredCase=!0}}Buffer3.prototype._isBuffer=!0;function swap(b,n,m){var i=b[n];b[n]=b[m],b[m]=i}Buffer3.prototype.swap16=function(){var len=this.length;if(len%2!==0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(var i=0;i<len;i+=2)swap(this,i,i+1);return this};Buffer3.prototype.swap32=function(){var len=this.length;if(len%4!==0)throw new RangeError("Buffer size must be a multiple of 32-bits");for(var i=0;i<len;i+=4)swap(this,i,i+3),swap(this,i+1,i+2);return this};Buffer3.prototype.swap64=function(){var len=this.length;if(len%8!==0)throw new RangeError("Buffer size must be a multiple of 64-bits");for(var i=0;i<len;i+=8)swap(this,i,i+7),swap(this,i+1,i+6),swap(this,i+2,i+5),swap(this,i+3,i+4);return this};Buffer3.prototype.toString=function(){var length=this.length;return length===0?"":arguments.length===0?utf8Slice(this,0,length):slowToString.apply(this,arguments)};Buffer3.prototype.toLocaleString=Buffer3.prototype.toString;Buffer3.prototype.equals=function(b){if(!Buffer3.isBuffer(b))throw new TypeError("Argument must be a Buffer");return this===b?!0:Buffer3.compare(this,b)===0};Buffer3.prototype.inspect=function(){var str="",max=exports.INSPECT_MAX_BYTES;return str=this.toString("hex",0,max).replace(/(.{2})/g,"$1 ").trim(),this.length>max&&(str+=" ... "),"<Buffer "+str+">"};customInspectSymbol&&(Buffer3.prototype[customInspectSymbol]=Buffer3.prototype.inspect);Buffer3.prototype.compare=function(target,start,end,thisStart,thisEnd){if(isInstance(target,Uint8Array)&&(target=Buffer3.from(target,target.offset,target.byteLength)),!Buffer3.isBuffer(target))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof target);if(start===void 0&&(start=0),end===void 0&&(end=target?target.length:0),thisStart===void 0&&(thisStart=0),thisEnd===void 0&&(thisEnd=this.length),start<0||end>target.length||thisStart<0||thisEnd>this.length)throw new RangeError("out of range index");if(thisStart>=thisEnd&&start>=end)return 0;if(thisStart>=thisEnd)return-1;if(start>=end)return 1;if(start>>>=0,end>>>=0,thisStart>>>=0,thisEnd>>>=0,this===target)return 0;for(var x=thisEnd-thisStart,y=end-start,len=Math.min(x,y),thisCopy=this.slice(thisStart,thisEnd),targetCopy=target.slice(start,end),i=0;i<len;++i)if(thisCopy[i]!==targetCopy[i]){x=thisCopy[i],y=targetCopy[i];break}return x<y?-1:y<x?1:0};function bidirectionalIndexOf(buffer,val,byteOffset,encoding,dir){if(buffer.length===0)return-1;if(typeof byteOffset=="string"?(encoding=byteOffset,byteOffset=0):byteOffset>2147483647?byteOffset=2147483647:byteOffset<-2147483648&&(byteOffset=-2147483648),byteOffset=+byteOffset,numberIsNaN(byteOffset)&&(byteOffset=dir?0:buffer.length-1),byteOffset<0&&(byteOffset=buffer.length+byteOffset),byteOffset>=buffer.length){if(dir)return-1;byteOffset=buffer.length-1}else if(byteOffset<0)if(dir)byteOffset=0;else return-1;if(typeof val=="string"&&(val=Buffer3.from(val,encoding)),Buffer3.isBuffer(val))return val.length===0?-1:arrayIndexOf(buffer,val,byteOffset,encoding,dir);if(typeof val=="number")return val=val&255,typeof Uint8Array.prototype.indexOf=="function"?dir?Uint8Array.prototype.indexOf.call(buffer,val,byteOffset):Uint8Array.prototype.lastIndexOf.call(buffer,val,byteOffset):arrayIndexOf(buffer,[val],byteOffset,encoding,dir);throw new TypeError("val must be string, number or Buffer")}function arrayIndexOf(arr,val,byteOffset,encoding,dir){var indexSize=1,arrLength=arr.length,valLength=val.length;if(encoding!==void 0&&(encoding=String(encoding).toLowerCase(),encoding==="ucs2"||encoding==="ucs-2"||encoding==="utf16le"||encoding==="utf-16le")){if(arr.length<2||val.length<2)return-1;indexSize=2,arrLength/=2,valLength/=2,byteOffset/=2}function read(buf,i2){return indexSize===1?buf[i2]:buf.readUInt16BE(i2*indexSize)}var i;if(dir){var foundIndex=-1;for(i=byteOffset;i<arrLength;i++)if(read(arr,i)===read(val,foundIndex===-1?0:i-foundIndex)){if(foundIndex===-1&&(foundIndex=i),i-foundIndex+1===valLength)return foundIndex*indexSize}else foundIndex!==-1&&(i-=i-foundIndex),foundIndex=-1}else for(byteOffset+valLength>arrLength&&(byteOffset=arrLength-valLength),i=byteOffset;i>=0;i--){for(var found=!0,j=0;j<valLength;j++)if(read(arr,i+j)!==read(val,j)){found=!1;break}if(found)return i}return-1}Buffer3.prototype.includes=function(val,byteOffset,encoding){return this.indexOf(val,byteOffset,encoding)!==-1};Buffer3.prototype.indexOf=function(val,byteOffset,encoding){return bidirectionalIndexOf(this,val,byteOffset,encoding,!0)};Buffer3.prototype.lastIndexOf=function(val,byteOffset,encoding){return bidirectionalIndexOf(this,val,byteOffset,encoding,!1)};function hexWrite(buf,string,offset,length){offset=Number(offset)||0;var remaining=buf.length-offset;length?(length=Number(length),length>remaining&&(length=remaining)):length=remaining;var strLen=string.length;length>strLen/2&&(length=strLen/2);for(var i=0;i<length;++i){var parsed=parseInt(string.substr(i*2,2),16);if(numberIsNaN(parsed))return i;buf[offset+i]=parsed}return i}function utf8Write(buf,string,offset,length){return blitBuffer(utf8ToBytes(string,buf.length-offset),buf,offset,length)}function asciiWrite(buf,string,offset,length){return blitBuffer(asciiToBytes(string),buf,offset,length)}function base64Write(buf,string,offset,length){return blitBuffer(base64ToBytes(string),buf,offset,length)}function ucs2Write(buf,string,offset,length){return blitBuffer(utf16leToBytes(string,buf.length-offset),buf,offset,length)}Buffer3.prototype.write=function(string,offset,length,encoding){if(offset===void 0)encoding="utf8",length=this.length,offset=0;else if(length===void 0&&typeof offset=="string")encoding=offset,length=this.length,offset=0;else if(isFinite(offset))offset=offset>>>0,isFinite(length)?(length=length>>>0,encoding===void 0&&(encoding="utf8")):(encoding=length,length=void 0);else throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");var remaining=this.length-offset;if((length===void 0||length>remaining)&&(length=remaining),string.length>0&&(length<0||offset<0)||offset>this.length)throw new RangeError("Attempt to write outside buffer bounds");encoding||(encoding="utf8");for(var loweredCase=!1;;)switch(encoding){case"hex":return hexWrite(this,string,offset,length);case"utf8":case"utf-8":return utf8Write(this,string,offset,length);case"ascii":case"latin1":case"binary":return asciiWrite(this,string,offset,length);case"base64":return base64Write(this,string,offset,length);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return ucs2Write(this,string,offset,length);default:if(loweredCase)throw new TypeError("Unknown encoding: "+encoding);encoding=(""+encoding).toLowerCase(),loweredCase=!0}};Buffer3.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function base64Slice(buf,start,end){return start===0&&end===buf.length?base64.fromByteArray(buf):base64.fromByteArray(buf.slice(start,end))}function utf8Slice(buf,start,end){end=Math.min(buf.length,end);for(var res=[],i=start;i<end;){var firstByte=buf[i],codePoint=null,bytesPerSequence=firstByte>239?4:firstByte>223?3:firstByte>191?2:1;if(i+bytesPerSequence<=end){var secondByte,thirdByte,fourthByte,tempCodePoint;switch(bytesPerSequence){case 1:firstByte<128&&(codePoint=firstByte);break;case 2:secondByte=buf[i+1],(secondByte&192)===128&&(tempCodePoint=(firstByte&31)<<6|secondByte&63,tempCodePoint>127&&(codePoint=tempCodePoint));break;case 3:secondByte=buf[i+1],thirdByte=buf[i+2],(secondByte&192)===128&&(thirdByte&192)===128&&(tempCodePoint=(firstByte&15)<<12|(secondByte&63)<<6|thirdByte&63,tempCodePoint>2047&&(tempCodePoint<55296||tempCodePoint>57343)&&(codePoint=tempCodePoint));break;case 4:secondByte=buf[i+1],thirdByte=buf[i+2],fourthByte=buf[i+3],(secondByte&192)===128&&(thirdByte&192)===128&&(fourthByte&192)===128&&(tempCodePoint=(firstByte&15)<<18|(secondByte&63)<<12|(thirdByte&63)<<6|fourthByte&63,tempCodePoint>65535&&tempCodePoint<1114112&&(codePoint=tempCodePoint))}}codePoint===null?(codePoint=65533,bytesPerSequence=1):codePoint>65535&&(codePoint-=65536,res.push(codePoint>>>10&1023|55296),codePoint=56320|codePoint&1023),res.push(codePoint),i+=bytesPerSequence}return decodeCodePointsArray(res)}var MAX_ARGUMENTS_LENGTH=4096;function decodeCodePointsArray(codePoints){var len=codePoints.length;if(len<=MAX_ARGUMENTS_LENGTH)return String.fromCharCode.apply(String,codePoints);for(var res="",i=0;i<len;)res+=String.fromCharCode.apply(String,codePoints.slice(i,i+=MAX_ARGUMENTS_LENGTH));return res}function asciiSlice(buf,start,end){var ret="";end=Math.min(buf.length,end);for(var i=start;i<end;++i)ret+=String.fromCharCode(buf[i]&127);return ret}function latin1Slice(buf,start,end){var ret="";end=Math.min(buf.length,end);for(var i=start;i<end;++i)ret+=String.fromCharCode(buf[i]);return ret}function hexSlice(buf,start,end){var len=buf.length;(!start||start<0)&&(start=0),(!end||end<0||end>len)&&(end=len);for(var out="",i=start;i<end;++i)out+=hexSliceLookupTable[buf[i]];return out}function utf16leSlice(buf,start,end){for(var bytes=buf.slice(start,end),res="",i=0;i<bytes.length-1;i+=2)res+=String.fromCharCode(bytes[i]+bytes[i+1]*256);return res}Buffer3.prototype.slice=function(start,end){var len=this.length;start=~~start,end=end===void 0?len:~~end,start<0?(start+=len,start<0&&(start=0)):start>len&&(start=len),end<0?(end+=len,end<0&&(end=0)):end>len&&(end=len),end<start&&(end=start);var newBuf=this.subarray(start,end);return Object.setPrototypeOf(newBuf,Buffer3.prototype),newBuf};function checkOffset(offset,ext,length){if(offset%1!==0||offset<0)throw new RangeError("offset is not uint");if(offset+ext>length)throw new RangeError("Trying to access beyond buffer length")}Buffer3.prototype.readUintLE=Buffer3.prototype.readUIntLE=function(offset,byteLength2,noAssert){offset=offset>>>0,byteLength2=byteLength2>>>0,noAssert||checkOffset(offset,byteLength2,this.length);for(var val=this[offset],mul=1,i=0;++i<byteLength2&&(mul*=256);)val+=this[offset+i]*mul;return val};Buffer3.prototype.readUintBE=Buffer3.prototype.readUIntBE=function(offset,byteLength2,noAssert){offset=offset>>>0,byteLength2=byteLength2>>>0,noAssert||checkOffset(offset,byteLength2,this.length);for(var val=this[offset+--byteLength2],mul=1;byteLength2>0&&(mul*=256);)val+=this[offset+--byteLength2]*mul;return val};Buffer3.prototype.readUint8=Buffer3.prototype.readUInt8=function(offset,noAssert){return offset=offset>>>0,noAssert||checkOffset(offset,1,this.length),this[offset]};Buffer3.prototype.readUint16LE=Buffer3.prototype.readUInt16LE=function(offset,noAssert){return offset=offset>>>0,noAssert||checkOffset(offset,2,this.length),this[offset]|this[offset+1]<<8};Buffer3.prototype.readUint16BE=Buffer3.prototype.readUInt16BE=function(offset,noAssert){return offset=offset>>>0,noAssert||checkOffset(offset,2,this.length),this[offset]<<8|this[offset+1]};Buffer3.prototype.readUint32LE=Buffer3.prototype.readUInt32LE=function(offset,noAssert){return offset=offset>>>0,noAssert||checkOffset(offset,4,this.length),(this[offset]|this[offset+1]<<8|this[offset+2]<<16)+this[offset+3]*16777216};Buffer3.prototype.readUint32BE=Buffer3.prototype.readUInt32BE=function(offset,noAssert){return offset=offset>>>0,noAssert||checkOffset(offset,4,this.length),this[offset]*16777216+(this[offset+1]<<16|this[offset+2]<<8|this[offset+3])};Buffer3.prototype.readIntLE=function(offset,byteLength2,noAssert){offset=offset>>>0,byteLength2=byteLength2>>>0,noAssert||checkOffset(offset,byteLength2,this.length);for(var val=this[offset],mul=1,i=0;++i<byteLength2&&(mul*=256);)val+=this[offset+i]*mul;return mul*=128,val>=mul&&(val-=Math.pow(2,8*byteLength2)),val};Buffer3.prototype.readIntBE=function(offset,byteLength2,noAssert){offset=offset>>>0,byteLength2=byteLength2>>>0,noAssert||checkOffset(offset,byteLength2,this.length);for(var i=byteLength2,mul=1,val=this[offset+--i];i>0&&(mul*=256);)val+=this[offset+--i]*mul;return mul*=128,val>=mul&&(val-=Math.pow(2,8*byteLength2)),val};Buffer3.prototype.readInt8=function(offset,noAssert){return offset=offset>>>0,noAssert||checkOffset(offset,1,this.length),this[offset]&128?(255-this[offset]+1)*-1:this[offset]};Buffer3.prototype.readInt16LE=function(offset,noAssert){offset=offset>>>0,noAssert||checkOffset(offset,2,this.length);var val=this[offset]|this[offset+1]<<8;return val&32768?val|4294901760:val};Buffer3.prototype.readInt16BE=function(offset,noAssert){offset=offset>>>0,noAssert||checkOffset(offset,2,this.length);var val=this[offset+1]|this[offset]<<8;return val&32768?val|4294901760:val};Buffer3.prototype.readInt32LE=function(offset,noAssert){return offset=offset>>>0,noAssert||checkOffset(offset,4,this.length),this[offset]|this[offset+1]<<8|this[offset+2]<<16|this[offset+3]<<24};Buffer3.prototype.readInt32BE=function(offset,noAssert){return offset=offset>>>0,noAssert||checkOffset(offset,4,this.length),this[offset]<<24|this[offset+1]<<16|this[offset+2]<<8|this[offset+3]};Buffer3.prototype.readFloatLE=function(offset,noAssert){return offset=offset>>>0,noAssert||checkOffset(offset,4,this.length),ieee754.read(this,offset,!0,23,4)};Buffer3.prototype.readFloatBE=function(offset,noAssert){return offset=offset>>>0,noAssert||checkOffset(offset,4,this.length),ieee754.read(this,offset,!1,23,4)};Buffer3.prototype.readDoubleLE=function(offset,noAssert){return offset=offset>>>0,noAssert||checkOffset(offset,8,this.length),ieee754.read(this,offset,!0,52,8)};Buffer3.prototype.readDoubleBE=function(offset,noAssert){return offset=offset>>>0,noAssert||checkOffset(offset,8,this.length),ieee754.read(this,offset,!1,52,8)};function checkInt(buf,value,offset,ext,max,min){if(!Buffer3.isBuffer(buf))throw new TypeError('"buffer" argument must be a Buffer instance');if(value>max||value<min)throw new RangeError('"value" argument is out of bounds');if(offset+ext>buf.length)throw new RangeError("Index out of range")}Buffer3.prototype.writeUintLE=Buffer3.prototype.writeUIntLE=function(value,offset,byteLength2,noAssert){if(value=+value,offset=offset>>>0,byteLength2=byteLength2>>>0,!noAssert){var maxBytes=Math.pow(2,8*byteLength2)-1;checkInt(this,value,offset,byteLength2,maxBytes,0)}var mul=1,i=0;for(this[offset]=value&255;++i<byteLength2&&(mul*=256);)this[offset+i]=value/mul&255;return offset+byteLength2};Buffer3.prototype.writeUintBE=Buffer3.prototype.writeUIntBE=function(value,offset,byteLength2,noAssert){if(value=+value,offset=offset>>>0,byteLength2=byteLength2>>>0,!noAssert){var maxBytes=Math.pow(2,8*byteLength2)-1;checkInt(this,value,offset,byteLength2,maxBytes,0)}var i=byteLength2-1,mul=1;for(this[offset+i]=value&255;--i>=0&&(mul*=256);)this[offset+i]=value/mul&255;return offset+byteLength2};Buffer3.prototype.writeUint8=Buffer3.prototype.writeUInt8=function(value,offset,noAssert){return value=+value,offset=offset>>>0,noAssert||checkInt(this,value,offset,1,255,0),this[offset]=value&255,offset+1};Buffer3.prototype.writeUint16LE=Buffer3.prototype.writeUInt16LE=function(value,offset,noAssert){return value=+value,offset=offset>>>0,noAssert||checkInt(this,value,offset,2,65535,0),this[offset]=value&255,this[offset+1]=value>>>8,offset+2};Buffer3.prototype.writeUint16BE=Buffer3.prototype.writeUInt16BE=function(value,offset,noAssert){return value=+value,offset=offset>>>0,noAssert||checkInt(this,value,offset,2,65535,0),this[offset]=value>>>8,this[offset+1]=value&255,offset+2};Buffer3.prototype.writeUint32LE=Buffer3.prototype.writeUInt32LE=function(value,offset,noAssert){return value=+value,offset=offset>>>0,noAssert||checkInt(this,value,offset,4,4294967295,0),this[offset+3]=value>>>24,this[offset+2]=value>>>16,this[offset+1]=value>>>8,this[offset]=value&255,offset+4};Buffer3.prototype.writeUint32BE=Buffer3.prototype.writeUInt32BE=function(value,offset,noAssert){return value=+value,offset=offset>>>0,noAssert||checkInt(this,value,offset,4,4294967295,0),this[offset]=value>>>24,this[offset+1]=value>>>16,this[offset+2]=value>>>8,this[offset+3]=value&255,offset+4};Buffer3.prototype.writeIntLE=function(value,offset,byteLength2,noAssert){if(value=+value,offset=offset>>>0,!noAssert){var limit=Math.pow(2,8*byteLength2-1);checkInt(this,value,offset,byteLength2,limit-1,-limit)}var i=0,mul=1,sub=0;for(this[offset]=value&255;++i<byteLength2&&(mul*=256);)value<0&&sub===0&&this[offset+i-1]!==0&&(sub=1),this[offset+i]=(value/mul>>0)-sub&255;return offset+byteLength2};Buffer3.prototype.writeIntBE=function(value,offset,byteLength2,noAssert){if(value=+value,offset=offset>>>0,!noAssert){var limit=Math.pow(2,8*byteLength2-1);checkInt(this,value,offset,byteLength2,limit-1,-limit)}var i=byteLength2-1,mul=1,sub=0;for(this[offset+i]=value&255;--i>=0&&(mul*=256);)value<0&&sub===0&&this[offset+i+1]!==0&&(sub=1),this[offset+i]=(value/mul>>0)-sub&255;return offset+byteLength2};Buffer3.prototype.writeInt8=function(value,offset,noAssert){return value=+value,offset=offset>>>0,noAssert||checkInt(this,value,offset,1,127,-128),value<0&&(value=255+value+1),this[offset]=value&255,offset+1};Buffer3.prototype.writeInt16LE=function(value,offset,noAssert){return value=+value,offset=offset>>>0,noAssert||checkInt(this,value,offset,2,32767,-32768),this[offset]=value&255,this[offset+1]=value>>>8,offset+2};Buffer3.prototype.writeInt16BE=function(value,offset,noAssert){return value=+value,offset=offset>>>0,noAssert||checkInt(this,value,offset,2,32767,-32768),this[offset]=value>>>8,this[offset+1]=value&255,offset+2};Buffer3.prototype.writeInt32LE=function(value,offset,noAssert){return value=+value,offset=offset>>>0,noAssert||checkInt(this,value,offset,4,2147483647,-2147483648),this[offset]=value&255,this[offset+1]=value>>>8,this[offset+2]=value>>>16,this[offset+3]=value>>>24,offset+4};Buffer3.prototype.writeInt32BE=function(value,offset,noAssert){return value=+value,offset=offset>>>0,noAssert||checkInt(this,value,offset,4,2147483647,-2147483648),value<0&&(value=4294967295+value+1),this[offset]=value>>>24,this[offset+1]=value>>>16,this[offset+2]=value>>>8,this[offset+3]=value&255,offset+4};function checkIEEE754(buf,value,offset,ext,max,min){if(offset+ext>buf.length)throw new RangeError("Index out of range");if(offset<0)throw new RangeError("Index out of range")}function writeFloat(buf,value,offset,littleEndian,noAssert){return value=+value,offset=offset>>>0,noAssert||checkIEEE754(buf,value,offset,4,34028234663852886e22,-34028234663852886e22),ieee754.write(buf,value,offset,littleEndian,23,4),offset+4}Buffer3.prototype.writeFloatLE=function(value,offset,noAssert){return writeFloat(this,value,offset,!0,noAssert)};Buffer3.prototype.writeFloatBE=function(value,offset,noAssert){return writeFloat(this,value,offset,!1,noAssert)};function writeDouble(buf,value,offset,littleEndian,noAssert){return value=+value,offset=offset>>>0,noAssert||checkIEEE754(buf,value,offset,8,17976931348623157e292,-17976931348623157e292),ieee754.write(buf,value,offset,littleEndian,52,8),offset+8}Buffer3.prototype.writeDoubleLE=function(value,offset,noAssert){return writeDouble(this,value,offset,!0,noAssert)};Buffer3.prototype.writeDoubleBE=function(value,offset,noAssert){return writeDouble(this,value,offset,!1,noAssert)};Buffer3.prototype.copy=function(target,targetStart,start,end){if(!Buffer3.isBuffer(target))throw new TypeError("argument should be a Buffer");if(start||(start=0),!end&&end!==0&&(end=this.length),targetStart>=target.length&&(targetStart=target.length),targetStart||(targetStart=0),end>0&&end<start&&(end=start),end===start||target.length===0||this.length===0)return 0;if(targetStart<0)throw new RangeError("targetStart out of bounds");if(start<0||start>=this.length)throw new RangeError("Index out of range");if(end<0)throw new RangeError("sourceEnd out of bounds");end>this.length&&(end=this.length),target.length-targetStart<end-start&&(end=target.length-targetStart+start);var len=end-start;return this===target&&typeof Uint8Array.prototype.copyWithin=="function"?this.copyWithin(targetStart,start,end):Uint8Array.prototype.set.call(target,this.subarray(start,end),targetStart),len};Buffer3.prototype.fill=function(val,start,end,encoding){if(typeof val=="string"){if(typeof start=="string"?(encoding=start,start=0,end=this.length):typeof end=="string"&&(encoding=end,end=this.length),encoding!==void 0&&typeof encoding!="string")throw new TypeError("encoding must be a string");if(typeof encoding=="string"&&!Buffer3.isEncoding(encoding))throw new TypeError("Unknown encoding: "+encoding);if(val.length===1){var code=val.charCodeAt(0);(encoding==="utf8"&&code<128||encoding==="latin1")&&(val=code)}}else typeof val=="number"?val=val&255:typeof val=="boolean"&&(val=Number(val));if(start<0||this.length<start||this.length<end)throw new RangeError("Out of range index");if(end<=start)return this;start=start>>>0,end=end===void 0?this.length:end>>>0,val||(val=0);var i;if(typeof val=="number")for(i=start;i<end;++i)this[i]=val;else{var bytes=Buffer3.isBuffer(val)?val:Buffer3.from(val,encoding),len=bytes.length;if(len===0)throw new TypeError('The value "'+val+'" is invalid for argument "value"');for(i=0;i<end-start;++i)this[i+start]=bytes[i%len]}return this};var INVALID_BASE64_RE=/[^+/0-9A-Za-z-_]/g;function base64clean(str){if(str=str.split("=")[0],str=str.trim().replace(INVALID_BASE64_RE,""),str.length<2)return"";for(;str.length%4!==0;)str=str+"=";return str}function utf8ToBytes(string,units){units=units||1/0;for(var codePoint,length=string.length,leadSurrogate=null,bytes=[],i=0;i<length;++i){if(codePoint=string.charCodeAt(i),codePoint>55295&&codePoint<57344){if(!leadSurrogate){if(codePoint>56319){(units-=3)>-1&&bytes.push(239,191,189);continue}else if(i+1===length){(units-=3)>-1&&bytes.push(239,191,189);continue}leadSurrogate=codePoint;continue}if(codePoint<56320){(units-=3)>-1&&bytes.push(239,191,189),leadSurrogate=codePoint;continue}codePoint=(leadSurrogate-55296<<10|codePoint-56320)+65536}else leadSurrogate&&(units-=3)>-1&&bytes.push(239,191,189);if(leadSurrogate=null,codePoint<128){if((units-=1)<0)break;bytes.push(codePoint)}else if(codePoint<2048){if((units-=2)<0)break;bytes.push(codePoint>>6|192,codePoint&63|128)}else if(codePoint<65536){if((units-=3)<0)break;bytes.push(codePoint>>12|224,codePoint>>6&63|128,codePoint&63|128)}else if(codePoint<1114112){if((units-=4)<0)break;bytes.push(codePoint>>18|240,codePoint>>12&63|128,codePoint>>6&63|128,codePoint&63|128)}else throw new Error("Invalid code point")}return bytes}function asciiToBytes(str){for(var byteArray=[],i=0;i<str.length;++i)byteArray.push(str.charCodeAt(i)&255);return byteArray}function utf16leToBytes(str,units){for(var c,hi,lo,byteArray=[],i=0;i<str.length&&!((units-=2)<0);++i)c=str.charCodeAt(i),hi=c>>8,lo=c%256,byteArray.push(lo),byteArray.push(hi);return byteArray}function base64ToBytes(str){return base64.toByteArray(base64clean(str))}function blitBuffer(src,dst,offset,length){for(var i=0;i<length&&!(i+offset>=dst.length||i>=src.length);++i)dst[i+offset]=src[i];return i}function isInstance(obj,type){return obj instanceof type||obj!=null&&obj.constructor!=null&&obj.constructor.name!=null&&obj.constructor.name===type.name}function numberIsNaN(obj){return obj!==obj}var hexSliceLookupTable=function(){for(var alphabet="0123456789abcdef",table=new Array(256),i=0;i<16;++i)for(var i16=i*16,j=0;j<16;++j)table[i16+j]=alphabet[i]+alphabet[j];return table}()}});var require_browser=__commonJS({"node_modules/process/browser.js"(exports,module){init_define_process_env();init_shim();var process2=module.exports={},cachedSetTimeout,cachedClearTimeout;function defaultSetTimout(){throw new Error("setTimeout has not been defined")}function defaultClearTimeout(){throw new Error("clearTimeout has not been defined")}(function(){try{typeof setTimeout=="function"?cachedSetTimeout=setTimeout:cachedSetTimeout=defaultSetTimout}catch(e){cachedSetTimeout=defaultSetTimout}try{typeof clearTimeout=="function"?cachedClearTimeout=clearTimeout:cachedClearTimeout=defaultClearTimeout}catch(e){cachedClearTimeout=defaultClearTimeout}})();function runTimeout(fun){if(cachedSetTimeout===setTimeout)return setTimeout(fun,0);if((cachedSetTimeout===defaultSetTimout||!cachedSetTimeout)&&setTimeout)return cachedSetTimeout=setTimeout,setTimeout(fun,0);try{return cachedSetTimeout(fun,0)}catch(e){try{return cachedSetTimeout.call(null,fun,0)}catch(e2){return cachedSetTimeout.call(this,fun,0)}}}function runClearTimeout(marker){if(cachedClearTimeout===clearTimeout)return clearTimeout(marker);if((cachedClearTimeout===defaultClearTimeout||!cachedClearTimeout)&&clearTimeout)return cachedClearTimeout=clearTimeout,clearTimeout(marker);try{return cachedClearTimeout(marker)}catch(e){try{return cachedClearTimeout.call(null,marker)}catch(e2){return cachedClearTimeout.call(this,marker)}}}var queue=[],draining=!1,currentQueue,queueIndex=-1;function cleanUpNextTick(){!draining||!currentQueue||(draining=!1,currentQueue.length?queue=currentQueue.concat(queue):queueIndex=-1,queue.length&&drainQueue())}function drainQueue(){if(!draining){var timeout=runTimeout(cleanUpNextTick);draining=!0;for(var len=queue.length;len;){for(currentQueue=queue,queue=[];++queueIndex<len;)currentQueue&&currentQueue[queueIndex].run();queueIndex=-1,len=queue.length}currentQueue=null,draining=!1,runClearTimeout(timeout)}}process2.nextTick=function(fun){var args=new Array(arguments.length-1);if(arguments.length>1)for(var i=1;i<arguments.length;i++)args[i-1]=arguments[i];queue.push(new Item(fun,args)),queue.length===1&&!draining&&runTimeout(drainQueue)};function Item(fun,array){this.fun=fun,this.array=array}Item.prototype.run=function(){this.fun.apply(null,this.array)};process2.title="browser";process2.browser=!0;process2.env={};process2.argv=[];process2.version="";process2.versions={};function noop(){}process2.on=noop;process2.addListener=noop;process2.once=noop;process2.off=noop;process2.removeListener=noop;process2.removeAllListeners=noop;process2.emit=noop;process2.prependListener=noop;process2.prependOnceListener=noop;process2.listeners=function(name){return[]};process2.binding=function(name){throw new Error("process.binding is not supported")};process2.cwd=function(){return"/"};process2.chdir=function(dir){throw new Error("process.chdir is not supported")};process2.umask=function(){return 0}}});var import_buffer,import_process,_globalThis,init_shim=__esm({"node_modules/node-stdlib-browser/helpers/esbuild/shim.js"(){import_buffer=__toESM(require_buffer()),import_process=__toESM(require_browser()),_globalThis=function(Object2){function get(){var _global3=this||self;return delete Object2.prototype.__magic__,_global3}if(typeof globalThis=="object")return globalThis;if(this)return get();Object2.defineProperty(Object2.prototype,"__magic__",{configurable:!0,get});var _global2=__magic__;return _global2}(Object)}});var require_global=__commonJS({"node_modules/core-js/internals/global.js"(exports,module){"use strict";init_define_process_env();init_shim();var check=function(it){return it&&it.Math===Math&&it};module.exports=check(typeof globalThis=="object"&&globalThis)||check(typeof window=="object"&&window)||check(typeof self=="object"&&self)||check(typeof window=="object"&&window)||check(typeof exports=="object"&&exports)||function(){return this}()||Function("return this")()}});var require_fails=__commonJS({"node_modules/core-js/internals/fails.js"(exports,module){"use strict";init_define_process_env();init_shim();module.exports=function(exec){try{return!!exec()}catch(error){return!0}}}});var require_descriptors=__commonJS({"node_modules/core-js/internals/descriptors.js"(exports,module){"use strict";init_define_process_env();init_shim();var fails=require_fails();module.exports=!fails(function(){return Object.defineProperty({},1,{get:function(){return 7}})[1]!==7})}});var require_function_bind_native=__commonJS({"node_modules/core-js/internals/function-bind-native.js"(exports,module){"use strict";init_define_process_env();init_shim();var fails=require_fails();module.exports=!fails(function(){var test=(function(){}).bind();return typeof test!="function"||test.hasOwnProperty("prototype")})}});var require_function_call=__commonJS({"node_modules/core-js/internals/function-call.js"(exports,module){"use strict";init_define_process_env();init_shim();var NATIVE_BIND=require_function_bind_native(),call=Function.prototype.call;module.exports=NATIVE_BIND?call.bind(call):function(){return call.apply(call,arguments)}}});var require_object_property_is_enumerable=__commonJS({"node_modules/core-js/internals/object-property-is-enumerable.js"(exports){"use strict";init_define_process_env();init_shim();var $propertyIsEnumerable={}.propertyIsEnumerable,getOwnPropertyDescriptor=Object.getOwnPropertyDescriptor,NASHORN_BUG=getOwnPropertyDescriptor&&!$propertyIsEnumerable.call({1:2},1);exports.f=NASHORN_BUG?function(V){var descriptor=getOwnPropertyDescriptor(this,V);return!!descriptor&&descriptor.enumerable}:$propertyIsEnumerable}});var require_create_property_descriptor=__commonJS({"node_modules/core-js/internals/create-property-descriptor.js"(exports,module){"use strict";init_define_process_env();init_shim();module.exports=function(bitmap,value){return{enumerable:!(bitmap&1),configurable:!(bitmap&2),writable:!(bitmap&4),value}}}});var require_function_uncurry_this=__commonJS({"node_modules/core-js/internals/function-uncurry-this.js"(exports,module){"use strict";init_define_process_env();init_shim();var NATIVE_BIND=require_function_bind_native(),FunctionPrototype=Function.prototype,call=FunctionPrototype.call,uncurryThisWithBind=NATIVE_BIND&&FunctionPrototype.bind.bind(call,call);module.exports=NATIVE_BIND?uncurryThisWithBind:function(fn){return function(){return call.apply(fn,arguments)}}}});var require_classof_raw=__commonJS({"node_modules/core-js/internals/classof-raw.js"(exports,module){"use strict";init_define_process_env();init_shim();var uncurryThis=require_function_uncurry_this(),toString=uncurryThis({}.toString),stringSlice=uncurryThis("".slice);module.exports=function(it){return stringSlice(toString(it),8,-1)}}});var require_indexed_object=__commonJS({"node_modules/core-js/internals/indexed-object.js"(exports,module){"use strict";init_define_process_env();init_shim();var uncurryThis=require_function_uncurry_this(),fails=require_fails(),classof=require_classof_raw(),$Object=Object,split=uncurryThis("".split);module.exports=fails(function(){return!$Object("z").propertyIsEnumerable(0)})?function(it){return classof(it)==="String"?split(it,""):$Object(it)}:$Object}});var require_is_null_or_undefined=__commonJS({"node_modules/core-js/internals/is-null-or-undefined.js"(exports,module){"use strict";init_define_process_env();init_shim();module.exports=function(it){return it==null}}});var require_require_object_coercible=__commonJS({"node_modules/core-js/internals/require-object-coercible.js"(exports,module){"use strict";init_define_process_env();init_shim();var isNullOrUndefined=require_is_null_or_undefined(),$TypeError=TypeError;module.exports=function(it){if(isNullOrUndefined(it))throw new $TypeError("Can't call method on "+it);return it}}});var require_to_indexed_object=__commonJS({"node_modules/core-js/internals/to-indexed-object.js"(exports,module){"use strict";init_define_process_env();init_shim();var IndexedObject=require_indexed_object(),requireObjectCoercible=require_require_object_coercible();module.exports=function(it){return IndexedObject(requireObjectCoercible(it))}}});var require_is_callable=__commonJS({"node_modules/core-js/internals/is-callable.js"(exports,module){"use strict";init_define_process_env();init_shim();var documentAll=typeof document=="object"&&document.all;module.exports=typeof documentAll>"u"&&documentAll!==void 0?function(argument){return typeof argument=="function"||argument===documentAll}:function(argument){return typeof argument=="function"}}});var require_is_object=__commonJS({"node_modules/core-js/internals/is-object.js"(exports,module){"use strict";init_define_process_env();init_shim();var isCallable=require_is_callable();module.exports=function(it){return typeof it=="object"?it!==null:isCallable(it)}}});var require_get_built_in=__commonJS({"node_modules/core-js/internals/get-built-in.js"(exports,module){"use strict";init_define_process_env();init_shim();var global=require_global(),isCallable=require_is_callable(),aFunction=function(argument){return isCallable(argument)?argument:void 0};module.exports=function(namespace,method){return arguments.length<2?aFunction(global[namespace]):global[namespace]&&global[namespace][method]}}});var require_object_is_prototype_of=__commonJS({"node_modules/core-js/internals/object-is-prototype-of.js"(exports,module){"use strict";init_define_process_env();init_shim();var uncurryThis=require_function_uncurry_this();module.exports=uncurryThis({}.isPrototypeOf)}});var require_engine_user_agent=__commonJS({"node_modules/core-js/internals/engine-user-agent.js"(exports,module){"use strict";init_define_process_env();init_shim();module.exports=typeof navigator<"u"&&String(navigator.userAgent)||""}});var require_engine_v8_version=__commonJS({"node_modules/core-js/internals/engine-v8-version.js"(exports,module){"use strict";init_define_process_env();init_shim();var global=require_global(),userAgent=require_engine_user_agent(),process2=global.process,Deno=global.Deno,versions=process2&&process2.versions||Deno&&Deno.version,v8=versions&&versions.v8,match,version;v8&&(match=v8.split("."),version=match[0]>0&&match[0]<4?1:+(match[0]+match[1]));!version&&userAgent&&(match=userAgent.match(/Edge\/(\d+)/),(!match||match[1]>=74)&&(match=userAgent.match(/Chrome\/(\d+)/),match&&(version=+match[1])));module.exports=version}});var require_symbol_constructor_detection=__commonJS({"node_modules/core-js/internals/symbol-constructor-detection.js"(exports,module){"use strict";init_define_process_env();init_shim();var V8_VERSION=require_engine_v8_version(),fails=require_fails(),global=require_global(),$String=global.String;module.exports=!!Object.getOwnPropertySymbols&&!fails(function(){var symbol=Symbol("symbol detection");return!$String(symbol)||!(Object(symbol)instanceof Symbol)||!Symbol.sham&&V8_VERSION&&V8_VERSION<41})}});var require_use_symbol_as_uid=__commonJS({"node_modules/core-js/internals/use-symbol-as-uid.js"(exports,module){"use strict";init_define_process_env();init_shim();var NATIVE_SYMBOL=require_symbol_constructor_detection();module.exports=NATIVE_SYMBOL&&!Symbol.sham&&typeof Symbol.iterator=="symbol"}});var require_is_symbol=__commonJS({"node_modules/core-js/internals/is-symbol.js"(exports,module){"use strict";init_define_process_env();init_shim();var getBuiltIn=require_get_built_in(),isCallable=require_is_callable(),isPrototypeOf=require_object_is_prototype_of(),USE_SYMBOL_AS_UID=require_use_symbol_as_uid(),$Object=Object;module.exports=USE_SYMBOL_AS_UID?function(it){return typeof it=="symbol"}:function(it){var $Symbol=getBuiltIn("Symbol");return isCallable($Symbol)&&isPrototypeOf($Symbol.prototype,$Object(it))}}});var require_try_to_string=__commonJS({"node_modules/core-js/internals/try-to-string.js"(exports,module){"use strict";init_define_process_env();init_shim();var $String=String;module.exports=function(argument){try{return $String(argument)}catch(error){return"Object"}}}});var require_a_callable=__commonJS({"node_modules/core-js/internals/a-callable.js"(exports,module){"use strict";init_define_process_env();init_shim();var isCallable=require_is_callable(),tryToString=require_try_to_string(),$TypeError=TypeError;module.exports=function(argument){if(isCallable(argument))return argument;throw new $TypeError(tryToString(argument)+" is not a function")}}});var require_get_method=__commonJS({"node_modules/core-js/internals/get-method.js"(exports,module){"use strict";init_define_process_env();init_shim();var aCallable=require_a_callable(),isNullOrUndefined=require_is_null_or_undefined();module.exports=function(V,P){var func=V[P];return isNullOrUndefined(func)?void 0:aCallable(func)}}});var require_ordinary_to_primitive=__commonJS({"node_modules/core-js/internals/ordinary-to-primitive.js"(exports,module){"use strict";init_define_process_env();init_shim();var call=require_function_call(),isCallable=require_is_callable(),isObject=require_is_object(),$TypeError=TypeError;module.exports=function(input,pref){var fn,val;if(pref==="string"&&isCallable(fn=input.toString)&&!isObject(val=call(fn,input))||isCallable(fn=input.valueOf)&&!isObject(val=call(fn,input))||pref!=="string"&&isCallable(fn=input.toString)&&!isObject(val=call(fn,input)))return val;throw new $TypeError("Can't convert object to primitive value")}}});var require_is_pure=__commonJS({"node_modules/core-js/internals/is-pure.js"(exports,module){"use strict";init_define_process_env();init_shim();module.exports=!1}});var require_define_global_property=__commonJS({"node_modules/core-js/internals/define-global-property.js"(exports,module){"use strict";init_define_process_env();init_shim();var global=require_global(),defineProperty=Object.defineProperty;module.exports=function(key,value){try{defineProperty(global,key,{value,configurable:!0,writable:!0})}catch(error){global[key]=value}return value}}});var require_shared_store=__commonJS({"node_modules/core-js/internals/shared-store.js"(exports,module){"use strict";init_define_process_env();init_shim();var global=require_global(),defineGlobalProperty=require_define_global_property(),SHARED="__core-js_shared__",store=global[SHARED]||defineGlobalProperty(SHARED,{});module.exports=store}});var require_shared=__commonJS({"node_modules/core-js/internals/shared.js"(exports,module){"use strict";init_define_process_env();init_shim();var IS_PURE=require_is_pure(),store=require_shared_store();(module.exports=function(key,value){return store[key]||(store[key]=value!==void 0?value:{})})("versions",[]).push({version:"3.35.1",mode:IS_PURE?"pure":"global",copyright:"\xA9 2014-2024 Denis Pushkarev (zloirock.ru)",license:"https://github.com/zloirock/core-js/blob/v3.35.1/LICENSE",source:"https://github.com/zloirock/core-js"})}});var require_to_object=__commonJS({"node_modules/core-js/internals/to-object.js"(exports,module){"use strict";init_define_process_env();init_shim();var requireObjectCoercible=require_require_object_coercible(),$Object=Object;module.exports=function(argument){return $Object(requireObjectCoercible(argument))}}});var require_has_own_property=__commonJS({"node_modules/core-js/internals/has-own-property.js"(exports,module){"use strict";init_define_process_env();init_shim();var uncurryThis=require_function_uncurry_this(),toObject=require_to_object(),hasOwnProperty=uncurryThis({}.hasOwnProperty);module.exports=Object.hasOwn||function(it,key){return hasOwnProperty(toObject(it),key)}}});var require_uid=__commonJS({"node_modules/core-js/internals/uid.js"(exports,module){"use strict";init_define_process_env();init_shim();var uncurryThis=require_function_uncurry_this(),id=0,postfix=Math.random(),toString=uncurryThis(1 .toString);module.exports=function(key){return"Symbol("+(key===void 0?"":key)+")_"+toString(++id+postfix,36)}}});var require_well_known_symbol=__commonJS({"node_modules/core-js/internals/well-known-symbol.js"(exports,module){"use strict";init_define_process_env();init_shim();var global=require_global(),shared=require_shared(),hasOwn=require_has_own_property(),uid=require_uid(),NATIVE_SYMBOL=require_symbol_constructor_detection(),USE_SYMBOL_AS_UID=require_use_symbol_as_uid(),Symbol2=global.Symbol,WellKnownSymbolsStore=shared("wks"),createWellKnownSymbol=USE_SYMBOL_AS_UID?Symbol2.for||Symbol2:Symbol2&&Symbol2.withoutSetter||uid;module.exports=function(name){return hasOwn(WellKnownSymbolsStore,name)||(WellKnownSymbolsStore[name]=NATIVE_SYMBOL&&hasOwn(Symbol2,name)?Symbol2[name]:createWellKnownSymbol("Symbol."+name)),WellKnownSymbolsStore[name]}}});var require_to_primitive=__commonJS({"node_modules/core-js/internals/to-primitive.js"(exports,module){"use strict";init_define_process_env();init_shim();var call=require_function_call(),isObject=require_is_object(),isSymbol=require_is_symbol(),getMethod=require_get_method(),ordinaryToPrimitive=require_ordinary_to_primitive(),wellKnownSymbol=require_well_known_symbol(),$TypeError=TypeError,TO_PRIMITIVE=wellKnownSymbol("toPrimitive");module.exports=function(input,pref){if(!isObject(input)||isSymbol(input))return input;var exoticToPrim=getMethod(input,TO_PRIMITIVE),result;if(exoticToPrim){if(pref===void 0&&(pref="default"),result=call(exoticToPrim,input,pref),!isObject(result)||isSymbol(result))return result;throw new $TypeError("Can't convert object to primitive value")}return pref===void 0&&(pref="number"),ordinaryToPrimitive(input,pref)}}});var require_to_property_key=__commonJS({"node_modules/core-js/internals/to-property-key.js"(exports,module){"use strict";init_define_process_env();init_shim();var toPrimitive=require_to_primitive(),isSymbol=require_is_symbol();module.exports=function(argument){var key=toPrimitive(argument,"string");return isSymbol(key)?key:key+""}}});var require_document_create_element=__commonJS({"node_modules/core-js/internals/document-create-element.js"(exports,module){"use strict";init_define_process_env();init_shim();var global=require_global(),isObject=require_is_object(),document2=global.document,EXISTS=isObject(document2)&&isObject(document2.createElement);module.exports=function(it){return EXISTS?document2.createElement(it):{}}}});var require_ie8_dom_define=__commonJS({"node_modules/core-js/internals/ie8-dom-define.js"(exports,module){"use strict";init_define_process_env();init_shim();var DESCRIPTORS=require_descriptors(),fails=require_fails(),createElement=require_document_create_element();module.exports=!DESCRIPTORS&&!fails(function(){return Object.defineProperty(createElement("div"),"a",{get:function(){return 7}}).a!==7})}});var require_object_get_own_property_descriptor=__commonJS({"node_modules/core-js/internals/object-get-own-property-descriptor.js"(exports){"use strict";init_define_process_env();init_shim();var DESCRIPTORS=require_descriptors(),call=require_function_call(),propertyIsEnumerableModule=require_object_property_is_enumerable(),createPropertyDescriptor=require_create_property_descriptor(),toIndexedObject=require_to_indexed_object(),toPropertyKey=require_to_property_key(),hasOwn=require_has_own_property(),IE8_DOM_DEFINE=require_ie8_dom_define(),$getOwnPropertyDescriptor=Object.getOwnPropertyDescriptor;exports.f=DESCRIPTORS?$getOwnPropertyDescriptor:function(O,P){if(O=toIndexedObject(O),P=toPropertyKey(P),IE8_DOM_DEFINE)try{return $getOwnPropertyDescriptor(O,P)}catch(error){}if(hasOwn(O,P))return createPropertyDescriptor(!call(propertyIsEnumerableModule.f,O,P),O[P])}}});var require_v8_prototype_define_bug=__commonJS({"node_modules/core-js/internals/v8-prototype-define-bug.js"(exports,module){"use strict";init_define_process_env();init_shim();var DESCRIPTORS=require_descriptors(),fails=require_fails();module.exports=DESCRIPTORS&&fails(function(){return Object.defineProperty(function(){},"prototype",{value:42,writable:!1}).prototype!==42})}});var require_an_object=__commonJS({"node_modules/core-js/internals/an-object.js"(exports,module){"use strict";init_define_process_env();init_shim();var isObject=require_is_object(),$String=String,$TypeError=TypeError;module.exports=function(argument){if(isObject(argument))return argument;throw new $TypeError($String(argument)+" is not an object")}}});var require_object_define_property=__commonJS({"node_modules/core-js/internals/object-define-property.js"(exports){"use strict";init_define_process_env();init_shim();var DESCRIPTORS=require_descriptors(),IE8_DOM_DEFINE=require_ie8_dom_define(),V8_PROTOTYPE_DEFINE_BUG=require_v8_prototype_define_bug(),anObject=require_an_object(),toPropertyKey=require_to_property_key(),$TypeError=TypeError,$defineProperty=Object.defineProperty,$getOwnPropertyDescriptor=Object.getOwnPropertyDescriptor,ENUMERABLE="enumerable",CONFIGURABLE="configurable",WRITABLE="writable";exports.f=DESCRIPTORS?V8_PROTOTYPE_DEFINE_BUG?function(O,P,Attributes){if(anObject(O),P=toPropertyKey(P),anObject(Attributes),typeof O=="function"&&P==="prototype"&&"value"in Attributes&&WRITABLE in Attributes&&!Attributes[WRITABLE]){var current=$getOwnPropertyDescriptor(O,P);current&&current[WRITABLE]&&(O[P]=Attributes.value,Attributes={configurable:CONFIGURABLE in Attributes?Attributes[CONFIGURABLE]:current[CONFIGURABLE],enumerable:ENUMERABLE in Attributes?Attributes[ENUMERABLE]:current[ENUMERABLE],writable:!1})}return $defineProperty(O,P,Attributes)}:$defineProperty:function(O,P,Attributes){if(anObject(O),P=toPropertyKey(P),anObject(Attributes),IE8_DOM_DEFINE)try{return $defineProperty(O,P,Attributes)}catch(error){}if("get"in Attributes||"set"in Attributes)throw new $TypeError("Accessors not supported");return"value"in Attributes&&(O[P]=Attributes.value),O}}});var require_create_non_enumerable_property=__commonJS({"node_modules/core-js/internals/create-non-enumerable-property.js"(exports,module){"use strict";init_define_process_env();init_shim();var DESCRIPTORS=require_descriptors(),definePropertyModule=require_object_define_property(),createPropertyDescriptor=require_create_property_descriptor();module.exports=DESCRIPTORS?function(object,key,value){return definePropertyModule.f(object,key,createPropertyDescriptor(1,value))}:function(object,key,value){return object[key]=value,object}}});var require_function_name=__commonJS({"node_modules/core-js/internals/function-name.js"(exports,module){"use strict";init_define_process_env();init_shim();var DESCRIPTORS=require_descriptors(),hasOwn=require_has_own_property(),FunctionPrototype=Function.prototype,getDescriptor=DESCRIPTORS&&Object.getOwnPropertyDescriptor,EXISTS=hasOwn(FunctionPrototype,"name"),PROPER=EXISTS&&(function(){}).name==="something",CONFIGURABLE=EXISTS&&(!DESCRIPTORS||DESCRIPTORS&&getDescriptor(FunctionPrototype,"name").configurable);module.exports={EXISTS,PROPER,CONFIGURABLE}}});var require_inspect_source=__commonJS({"node_modules/core-js/internals/inspect-source.js"(exports,module){"use strict";init_define_process_env();init_shim();var uncurryThis=require_function_uncurry_this(),isCallable=require_is_callable(),store=require_shared_store(),functionToString=uncurryThis(Function.toString);isCallable(store.inspectSource)||(store.inspectSource=function(it){return functionToString(it)});module.exports=store.inspectSource}});var require_weak_map_basic_detection=__commonJS({"node_modules/core-js/internals/weak-map-basic-detection.js"(exports,module){"use strict";init_define_process_env();init_shim();var global=require_global(),isCallable=require_is_callable(),WeakMap=global.WeakMap;module.exports=isCallable(WeakMap)&&/native code/.test(String(WeakMap))}});var require_shared_key=__commonJS({"node_modules/core-js/internals/shared-key.js"(exports,module){"use strict";init_define_process_env();init_shim();var shared=require_shared(),uid=require_uid(),keys=shared("keys");module.exports=function(key){return keys[key]||(keys[key]=uid(key))}}});var require_hidden_keys=__commonJS({"node_modules/core-js/internals/hidden-keys.js"(exports,module){"use strict";init_define_process_env();init_shim();module.exports={}}});var require_internal_state=__commonJS({"node_modules/core-js/internals/internal-state.js"(exports,module){"use strict";init_define_process_env();init_shim();var NATIVE_WEAK_MAP=require_weak_map_basic_detection(),global=require_global(),isObject=require_is_object(),createNonEnumerableProperty=require_create_non_enumerable_property(),hasOwn=require_has_own_property(),shared=require_shared_store(),sharedKey=require_shared_key(),hiddenKeys=require_hidden_keys(),OBJECT_ALREADY_INITIALIZED="Object already initialized",TypeError2=global.TypeError,WeakMap=global.WeakMap,set,get,has,enforce=function(it){return has(it)?get(it):set(it,{})},getterFor=function(TYPE){return function(it){var state;if(!isObject(it)||(state=get(it)).type!==TYPE)throw new TypeError2("Incompatible receiver, "+TYPE+" required");return state}};NATIVE_WEAK_MAP||shared.state?(store=shared.state||(shared.state=new WeakMap),store.get=store.get,store.has=store.has,store.set=store.set,set=function(it,metadata){if(store.has(it))throw new TypeError2(OBJECT_ALREADY_INITIALIZED);return metadata.facade=it,store.set(it,metadata),metadata},get=function(it){return store.get(it)||{}},has=function(it){return store.has(it)}):(STATE=sharedKey("state"),hiddenKeys[STATE]=!0,set=function(it,metadata){if(hasOwn(it,STATE))throw new TypeError2(OBJECT_ALREADY_INITIALIZED);return metadata.facade=it,createNonEnumerableProperty(it,STATE,metadata),metadata},get=function(it){return hasOwn(it,STATE)?it[STATE]:{}},has=function(it){return hasOwn(it,STATE)});var store,STATE;module.exports={set,get,has,enforce,getterFor}}});var require_make_built_in=__commonJS({"node_modules/core-js/internals/make-built-in.js"(exports,module){"use strict";init_define_process_env();init_shim();var uncurryThis=require_function_uncurry_this(),fails=require_fails(),isCallable=require_is_callable(),hasOwn=require_has_own_property(),DESCRIPTORS=require_descriptors(),CONFIGURABLE_FUNCTION_NAME=require_function_name().CONFIGURABLE,inspectSource=require_inspect_source(),InternalStateModule=require_internal_state(),enforceInternalState=InternalStateModule.enforce,getInternalState=InternalStateModule.get,$String=String,defineProperty=Object.defineProperty,stringSlice=uncurryThis("".slice),replace=uncurryThis("".replace),join=uncurryThis([].join),CONFIGURABLE_LENGTH=DESCRIPTORS&&!fails(function(){return defineProperty(function(){},"length",{value:8}).length!==8}),TEMPLATE=String(String).split("String"),makeBuiltIn=module.exports=function(value,name,options){stringSlice($String(name),0,7)==="Symbol("&&(name="["+replace($String(name),/^Symbol\(([^)]*)\).*$/,"$1")+"]"),options&&options.getter&&(name="get "+name),options&&options.setter&&(name="set "+name),(!hasOwn(value,"name")||CONFIGURABLE_FUNCTION_NAME&&value.name!==name)&&(DESCRIPTORS?defineProperty(value,"name",{value:name,configurable:!0}):value.name=name),CONFIGURABLE_LENGTH&&options&&hasOwn(options,"arity")&&value.length!==options.arity&&defineProperty(value,"length",{value:options.arity});try{options&&hasOwn(options,"constructor")&&options.constructor?DESCRIPTORS&&defineProperty(value,"prototype",{writable:!1}):value.prototype&&(value.prototype=void 0)}catch(error){}var state=enforceInternalState(value);return hasOwn(state,"source")||(state.source=join(TEMPLATE,typeof name=="string"?name:"")),value};Function.prototype.toString=makeBuiltIn(function(){return isCallable(this)&&getInternalState(this).source||inspectSource(this)},"toString")}});var require_define_built_in=__commonJS({"node_modules/core-js/internals/define-built-in.js"(exports,module){"use strict";init_define_process_env();init_shim();var isCallable=require_is_callable(),definePropertyModule=require_object_define_property(),makeBuiltIn=require_make_built_in(),defineGlobalProperty=require_define_global_property();module.exports=function(O,key,value,options){options||(options={});var simple=options.enumerable,name=options.name!==void 0?options.name:key;if(isCallable(value)&&makeBuiltIn(value,name,options),options.global)simple?O[key]=value:defineGlobalProperty(key,value);else{try{options.unsafe?O[key]&&(simple=!0):delete O[key]}catch(error){}simple?O[key]=value:definePropertyModule.f(O,key,{value,enumerable:!1,configurable:!options.nonConfigurable,writable:!options.nonWritable})}return O}}});var require_math_trunc=__commonJS({"node_modules/core-js/internals/math-trunc.js"(exports,module){"use strict";init_define_process_env();init_shim();var ceil=Math.ceil,floor=Math.floor;module.exports=Math.trunc||function(x){var n=+x;return(n>0?floor:ceil)(n)}}});var require_to_integer_or_infinity=__commonJS({"node_modules/core-js/internals/to-integer-or-infinity.js"(exports,module){"use strict";init_define_process_env();init_shim();var trunc=require_math_trunc();module.exports=function(argument){var number=+argument;return number!==number||number===0?0:trunc(number)}}});var require_to_absolute_index=__commonJS({"node_modules/core-js/internals/to-absolute-index.js"(exports,module){"use strict";init_define_process_env();init_shim();var toIntegerOrInfinity=require_to_integer_or_infinity(),max=Math.max,min=Math.min;module.exports=function(index,length){var integer=toIntegerOrInfinity(index);return integer<0?max(integer+length,0):min(integer,length)}}});var require_to_length=__commonJS({"node_modules/core-js/internals/to-length.js"(exports,module){"use strict";init_define_process_env();init_shim();var toIntegerOrInfinity=require_to_integer_or_infinity(),min=Math.min;module.exports=function(argument){var len=toIntegerOrInfinity(argument);return len>0?min(len,9007199254740991):0}}});var require_length_of_array_like=__commonJS({"node_modules/core-js/internals/length-of-array-like.js"(exports,module){"use strict";init_define_process_env();init_shim();var toLength=require_to_length();module.exports=function(obj){return toLength(obj.length)}}});var require_array_includes=__commonJS({"node_modules/core-js/internals/array-includes.js"(exports,module){"use strict";init_define_process_env();init_shim();var toIndexedObject=require_to_indexed_object(),toAbsoluteIndex=require_to_absolute_index(),lengthOfArrayLike=require_length_of_array_like(),createMethod=function(IS_INCLUDES){return function($this,el,fromIndex){var O=toIndexedObject($this),length=lengthOfArrayLike(O),index=toAbsoluteIndex(fromIndex,length),value;if(IS_INCLUDES&&el!==el){for(;length>index;)if(value=O[index++],value!==value)return!0}else for(;length>index;index++)if((IS_INCLUDES||index in O)&&O[index]===el)return IS_INCLUDES||index||0;return!IS_INCLUDES&&-1}};module.exports={includes:createMethod(!0),indexOf:createMethod(!1)}}});var require_object_keys_internal=__commonJS({"node_modules/core-js/internals/object-keys-internal.js"(exports,module){"use strict";init_define_process_env();init_shim();var uncurryThis=require_function_uncurry_this(),hasOwn=require_has_own_property(),toIndexedObject=require_to_indexed_object(),indexOf=require_array_includes().indexOf,hiddenKeys=require_hidden_keys(),push=uncurryThis([].push);module.exports=function(object,names){var O=toIndexedObject(object),i=0,result=[],key;for(key in O)!hasOwn(hiddenKeys,key)&&hasOwn(O,key)&&push(result,key);for(;names.length>i;)hasOwn(O,key=names[i++])&&(~indexOf(result,key)||push(result,key));return result}}});var require_enum_bug_keys=__commonJS({"node_modules/core-js/internals/enum-bug-keys.js"(exports,module){"use strict";init_define_process_env();init_shim();module.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]}});var require_object_get_own_property_names=__commonJS({"node_modules/core-js/internals/object-get-own-property-names.js"(exports){"use strict";init_define_process_env();init_shim();var internalObjectKeys=require_object_keys_internal(),enumBugKeys=require_enum_bug_keys(),hiddenKeys=enumBugKeys.concat("length","prototype");exports.f=Object.getOwnPropertyNames||function(O){return internalObjectKeys(O,hiddenKeys)}}});var require_object_get_own_property_symbols=__commonJS({"node_modules/core-js/internals/object-get-own-property-symbols.js"(exports){"use strict";init_define_process_env();init_shim();exports.f=Object.getOwnPropertySymbols}});var require_own_keys=__commonJS({"node_modules/core-js/internals/own-keys.js"(exports,module){"use strict";init_define_process_env();init_shim();var getBuiltIn=require_get_built_in(),uncurryThis=require_function_uncurry_this(),getOwnPropertyNamesModule=require_object_get_own_property_names(),getOwnPropertySymbolsModule=require_object_get_own_property_symbols(),anObject=require_an_object(),concat=uncurryThis([].concat);module.exports=getBuiltIn("Reflect","ownKeys")||function(it){var keys=getOwnPropertyNamesModule.f(anObject(it)),getOwnPropertySymbols=getOwnPropertySymbolsModule.f;return getOwnPropertySymbols?concat(keys,getOwnPropertySymbols(it)):keys}}});var require_copy_constructor_properties=__commonJS({"node_modules/core-js/internals/copy-constructor-properties.js"(exports,module){"use strict";init_define_process_env();init_shim();var hasOwn=require_has_own_property(),ownKeys=require_own_keys(),getOwnPropertyDescriptorModule=require_object_get_own_property_descriptor(),definePropertyModule=require_object_define_property();module.exports=function(target,source,exceptions){for(var keys=ownKeys(source),defineProperty=definePropertyModule.f,getOwnPropertyDescriptor=getOwnPropertyDescriptorModule.f,i=0;i<keys.length;i++){var key=keys[i];!hasOwn(target,key)&&!(exceptions&&hasOwn(exceptions,key))&&defineProperty(target,key,getOwnPropertyDescriptor(source,key))}}}});var require_is_forced=__commonJS({"node_modules/core-js/internals/is-forced.js"(exports,module){"use strict";init_define_process_env();init_shim();var fails=require_fails(),isCallable=require_is_callable(),replacement=/#|\.prototype\./,isForced=function(feature,detection){var value=data[normalize(feature)];return value===POLYFILL?!0:value===NATIVE?!1:isCallable(detection)?fails(detection):!!detection},normalize=isForced.normalize=function(string){return String(string).replace(replacement,".").toLowerCase()},data=isForced.data={},NATIVE=isForced.NATIVE="N",POLYFILL=isForced.POLYFILL="P";module.exports=isForced}});var require_export=__commonJS({"node_modules/core-js/internals/export.js"(exports,module){"use strict";init_define_process_env();init_shim();var global=require_global(),getOwnPropertyDescriptor=require_object_get_own_property_descriptor().f,createNonEnumerableProperty=require_create_non_enumerable_property(),defineBuiltIn=require_define_built_in(),defineGlobalProperty=require_define_global_property(),copyConstructorProperties=require_copy_constructor_properties(),isForced=require_is_forced();module.exports=function(options,source){var TARGET=options.target,GLOBAL=options.global,STATIC=options.stat,FORCED,target,key,targetProperty,sourceProperty,descriptor;if(GLOBAL?target=global:STATIC?target=global[TARGET]||defineGlobalProperty(TARGET,{}):target=global[TARGET]&&global[TARGET].prototype,target)for(key in source){if(sourceProperty=source[key],options.dontCallGetSet?(descriptor=getOwnPropertyDescriptor(target,key),targetProperty=descriptor&&descriptor.value):targetProperty=target[key],FORCED=isForced(GLOBAL?key:TARGET+(STATIC?".":"#")+key,options.forced),!FORCED&&targetProperty!==void 0){if(typeof sourceProperty==typeof targetProperty)continue;copyConstructorProperties(sourceProperty,targetProperty)}(options.sham||targetProperty&&targetProperty.sham)&&createNonEnumerableProperty(sourceProperty,"sham",!0),defineBuiltIn(target,key,sourceProperty,options)}}}});var require_to_string_tag_support=__commonJS({"node_modules/core-js/internals/to-string-tag-support.js"(exports,module){"use strict";init_define_process_env();init_shim();var wellKnownSymbol=require_well_known_symbol(),TO_STRING_TAG=wellKnownSymbol("toStringTag"),test={};test[TO_STRING_TAG]="z";module.exports=String(test)==="[object z]"}});var require_classof=__commonJS({"node_modules/core-js/internals/classof.js"(exports,module){"use strict";init_define_process_env();init_shim();var TO_STRING_TAG_SUPPORT=require_to_string_tag_support(),isCallable=require_is_callable(),classofRaw=require_classof_raw(),wellKnownSymbol=require_well_known_symbol(),TO_STRING_TAG=wellKnownSymbol("toStringTag"),$Object=Object,CORRECT_ARGUMENTS=classofRaw(function(){return arguments}())==="Arguments",tryGet=function(it,key){try{return it[key]}catch(error){}};module.exports=TO_STRING_TAG_SUPPORT?classofRaw:function(it){var O,tag,result;return it===void 0?"Undefined":it===null?"Null":typeof(tag=tryGet(O=$Object(it),TO_STRING_TAG))=="string"?tag:CORRECT_ARGUMENTS?classofRaw(O):(result=classofRaw(O))==="Object"&&isCallable(O.callee)?"Arguments":result}}});var require_to_string=__commonJS({"node_modules/core-js/internals/to-string.js"(exports,module){"use strict";init_define_process_env();init_shim();var classof=require_classof(),$String=String;module.exports=function(argument){if(classof(argument)==="Symbol")throw new TypeError("Cannot convert a Symbol value to a string");return $String(argument)}}});var require_define_built_in_accessor=__commonJS({"node_modules/core-js/internals/define-built-in-accessor.js"(exports,module){"use strict";init_define_process_env();init_shim();var makeBuiltIn=require_make_built_in(),defineProperty=require_object_define_property();module.exports=function(target,name,descriptor){return descriptor.get&&makeBuiltIn(descriptor.get,name,{getter:!0}),descriptor.set&&makeBuiltIn(descriptor.set,name,{setter:!0}),defineProperty.f(target,name,descriptor)}}});var require_es_symbol_description=__commonJS({"node_modules/core-js/modules/es.symbol.description.js"(){"use strict";init_define_process_env();init_shim();var $2=require_export(),DESCRIPTORS=require_descriptors(),global=require_global(),uncurryThis=require_function_uncurry_this(),hasOwn=require_has_own_property(),isCallable=require_is_callable(),isPrototypeOf=require_object_is_prototype_of(),toString=require_to_string(),defineBuiltInAccessor=require_define_built_in_accessor(),copyConstructorProperties=require_copy_constructor_properties(),NativeSymbol=global.Symbol,SymbolPrototype=NativeSymbol&&NativeSymbol.prototype;DESCRIPTORS&&isCallable(NativeSymbol)&&(!("description"in SymbolPrototype)||NativeSymbol().description!==void 0)&&(EmptyStringDescriptionStore={},SymbolWrapper=function(){var description=arguments.length<1||arguments[0]===void 0?void 0:toString(arguments[0]),result=isPrototypeOf(SymbolPrototype,this)?new NativeSymbol(description):description===void 0?NativeSymbol():NativeSymbol(description);return description===""&&(EmptyStringDescriptionStore[result]=!0),result},copyConstructorProperties(SymbolWrapper,NativeSymbol),SymbolWrapper.prototype=SymbolPrototype,SymbolPrototype.constructor=SymbolWrapper,NATIVE_SYMBOL=String(NativeSymbol("description detection"))==="Symbol(description detection)",thisSymbolValue=uncurryThis(SymbolPrototype.valueOf),symbolDescriptiveString=uncurryThis(SymbolPrototype.toString),regexp=/^Symbol\((.*)\)[^)]+$/,replace=uncurryThis("".replace),stringSlice=uncurryThis("".slice),defineBuiltInAccessor(SymbolPrototype,"description",{configurable:!0,get:function(){var symbol=thisSymbolValue(this);if(hasOwn(EmptyStringDescriptionStore,symbol))return"";var string=symbolDescriptiveString(symbol),desc=NATIVE_SYMBOL?stringSlice(string,7,-1):replace(string,regexp,"$1");return desc===""?void 0:desc}}),$2({global:!0,constructor:!0,forced:!0},{Symbol:SymbolWrapper}));var EmptyStringDescriptionStore,SymbolWrapper,NATIVE_SYMBOL,thisSymbolValue,symbolDescriptiveString,regexp,replace,stringSlice}});var require_regexp_flags=__commonJS({"node_modules/core-js/internals/regexp-flags.js"(exports,module){"use strict";init_define_process_env();init_shim();var anObject=require_an_object();module.exports=function(){var that=anObject(this),result="";return that.hasIndices&&(result+="d"),that.global&&(result+="g"),that.ignoreCase&&(result+="i"),that.multiline&&(result+="m"),that.dotAll&&(result+="s"),that.unicode&&(result+="u"),that.unicodeSets&&(result+="v"),that.sticky&&(result+="y"),result}}});var require_regexp_sticky_helpers=__commonJS({"node_modules/core-js/internals/regexp-sticky-helpers.js"(exports,module){"use strict";init_define_process_env();init_shim();var fails=require_fails(),global=require_global(),$RegExp=global.RegExp,UNSUPPORTED_Y=fails(function(){var re=$RegExp("a","y");return re.lastIndex=2,re.exec("abcd")!==null}),MISSED_STICKY=UNSUPPORTED_Y||fails(function(){return!$RegExp("a","y").sticky}),BROKEN_CARET=UNSUPPORTED_Y||fails(function(){var re=$RegExp("^r","gy");return re.lastIndex=2,re.exec("str")!==null});module.exports={BROKEN_CARET,MISSED_STICKY,UNSUPPORTED_Y}}});var require_object_keys=__commonJS({"node_modules/core-js/internals/object-keys.js"(exports,module){"use strict";init_define_process_env();init_shim();var internalObjectKeys=require_object_keys_internal(),enumBugKeys=require_enum_bug_keys();module.exports=Object.keys||function(O){return internalObjectKeys(O,enumBugKeys)}}});var require_object_define_properties=__commonJS({"node_modules/core-js/internals/object-define-properties.js"(exports){"use strict";init_define_process_env();init_shim();var DESCRIPTORS=require_descriptors(),V8_PROTOTYPE_DEFINE_BUG=require_v8_prototype_define_bug(),definePropertyModule=require_object_define_property(),anObject=require_an_object(),toIndexedObject=require_to_indexed_object(),objectKeys=require_object_keys();exports.f=DESCRIPTORS&&!V8_PROTOTYPE_DEFINE_BUG?Object.defineProperties:function(O,Properties){anObject(O);for(var props=toIndexedObject(Properties),keys=objectKeys(Properties),length=keys.length,index=0,key;length>index;)definePropertyModule.f(O,key=keys[index++],props[key]);return O}}});var require_html=__commonJS({"node_modules/core-js/internals/html.js"(exports,module){"use strict";init_define_process_env();init_shim();var getBuiltIn=require_get_built_in();module.exports=getBuiltIn("document","documentElement")}});var require_object_create=__commonJS({"node_modules/core-js/internals/object-create.js"(exports,module){"use strict";init_define_process_env();init_shim();var anObject=require_an_object(),definePropertiesModule=require_object_define_properties(),enumBugKeys=require_enum_bug_keys(),hiddenKeys=require_hidden_keys(),html=require_html(),documentCreateElement=require_document_create_element(),sharedKey=require_shared_key(),GT=">",LT="<",PROTOTYPE="prototype",SCRIPT="script",IE_PROTO=sharedKey("IE_PROTO"),EmptyConstructor=function(){},scriptTag=function(content){return LT+SCRIPT+GT+content+LT+"/"+SCRIPT+GT},NullProtoObjectViaActiveX=function(activeXDocument2){activeXDocument2.write(scriptTag("")),activeXDocument2.close();var temp=activeXDocument2.parentWindow.Object;return activeXDocument2=null,temp},NullProtoObjectViaIFrame=function(){var iframe=documentCreateElement("iframe"),JS="java"+SCRIPT+":",iframeDocument;return iframe.style.display="none",html.appendChild(iframe),iframe.src=String(JS),iframeDocument=iframe.contentWindow.document,iframeDocument.open(),iframeDocument.write(scriptTag("document.F=Object")),iframeDocument.close(),iframeDocument.F},activeXDocument,NullProtoObject=function(){try{activeXDocument=new ActiveXObject("htmlfile")}catch(error){}NullProtoObject=typeof document<"u"?document.domain&&activeXDocument?NullProtoObjectViaActiveX(activeXDocument):NullProtoObjectViaIFrame():NullProtoObjectViaActiveX(activeXDocument);for(var length=enumBugKeys.length;length--;)delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];return NullProtoObject()};hiddenKeys[IE_PROTO]=!0;module.exports=Object.create||function(O,Properties){var result;return O!==null?(EmptyConstructor[PROTOTYPE]=anObject(O),result=new EmptyConstructor,EmptyConstructor[PROTOTYPE]=null,result[IE_PROTO]=O):result=NullProtoObject(),Properties===void 0?result:definePropertiesModule.f(result,Properties)}}});var require_regexp_unsupported_dot_all=__commonJS({"node_modules/core-js/internals/regexp-unsupported-dot-all.js"(exports,module){"use strict";init_define_process_env();init_shim();var fails=require_fails(),global=require_global(),$RegExp=global.RegExp;module.exports=fails(function(){var re=$RegExp(".","s");return!(re.dotAll&&re.test("\n")&&re.flags==="s")})}});var require_regexp_unsupported_ncg=__commonJS({"node_modules/core-js/internals/regexp-unsupported-ncg.js"(exports,module){"use strict";init_define_process_env();init_shim();var fails=require_fails(),global=require_global(),$RegExp=global.RegExp;module.exports=fails(function(){var re=$RegExp("(?<a>b)","g");return re.exec("b").groups.a!=="b"||"b".replace(re,"$<a>c")!=="bc"})}});var require_regexp_exec=__commonJS({"node_modules/core-js/internals/regexp-exec.js"(exports,module){"use strict";init_define_process_env();init_shim();var call=require_function_call(),uncurryThis=require_function_uncurry_this(),toString=require_to_string(),regexpFlags=require_regexp_flags(),stickyHelpers=require_regexp_sticky_helpers(),shared=require_shared(),create=require_object_create(),getInternalState=require_internal_state().get,UNSUPPORTED_DOT_ALL=require_regexp_unsupported_dot_all(),UNSUPPORTED_NCG=require_regexp_unsupported_ncg(),nativeReplace=shared("native-string-replace",String.prototype.replace),nativeExec=RegExp.prototype.exec,patchedExec=nativeExec,charAt=uncurryThis("".charAt),indexOf=uncurryThis("".indexOf),replace=uncurryThis("".replace),stringSlice=uncurryThis("".slice),UPDATES_LAST_INDEX_WRONG=function(){var re1=/a/,re2=/b*/g;return call(nativeExec,re1,"a"),call(nativeExec,re2,"a"),re1.lastIndex!==0||re2.lastIndex!==0}(),UNSUPPORTED_Y=stickyHelpers.BROKEN_CARET,NPCG_INCLUDED=/()??/.exec("")[1]!==void 0,PATCH=UPDATES_LAST_INDEX_WRONG||NPCG_INCLUDED||UNSUPPORTED_Y||UNSUPPORTED_DOT_ALL||UNSUPPORTED_NCG;PATCH&&(patchedExec=function(string){var re=this,state=getInternalState(re),str=toString(string),raw=state.raw,result,reCopy,lastIndex,match,i,object,group;if(raw)return raw.lastIndex=re.lastIndex,result=call(patchedExec,raw,str),re.lastIndex=raw.lastIndex,result;var groups=state.groups,sticky=UNSUPPORTED_Y&&re.sticky,flags=call(regexpFlags,re),source=re.source,charsAdded=0,strCopy=str;if(sticky&&(flags=replace(flags,"y",""),indexOf(flags,"g")===-1&&(flags+="g"),strCopy=stringSlice(str,re.lastIndex),re.lastIndex>0&&(!re.multiline||re.multiline&&charAt(str,re.lastIndex-1)!=="\n")&&(source="(?: "+source+")",strCopy=" "+strCopy,charsAdded++),reCopy=new RegExp("^(?:"+source+")",flags)),NPCG_INCLUDED&&(reCopy=new RegExp("^"+source+"$(?!\\s)",flags)),UPDATES_LAST_INDEX_WRONG&&(lastIndex=re.lastIndex),match=call(nativeExec,sticky?reCopy:re,strCopy),sticky?match?(match.input=stringSlice(match.input,charsAdded),match[0]=stringSlice(match[0],charsAdded),match.index=re.lastIndex,re.lastIndex+=match[0].length):re.lastIndex=0:UPDATES_LAST_INDEX_WRONG&&match&&(re.lastIndex=re.global?match.index+match[0].length:lastIndex),NPCG_INCLUDED&&match&&match.length>1&&call(nativeReplace,match[0],reCopy,function(){for(i=1;i<arguments.length-2;i++)arguments[i]===void 0&&(match[i]=void 0)}),match&&groups)for(match.groups=object=create(null),i=0;i<groups.length;i++)group=groups[i],object[group[0]]=match[group[1]];return match});module.exports=patchedExec}});var require_es_regexp_exec=__commonJS({"node_modules/core-js/modules/es.regexp.exec.js"(){"use strict";init_define_process_env();init_shim();var $2=require_export(),exec=require_regexp_exec();$2({target:"RegExp",proto:!0,forced:/./.exec!==exec},{exec})}});var require_function_apply=__commonJS({"node_modules/core-js/internals/function-apply.js"(exports,module){"use strict";init_define_process_env();init_shim();var NATIVE_BIND=require_function_bind_native(),FunctionPrototype=Function.prototype,apply=FunctionPrototype.apply,call=FunctionPrototype.call;module.exports=typeof Reflect=="object"&&Reflect.apply||(NATIVE_BIND?call.bind(apply):function(){return call.apply(apply,arguments)})}});var require_fix_regexp_well_known_symbol_logic=__commonJS({"node_modules/core-js/internals/fix-regexp-well-known-symbol-logic.js"(exports,module){"use strict";init_define_process_env();init_shim();require_es_regexp_exec();var call=require_function_call(),defineBuiltIn=require_define_built_in(),regexpExec=require_regexp_exec(),fails=require_fails(),wellKnownSymbol=require_well_known_symbol(),createNonEnumerableProperty=require_create_non_enumerable_property(),SPECIES=wellKnownSymbol("species"),RegExpPrototype=RegExp.prototype;module.exports=function(KEY,exec,FORCED,SHAM){var SYMBOL=wellKnownSymbol(KEY),DELEGATES_TO_SYMBOL=!fails(function(){var O={};return O[SYMBOL]=function(){return 7},""[KEY](O)!==7}),DELEGATES_TO_EXEC=DELEGATES_TO_SYMBOL&&!fails(function(){var execCalled=!1,re=/a/;return KEY==="split"&&(re={},re.constructor={},re.constructor[SPECIES]=function(){return re},re.flags="",re[SYMBOL]=/./[SYMBOL]),re.exec=function(){return execCalled=!0,null},re[SYMBOL](""),!execCalled});if(!DELEGATES_TO_SYMBOL||!DELEGATES_TO_EXEC||FORCED){var nativeRegExpMethod=/./[SYMBOL],methods=exec(SYMBOL,""[KEY],function(nativeMethod,regexp,str,arg2,forceStringMethod){var $exec=regexp.exec;return $exec===regexpExec||$exec===RegExpPrototype.exec?DELEGATES_TO_SYMBOL&&!forceStringMethod?{done:!0,value:call(nativeRegExpMethod,regexp,str,arg2)}:{done:!0,value:call(nativeMethod,str,regexp,arg2)}:{done:!1}});defineBuiltIn(String.prototype,KEY,methods[0]),defineBuiltIn(RegExpPrototype,SYMBOL,methods[1])}SHAM&&createNonEnumerableProperty(RegExpPrototype[SYMBOL],"sham",!0)}}});var require_string_multibyte=__commonJS({"node_modules/core-js/internals/string-multibyte.js"(exports,module){"use strict";init_define_process_env();init_shim();var uncurryThis=require_function_uncurry_this(),toIntegerOrInfinity=require_to_integer_or_infinity(),toString=require_to_string(),requireObjectCoercible=require_require_object_coercible(),charAt=uncurryThis("".charAt),charCodeAt=uncurryThis("".charCodeAt),stringSlice=uncurryThis("".slice),createMethod=function(CONVERT_TO_STRING){return function($this,pos){var S=toString(requireObjectCoercible($this)),position=toIntegerOrInfinity(pos),size=S.length,first,second;return position<0||position>=size?CONVERT_TO_STRING?"":void 0:(first=charCodeAt(S,position),first<55296||first>56319||position+1===size||(second=charCodeAt(S,position+1))<56320||second>57343?CONVERT_TO_STRING?charAt(S,position):first:CONVERT_TO_STRING?stringSlice(S,position,position+2):(first-55296<<10)+(second-56320)+65536)}};module.exports={codeAt:createMethod(!1),charAt:createMethod(!0)}}});var require_advance_string_index=__commonJS({"node_modules/core-js/internals/advance-string-index.js"(exports,module){"use strict";init_define_process_env();init_shim();var charAt=require_string_multibyte().charAt;module.exports=function(S,index,unicode){return index+(unicode?charAt(S,index).length:1)}}});var require_get_substitution=__commonJS({"node_modules/core-js/internals/get-substitution.js"(exports,module){"use strict";init_define_process_env();init_shim();var uncurryThis=require_function_uncurry_this(),toObject=require_to_object(),floor=Math.floor,charAt=uncurryThis("".charAt),replace=uncurryThis("".replace),stringSlice=uncurryThis("".slice),SUBSTITUTION_SYMBOLS=/\$([$&'`]|\d{1,2}|<[^>]*>)/g,SUBSTITUTION_SYMBOLS_NO_NAMED=/\$([$&'`]|\d{1,2})/g;module.exports=function(matched,str,position,captures,namedCaptures,replacement){var tailPos=position+matched.length,m=captures.length,symbols=SUBSTITUTION_SYMBOLS_NO_NAMED;return namedCaptures!==void 0&&(namedCaptures=toObject(namedCaptures),symbols=SUBSTITUTION_SYMBOLS),replace(replacement,symbols,function(match,ch){var capture;switch(charAt(ch,0)){case"$":return"$";case"&":return matched;case"`":return stringSlice(str,0,position);case"'":return stringSlice(str,tailPos);case"<":capture=namedCaptures[stringSlice(ch,1,-1)];break;default:var n=+ch;if(n===0)return match;if(n>m){var f=floor(n/10);return f===0?match:f<=m?captures[f-1]===void 0?charAt(ch,1):captures[f-1]+charAt(ch,1):match}capture=captures[n-1]}return capture===void 0?"":capture})}}});var require_regexp_exec_abstract=__commonJS({"node_modules/core-js/internals/regexp-exec-abstract.js"(exports,module){"use strict";init_define_process_env();init_shim();var call=require_function_call(),anObject=require_an_object(),isCallable=require_is_callable(),classof=require_classof_raw(),regexpExec=require_regexp_exec(),$TypeError=TypeError;module.exports=function(R,S){var exec=R.exec;if(isCallable(exec)){var result=call(exec,R,S);return result!==null&&anObject(result),result}if(classof(R)==="RegExp")return call(regexpExec,R,S);throw new $TypeError("RegExp#exec called on incompatible receiver")}}});var require_es_string_replace=__commonJS({"node_modules/core-js/modules/es.string.replace.js"(){"use strict";init_define_process_env();init_shim();var apply=require_function_apply(),call=require_function_call(),uncurryThis=require_function_uncurry_this(),fixRegExpWellKnownSymbolLogic=require_fix_regexp_well_known_symbol_logic(),fails=require_fails(),anObject=require_an_object(),isCallable=require_is_callable(),isNullOrUndefined=require_is_null_or_undefined(),toIntegerOrInfinity=require_to_integer_or_infinity(),toLength=require_to_length(),toString=require_to_string(),requireObjectCoercible=require_require_object_coercible(),advanceStringIndex=require_advance_string_index(),getMethod=require_get_method(),getSubstitution=require_get_substitution(),regExpExec=require_regexp_exec_abstract(),wellKnownSymbol=require_well_known_symbol(),REPLACE=wellKnownSymbol("replace"),max=Math.max,min=Math.min,concat=uncurryThis([].concat),push=uncurryThis([].push),stringIndexOf=uncurryThis("".indexOf),stringSlice=uncurryThis("".slice),maybeToString=function(it){return it===void 0?it:String(it)},REPLACE_KEEPS_$0=function(){return"a".replace(/./,"$0")==="$0"}(),REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE=function(){return/./[REPLACE]?/./[REPLACE]("a","$0")==="":!1}(),REPLACE_SUPPORTS_NAMED_GROUPS=!fails(function(){var re=/./;return re.exec=function(){var result=[];return result.groups={a:"7"},result},"".replace(re,"$<a>")!=="7"});fixRegExpWellKnownSymbolLogic("replace",function(_,nativeReplace,maybeCallNative){var UNSAFE_SUBSTITUTE=REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE?"$":"$0";return[function(searchValue,replaceValue){var O=requireObjectCoercible(this),replacer=isNullOrUndefined(searchValue)?void 0:getMethod(searchValue,REPLACE);return replacer?call(replacer,searchValue,O,replaceValue):call(nativeReplace,toString(O),searchValue,replaceValue)},function(string,replaceValue){var rx=anObject(this),S=toString(string);if(typeof replaceValue=="string"&&stringIndexOf(replaceValue,UNSAFE_SUBSTITUTE)===-1&&stringIndexOf(replaceValue,"$<")===-1){var res=maybeCallNative(nativeReplace,rx,S,replaceValue);if(res.done)return res.value}var functionalReplace=isCallable(replaceValue);functionalReplace||(replaceValue=toString(replaceValue));var global=rx.global,fullUnicode;global&&(fullUnicode=rx.unicode,rx.lastIndex=0);for(var results=[],result;result=regExpExec(rx,S),!(result===null||(push(results,result),!global));){var matchStr=toString(result[0]);matchStr===""&&(rx.lastIndex=advanceStringIndex(S,toLength(rx.lastIndex),fullUnicode))}for(var accumulatedResult="",nextSourcePosition=0,i=0;i<results.length;i++){result=results[i];for(var matched=toString(result[0]),position=max(min(toIntegerOrInfinity(result.index),S.length),0),captures=[],replacement,j=1;j<result.length;j++)push(captures,maybeToString(result[j]));var namedCaptures=result.groups;if(functionalReplace){var replacerArgs=concat([matched],captures,position,S);namedCaptures!==void 0&&push(replacerArgs,namedCaptures),replacement=toString(apply(replaceValue,void 0,replacerArgs))}else replacement=getSubstitution(matched,S,position,captures,namedCaptures,replaceValue);position>=nextSourcePosition&&(accumulatedResult+=stringSlice(S,nextSourcePosition,position)+replacement,nextSourcePosition=position+matched.length)}return accumulatedResult+stringSlice(S,nextSourcePosition)}]},!REPLACE_SUPPORTS_NAMED_GROUPS||!REPLACE_KEEPS_$0||REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE)}});var require_add_to_unscopables=__commonJS({"node_modules/core-js/internals/add-to-unscopables.js"(exports,module){"use strict";init_define_process_env();init_shim();var wellKnownSymbol=require_well_known_symbol(),create=require_object_create(),defineProperty=require_object_define_property().f,UNSCOPABLES=wellKnownSymbol("unscopables"),ArrayPrototype=Array.prototype;ArrayPrototype[UNSCOPABLES]===void 0&&defineProperty(ArrayPrototype,UNSCOPABLES,{configurable:!0,value:create(null)});module.exports=function(key){ArrayPrototype[UNSCOPABLES][key]=!0}}});var require_iterators=__commonJS({"node_modules/core-js/internals/iterators.js"(exports,module){"use strict";init_define_process_env();init_shim();module.exports={}}});var require_correct_prototype_getter=__commonJS({"node_modules/core-js/internals/correct-prototype-getter.js"(exports,module){"use strict";init_define_process_env();init_shim();var fails=require_fails();module.exports=!fails(function(){function F(){}return F.prototype.constructor=null,Object.getPrototypeOf(new F)!==F.prototype})}});var require_object_get_prototype_of=__commonJS({"node_modules/core-js/internals/object-get-prototype-of.js"(exports,module){"use strict";init_define_process_env();init_shim();var hasOwn=require_has_own_property(),isCallable=require_is_callable(),toObject=require_to_object(),sharedKey=require_shared_key(),CORRECT_PROTOTYPE_GETTER=require_correct_prototype_getter(),IE_PROTO=sharedKey("IE_PROTO"),$Object=Object,ObjectPrototype=$Object.prototype;module.exports=CORRECT_PROTOTYPE_GETTER?$Object.getPrototypeOf:function(O){var object=toObject(O);if(hasOwn(object,IE_PROTO))return object[IE_PROTO];var constructor=object.constructor;return isCallable(constructor)&&object instanceof constructor?constructor.prototype:object instanceof $Object?ObjectPrototype:null}}});var require_iterators_core=__commonJS({"node_modules/core-js/internals/iterators-core.js"(exports,module){"use strict";init_define_process_env();init_shim();var fails=require_fails(),isCallable=require_is_callable(),isObject=require_is_object(),create=require_object_create(),getPrototypeOf=require_object_get_prototype_of(),defineBuiltIn=require_define_built_in(),wellKnownSymbol=require_well_known_symbol(),IS_PURE=require_is_pure(),ITERATOR=wellKnownSymbol("iterator"),BUGGY_SAFARI_ITERATORS=!1,IteratorPrototype,PrototypeOfArrayIteratorPrototype,arrayIterator;[].keys&&(arrayIterator=[].keys(),"next"in arrayIterator?(PrototypeOfArrayIteratorPrototype=getPrototypeOf(getPrototypeOf(arrayIterator)),PrototypeOfArrayIteratorPrototype!==Object.prototype&&(IteratorPrototype=PrototypeOfArrayIteratorPrototype)):BUGGY_SAFARI_ITERATORS=!0);var NEW_ITERATOR_PROTOTYPE=!isObject(IteratorPrototype)||fails(function(){var test={};return IteratorPrototype[ITERATOR].call(test)!==test});NEW_ITERATOR_PROTOTYPE?IteratorPrototype={}:IS_PURE&&(IteratorPrototype=create(IteratorPrototype));isCallable(IteratorPrototype[ITERATOR])||defineBuiltIn(IteratorPrototype,ITERATOR,function(){return this});module.exports={IteratorPrototype,BUGGY_SAFARI_ITERATORS}}});var require_set_to_string_tag=__commonJS({"node_modules/core-js/internals/set-to-string-tag.js"(exports,module){"use strict";init_define_process_env();init_shim();var defineProperty=require_object_define_property().f,hasOwn=require_has_own_property(),wellKnownSymbol=require_well_known_symbol(),TO_STRING_TAG=wellKnownSymbol("toStringTag");module.exports=function(target,TAG,STATIC){target&&!STATIC&&(target=target.prototype),target&&!hasOwn(target,TO_STRING_TAG)&&defineProperty(target,TO_STRING_TAG,{configurable:!0,value:TAG})}}});var require_iterator_create_constructor=__commonJS({"node_modules/core-js/internals/iterator-create-constructor.js"(exports,module){"use strict";init_define_process_env();init_shim();var IteratorPrototype=require_iterators_core().IteratorPrototype,create=require_object_create(),createPropertyDescriptor=require_create_property_descriptor(),setToStringTag=require_set_to_string_tag(),Iterators=require_iterators(),returnThis=function(){return this};module.exports=function(IteratorConstructor,NAME,next,ENUMERABLE_NEXT){var TO_STRING_TAG=NAME+" Iterator";return IteratorConstructor.prototype=create(IteratorPrototype,{next:createPropertyDescriptor(+!ENUMERABLE_NEXT,next)}),setToStringTag(IteratorConstructor,TO_STRING_TAG,!1,!0),Iterators[TO_STRING_TAG]=returnThis,IteratorConstructor}}});var require_function_uncurry_this_accessor=__commonJS({"node_modules/core-js/internals/function-uncurry-this-accessor.js"(exports,module){"use strict";init_define_process_env();init_shim();var uncurryThis=require_function_uncurry_this(),aCallable=require_a_callable();module.exports=function(object,key,method){try{return uncurryThis(aCallable(Object.getOwnPropertyDescriptor(object,key)[method]))}catch(error){}}}});var require_is_possible_prototype=__commonJS({"node_modules/core-js/internals/is-possible-prototype.js"(exports,module){"use strict";init_define_process_env();init_shim();var isObject=require_is_object();module.exports=function(argument){return isObject(argument)||argument===null}}});var require_a_possible_prototype=__commonJS({"node_modules/core-js/internals/a-possible-prototype.js"(exports,module){"use strict";init_define_process_env();init_shim();var isPossiblePrototype=require_is_possible_prototype(),$String=String,$TypeError=TypeError;module.exports=function(argument){if(isPossiblePrototype(argument))return argument;throw new $TypeError("Can't set "+$String(argument)+" as a prototype")}}});var require_object_set_prototype_of=__commonJS({"node_modules/core-js/internals/object-set-prototype-of.js"(exports,module){"use strict";init_define_process_env();init_shim();var uncurryThisAccessor=require_function_uncurry_this_accessor(),anObject=require_an_object(),aPossiblePrototype=require_a_possible_prototype();module.exports=Object.setPrototypeOf||("__proto__"in{}?function(){var CORRECT_SETTER=!1,test={},setter;try{setter=uncurryThisAccessor(Object.prototype,"__proto__","set"),setter(test,[]),CORRECT_SETTER=test instanceof Array}catch(error){}return function(O,proto){return anObject(O),aPossiblePrototype(proto),CORRECT_SETTER?setter(O,proto):O.__proto__=proto,O}}():void 0)}});var require_iterator_define=__commonJS({"node_modules/core-js/internals/iterator-define.js"(exports,module){"use strict";init_define_process_env();init_shim();var $2=require_export(),call=require_function_call(),IS_PURE=require_is_pure(),FunctionName=require_function_name(),isCallable=require_is_callable(),createIteratorConstructor=require_iterator_create_constructor(),getPrototypeOf=require_object_get_prototype_of(),setPrototypeOf=require_object_set_prototype_of(),setToStringTag=require_set_to_string_tag(),createNonEnumerableProperty=require_create_non_enumerable_property(),defineBuiltIn=require_define_built_in(),wellKnownSymbol=require_well_known_symbol(),Iterators=require_iterators(),IteratorsCore=require_iterators_core(),PROPER_FUNCTION_NAME=FunctionName.PROPER,CONFIGURABLE_FUNCTION_NAME=FunctionName.CONFIGURABLE,IteratorPrototype=IteratorsCore.IteratorPrototype,BUGGY_SAFARI_ITERATORS=IteratorsCore.BUGGY_SAFARI_ITERATORS,ITERATOR=wellKnownSymbol("iterator"),KEYS="keys",VALUES="values",ENTRIES="entries",returnThis=function(){return this};module.exports=function(Iterable,NAME,IteratorConstructor,next,DEFAULT,IS_SET,FORCED){createIteratorConstructor(IteratorConstructor,NAME,next);var getIterationMethod=function(KIND){if(KIND===DEFAULT&&defaultIterator)return defaultIterator;if(!BUGGY_SAFARI_ITERATORS&&KIND&&KIND in IterablePrototype)return IterablePrototype[KIND];switch(KIND){case KEYS:return function(){return new IteratorConstructor(this,KIND)};case VALUES:return function(){return new IteratorConstructor(this,KIND)};case ENTRIES:return function(){return new IteratorConstructor(this,KIND)}}return function(){return new IteratorConstructor(this)}},TO_STRING_TAG=NAME+" Iterator",INCORRECT_VALUES_NAME=!1,IterablePrototype=Iterable.prototype,nativeIterator=IterablePrototype[ITERATOR]||IterablePrototype["@@iterator"]||DEFAULT&&IterablePrototype[DEFAULT],defaultIterator=!BUGGY_SAFARI_ITERATORS&&nativeIterator||getIterationMethod(DEFAULT),anyNativeIterator=NAME==="Array"&&IterablePrototype.entries||nativeIterator,CurrentIteratorPrototype,methods,KEY;if(anyNativeIterator&&(CurrentIteratorPrototype=getPrototypeOf(anyNativeIterator.call(new Iterable)),CurrentIteratorPrototype!==Object.prototype&&CurrentIteratorPrototype.next&&(!IS_PURE&&getPrototypeOf(CurrentIteratorPrototype)!==IteratorPrototype&&(setPrototypeOf?setPrototypeOf(CurrentIteratorPrototype,IteratorPrototype):isCallable(CurrentIteratorPrototype[ITERATOR])||defineBuiltIn(CurrentIteratorPrototype,ITERATOR,returnThis)),setToStringTag(CurrentIteratorPrototype,TO_STRING_TAG,!0,!0),IS_PURE&&(Iterators[TO_STRING_TAG]=returnThis))),PROPER_FUNCTION_NAME&&DEFAULT===VALUES&&nativeIterator&&nativeIterator.name!==VALUES&&(!IS_PURE&&CONFIGURABLE_FUNCTION_NAME?createNonEnumerableProperty(IterablePrototype,"name",VALUES):(INCORRECT_VALUES_NAME=!0,defaultIterator=function(){return call(nativeIterator,this)})),DEFAULT)if(methods={values:getIterationMethod(VALUES),keys:IS_SET?defaultIterator:getIterationMethod(KEYS),entries:getIterationMethod(ENTRIES)},FORCED)for(KEY in methods)(BUGGY_SAFARI_ITERATORS||INCORRECT_VALUES_NAME||!(KEY in IterablePrototype))&&defineBuiltIn(IterablePrototype,KEY,methods[KEY]);else $2({target:NAME,proto:!0,forced:BUGGY_SAFARI_ITERATORS||INCORRECT_VALUES_NAME},methods);return(!IS_PURE||FORCED)&&IterablePrototype[ITERATOR]!==defaultIterator&&defineBuiltIn(IterablePrototype,ITERATOR,defaultIterator,{name:DEFAULT}),Iterators[NAME]=defaultIterator,methods}}});var require_create_iter_result_object=__commonJS({"node_modules/core-js/internals/create-iter-result-object.js"(exports,module){"use strict";init_define_process_env();init_shim();module.exports=function(value,done){return{value,done}}}});var require_es_array_iterator=__commonJS({"node_modules/core-js/modules/es.array.iterator.js"(exports,module){"use strict";init_define_process_env();init_shim();var toIndexedObject=require_to_indexed_object(),addToUnscopables=require_add_to_unscopables(),Iterators=require_iterators(),InternalStateModule=require_internal_state(),defineProperty=require_object_define_property().f,defineIterator=require_iterator_define(),createIterResultObject=require_create_iter_result_object(),IS_PURE=require_is_pure(),DESCRIPTORS=require_descriptors(),ARRAY_ITERATOR="Array Iterator",setInternalState=InternalStateModule.set,getInternalState=InternalStateModule.getterFor(ARRAY_ITERATOR);module.exports=defineIterator(Array,"Array",function(iterated,kind){setInternalState(this,{type:ARRAY_ITERATOR,target:toIndexedObject(iterated),index:0,kind})},function(){var state=getInternalState(this),target=state.target,index=state.index++;if(!target||index>=target.length)return state.target=void 0,createIterResultObject(void 0,!0);switch(state.kind){case"keys":return createIterResultObject(index,!1);case"values":return createIterResultObject(target[index],!1)}return createIterResultObject([index,target[index]],!1)},"values");var values=Iterators.Arguments=Iterators.Array;addToUnscopables("keys");addToUnscopables("values");addToUnscopables("entries");if(!IS_PURE&&DESCRIPTORS&&values.name!=="values")try{defineProperty(values,"name",{value:"values"})}catch(error){}}});var require_dom_iterables=__commonJS({"node_modules/core-js/internals/dom-iterables.js"(exports,module){"use strict";init_define_process_env();init_shim();module.exports={CSSRuleList:0,CSSStyleDeclaration:0,CSSValueList:0,ClientRectList:0,DOMRectList:0,DOMStringList:0,DOMTokenList:1,DataTransferItemList:0,FileList:0,HTMLAllCollection:0,HTMLCollection:0,HTMLFormElement:0,HTMLSelectElement:0,MediaList:0,MimeTypeArray:0,NamedNodeMap:0,NodeList:1,PaintRequestList:0,Plugin:0,PluginArray:0,SVGLengthList:0,SVGNumberList:0,SVGPathSegList:0,SVGPointList:0,SVGStringList:0,SVGTransformList:0,SourceBufferList:0,StyleSheetList:0,TextTrackCueList:0,TextTrackList:0,TouchList:0}}});var require_dom_token_list_prototype=__commonJS({"node_modules/core-js/internals/dom-token-list-prototype.js"(exports,module){"use strict";init_define_process_env();init_shim();var documentCreateElement=require_document_create_element(),classList=documentCreateElement("span").classList,DOMTokenListPrototype=classList&&classList.constructor&&classList.constructor.prototype;module.exports=DOMTokenListPrototype===Object.prototype?void 0:DOMTokenListPrototype}});var require_web_dom_collections_iterator=__commonJS({"node_modules/core-js/modules/web.dom-collections.iterator.js"(){"use strict";init_define_process_env();init_shim();var global=require_global(),DOMIterables=require_dom_iterables(),DOMTokenListPrototype=require_dom_token_list_prototype(),ArrayIteratorMethods=require_es_array_iterator(),createNonEnumerableProperty=require_create_non_enumerable_property(),setToStringTag=require_set_to_string_tag(),wellKnownSymbol=require_well_known_symbol(),ITERATOR=wellKnownSymbol("iterator"),ArrayValues=ArrayIteratorMethods.values,handlePrototype=function(CollectionPrototype,COLLECTION_NAME2){if(CollectionPrototype){if(CollectionPrototype[ITERATOR]!==ArrayValues)try{createNonEnumerableProperty(CollectionPrototype,ITERATOR,ArrayValues)}catch(error){CollectionPrototype[ITERATOR]=ArrayValues}if(setToStringTag(CollectionPrototype,COLLECTION_NAME2,!0),DOMIterables[COLLECTION_NAME2]){for(var METHOD_NAME in ArrayIteratorMethods)if(CollectionPrototype[METHOD_NAME]!==ArrayIteratorMethods[METHOD_NAME])try{createNonEnumerableProperty(CollectionPrototype,METHOD_NAME,ArrayIteratorMethods[METHOD_NAME])}catch(error){CollectionPrototype[METHOD_NAME]=ArrayIteratorMethods[METHOD_NAME]}}}};for(COLLECTION_NAME in DOMIterables)handlePrototype(global[COLLECTION_NAME]&&global[COLLECTION_NAME].prototype,COLLECTION_NAME);var COLLECTION_NAME;handlePrototype(DOMTokenListPrototype,"DOMTokenList")}});var require_es_array_includes=__commonJS({"node_modules/core-js/modules/es.array.includes.js"(){"use strict";init_define_process_env();init_shim();var $2=require_export(),$includes=require_array_includes().includes,fails=require_fails(),addToUnscopables=require_add_to_unscopables(),BROKEN_ON_SPARSE=fails(function(){return!Array(1).includes()});$2({target:"Array",proto:!0,forced:BROKEN_ON_SPARSE},{includes:function(el){return $includes(this,el,arguments.length>1?arguments[1]:void 0)}});addToUnscopables("includes")}});var require_array_slice=__commonJS({"node_modules/core-js/internals/array-slice.js"(exports,module){"use strict";init_define_process_env();init_shim();var uncurryThis=require_function_uncurry_this();module.exports=uncurryThis([].slice)}});var require_is_array=__commonJS({"node_modules/core-js/internals/is-array.js"(exports,module){"use strict";init_define_process_env();init_shim();var classof=require_classof_raw();module.exports=Array.isArray||function(argument){return classof(argument)==="Array"}}});var require_get_json_replacer_function=__commonJS({"node_modules/core-js/internals/get-json-replacer-function.js"(exports,module){"use strict";init_define_process_env();init_shim();var uncurryThis=require_function_uncurry_this(),isArray=require_is_array(),isCallable=require_is_callable(),classof=require_classof_raw(),toString=require_to_string(),push=uncurryThis([].push);module.exports=function(replacer){if(isCallable(replacer))return replacer;if(isArray(replacer)){for(var rawLength=replacer.length,keys=[],i=0;i<rawLength;i++){var element=replacer[i];typeof element=="string"?push(keys,element):(typeof element=="number"||classof(element)==="Number"||classof(element)==="String")&&push(keys,toString(element))}var keysLength=keys.length,root=!0;return function(key,value){if(root)return root=!1,value;if(isArray(this))return value;for(var j=0;j<keysLength;j++)if(keys[j]===key)return value}}}}});var require_es_json_stringify=__commonJS({"node_modules/core-js/modules/es.json.stringify.js"(){"use strict";init_define_process_env();init_shim();var $2=require_export(),getBuiltIn=require_get_built_in(),apply=require_function_apply(),call=require_function_call(),uncurryThis=require_function_uncurry_this(),fails=require_fails(),isCallable=require_is_callable(),isSymbol=require_is_symbol(),arraySlice=require_array_slice(),getReplacerFunction=require_get_json_replacer_function(),NATIVE_SYMBOL=require_symbol_constructor_detection(),$String=String,$stringify=getBuiltIn("JSON","stringify"),exec=uncurryThis(/./.exec),charAt=uncurryThis("".charAt),charCodeAt=uncurryThis("".charCodeAt),replace=uncurryThis("".replace),numberToString=uncurryThis(1 .toString),tester=/[\uD800-\uDFFF]/g,low=/^[\uD800-\uDBFF]$/,hi=/^[\uDC00-\uDFFF]$/,WRONG_SYMBOLS_CONVERSION=!NATIVE_SYMBOL||fails(function(){var symbol=getBuiltIn("Symbol")("stringify detection");return $stringify([symbol])!=="[null]"||$stringify({a:symbol})!=="{}"||$stringify(Object(symbol))!=="{}"}),ILL_FORMED_UNICODE=fails(function(){return $stringify("\uDF06\uD834")!=='"\\udf06\\ud834"'||$stringify("\uDEAD")!=='"\\udead"'}),stringifyWithSymbolsFix=function(it,replacer){var args=arraySlice(arguments),$replacer=getReplacerFunction(replacer);if(!(!isCallable($replacer)&&(it===void 0||isSymbol(it))))return args[1]=function(key,value){if(isCallable($replacer)&&(value=call($replacer,this,$String(key),value)),!isSymbol(value))return value},apply($stringify,null,args)},fixIllFormed=function(match,offset,string){var prev=charAt(string,offset-1),next=charAt(string,offset+1);return exec(low,match)&&!exec(hi,next)||exec(hi,match)&&!exec(low,prev)?"\\u"+numberToString(charCodeAt(match,0),16):match};$stringify&&$2({target:"JSON",stat:!0,arity:3,forced:WRONG_SYMBOLS_CONVERSION||ILL_FORMED_UNICODE},{stringify:function(it,replacer,space){var args=arraySlice(arguments),result=apply(WRONG_SYMBOLS_CONVERSION?stringifyWithSymbolsFix:$stringify,null,args);return ILL_FORMED_UNICODE&&typeof result=="string"?replace(result,tester,fixIllFormed):result}})}});var require_array_reduce=__commonJS({"node_modules/core-js/internals/array-reduce.js"(exports,module){"use strict";init_define_process_env();init_shim();var aCallable=require_a_callable(),toObject=require_to_object(),IndexedObject=require_indexed_object(),lengthOfArrayLike=require_length_of_array_like(),$TypeError=TypeError,createMethod=function(IS_RIGHT){return function(that,callbackfn,argumentsLength,memo){var O=toObject(that),self2=IndexedObject(O),length=lengthOfArrayLike(O);aCallable(callbackfn);var index=IS_RIGHT?length-1:0,i=IS_RIGHT?-1:1;if(argumentsLength<2)for(;;){if(index in self2){memo=self2[index],index+=i;break}if(index+=i,IS_RIGHT?index<0:length<=index)throw new $TypeError("Reduce of empty array with no initial value")}for(;IS_RIGHT?index>=0:length>index;index+=i)index in self2&&(memo=callbackfn(memo,self2[index],index,O));return memo}};module.exports={left:createMethod(!1),right:createMethod(!0)}}});var require_array_method_is_strict=__commonJS({"node_modules/core-js/internals/array-method-is-strict.js"(exports,module){"use strict";init_define_process_env();init_shim();var fails=require_fails();module.exports=function(METHOD_NAME,argument){var method=[][METHOD_NAME];return!!method&&fails(function(){method.call(null,argument||function(){return 1},1)})}}});var require_engine_is_node=__commonJS({"node_modules/core-js/internals/engine-is-node.js"(exports,module){"use strict";init_define_process_env();init_shim();var global=require_global(),classof=require_classof_raw();module.exports=classof(global.process)==="process"}});var require_es_array_reduce=__commonJS({"node_modules/core-js/modules/es.array.reduce.js"(){"use strict";init_define_process_env();init_shim();var $2=require_export(),$reduce=require_array_reduce().left,arrayMethodIsStrict=require_array_method_is_strict(),CHROME_VERSION=require_engine_v8_version(),IS_NODE=require_engine_is_node(),CHROME_BUG=!IS_NODE&&CHROME_VERSION>79&&CHROME_VERSION<83,FORCED=CHROME_BUG||!arrayMethodIsStrict("reduce");$2({target:"Array",proto:!0,forced:FORCED},{reduce:function(callbackfn){var length=arguments.length;return $reduce(this,callbackfn,length,length>1?arguments[1]:void 0)}})}});var require_object_assign=__commonJS({"node_modules/core-js/internals/object-assign.js"(exports,module){"use strict";init_define_process_env();init_shim();var DESCRIPTORS=require_descriptors(),uncurryThis=require_function_uncurry_this(),call=require_function_call(),fails=require_fails(),objectKeys=require_object_keys(),getOwnPropertySymbolsModule=require_object_get_own_property_symbols(),propertyIsEnumerableModule=require_object_property_is_enumerable(),toObject=require_to_object(),IndexedObject=require_indexed_object(),$assign=Object.assign,defineProperty=Object.defineProperty,concat=uncurryThis([].concat);module.exports=!$assign||fails(function(){if(DESCRIPTORS&&$assign({b:1},$assign(defineProperty({},"a",{enumerable:!0,get:function(){defineProperty(this,"b",{value:3,enumerable:!1})}}),{b:2})).b!==1)return!0;var A={},B={},symbol=Symbol("assign detection"),alphabet="abcdefghijklmnopqrst";return A[symbol]=7,alphabet.split("").forEach(function(chr){B[chr]=chr}),$assign({},A)[symbol]!==7||objectKeys($assign({},B)).join("")!==alphabet})?function(target,source){for(var T=toObject(target),argumentsLength=arguments.length,index=1,getOwnPropertySymbols=getOwnPropertySymbolsModule.f,propertyIsEnumerable=propertyIsEnumerableModule.f;argumentsLength>index;)for(var S=IndexedObject(arguments[index++]),keys=getOwnPropertySymbols?concat(objectKeys(S),getOwnPropertySymbols(S)):objectKeys(S),length=keys.length,j=0,key;length>j;)key=keys[j++],(!DESCRIPTORS||call(propertyIsEnumerable,S,key))&&(T[key]=S[key]);return T}:$assign}});var require_es_object_assign=__commonJS({"node_modules/core-js/modules/es.object.assign.js"(){"use strict";init_define_process_env();init_shim();var $2=require_export(),assign=require_object_assign();$2({target:"Object",stat:!0,arity:2,forced:Object.assign!==assign},{assign})}});init_define_process_env();init_shim();var import_es_symbol_description=__toESM(require_es_symbol_description()),import_es_regexp_exec=__toESM(require_es_regexp_exec()),import_es_string_replace=__toESM(require_es_string_replace()),import_es_array_iterator=__toESM(require_es_array_iterator()),import_web_dom_collections_iterator=__toESM(require_web_dom_collections_iterator()),import_es_array_includes=__toESM(require_es_array_includes()),import_es_json_stringify=__toESM(require_es_json_stringify()),import_es_array_reduce=__toESM(require_es_array_reduce()),import_es_object_assign=__toESM(require_es_object_assign());init_define_process_env();init_shim();var _window$u,_window,_window$safe_require,_window2,u=(_window$u=(_window=window)==null?void 0:_window.u)!=null?_window$u:_u,safe_require=(_window$safe_require=(_window2=window)==null?void 0:_window2.safe_require)!=null?_window$safe_require:_safe_require;var r=__require,external=safe_require.safe_require("./external"),querystring=safe_require.safe_require("querystring"),btype_ids=safe_require.safe_require("./lang/btype_ids"),hydrate=safe_require.safe_require("./db/hydrate"),Lib=safe_require.safe_require("./lib"),appquery=safe_require.safe_require("./lang/appquery"),lang=safe_require.safe_require("./lang/lang"),eval_node_state=safe_require.safe_require("./lang/evaluation/eval_node_state"),core_events=safe_require.safe_require("./core/core_events"),workflow_consts=safe_require.safe_require("./constants/workflow"),known_plugins_consts=safe_require.safe_require("./constants/known_plugins"),generic_actions_utilities=safe_require.safe_require("./core/core_actions/utilities/generic_actions_utilities"),languages=safe_require.safe_require("./languages"),b_location=safe_require.safe_require("./geolocation/b_location"),logger=safe_require.safe_require("./logger"),core_ds_db_ops_utilities=safe_require.safe_require("./core/core_datasources/utilities/core_ds_db_ops_utilities"),status_bar=safe_require.safe_require("./core/status_bar"),payment_converter=safe_require.safe_require("./shared/payment_converter"),db_values=safe_require.safe_require("./db/values/db_values"),stripe_utilities=safe_require.safe_require("./shared/stripe_utilities"),db_consts=safe_require.safe_require("./constants/db"),subscription_consts=safe_require.safe_require("./constants/subscriptions");function extract_data(call,val){if(val!=null&&val.error)throw new u.OwnerError("Stripe Error",{display:val.error.message});return call.extract_data(val)}var REQUIRE_AUTHENTICATION_ERROR_CODES=["authentication_required","subscription_payment_intent_requires_action"],form=null;function initialize_stripe_form(){var _appquery$get_public_,_appquery$get_public_2;let app_language=Lib().app_language(!0),locale=app_language?languages.get_iso_code(app_language).slice(0,2):"auto",options={key:appquery.stripe_public_key(),name:(_appquery$get_public_=appquery.get_public_setting("stripe_checkout_name"))!=null?_appquery$get_public_:document.title,locale,zipCode:appquery.get_public_setting("stripe_collect_zip"),billingAddress:appquery.get_public_setting("stripe_collect_address")},image=(_appquery$get_public_2=appquery.get_public_setting("stripe_checkout_image"))!=null?_appquery$get_public_2:appquery.favicon();if(image&&(options.image=image),!window.StripeCheckout)throw new u.UnexpectedError("Stripe Checkout not present");form=window.StripeCheckout.configure(options),$(window).off("popstate.stripe_checkout"),$(window).on("popstate.stripe_checkout",()=>form.close())}typeof window<"u"&&window!==null&&(window.initialize_stripe_form=initialize_stripe_form);function get_checkout_form(data,cb){return form||initialize_stripe_form(),u.run_once(30,()=>{var _data$charged_user_em;return(_data$charged_user_em=data.charged_user_email)!=null?_data$charged_user_em:Lib().current_user().get_email()},(err,email)=>{if(err){logger.log(err);return}function open(){let options={description:data.description,amount:data.amount,panelLabel:data.panelLabel,email,token(token){return cb(token)}};return data.currency&&(options.currency=data.currency),form.open(options)}if(u.is_on_mobile_or_tablet()){var _data$panelLabel;let greyout=u.div("stripe-checkout-greyout",$("body")),btn=u.div("stripe-checkout-btn",greyout),width=$(window).width()/2,caption=(_data$panelLabel=data.panelLabel)!=null?_data$panelLabel:"Pay with card";width=Math.max(Math.min(caption.length*12.5+30,width*.9),150);let height=.266666*width;return btn.css({width,left:($(window).width()-width)/2,"min-height":height,top:($(window).height()-height)/2}),u.div("stripe-checkout-display",btn,caption).css({"min-height":height,width,"font-size":20,"line-height":height+"px",padding:"7px"}),btn.on("click",()=>(greyout.remove(),open()))}else return open()})}var version_keys={V2:"v2",V3:"v3"};function is_v3(){if(Lib())return appquery.get_public_setting("stripe_checkout_version")===version_keys.V3}function redirect_checkout(context,url){return Lib().workflow.wait_for_safe(context,()=>window.location.replace(url))}var getURLToGenerateStripeAuthToken=(app,user_email,nexturl,user_id,prefilled_data)=>{var _stripe_userEmail,_user_data$_stripe_us,_stripe_userUrl,_user_data$_stripe_us2,_stripe_userBusiness,_user_data$_stripe_us3,_ref,_app$get_public_setti,_document;let state_raw={nextURL:nexturl,user_id};if(state_raw.appname=app.appname(),state_raw=u.json_stringify(state_raw),prefilled_data!=null){let{address}=prefilled_data;if(address!=null){let should_throw_not_ready=u.on_client(),components=b_location.get_components(address,should_throw_not_ready);prefilled_data.country=components["country code"],prefilled_data.street_address=components["street number"]+" "+components.street,prefilled_data.city=components.city,prefilled_data.zip=components["zip code"],prefilled_data.state=components["state code"]}delete prefilled_data.address}let user_data={};for(let k in prefilled_data){let v=prefilled_data[k];v!=null&&(user_data["stripe_user["+k+"]"]=v)}(_user_data$_stripe_us=user_data[_stripe_userEmail="stripe_user[email]"])!=null||(user_data[_stripe_userEmail]=user_email),(_user_data$_stripe_us2=user_data[_stripe_userUrl="stripe_user[url]"])!=null||(user_data[_stripe_userUrl]=app.domain()),(_user_data$_stripe_us3=user_data[_stripe_userBusiness="stripe_user[business_name]"])!=null||(user_data[_stripe_userBusiness]=(_ref=(_app$get_public_setti=app.get_public_setting("facebook_meta_tag_title"))!=null?_app$get_public_setti:(_document=document)==null?void 0:_document.title)!=null?_ref:app.appname());let argument={response_type:"code",client_id:app.stripe_client_id(),scope:"read_write",state:state_raw};return u.extend(argument,user_data),"https://connect.stripe.com/oauth/authorize?"+querystring.stringify(argument)},enter_your_api_key_button_field_names={key_info:{no_states:!0}},checkout_tax_field_names={apply_tax_rate:{},tax_ids_style:{},tax_ids_static_choices:{},tax_ids_data_source:{}},payment_field_names=u.extend({amount:{},currency:{default:"USD"},product_name:{},description:{},image:{},button_caption:{default:"Pay"},statement_descriptor:{optional:!0},authorize_only:{default:!1},payee_is_another_user:{},payee:{},app_fee:{}},enter_your_api_key_button_field_names),do_not_show_success_alert_field_name={do_not_show_success_alert:{default:!1}},card_id_field_name={card_id:{optional:!0}},add_user_field_names={apply_current_user:{default:!0},user:{}},allow_promotion_codes_field_name={allow_promotion_codes:{default:!1}};var _call_dependencies={},_get_keys={},_get_errors={},_get_cache={},StripeCall=class extends external.Call{make_request(call_name,properties,prev,_raw,context){prev&&(properties.user_id=prev._id());let current_eval_node=eval_node_state.get_current_eval_node(),call_location={_raw,current_eval_node},hash=u.json_stringify(hydrate.dehydrate_tree({call_name,properties}));if(_get_keys[hash]||(_get_keys[hash]=u.MakeKey(null,"request_synchronous "+call_name),this.proxy_request(prev,properties,null,call_location,context).then(response=>{var _get_keys$hash;return _get_cache[hash]=response.ret,(_get_keys$hash=_get_keys[hash])==null?void 0:_get_keys$hash.turn()},err=>{var _get_keys$hash2;return _get_errors[hash]=err,(_get_keys$hash2=_get_keys[hash])==null||_get_keys$hash2.turn(),this.get_value_bubble_null()})),u.ensure_ready(_get_keys[hash]),_get_errors[hash])throw _get_errors[hash];return _get_cache[hash]}};function invalidate_call(call_name){var _call_dependencies2;let user_id=Lib().current_user()._id(),properties=Lib().location.get_pieces();delete properties.query,properties.user_id=user_id;let hash=u.json_stringify({call_name,properties});return delete _get_keys[hash],(_call_dependencies2=_call_dependencies[user_id+call_name])==null?void 0:_call_dependencies2.invalidate()}var status=null;function convert_stripe_error(err){var _err$raw,_err$raw2;return((_err$raw=err.raw)==null?void 0:_err$raw.type)==="card_error"?REQUIRE_AUTHENTICATION_ERROR_CODES.includes(err.code)?new u.StripePaymentRequiresAction(null,err.raw.message):new u.UserError(null,err.raw.message):((_err$raw2=err.raw)==null?void 0:_err$raw2.type)==="invalid_request_error"?new u.OwnerError("Stripe invalid_request_error",{display:"Stripe error: "+err.raw.message}):new u.UnexpectedError("error calling Stripe API",{error:err})}function extractIsInvoiceClosed(invoice){return invoice.closed!==void 0?invoice.closed:invoice.auto_advance!==void 0?!invoice.auto_advance:!1}function extractIsInvoiceForgiven(invoice){return invoice.forgiven!==void 0?invoice.forgiven:invoice.status!==void 0?invoice.status==="uncollectible":!1}function _currency_extractor(currency_path){var _currency_path;return(_currency_path=currency_path)!=null||(currency_path=[]),function(val,raw){var _payment_converter$ge;let currency_value=u.extract_from_object(raw,currency_path),only_after_bv14=!0;return(_payment_converter$ge=payment_converter.get_bubble_corrected_amount(val,currency_value,only_after_bv14))!=null?_payment_converter$ge:0}}function _stripe_to_bubble_date(val){return val?val*1e3:null}var cls=class extends external.Service{constructor(){super(),this.authenticator=new external.NoAuth,this.values=this._get_initial_values(),this.calls=this._get_initial_calls()}get public_values(){return["Event","Customer","Coupon","Invoice","InvoiceItem","SubscriptionData","SubscriptionItem","CardData","TaxID"]}_get_initial_values(){return{CustomerAddress:new external.StructValue("Stripe Customer Address",{city:{},country:{},line1:{},line2:{},postal_code:{caption:"Postal code"},state:{}}),SellerData:new external.StructValue("Seller data",{id:{}},{no_special_messages:!0}),CardData:new external.StructValue("Stripe Credit Card",{id:{},last4:{caption:"last 4 digits"},exp_month:{ret_btype:"number"},exp_year:{ret_btype:"number"},brand:{},funding:{},fingerprint:{}}),SubscriptionItem:new external.StructValue("Stripe Subscription Item",{subscription_item_id:{path:["id"]},id:{path:["plan","id"],caption:"Plan ID"},name:{path:["plan"],caption:"Plan name",post_call_processing(plan){var _ref3,_plan$name2;return(_ref3=(_plan$name2=plan==null?void 0:plan.name)!=null?_plan$name2:plan==null?void 0:plan.nickname)!=null?_ref3:plan==null?void 0:plan.id}},quantity:{ret_btype:"number"},interval:{path:["plan","interval"]}}),SubscriptionData:new external.StructValue("Stripe Subscription",{subscription_id:{path:["id"]},id:{path:["plan","id"],caption:"Plan ID"},name:{path:["plan"],caption:"Plan name",post_call_processing(plan){var _ref4,_plan$name3;return(_ref4=(_plan$name3=plan==null?void 0:plan.name)!=null?_plan$name3:plan==null?void 0:plan.nickname)!=null?_ref4:plan==null?void 0:plan.id}},items:{ret_btype:btype_ids.list_type(btype_ids.api_type("stripe.SubscriptionItem")),path:["items","data"],post_call_processing(val){let res=[],value=btypes.get(btype_ids.api_type("stripe.SubscriptionItem"));for(r of val!=null?val:[])res.push(value.plugin.extract(r));return res}},status:{},start:{caption:"Starting date",ret_btype:"date",post_call_processing:_stripe_to_bubble_date},created:{caption:"Creation date",ret_btype:"date",post_call_processing:_stripe_to_bubble_date},current_period_start:{caption:"Current period starting date",ret_btype:"date",post_call_processing:_stripe_to_bubble_date},current_period_end:{caption:"Current period ending date",ret_btype:"date",post_call_processing:_stripe_to_bubble_date},quantity:{ret_btype:"number"},trial_end:{caption:"Trial end date",ret_btype:"date",post_call_processing:_stripe_to_bubble_date},trial_start:{caption:"Trial start date",ret_btype:"date",post_call_processing:_stripe_to_bubble_date}}),Event:new external.StructValue("Stripe Event",{id:{},type:{},created:{ret_btype:"date",post_call_processing:_stripe_to_bubble_date},object:{path:["data","object","object"]},object_id:{caption:"Object ID",path:["data","object","id"]},customer_id:{path:["data","object","customer"]},invoice_id:{path:["data","object","invoice"]},subscription_id:{path:["data","object","subscription"]},charge_id:{caption:"Charge ID for dispute",path:["data","object","charge"]},amount:{ret_btype:"number",path:["data","object","amount"],post_call_processing:_currency_extractor(["data","object","currency"])},amount_paid:{ret_btype:"number",extract(val){var _val$data$object;let{amount_paid,amount_captured}=(_val$data$object=val.data.object)!=null?_val$data$object:{};return amount_paid!=null?amount_paid:amount_captured},post_call_processing:_currency_extractor(["data","object","currency"])},amount_refunded:{ret_btype:"number",path:["data","object","amount_refunded"],post_call_processing:_currency_extractor(["data","object","currency"])},captured:{ret_btype:"boolean",path:["data","object","captured"]},failure_message:{path:["data","object","failure_message"]},statement_descriptor:{path:["data","object","statement_descriptor"]},description:{path:["data","object","description"]},previous_status:{path:["data","previous_attributes","status"]}}),Customer:new external.StructValue("Stripe Customer",{id:{},email:{},address:{ret_btype:btype_ids.api_type("stripe.CustomerAddress")},balance:{ret_btype:"number",post_call_processing:_currency_extractor(["currency"])},discount_items:{ret_btype:btype_ids.api_type("stripe.Coupon"),path:["discount","coupon"],post_call_processing(val){if(val)return btypes.get(btype_ids.api_type("stripe.Coupon")).plugin.extract(val)}}}),Coupon:new external.StructValue("Stripe Coupon",{id:{},amount_off:{ret_btype:"number",post_call_processing:_currency_extractor(["currency"])},percent_off:{ret_btype:"number"},created:{ret_btype:"date",post_call_processing:_stripe_to_bubble_date},currency:{},duration:{},duration_in_months:{ret_btype:"number"},max_redemptions:{ret_btype:"number"},redeem_by:{ret_btype:"date",post_call_processing:_stripe_to_bubble_date},times_redeemed:{ret_btype:"number"},valid:{ret_btype:"boolean"},name:{}}),Invoice:new external.StructValue("Stripe Invoice",{id:{},subscription:{},status:{},amount_due:{ret_btype:"number",post_call_processing:_currency_extractor(["currency"])},subtotal:{ret_btype:"number",post_call_processing:_currency_extractor(["currency"])},total:{ret_btype:"number",post_call_processing:_currency_extractor(["currency"])},starting_balance:{ret_btype:"number",post_call_processing:_currency_extractor(["currency"])},ending_balance:{ret_btype:"number",post_call_processing:_currency_extractor(["currency"])},closed:{ret_btype:"boolean",extract(val){return extractIsInvoiceClosed(val)}},paid:{ret_btype:"boolean"},forgiven:{ret_btype:"boolean",extract(val){return extractIsInvoiceForgiven(val)}},date:{path:["created"],ret_btype:"date",post_call_processing:_stripe_to_bubble_date},period_start:{ret_btype:"date",post_call_processing:_stripe_to_bubble_date},period_end:{ret_btype:"date",post_call_processing:_stripe_to_bubble_date},invoice_items:{ret_btype:btype_ids.list_type(btype_ids.api_type("stripe.InvoiceItem")),path:["lines","data"],post_call_processing(val){let res=[],value=btypes.get(btype_ids.api_type("stripe.InvoiceItem"));for(r of val!=null?val:[])res.push(value.plugin.extract(r));return res}},discount_items:{ret_btype:btype_ids.api_type("stripe.Coupon"),path:["discount","coupon"],post_call_processing(val){return btypes.get(btype_ids.api_type("stripe.Coupon")).plugin.extract(val)}},metadata:{ret_btype:"text",post_call_processing(val){return JSON.stringify(val)}}}),InvoiceItem:new external.StructValue("Stripe InvoiceItem",{id:{},invoice_item_id:{path:[],post_call_processing(obj){if(obj.object==="line_item")return obj.invoice_item;if(obj.object==="invoiceitem")return obj.id}},amount:{ret_btype:"number",post_call_processing:_currency_extractor(["currency"])},statement_descriptor:{path:["plan","name"]},description:{},subscription:{},period_start:{path:["period","start"],ret_btype:"date",post_call_processing:_stripe_to_bubble_date},period_end:{path:["period","end"],ret_btype:"date",post_call_processing:_stripe_to_bubble_date},price_id:{path:["price","id"]},product_id:{path:["price","product"]},proration:{ret_btype:"boolean"}}),InvoiceMetadata:new external.StructValue("Stripe Invoice Metadata",{appname:{ret_btype:"text"},is_overage_invoice:{ret_btype:"boolean"}}),Transfer:new external.StructValue("Stripe Transfer",{id:{},destination_payment:{},amount:{ret_btype:"number",post_call_processing:_currency_extractor(["currency"])},amount_reversed:{ret_btype:"number",post_call_processing:_currency_extractor(["currency"])},created:{path:["period","start"],ret_btype:"date",post_call_processing:_stripe_to_bubble_date},description:{},destination:{}}),Balance:new external.StructValue("Stripe Balance",{available_amount:{path:["available"],ret_btype:"number",post_call_processing(res){let val=res[0].amount;return val?val/100:0}},pending:{path:["pending"],ret_btype:"number",post_call_processing(res){let val=res[0].amount;return val?val/100:0}},connect_reserved_amount:{path:["connect_reserved"],ret_btype:"number",post_call_processing(res){if(!res)return 0;let val=res[0].amount;return val?val/100:0}}}),TaxID:new external.StructValue("Stripe Tax ID",{id:{},country:{},type:{},value:{}}),Refund:new external.StructValue("Stripe Refund",{id:{},amount:{ret_btype:"number"},charge:{},created:{ret_btype:"number"},currency:{},description:{},status:{}})}}get user_calls(){return["GetStripeCard","GetStripeCards","GetStripeSubscription","GetStripeSubscriptions","GetSellerData","GetCustomerID","GetStripeInvoices","GetStripeTaxIDs"]}get public_calls(){return["GetEventData","GetCustomer","GetStripeCoupons","GetStripeCoupon","GetStripeInvoice","GetStripeBalance","GetStripeTaxID"]}get server_actions(){return["charge_user","charge_user_resume","define_as_seller_resume","get_user_cc_info","get_user_cc_info_resume","charge_user_with_saved_cc","subscribe_stripe_plan","subscribe_stripe_plan_resume","apply_stripe_coupon_to_plan","cancel_stripe_plan","add_invoice_item","update_invoice_item","create_invoice","update_invoice","refund_charge","pay_invoice","cancel_invoice","create_coupon","create_subscription_item","update_subscription_item","delete_subscription_item","delete_credit_card","make_card_default","transfer_to_seller","create_payout","adjust_relative_customer_balance","set_customer_balance","update_customer","capture_authorized_charge","create_stripe_value_list_item","create_tax_id","delete_tax_id","list_tax_ids_action"]}_get_initial_calls(){return{GenerateAuthToken:class extends external.Call{get _must_proxy(){return!0}get skip_property_security(){return!0}execute(prev,properties,authentication,_raw,context){return u.on_client()?super.execute(prev,properties,authentication,_raw,context):this.service().generateauthtoken(properties)}},GetStripePlans:class extends external.Call{get _must_proxy(){return!0}get skip_property_security(){return!0}execute(prev,properties,authentication,_raw,context){return u.on_client()?super.execute(prev,properties,authentication,_raw,context):this.service().getstripeplans(properties)}},GetSellerData:class extends external.Call{get _must_proxy(){return!0}get human(){return"Stripe Seller account"}get btype_id(){return btype_ids.api_type("stripe.SellerData")}execute(prev,properties,authentication,_raw,context){return Lib().is_edit_mode()?this.get_value_bubble_null():prev._id()?{id:prev.child("authentication").child("stripe").child("id").get()}:{}}},GetCustomerID:class extends external.Call{get _must_proxy(){return!0}get human(){return"Stripe Customer ID"}get btype_id(){return"text"}execute(prev,properties,authentication,_raw,context){var _prev$child$get;return Lib().is_edit_mode()?this.get_value_bubble_null():prev._id()?(_prev$child$get=prev.child("StripeCustomerID").get())!=null?_prev$child$get:this.get_value_bubble_null():{}}},GetStripeCard:class extends StripeCall{get human(){return"Stripe Credit card"}get btype_id(){return btype_ids.api_type("stripe.CardData")}execute(prev,properties,authentication,_raw,context){if(Lib().is_edit_mode()&&!properties.force_edit_mode)return this.get_value_bubble_null();if(u.on_server())return extract_data(this,this.service().retrieve_credit_cards(prev)[0]);{var _ref5,_call_dependencies$_r;let call_name="GetStripeCard",user_id=prev==null?void 0:prev._id();(_call_dependencies$_r=_call_dependencies[_ref5=user_id+call_name])!=null||(_call_dependencies[_ref5]=u.Dependency()),_call_dependencies[user_id+call_name].register();let data_to_send=Lib().location.get_pieces();return delete data_to_send.query,this.make_request(call_name,data_to_send,prev,_raw,context)}}},GetStripeCards:class extends StripeCall{get human(){return"Stripe Credit cards"}get btype_id(){return btype_ids.api_type("stripe.CardData")}get is_list(){return!0}execute(prev,properties,authentication,_raw,context){if(Lib().is_edit_mode())return this.get_value_bubble_null();if(u.on_server())return extract_data(this,this.service().retrieve_credit_cards(prev));{var _ref6,_call_dependencies$_r2;let call_name="GetStripeCards",user_id=prev==null?void 0:prev._id();(_call_dependencies$_r2=_call_dependencies[_ref6=user_id+call_name])!=null||(_call_dependencies[_ref6]=u.Dependency()),_call_dependencies[user_id+call_name].register();let data_to_send=Lib().location.get_pieces();return delete data_to_send.query,this.make_request(call_name,data_to_send,prev,_raw,context)}}},GetStripeSubscription:class extends StripeCall{get human(){return"Stripe Customer subscription"}get btype_id(){return btype_ids.api_type("stripe.SubscriptionData")}execute(prev,properties,authentication,_raw,context){if(Lib().is_edit_mode())return this.get_value_bubble_null();if(u.on_server())return extract_data(this,this.service().get_existing_subscriptions(prev)[0]);{var _ref7,_call_dependencies$_r3;let call_name="GetStripeSubscription",user_id=prev==null?void 0:prev._id();(_call_dependencies$_r3=_call_dependencies[_ref7=user_id+call_name])!=null||(_call_dependencies[_ref7]=u.Dependency()),_call_dependencies[user_id+call_name].register();let data_to_send=Lib().location.get_pieces();return delete data_to_send.query,this.make_request(call_name,data_to_send,prev,_raw,context)}}},GetStripeSubscriptions:class extends StripeCall{get human(){return"Stripe Customer subscriptions"}get btype_id(){return btype_ids.api_type("stripe.SubscriptionData")}get is_list(){return!0}execute(prev,properties,authentication,_raw,context){if(Lib().is_edit_mode())return this.get_value_bubble_null();if(u.on_server())return extract_data(this,this.service().get_existing_subscriptions(prev));{var _ref8,_call_dependencies$_r4;let call_name="GetStripeSubscriptions",user_id=prev==null?void 0:prev._id();(_call_dependencies$_r4=_call_dependencies[_ref8=user_id+call_name])!=null||(_call_dependencies[_ref8]=u.Dependency()),_call_dependencies[user_id+call_name].register();let data_to_send=Lib().location.get_pieces();return delete data_to_send.query,this.make_request(call_name,data_to_send,prev,_raw,context)}}},GetAppSubscription:class extends StripeCall{execute(prev,properties,authentication,_raw,context){if(Lib().is_edit_mode())return this.get_value_bubble_null();if(u.on_server()){let raw_list=this.service().get_existing_subscriptions(prev);if(!raw_list)return null;let matched_subscription_object=raw_list.filter(item=>item.metadata.appname===properties.appname).reduce((a,b)=>a.created>b.created?a:b,{});return matched_subscription_object!=null&&matched_subscription_object.current_period_end?(matched_subscription_object.current_period_start_formatted=_stripe_to_bubble_date(matched_subscription_object.current_period_start),matched_subscription_object.current_period_end_formatted=_stripe_to_bubble_date(matched_subscription_object.current_period_end),matched_subscription_object):null}else{var _ref9,_call_dependencies$_r5;let call_name="GetAppSubscription",user_id=prev==null?void 0:prev._id();(_call_dependencies$_r5=_call_dependencies[_ref9=user_id+call_name])!=null||(_call_dependencies[_ref9]=u.Dependency()),_call_dependencies[user_id+call_name].register();let data_to_send=Lib().location.get_pieces();return delete data_to_send.query,this.make_request(call_name,data_to_send,prev,_raw,context)}}},GetEventData:class extends StripeCall{get human(){return"Get Stripe Event"}get btype_id(){return btype_ids.api_type("stripe.Event")}get parameters(){return{event_id:{}}}execute(prev,properties,authentication,_raw,context){var _ref10,_call_dependencies$_r6;if(!properties.event_id||Lib().is_edit_mode())return{};let call_name="GetEventData";if((_call_dependencies$_r6=_call_dependencies[_ref10=properties.event_id+call_name])!=null||(_call_dependencies[_ref10]=u.Dependency()),_call_dependencies[properties.event_id+call_name].register(),u.on_server())return extract_data(this,this.service().retrieve_stripe_event(properties.event_id));{let data_to_send=Lib().location.get_pieces();return delete data_to_send.query,data_to_send.event_id=properties.event_id,this.make_request(call_name,data_to_send,null,_raw,context)}}},GetCustomer:class extends StripeCall{get human(){return"Get Stripe Customer"}get btype_id(){return btype_ids.api_type("stripe.Customer")}get parameters(){return{customer_id:{}}}execute(prev,properties,authentication,_raw,context){var _ref11,_call_dependencies$_r7;if(!properties.customer_id||Lib().is_edit_mode())return{};let call_name="GetCustomer";if((_call_dependencies$_r7=_call_dependencies[_ref11=properties.customer_id+call_name])!=null||(_call_dependencies[_ref11]=u.Dependency()),_call_dependencies[properties.customer_id+call_name].register(),u.on_server())return extract_data(this,this.service().retrieve_customer(properties.customer_id));{let data_to_send=Lib().location.get_pieces();return delete data_to_send.query,data_to_send.customer_id=properties.customer_id,this.make_request(call_name,data_to_send,null,_raw,context)}}},GetStripeCoupons:class extends external.Call{get human(){return"Get Stripe Coupons"}get btype_id(){return btype_ids.api_type("stripe.Coupon")}get is_list(){return!0}get _must_proxy(){return!0}execute(prev,properties,authentication,_raw,context){return u.on_client()?super.execute(prev,properties,authentication,_raw,context):extract_data(this,this.service().getstripecoupons())}},GetStripeCoupon:class extends external.Call{get human(){return"Get Stripe Coupon"}get parameters(){return{coupon_id:{}}}get btype_id(){return btype_ids.api_type("stripe.Coupon")}get _must_proxy(){return!0}execute(prev,properties,authentication,_raw,context){return properties.coupon_id?u.on_client()?super.execute(prev,properties,authentication,_raw,context):extract_data(this,this.service().getstripecoupon(properties.coupon_id)):this.get_value_bubble_null()}},GetStripeInvoice:class extends external.Call{get human(){return"Retrieve Stripe Invoice"}get btype_id(){return btype_ids.api_type("stripe.Invoice")}get _must_proxy(){return!0}get parameters(){return{invoice_id:{}}}execute(prev,properties,authentication,_raw,context){return Lib().is_edit_mode()||!properties.invoice_id?this.get_value_bubble_null():u.on_server()?extract_data(this,this.service().retrieve_invoice(properties.invoice_id)):super.execute(prev,properties,authentication,_raw,context)}},GetStripeInvoices:class extends StripeCall{get human(){return"Get Stripe Invoices"}get btype_id(){return btype_ids.api_type("stripe.Invoice")}get is_list(){return!0}get _must_proxy(){return!0}execute(prev,properties,authentication,_raw,context){if(Lib().is_edit_mode())return this.get_value_bubble_null();if(u.on_server())return extract_data(this,this.service().get_customer_invoices(prev));{var _ref12,_call_dependencies$_r8;let call_name="GetStripeInvoices",user_id=prev==null?void 0:prev._id();(_call_dependencies$_r8=_call_dependencies[_ref12=user_id+call_name])!=null||(_call_dependencies[_ref12]=u.Dependency()),_call_dependencies[user_id+call_name].register();let data_to_send=Lib().location.get_pieces();return delete data_to_send.query,this.make_request(call_name,data_to_send,prev,_raw,context)}}},GetStripeBalance:class extends external.Call{get human(){return"Retrieve Stripe Balance"}get btype_id(){return btype_ids.api_type("stripe.Balance")}get _must_proxy(){return!0}get parameters(){return{}}execute(prev,properties,authentication,_raw,context){return Lib().is_edit_mode()?this.get_value_bubble_null():u.on_server()?extract_data(this,this.service().retrieve_balance()):super.execute(prev,properties,authentication,_raw,context)}},GetStripeTaxID:class extends external.Call{get human(){return"Retrieve Stripe Tax ID"}get btype_id(){return btype_ids.api_type("stripe.TaxID")}get _must_proxy(){return!0}get parameters(){return{customer:{name:"customer",caption:"User",editor:"Basic",btype:"user"},tax_id:{}}}execute(prev,properties,authentication,_raw,context){return Lib().is_edit_mode()||!properties.tax_id?this.get_value_bubble_null():u.on_server()?extract_data(this,this.service().retrieve_tax_id(properties)):super.execute(prev,properties,authentication,_raw,context)}},GetStripeTaxIDs:class extends StripeCall{get human(){return"Stripe Tax IDs"}get btype_id(){return btype_ids.api_type("stripe.TaxID")}get is_list(){return!0}get _must_proxy(){return!0}get parameters(){return{limit:{caption:"Limit",editor:"Basic",optional:!0,btype:"number"}}}execute(prev,properties,authentication,_raw,context){if(Lib().is_edit_mode())return this.get_value_bubble_null();if(u.on_server())return extract_data(this,this.service().list_tax_ids(prev,properties.limit));{var _ref13,_call_dependencies$_r9;let call_name="GetStripeTaxIDs",user_id=prev==null?void 0:prev._id();(_call_dependencies$_r9=_call_dependencies[_ref13=user_id+call_name])!=null||(_call_dependencies[_ref13]=u.Dependency()),_call_dependencies[user_id+call_name].register();let data_to_send=Lib().location.get_pieces();return delete data_to_send.query,data_to_send.limit=properties.limit,this.make_request(call_name,data_to_send,prev,_raw,context)}}}}}get_error_message(response){let data;try{data=JSON.parse(response.body)}catch(err){return}if(data.error!=null)throw convert_stripe_error(data.error)}html_header(key){return is_v3()?'(function(){\nconst b=document.createElement("script");b.type="text/javascript";b.async=!0;b.src="https://js.stripe.com/v3";\nconst d=document.getElementsByTagName("script")[0];d.parentNode.insertBefore(b,d);\n})();':'(function(){\nconst b=document.createElement("script");b.type="text/javascript";b.async=!0;b.src="https://checkout.stripe.com/checkout.js";b.onload=function(){window.initialize_stripe_form()};\nconst d=document.getElementsByTagName("script")[0];d.parentNode.insertBefore(b,d);\n})();'}actions(){return{ChargeUser:{server_method:"stripe-charge_user",server_method_resume:"stripe-charge_user_resume",field_names:Object.assign({charged_user_email:{},tax_id_collection:{default:!1}},payment_field_names,do_not_show_success_alert_field_name,allow_promotion_codes_field_name,checkout_tax_field_names),run(action,properties,context,cb){return context.get_server_outcome(action,(err,res)=>{if(err){cb(err);return}let resume_key=Lib().workflow.make_resume_key(context,action);if(is_v3())if(properties.payee_is_another_user){let payee_user=properties.payee;return u.run_once(30,()=>payee_user.child("authentication").child("stripe").child("id").get(),(err2,payee_stripe_account_id)=>{if(err2!=null||!payee_stripe_account_id){var _err;return(_err=err2)!=null||(err2=new u.OwnerError("Payee either does not have a stripe account setup or else has a privacy rule blocking access to social networks, which prevents this action from working")),cb(err2)}else return redirect_checkout(context,res.url)})}else return redirect_checkout(context,res.url);else{var _properties$button_ca;return cb("aborted"),properties.panelLabel=(_properties$button_ca=properties.button_caption)!=null?_properties$button_ca:"Pay",u.run_once(30,()=>{let amount=res.child("amount").raw(!1);return get_checkout_form(u.extend(properties,{amount}),token=>{status=status_bar.show_progress_line("chargecc call");let data_to_send={order_id:res._id(),token:token.id,appname:Lib().appname(),app_version:Lib().app_version()};return Lib().workflow.resume(resume_key,data_to_send)})})}})},resume(action,context,cb){return is_v3()&&(status=status_bar.show_progress_line("chargecc call")),context.get_server_outcome(action,(err,order)=>{var _status;if((_status=status)==null||_status(),err){err instanceof u.ExpectedError&&alert(logger.human_friendly(err));return}else if(order.flush(),invalidate_call("GetStripeCard"),invalidate_call("GetStripeCards"),!action.get_static_property("do_not_show_success_alert")){let msg=action.get_static_property("authorize_only")?Lib().get_text("stripe","SUCCESS_AUTHORIZED_CARD"):Lib().get_text("stripe","SUCCESS_CARD");window.alert(msg)}return cb(err,order)})},return_btype(){return btypes.get(db_consts.SYSTEM_TYPE_IDS.STRIPE_ORDER)},data_to_refresh:null,check_for_errors(action,report){return _check_for_errors_for_payment(action,report,this.display)}},GetUserCCInfo:{category:"payment",field_names:u.extend({update_existing:{default:!0},description:{default:"Collect card information"},button_caption:{default:"Save"}},do_not_show_success_alert_field_name,enter_your_api_key_button_field_names),display(){return"Collect the user's CC information"},_fields(){return[{name:"update_existing",editor:"Checkbox",caption:"Update existing main card"},{name:"description",caption:"Description",editor:"ShortText"},{name:"button_caption",caption:"Button caption",editor:"ShortText",condition(){return!is_v3()}}].concat(do_not_show_success_alert_field())},run(action,properties,context,cb){return context.get_server_outcome(action,(err,res)=>{if(err)return cb(err);{let resume_key=Lib().workflow.make_resume_key(context,action);return is_v3()?redirect_checkout(context,res.url):(cb("aborted"),get_checkout_form({description:properties.description,panelLabel:properties.button_caption},token=>{status=status_bar.show_progress_line("chargecc call");let data_to_send={user_id:Lib().current_user()._id(),token:token.id,appname:Lib().appname(),app_version:Lib().app_version(),update_existing:properties.update_existing};return Lib().workflow.resume(resume_key,data_to_send)}))}})},resume(action,context,cb){return is_v3()&&(status=status_bar.show_progress_line("chargecc call")),context.get_server_outcome(action,err=>{var _status2;if((_status2=status)==null||_status2(),invalidate_call("GetStripeCard"),invalidate_call("GetStripeCards"),err){err instanceof u.ExpectedError&&core_events.handle_uncaught_error({original_error:err,caught_from:workflow_consts.ERROR_SOURCES.ELEMENT_WORKFLOW,cb(err2){err2&&window.alert(logger.human_friendly(err2))}});return}else action.get_static_property("do_not_show_success_alert")||window.alert(Lib().get_text("stripe","SUCCESS_SAVE_CC"));return cb()})},server_method:"stripe-get_user_cc_info",server_method_resume:"stripe-get_user_cc_info_resume",check_for_errors(action,report){return _check_for_errors_for_payment(action,report,this.display)},data_to_refresh:null},ChargeUserWithSavedCC:{category:"payment",field_names:u.extend({charged_user:{}},payment_field_names,do_not_show_success_alert_field_name,card_id_field_name),display(){return"Charge a user using saved CC"},_fields(){return[{name:"charged_user",caption:"Charged user",editor:"Basic",btype:"user"}].concat(payment_fields()).concat(card_id_field()).concat(do_not_show_success_alert_field())},run(action,properties,context,cb){return context.get_server_outcome(action,(err,order)=>{if(err)return cb(err);if(!properties.do_not_show_success_alert){let msg=properties.authorize_only?Lib().get_text("stripe","SUCCESS_AUTHORIZED_CARD"):Lib().get_text("stripe","SUCCESS_CARD");window.alert(msg)}return cb(null,order)})},server_method:"stripe-charge_user_with_saved_cc",check_for_errors(action,report){return _check_for_errors_for_payment(action,report,this.display)},return_btype(){return btypes.get(db_consts.SYSTEM_TYPE_IDS.STRIPE_ORDER)},data_to_refresh:null},CaptureAuthorizedCharge:{category:"payment",field_names:u.extend({charge_id:{}},do_not_show_success_alert_field_name,enter_your_api_key_button_field_names),server_method:"stripe-capture_authorized_charge",run(action,properties,context,cb){return context.get_server_outcome(action,(err,order)=>{if(err)return cb(err);if(!properties.do_not_show_success_alert){let msg=Lib().get_text("stripe","SUCCESS_CARD");window.alert(msg)}return cb(null,order)})},data_to_refresh:null},DefineAsSeller:{field_names:u.extend({email:{optional:!0},url:{optional:!0},business_name:{optional:!0},address:{optional:!0},product_category:{optional:!0},physical_product:{optional:!0},product_description:{optional:!0}},enter_your_api_key_button_field_names),run(action,properties,context,cb){let current_user=Lib().current_user();return u.run_once(30,()=>{let logged_in=current_user.is_logged_in(),email=current_user.get_email(),resume_url=generic_actions_utilities.get_resume_url(context,action),stripe_auth_url=getURLToGenerateStripeAuthToken(appquery.app(),email,resume_url,current_user._id(),properties);return{logged_in,email,stripe_auth_url}},(err,data)=>{if(err){cb(err);return}let{logged_in,stripe_auth_url}=data;if(!logged_in){cb(new u.UserError("stripe.NEED_LOGIN_TO_SELL"));return}if(!appquery.stripe_client_id()){cb(new u.UserError("stripe.CANT_REGISTER_SELLER"));return}return Lib().workflow.wait_for_safe(context,()=>document.location.href=stripe_auth_url)})},data_to_refresh:null,server_method_resume:"stripe-define_as_seller_resume"},SubscribeStripePlan:{category:"payment",field_names:Object.assign({plan_id:{},apply_coupon:{},coupon_id:{},quantity:{default:1},tax_percent:{optional:!0,condition(){return!is_v3()}},trial_end:{optional:!0},subscription_id:{optional:!0},dynamic_plan_id:{},update_existing:{default:!0},plans_vs_item:{default:"plan"},payment_behavior:{optional:!0},items:{},tax_id_collection:{default:!1}},enter_your_api_key_button_field_names,do_not_show_success_alert_field_name,add_user_field_names,allow_promotion_codes_field_name,checkout_tax_field_names),server_method:"stripe-subscribe_stripe_plan",terminate_server_workflow:!1,server_method_resume:"stripe-subscribe_stripe_plan_resume",run(action,properties,context,cb){return context.get_server_outcome(action,(err,res)=>{if(err){cb(err);return}let resume_key=Lib().workflow.make_resume_key(context,action,!0),v3_redirect_required=is_v3()&&res.session_id!=null;if(is_v3()&&v3_redirect_required)return redirect_checkout(context,res.url);{let order=res;if(db_values.registry.is(order,db_values.STATIC_OBJECT)){invalidate_call("GetStripeSubscription"),invalidate_call("GetStripeSubscriptions"),properties.do_not_show_success_alert||window.alert(Lib().get_text("stripe","SUCCESS_UPDATE_SUBSCRIPTION")),cb(void 0,order);return}return cb("aborted"),get_checkout_form({description:Lib().get_text("stripe","UPDATE_SUBSCRIPTION_CAPTION"),panelLabel:Lib().get_text("stripe","SUBSCRIBE_ACTION_CAPTION")},token=>{status=status_bar.show_progress_line("chargecc call");let data_to_send={order_id:order._id(),token:token.id,appname:Lib().appname(),app_version:Lib().app_version()};return Lib().workflow.resume(resume_key,data_to_send)})}})},resume(action,context,cb){return context.get_server_outcome(action,(err,order)=>{var _status3;return(_status3=status)==null||_status3(),invalidate_call("GetStripeCard"),invalidate_call("GetStripeCards"),invalidate_call("GetStripeSubscription"),invalidate_call("GetStripeSubscriptions"),err?err instanceof u.ExpectedError&&core_events.handle_uncaught_error({original_error:err,caught_from:workflow_consts.ERROR_SOURCES.ELEMENT_WORKFLOW,cb(err2){err2&&window.alert(logger.human_friendly(err2))}}):action.get_static_property("do_not_show_success_alert")||window.alert(Lib().get_text("stripe","SUCCESS_SUBSCRIPTION")),cb(err,core_ds_db_ops_utilities.convert_api_call_to_db_object(order==null?void 0:order.data,{btype_id:btype_ids.api_type("stripe.SubscriptionData")}))})},data_to_refresh:null,return_btype(){return btypes.get(btype_ids.api_type("stripe.SubscriptionData"))}},ApplyCouponToPlan:{category:"payment",field_names:u.extend({coupon_id:{},subscription_id:{optional:!0}},enter_your_api_key_button_field_names,do_not_show_success_alert_field_name,add_user_field_names),server_method:"stripe-apply_stripe_coupon_to_plan",run(action,properties,context,cb){return context.get_server_outcome(action,err=>err?cb(err):(invalidate_call("GetStripeSubscription"),invalidate_call("GetStripeSubscriptions"),properties.do_not_show_success_alert||window.alert(Lib().get_text("stripe","APPLIED_COUPON")),cb()))},data_to_refresh:null},CancelStripePlan:{category:"payment",field_names:u.extend({cancel_all:{default:!0},subscription_id:{},cancelationMode:{default:subscription_consts.CancelationMode.Immediate}},do_not_show_success_alert_field_name,enter_your_api_key_button_field_names,add_user_field_names),server_method:"stripe-cancel_stripe_plan",run(action,properties,context,cb){return context.get_server_outcome(action,err=>err?cb(err):(invalidate_call("GetStripeSubscription"),invalidate_call("GetStripeSubscriptions"),properties.do_not_show_success_alert||window.alert(Lib().get_text("stripe","CANCEL_SUBSCRIPTION")),cb()))},data_to_refresh:null},AddInvoiceItem:{category:"payment",field_names:Object.assign({customer:{},amount:{},currency:{default:"USD"},description:{},subscription_id:{optional:!0}},checkout_tax_field_names,enter_your_api_key_button_field_names),server_method:"stripe-add_invoice_item",run(action,properties,context,cb){return context.get_server_outcome(action,(err,res)=>cb(err,res))},return_btype(){return btypes.get(btype_ids.api_type("stripe.InvoiceItem"))},data_to_refresh:null},UpdateInvoiceItem:{category:"payment",field_names:u.extend({invoice_item_id:{value:"text"},amount:{optional:!0,value:"number"},description:{optional:!0,value:"text"}},enter_your_api_key_button_field_names),server_method:"stripe-update_invoice_item",run(action,properties,context,cb){return context.get_server_outcome(action,(err,res)=>cb(err,res))},return_btype(){return btypes.get("api.stripe.InvoiceItem")},data_to_refresh:null},CreateInvoice:{category:"payment",field_names:u.extend({customer:{},subscription_id:{optional:!0},auto_advance:{optional:!0}},enter_your_api_key_button_field_names),server_method:"stripe-create_invoice",run(action,properties,context,cb){return context.get_server_outcome(action,(err,res)=>cb(err,res))},data_to_refresh:null,return_btype(){return btypes.get(btype_ids.api_type("stripe.Invoice"))}},UpdateInvoice:{category:"payment",field_names:u.extend({invoice_id:{},description:{optional:!0},coupon_id:{optional:!0},auto_advance:{optional:!0}},enter_your_api_key_button_field_names),server_method:"stripe-update_invoice",run(action,properties,context,cb){return context.get_server_outcome(action,(err,res)=>cb(err,res))},data_to_refresh:null,return_btype(){return btypes.get(btype_ids.api_type("stripe.Invoice"))}},PayInvoice:{category:"payment",field_names:u.extend({invoice_id:{}},enter_your_api_key_button_field_names),server_method:"stripe-pay_invoice",run(action,properties,context,cb){return context.get_server_outcome(action,err=>err?cb(err):(window.alert(Lib().get_text("stripe","SUCCESS_CARD")),cb()))},data_to_refresh:null},CancelInvoice:{category:"payment",field_names:u.extend({invoice_id:{},status:{}},enter_your_api_key_button_field_names),server_method:"stripe-cancel_invoice",run(action,properties,context,cb){return context.get_server_outcome(action,err=>{if(err)return cb(err);{let translation_code={void:"VOID_INVOICE_SUCCESS",uncollectible:"MARK_UNCOLLECTIBLE_SUCCESS"}[properties.status];return window.alert(Lib().get_text("stripe",translation_code)),cb()}})},data_to_refresh:null},RefundCharge:{category:"payment",field_names:u.extend({charge_id:{}},enter_your_api_key_button_field_names),server_method:"stripe-refund_charge",run(action,properties,context,cb){return context.get_server_outcome(action,(err,res)=>cb(err,res))},return_btype(){return btypes.get(btype_ids.api_type("stripe.Refund"))},data_to_refresh:null},AddSubscriptionItem:{category:"payment",field_names:{subscription_id:{},plan_id:{},dynamic_plan_id:{},quantity:{optional:!0}},server_method:"stripe-create_subscription_item",run(action,properties,context,cb){return context.get_server_outcome(action,(err,res)=>(invalidate_call("GetStripeSubscription"),invalidate_call("GetStripeSubscriptions"),cb(err,res)))},data_to_refresh:null,return_btype(){return btypes.get(btype_ids.api_type("stripe.SubscriptionItem"))}},UpdateSubscriptionItem:{category:"payment",field_names:{subscription_item_id:{},plan_id:{},dynamic_plan_id:{},quantity:{optional:!0}},server_method:"stripe-update_subscription_item",run(action,properties,context,cb){return context.get_server_outcome(action,(err,res)=>(invalidate_call("GetStripeSubscription"),invalidate_call("GetStripeSubscriptions"),cb(err,res)))},data_to_refresh:null,return_btype(){return btypes.get(btype_ids.api_type("stripe.SubscriptionItem"))}},DeleteSubscriptionItem:{category:"payment",field_names:{subscription_item_id:{}},server_method:"stripe-delete_subscription_item",run(action,properties,context,cb){return context.get_server_outcome(action,err=>(invalidate_call("GetStripeSubscription"),invalidate_call("GetStripeSubscriptions"),cb(err)))},data_to_refresh:null},MakeCardDefault:{category:"payment",field_names:{card_id:{}},server_method:"stripe-make_card_default",data_to_refresh:null,run(action,properties,context,cb){return context.get_server_outcome(action,err=>(invalidate_call("GetStripeCard"),invalidate_call("GetStripeCards"),cb(err)))}},DeleteCreditCard:{category:"payment",field_names:{card_id:{}},server_method:"stripe-delete_credit_card",run(action,properties,context,cb){return context.get_server_outcome(action,err=>(invalidate_call("GetStripeCard"),invalidate_call("GetStripeCards"),cb(err)))},data_to_refresh:null},AdjustCustomerBalance:{category:"payment",field_names:u.extend({customer:{},amount:{}},enter_your_api_key_button_field_names),server_method:"stripe-set_customer_balance",run(action,properties,context,cb){return context.get_server_outcome(action,err=>cb(err))},data_to_refresh:null},AdjustCustomerBalanceRelative:{category:"payment",field_names:u.extend({customer:{},amount:{},amount_sign:{default:"positive"},currency:{default:"USD"}},enter_your_api_key_button_field_names),server_method:"stripe-adjust_relative_customer_balance",run(action,properties,context,cb){return context.get_server_outcome(action,err=>cb(err))},data_to_refresh:null},UpdateCustomerInformation:{category:"payment",field_names:u.extend({email:{optional:!0},address:{optional:!0}},add_user_field_names,enter_your_api_key_button_field_names),server_method:"stripe-update_customer",run(action,properties,context,cb){return context.get_server_outcome(action,(err,order)=>cb(err,order))},return_btype(){return btypes.get(btype_ids.api_type("stripe.Customer"))},data_to_refresh:null},CreateCoupon:{category:"payment",field_names:u.extend({name:{optional:!0},amount_off:{optional:!0},percent_off:{optional:!0},duration:{},duration_in_months:{optional:!0},redeem_by:{optional:!0},currency:{optional:!0,default:"USD"},max_redemptions:{optional:!0}},enter_your_api_key_button_field_names),server_method:"stripe-create_coupon",run(action,properties,context,cb){return context.get_server_outcome(action,(err,order)=>cb(err,order))},return_btype(){return btypes.get(btype_ids.api_type("stripe.Coupon"))},data_to_refresh:null},TransferToSeller:{category:"payment",field_names:u.extend({amount:{},currency:{},destination:{},description:{optional:!0},source_transaction:{optional:!0},transfer_group:{optional:!0}},enter_your_api_key_button_field_names),server_method:"stripe-transfer_to_seller",run(action,properties,context,cb){return context.get_server_outcome(action,(err,order)=>cb(err,order))},data_to_refresh:null,return_btype(){return btypes.get(btype_ids.api_type("stripe.Transfer"))}},CreatePayout:{category:"payment",field_names:u.extend({amount:{},currency:{}},enter_your_api_key_button_field_names),server_method:"stripe-create_payout",run(action,properties,context,cb){return context.get_server_outcome(action,(err,order)=>cb(err,order))},data_to_refresh:null},CreateStripeValueListItem:{category:"payment",field_names:u.extend({value_list_id:{},value:{}},enter_your_api_key_button_field_names),server_method:"stripe-create_stripe_value_list_item",run(action,properties,context,cb){return context.get_server_outcome(action,(err,order)=>cb(err,order))},data_to_refresh:null},CreateTaxID:{category:"payment",field_names:u.extend({customer:{},type:{},value:{}},enter_your_api_key_button_field_names),server_method:"stripe-create_tax_id",run(action,_properties,context,cb){return context.get_server_outcome(action,(err,data)=>cb(err,data))},data_to_refresh:null,return_btype(){return btypes.get(btype_ids.api_type("stripe.TaxID"))}},DeleteTaxID:{category:"payment",field_names:u.extend({customer:{},tax_id:{}},enter_your_api_key_button_field_names),server_method:"stripe-delete_tax_id",run(action,properties,context,cb){return context.get_server_outcome(action,(err,order)=>cb(err,order))},data_to_refresh:null},GetListTaxIDs:{category:"payment",field_names:u.extend({customer:{},limit:{optional:!0}},enter_your_api_key_button_field_names),server_method:"stripe-list_tax_ids_action",run(action,properties,context,cb){return context.get_server_outcome(action,(err,order)=>cb(err,order))},data_to_refresh:null,return_btype(){return btypes.get(btype_ids.list_type(btype_ids.api_type("stripe.TaxID")))}}}}key_names(){return["client_id_live","private_key_live","public_key_live","client_id_test","private_key_test","public_key_test","checkout_image","checkout_name","checkout_version","collect_zip","enable_link","collect_address"]}keys(){var _window3;let all_keys={client_id_live:{caption:"Live Client ID",type:"client_safe"},private_key_live:{caption:"Live Secret Key",type:"secure"},public_key_live:{caption:"Live Publishable Key",type:"client_safe"},client_id_test:{caption:"Client ID - development",type:"client_safe"},private_key_test:{caption:"Secret Key - development",type:"secure"},public_key_test:{caption:"Publishable Key - development",type:"client_safe"},checkout_image:{caption:"Image for Stripe Checkout",type:"client_safe",editor:(_window3=window)!=null&&_window3.is_maison?"ImageUploader":"Image",optional:!0},checkout_name:{caption:"Name for Stripe Checkout",type:"client_safe",editor:"TextBox",optional:!0},checkout_version:{caption:"Stripe Checkout version",type:"client_safe",editor:"Dropdown",dropdown_width_override:"mid_extra_large",set:Lib().sets.get_set("Object")({v2:"Checkout v2 (Legacy)",v3:"Checkout v3 (Recommended)"}),default_value:version_keys.V2},collect_zip:{caption:"Collect the user's zip code with Checkout",type:"client_safe",editor:"Checkbox"},enable_link:{caption:"Enable Link on Checkout",type:"client_safe",editor:"Checkbox"},collect_address:{caption:"Collect the user's address with Checkout",type:"client_safe",editor:"Checkbox"}};return is_v3()?delete all_keys.collect_zip:delete all_keys.enable_link,all_keys}},btypes=safe_require.safe_require("./lang/btypes"),services_editor_utils=safe_require.safe_require("./services/client/editor_utils"),stripe={cls,is_v3,getURLToGenerateStripeAuthToken,convert_stripe_error,extractIsInvoiceClosed,extractIsInvoiceForgiven};typeof window<"u"&&window!==null&&((_window2$optional_mod=(_window22=window).optional_modules)!=null||(_window22.optional_modules={}),window.optional_modules.stripe=stripe);var _window22,_window2$optional_mod,plugin_registry=safe_require.safe_require("./services/shared/plugin_registry");plugin_registry.register_plugin(known_plugins_consts.STRIPE,stripe);})();
/*! Bundled license information:

buffer/index.js:
  (*!
   * The buffer module from node.js, for the browser.
   *
   * @author   Feross Aboukhadijeh <https://feross.org>
   * @license  MIT
   *)
*/

}


window.preloaded['plugin/first_party:stripe'] = true;
window._bubble_page_load_data.hardcoded_plugins['addtoany'] = true;
window.__code__ = window.__code__ || {};
if(!window.__code__['e824c4017c4e63f266fe5dd70865d2544226385c857126b21eb652b8d5e572ae']){window.__code__['e824c4017c4e63f266fe5dd70865d2544226385c857126b21eb652b8d5e572ae']=1;

"use strict";(()=>{var __create=Object.create;var __defProp=Object.defineProperty;var __getOwnPropDesc=Object.getOwnPropertyDescriptor;var __getOwnPropNames=Object.getOwnPropertyNames;var __getProtoOf=Object.getPrototypeOf,__hasOwnProp=Object.prototype.hasOwnProperty;var __esm=(fn,res)=>function(){return fn&&(res=(0,fn[__getOwnPropNames(fn)[0]])(fn=0)),res};var __commonJS=(cb,mod)=>function(){return mod||(0,cb[__getOwnPropNames(cb)[0]])((mod={exports:{}}).exports,mod),mod.exports};var __copyProps=(to,from,except,desc)=>{if(from&&typeof from=="object"||typeof from=="function")for(let key of __getOwnPropNames(from))!__hasOwnProp.call(to,key)&&key!==except&&__defProp(to,key,{get:()=>from[key],enumerable:!(desc=__getOwnPropDesc(from,key))||desc.enumerable});return to};var __toESM=(mod,isNodeMode,target)=>(target=mod!=null?__create(__getProtoOf(mod)):{},__copyProps(isNodeMode||!mod||!mod.__esModule?__defProp(target,"default",{value:mod,enumerable:!0}):target,mod));var init_define_process_env=__esm({"<define:process.env>"(){}});var require_base64_js=__commonJS({"node_modules/base64-js/index.js"(exports){"use strict";init_define_process_env();init_shim();exports.byteLength=byteLength;exports.toByteArray=toByteArray;exports.fromByteArray=fromByteArray;var lookup=[],revLookup=[],Arr=typeof Uint8Array<"u"?Uint8Array:Array,code="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";for(i=0,len=code.length;i<len;++i)lookup[i]=code[i],revLookup[code.charCodeAt(i)]=i;var i,len;revLookup["-".charCodeAt(0)]=62;revLookup["_".charCodeAt(0)]=63;function getLens(b64){var len2=b64.length;if(len2%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var validLen=b64.indexOf("=");validLen===-1&&(validLen=len2);var placeHoldersLen=validLen===len2?0:4-validLen%4;return[validLen,placeHoldersLen]}function byteLength(b64){var lens=getLens(b64),validLen=lens[0],placeHoldersLen=lens[1];return(validLen+placeHoldersLen)*3/4-placeHoldersLen}function _byteLength(b64,validLen,placeHoldersLen){return(validLen+placeHoldersLen)*3/4-placeHoldersLen}function toByteArray(b64){var tmp,lens=getLens(b64),validLen=lens[0],placeHoldersLen=lens[1],arr=new Arr(_byteLength(b64,validLen,placeHoldersLen)),curByte=0,len2=placeHoldersLen>0?validLen-4:validLen,i2;for(i2=0;i2<len2;i2+=4)tmp=revLookup[b64.charCodeAt(i2)]<<18|revLookup[b64.charCodeAt(i2+1)]<<12|revLookup[b64.charCodeAt(i2+2)]<<6|revLookup[b64.charCodeAt(i2+3)],arr[curByte++]=tmp>>16&255,arr[curByte++]=tmp>>8&255,arr[curByte++]=tmp&255;return placeHoldersLen===2&&(tmp=revLookup[b64.charCodeAt(i2)]<<2|revLookup[b64.charCodeAt(i2+1)]>>4,arr[curByte++]=tmp&255),placeHoldersLen===1&&(tmp=revLookup[b64.charCodeAt(i2)]<<10|revLookup[b64.charCodeAt(i2+1)]<<4|revLookup[b64.charCodeAt(i2+2)]>>2,arr[curByte++]=tmp>>8&255,arr[curByte++]=tmp&255),arr}function tripletToBase64(num){return lookup[num>>18&63]+lookup[num>>12&63]+lookup[num>>6&63]+lookup[num&63]}function encodeChunk(uint8,start,end){for(var tmp,output=[],i2=start;i2<end;i2+=3)tmp=(uint8[i2]<<16&16711680)+(uint8[i2+1]<<8&65280)+(uint8[i2+2]&255),output.push(tripletToBase64(tmp));return output.join("")}function fromByteArray(uint8){for(var tmp,len2=uint8.length,extraBytes=len2%3,parts=[],maxChunkLength=16383,i2=0,len22=len2-extraBytes;i2<len22;i2+=maxChunkLength)parts.push(encodeChunk(uint8,i2,i2+maxChunkLength>len22?len22:i2+maxChunkLength));return extraBytes===1?(tmp=uint8[len2-1],parts.push(lookup[tmp>>2]+lookup[tmp<<4&63]+"==")):extraBytes===2&&(tmp=(uint8[len2-2]<<8)+uint8[len2-1],parts.push(lookup[tmp>>10]+lookup[tmp>>4&63]+lookup[tmp<<2&63]+"=")),parts.join("")}}});var require_ieee754=__commonJS({"node_modules/ieee754/index.js"(exports){init_define_process_env();init_shim();exports.read=function(buffer,offset,isLE,mLen,nBytes){var e,m,eLen=nBytes*8-mLen-1,eMax=(1<<eLen)-1,eBias=eMax>>1,nBits=-7,i=isLE?nBytes-1:0,d=isLE?-1:1,s=buffer[offset+i];for(i+=d,e=s&(1<<-nBits)-1,s>>=-nBits,nBits+=eLen;nBits>0;e=e*256+buffer[offset+i],i+=d,nBits-=8);for(m=e&(1<<-nBits)-1,e>>=-nBits,nBits+=mLen;nBits>0;m=m*256+buffer[offset+i],i+=d,nBits-=8);if(e===0)e=1-eBias;else{if(e===eMax)return m?NaN:(s?-1:1)*(1/0);m=m+Math.pow(2,mLen),e=e-eBias}return(s?-1:1)*m*Math.pow(2,e-mLen)};exports.write=function(buffer,value,offset,isLE,mLen,nBytes){var e,m,c,eLen=nBytes*8-mLen-1,eMax=(1<<eLen)-1,eBias=eMax>>1,rt=mLen===23?Math.pow(2,-24)-Math.pow(2,-77):0,i=isLE?0:nBytes-1,d=isLE?1:-1,s=value<0||value===0&&1/value<0?1:0;for(value=Math.abs(value),isNaN(value)||value===1/0?(m=isNaN(value)?1:0,e=eMax):(e=Math.floor(Math.log(value)/Math.LN2),value*(c=Math.pow(2,-e))<1&&(e--,c*=2),e+eBias>=1?value+=rt/c:value+=rt*Math.pow(2,1-eBias),value*c>=2&&(e++,c/=2),e+eBias>=eMax?(m=0,e=eMax):e+eBias>=1?(m=(value*c-1)*Math.pow(2,mLen),e=e+eBias):(m=value*Math.pow(2,eBias-1)*Math.pow(2,mLen),e=0));mLen>=8;buffer[offset+i]=m&255,i+=d,m/=256,mLen-=8);for(e=e<<mLen|m,eLen+=mLen;eLen>0;buffer[offset+i]=e&255,i+=d,e/=256,eLen-=8);buffer[offset+i-d]|=s*128}}});var require_buffer=__commonJS({"node_modules/node-stdlib-browser/node_modules/buffer/index.js"(exports){"use strict";init_define_process_env();init_shim();var base64=require_base64_js(),ieee754=require_ieee754(),customInspectSymbol=typeof Symbol=="function"&&typeof Symbol.for=="function"?Symbol.for("nodejs.util.inspect.custom"):null;exports.Buffer=Buffer3;exports.SlowBuffer=SlowBuffer;exports.INSPECT_MAX_BYTES=50;var K_MAX_LENGTH=2147483647;exports.kMaxLength=K_MAX_LENGTH;Buffer3.TYPED_ARRAY_SUPPORT=typedArraySupport();!Buffer3.TYPED_ARRAY_SUPPORT&&typeof console<"u"&&typeof console.error=="function"&&console.error("This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support.");function typedArraySupport(){try{var arr=new Uint8Array(1),proto={foo:function(){return 42}};return Object.setPrototypeOf(proto,Uint8Array.prototype),Object.setPrototypeOf(arr,proto),arr.foo()===42}catch(e){return!1}}Object.defineProperty(Buffer3.prototype,"parent",{enumerable:!0,get:function(){if(Buffer3.isBuffer(this))return this.buffer}});Object.defineProperty(Buffer3.prototype,"offset",{enumerable:!0,get:function(){if(Buffer3.isBuffer(this))return this.byteOffset}});function createBuffer(length){if(length>K_MAX_LENGTH)throw new RangeError('The value "'+length+'" is invalid for option "size"');var buf=new Uint8Array(length);return Object.setPrototypeOf(buf,Buffer3.prototype),buf}function Buffer3(arg,encodingOrOffset,length){if(typeof arg=="number"){if(typeof encodingOrOffset=="string")throw new TypeError('The "string" argument must be of type string. Received type number');return allocUnsafe(arg)}return from(arg,encodingOrOffset,length)}Buffer3.poolSize=8192;function from(value,encodingOrOffset,length){if(typeof value=="string")return fromString(value,encodingOrOffset);if(ArrayBuffer.isView(value))return fromArrayView(value);if(value==null)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof value);if(isInstance(value,ArrayBuffer)||value&&isInstance(value.buffer,ArrayBuffer)||typeof SharedArrayBuffer<"u"&&(isInstance(value,SharedArrayBuffer)||value&&isInstance(value.buffer,SharedArrayBuffer)))return fromArrayBuffer(value,encodingOrOffset,length);if(typeof value=="number")throw new TypeError('The "value" argument must not be of type number. Received type number');var valueOf=value.valueOf&&value.valueOf();if(valueOf!=null&&valueOf!==value)return Buffer3.from(valueOf,encodingOrOffset,length);var b=fromObject(value);if(b)return b;if(typeof Symbol<"u"&&Symbol.toPrimitive!=null&&typeof value[Symbol.toPrimitive]=="function")return Buffer3.from(value[Symbol.toPrimitive]("string"),encodingOrOffset,length);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof value)}Buffer3.from=function(value,encodingOrOffset,length){return from(value,encodingOrOffset,length)};Object.setPrototypeOf(Buffer3.prototype,Uint8Array.prototype);Object.setPrototypeOf(Buffer3,Uint8Array);function assertSize(size){if(typeof size!="number")throw new TypeError('"size" argument must be of type number');if(size<0)throw new RangeError('The value "'+size+'" is invalid for option "size"')}function alloc(size,fill,encoding){return assertSize(size),size<=0?createBuffer(size):fill!==void 0?typeof encoding=="string"?createBuffer(size).fill(fill,encoding):createBuffer(size).fill(fill):createBuffer(size)}Buffer3.alloc=function(size,fill,encoding){return alloc(size,fill,encoding)};function allocUnsafe(size){return assertSize(size),createBuffer(size<0?0:checked(size)|0)}Buffer3.allocUnsafe=function(size){return allocUnsafe(size)};Buffer3.allocUnsafeSlow=function(size){return allocUnsafe(size)};function fromString(string,encoding){if((typeof encoding!="string"||encoding==="")&&(encoding="utf8"),!Buffer3.isEncoding(encoding))throw new TypeError("Unknown encoding: "+encoding);var length=byteLength(string,encoding)|0,buf=createBuffer(length),actual=buf.write(string,encoding);return actual!==length&&(buf=buf.slice(0,actual)),buf}function fromArrayLike(array){for(var length=array.length<0?0:checked(array.length)|0,buf=createBuffer(length),i=0;i<length;i+=1)buf[i]=array[i]&255;return buf}function fromArrayView(arrayView){if(isInstance(arrayView,Uint8Array)){var copy=new Uint8Array(arrayView);return fromArrayBuffer(copy.buffer,copy.byteOffset,copy.byteLength)}return fromArrayLike(arrayView)}function fromArrayBuffer(array,byteOffset,length){if(byteOffset<0||array.byteLength<byteOffset)throw new RangeError('"offset" is outside of buffer bounds');if(array.byteLength<byteOffset+(length||0))throw new RangeError('"length" is outside of buffer bounds');var buf;return byteOffset===void 0&&length===void 0?buf=new Uint8Array(array):length===void 0?buf=new Uint8Array(array,byteOffset):buf=new Uint8Array(array,byteOffset,length),Object.setPrototypeOf(buf,Buffer3.prototype),buf}function fromObject(obj){if(Buffer3.isBuffer(obj)){var len=checked(obj.length)|0,buf=createBuffer(len);return buf.length===0||obj.copy(buf,0,0,len),buf}if(obj.length!==void 0)return typeof obj.length!="number"||numberIsNaN(obj.length)?createBuffer(0):fromArrayLike(obj);if(obj.type==="Buffer"&&Array.isArray(obj.data))return fromArrayLike(obj.data)}function checked(length){if(length>=K_MAX_LENGTH)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+K_MAX_LENGTH.toString(16)+" bytes");return length|0}function SlowBuffer(length){return+length!=length&&(length=0),Buffer3.alloc(+length)}Buffer3.isBuffer=function(b){return b!=null&&b._isBuffer===!0&&b!==Buffer3.prototype};Buffer3.compare=function(a,b){if(isInstance(a,Uint8Array)&&(a=Buffer3.from(a,a.offset,a.byteLength)),isInstance(b,Uint8Array)&&(b=Buffer3.from(b,b.offset,b.byteLength)),!Buffer3.isBuffer(a)||!Buffer3.isBuffer(b))throw new TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array');if(a===b)return 0;for(var x=a.length,y=b.length,i=0,len=Math.min(x,y);i<len;++i)if(a[i]!==b[i]){x=a[i],y=b[i];break}return x<y?-1:y<x?1:0};Buffer3.isEncoding=function(encoding){switch(String(encoding).toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"latin1":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return!0;default:return!1}};Buffer3.concat=function(list,length){if(!Array.isArray(list))throw new TypeError('"list" argument must be an Array of Buffers');if(list.length===0)return Buffer3.alloc(0);var i;if(length===void 0)for(length=0,i=0;i<list.length;++i)length+=list[i].length;var buffer=Buffer3.allocUnsafe(length),pos=0;for(i=0;i<list.length;++i){var buf=list[i];if(isInstance(buf,Uint8Array))pos+buf.length>buffer.length?Buffer3.from(buf).copy(buffer,pos):Uint8Array.prototype.set.call(buffer,buf,pos);else if(Buffer3.isBuffer(buf))buf.copy(buffer,pos);else throw new TypeError('"list" argument must be an Array of Buffers');pos+=buf.length}return buffer};function byteLength(string,encoding){if(Buffer3.isBuffer(string))return string.length;if(ArrayBuffer.isView(string)||isInstance(string,ArrayBuffer))return string.byteLength;if(typeof string!="string")throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof string);var len=string.length,mustMatch=arguments.length>2&&arguments[2]===!0;if(!mustMatch&&len===0)return 0;for(var loweredCase=!1;;)switch(encoding){case"ascii":case"latin1":case"binary":return len;case"utf8":case"utf-8":return utf8ToBytes(string).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return len*2;case"hex":return len>>>1;case"base64":return base64ToBytes(string).length;default:if(loweredCase)return mustMatch?-1:utf8ToBytes(string).length;encoding=(""+encoding).toLowerCase(),loweredCase=!0}}Buffer3.byteLength=byteLength;function slowToString(encoding,start,end){var loweredCase=!1;if((start===void 0||start<0)&&(start=0),start>this.length||((end===void 0||end>this.length)&&(end=this.length),end<=0)||(end>>>=0,start>>>=0,end<=start))return"";for(encoding||(encoding="utf8");;)switch(encoding){case"hex":return hexSlice(this,start,end);case"utf8":case"utf-8":return utf8Slice(this,start,end);case"ascii":return asciiSlice(this,start,end);case"latin1":case"binary":return latin1Slice(this,start,end);case"base64":return base64Slice(this,start,end);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return utf16leSlice(this,start,end);default:if(loweredCase)throw new TypeError("Unknown encoding: "+encoding);encoding=(encoding+"").toLowerCase(),loweredCase=!0}}Buffer3.prototype._isBuffer=!0;function swap(b,n,m){var i=b[n];b[n]=b[m],b[m]=i}Buffer3.prototype.swap16=function(){var len=this.length;if(len%2!==0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(var i=0;i<len;i+=2)swap(this,i,i+1);return this};Buffer3.prototype.swap32=function(){var len=this.length;if(len%4!==0)throw new RangeError("Buffer size must be a multiple of 32-bits");for(var i=0;i<len;i+=4)swap(this,i,i+3),swap(this,i+1,i+2);return this};Buffer3.prototype.swap64=function(){var len=this.length;if(len%8!==0)throw new RangeError("Buffer size must be a multiple of 64-bits");for(var i=0;i<len;i+=8)swap(this,i,i+7),swap(this,i+1,i+6),swap(this,i+2,i+5),swap(this,i+3,i+4);return this};Buffer3.prototype.toString=function(){var length=this.length;return length===0?"":arguments.length===0?utf8Slice(this,0,length):slowToString.apply(this,arguments)};Buffer3.prototype.toLocaleString=Buffer3.prototype.toString;Buffer3.prototype.equals=function(b){if(!Buffer3.isBuffer(b))throw new TypeError("Argument must be a Buffer");return this===b?!0:Buffer3.compare(this,b)===0};Buffer3.prototype.inspect=function(){var str="",max=exports.INSPECT_MAX_BYTES;return str=this.toString("hex",0,max).replace(/(.{2})/g,"$1 ").trim(),this.length>max&&(str+=" ... "),"<Buffer "+str+">"};customInspectSymbol&&(Buffer3.prototype[customInspectSymbol]=Buffer3.prototype.inspect);Buffer3.prototype.compare=function(target,start,end,thisStart,thisEnd){if(isInstance(target,Uint8Array)&&(target=Buffer3.from(target,target.offset,target.byteLength)),!Buffer3.isBuffer(target))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof target);if(start===void 0&&(start=0),end===void 0&&(end=target?target.length:0),thisStart===void 0&&(thisStart=0),thisEnd===void 0&&(thisEnd=this.length),start<0||end>target.length||thisStart<0||thisEnd>this.length)throw new RangeError("out of range index");if(thisStart>=thisEnd&&start>=end)return 0;if(thisStart>=thisEnd)return-1;if(start>=end)return 1;if(start>>>=0,end>>>=0,thisStart>>>=0,thisEnd>>>=0,this===target)return 0;for(var x=thisEnd-thisStart,y=end-start,len=Math.min(x,y),thisCopy=this.slice(thisStart,thisEnd),targetCopy=target.slice(start,end),i=0;i<len;++i)if(thisCopy[i]!==targetCopy[i]){x=thisCopy[i],y=targetCopy[i];break}return x<y?-1:y<x?1:0};function bidirectionalIndexOf(buffer,val,byteOffset,encoding,dir){if(buffer.length===0)return-1;if(typeof byteOffset=="string"?(encoding=byteOffset,byteOffset=0):byteOffset>2147483647?byteOffset=2147483647:byteOffset<-2147483648&&(byteOffset=-2147483648),byteOffset=+byteOffset,numberIsNaN(byteOffset)&&(byteOffset=dir?0:buffer.length-1),byteOffset<0&&(byteOffset=buffer.length+byteOffset),byteOffset>=buffer.length){if(dir)return-1;byteOffset=buffer.length-1}else if(byteOffset<0)if(dir)byteOffset=0;else return-1;if(typeof val=="string"&&(val=Buffer3.from(val,encoding)),Buffer3.isBuffer(val))return val.length===0?-1:arrayIndexOf(buffer,val,byteOffset,encoding,dir);if(typeof val=="number")return val=val&255,typeof Uint8Array.prototype.indexOf=="function"?dir?Uint8Array.prototype.indexOf.call(buffer,val,byteOffset):Uint8Array.prototype.lastIndexOf.call(buffer,val,byteOffset):arrayIndexOf(buffer,[val],byteOffset,encoding,dir);throw new TypeError("val must be string, number or Buffer")}function arrayIndexOf(arr,val,byteOffset,encoding,dir){var indexSize=1,arrLength=arr.length,valLength=val.length;if(encoding!==void 0&&(encoding=String(encoding).toLowerCase(),encoding==="ucs2"||encoding==="ucs-2"||encoding==="utf16le"||encoding==="utf-16le")){if(arr.length<2||val.length<2)return-1;indexSize=2,arrLength/=2,valLength/=2,byteOffset/=2}function read(buf,i2){return indexSize===1?buf[i2]:buf.readUInt16BE(i2*indexSize)}var i;if(dir){var foundIndex=-1;for(i=byteOffset;i<arrLength;i++)if(read(arr,i)===read(val,foundIndex===-1?0:i-foundIndex)){if(foundIndex===-1&&(foundIndex=i),i-foundIndex+1===valLength)return foundIndex*indexSize}else foundIndex!==-1&&(i-=i-foundIndex),foundIndex=-1}else for(byteOffset+valLength>arrLength&&(byteOffset=arrLength-valLength),i=byteOffset;i>=0;i--){for(var found=!0,j=0;j<valLength;j++)if(read(arr,i+j)!==read(val,j)){found=!1;break}if(found)return i}return-1}Buffer3.prototype.includes=function(val,byteOffset,encoding){return this.indexOf(val,byteOffset,encoding)!==-1};Buffer3.prototype.indexOf=function(val,byteOffset,encoding){return bidirectionalIndexOf(this,val,byteOffset,encoding,!0)};Buffer3.prototype.lastIndexOf=function(val,byteOffset,encoding){return bidirectionalIndexOf(this,val,byteOffset,encoding,!1)};function hexWrite(buf,string,offset,length){offset=Number(offset)||0;var remaining=buf.length-offset;length?(length=Number(length),length>remaining&&(length=remaining)):length=remaining;var strLen=string.length;length>strLen/2&&(length=strLen/2);for(var i=0;i<length;++i){var parsed=parseInt(string.substr(i*2,2),16);if(numberIsNaN(parsed))return i;buf[offset+i]=parsed}return i}function utf8Write(buf,string,offset,length){return blitBuffer(utf8ToBytes(string,buf.length-offset),buf,offset,length)}function asciiWrite(buf,string,offset,length){return blitBuffer(asciiToBytes(string),buf,offset,length)}function base64Write(buf,string,offset,length){return blitBuffer(base64ToBytes(string),buf,offset,length)}function ucs2Write(buf,string,offset,length){return blitBuffer(utf16leToBytes(string,buf.length-offset),buf,offset,length)}Buffer3.prototype.write=function(string,offset,length,encoding){if(offset===void 0)encoding="utf8",length=this.length,offset=0;else if(length===void 0&&typeof offset=="string")encoding=offset,length=this.length,offset=0;else if(isFinite(offset))offset=offset>>>0,isFinite(length)?(length=length>>>0,encoding===void 0&&(encoding="utf8")):(encoding=length,length=void 0);else throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");var remaining=this.length-offset;if((length===void 0||length>remaining)&&(length=remaining),string.length>0&&(length<0||offset<0)||offset>this.length)throw new RangeError("Attempt to write outside buffer bounds");encoding||(encoding="utf8");for(var loweredCase=!1;;)switch(encoding){case"hex":return hexWrite(this,string,offset,length);case"utf8":case"utf-8":return utf8Write(this,string,offset,length);case"ascii":case"latin1":case"binary":return asciiWrite(this,string,offset,length);case"base64":return base64Write(this,string,offset,length);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return ucs2Write(this,string,offset,length);default:if(loweredCase)throw new TypeError("Unknown encoding: "+encoding);encoding=(""+encoding).toLowerCase(),loweredCase=!0}};Buffer3.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function base64Slice(buf,start,end){return start===0&&end===buf.length?base64.fromByteArray(buf):base64.fromByteArray(buf.slice(start,end))}function utf8Slice(buf,start,end){end=Math.min(buf.length,end);for(var res=[],i=start;i<end;){var firstByte=buf[i],codePoint=null,bytesPerSequence=firstByte>239?4:firstByte>223?3:firstByte>191?2:1;if(i+bytesPerSequence<=end){var secondByte,thirdByte,fourthByte,tempCodePoint;switch(bytesPerSequence){case 1:firstByte<128&&(codePoint=firstByte);break;case 2:secondByte=buf[i+1],(secondByte&192)===128&&(tempCodePoint=(firstByte&31)<<6|secondByte&63,tempCodePoint>127&&(codePoint=tempCodePoint));break;case 3:secondByte=buf[i+1],thirdByte=buf[i+2],(secondByte&192)===128&&(thirdByte&192)===128&&(tempCodePoint=(firstByte&15)<<12|(secondByte&63)<<6|thirdByte&63,tempCodePoint>2047&&(tempCodePoint<55296||tempCodePoint>57343)&&(codePoint=tempCodePoint));break;case 4:secondByte=buf[i+1],thirdByte=buf[i+2],fourthByte=buf[i+3],(secondByte&192)===128&&(thirdByte&192)===128&&(fourthByte&192)===128&&(tempCodePoint=(firstByte&15)<<18|(secondByte&63)<<12|(thirdByte&63)<<6|fourthByte&63,tempCodePoint>65535&&tempCodePoint<1114112&&(codePoint=tempCodePoint))}}codePoint===null?(codePoint=65533,bytesPerSequence=1):codePoint>65535&&(codePoint-=65536,res.push(codePoint>>>10&1023|55296),codePoint=56320|codePoint&1023),res.push(codePoint),i+=bytesPerSequence}return decodeCodePointsArray(res)}var MAX_ARGUMENTS_LENGTH=4096;function decodeCodePointsArray(codePoints){var len=codePoints.length;if(len<=MAX_ARGUMENTS_LENGTH)return String.fromCharCode.apply(String,codePoints);for(var res="",i=0;i<len;)res+=String.fromCharCode.apply(String,codePoints.slice(i,i+=MAX_ARGUMENTS_LENGTH));return res}function asciiSlice(buf,start,end){var ret="";end=Math.min(buf.length,end);for(var i=start;i<end;++i)ret+=String.fromCharCode(buf[i]&127);return ret}function latin1Slice(buf,start,end){var ret="";end=Math.min(buf.length,end);for(var i=start;i<end;++i)ret+=String.fromCharCode(buf[i]);return ret}function hexSlice(buf,start,end){var len=buf.length;(!start||start<0)&&(start=0),(!end||end<0||end>len)&&(end=len);for(var out="",i=start;i<end;++i)out+=hexSliceLookupTable[buf[i]];return out}function utf16leSlice(buf,start,end){for(var bytes=buf.slice(start,end),res="",i=0;i<bytes.length-1;i+=2)res+=String.fromCharCode(bytes[i]+bytes[i+1]*256);return res}Buffer3.prototype.slice=function(start,end){var len=this.length;start=~~start,end=end===void 0?len:~~end,start<0?(start+=len,start<0&&(start=0)):start>len&&(start=len),end<0?(end+=len,end<0&&(end=0)):end>len&&(end=len),end<start&&(end=start);var newBuf=this.subarray(start,end);return Object.setPrototypeOf(newBuf,Buffer3.prototype),newBuf};function checkOffset(offset,ext,length){if(offset%1!==0||offset<0)throw new RangeError("offset is not uint");if(offset+ext>length)throw new RangeError("Trying to access beyond buffer length")}Buffer3.prototype.readUintLE=Buffer3.prototype.readUIntLE=function(offset,byteLength2,noAssert){offset=offset>>>0,byteLength2=byteLength2>>>0,noAssert||checkOffset(offset,byteLength2,this.length);for(var val=this[offset],mul=1,i=0;++i<byteLength2&&(mul*=256);)val+=this[offset+i]*mul;return val};Buffer3.prototype.readUintBE=Buffer3.prototype.readUIntBE=function(offset,byteLength2,noAssert){offset=offset>>>0,byteLength2=byteLength2>>>0,noAssert||checkOffset(offset,byteLength2,this.length);for(var val=this[offset+--byteLength2],mul=1;byteLength2>0&&(mul*=256);)val+=this[offset+--byteLength2]*mul;return val};Buffer3.prototype.readUint8=Buffer3.prototype.readUInt8=function(offset,noAssert){return offset=offset>>>0,noAssert||checkOffset(offset,1,this.length),this[offset]};Buffer3.prototype.readUint16LE=Buffer3.prototype.readUInt16LE=function(offset,noAssert){return offset=offset>>>0,noAssert||checkOffset(offset,2,this.length),this[offset]|this[offset+1]<<8};Buffer3.prototype.readUint16BE=Buffer3.prototype.readUInt16BE=function(offset,noAssert){return offset=offset>>>0,noAssert||checkOffset(offset,2,this.length),this[offset]<<8|this[offset+1]};Buffer3.prototype.readUint32LE=Buffer3.prototype.readUInt32LE=function(offset,noAssert){return offset=offset>>>0,noAssert||checkOffset(offset,4,this.length),(this[offset]|this[offset+1]<<8|this[offset+2]<<16)+this[offset+3]*16777216};Buffer3.prototype.readUint32BE=Buffer3.prototype.readUInt32BE=function(offset,noAssert){return offset=offset>>>0,noAssert||checkOffset(offset,4,this.length),this[offset]*16777216+(this[offset+1]<<16|this[offset+2]<<8|this[offset+3])};Buffer3.prototype.readIntLE=function(offset,byteLength2,noAssert){offset=offset>>>0,byteLength2=byteLength2>>>0,noAssert||checkOffset(offset,byteLength2,this.length);for(var val=this[offset],mul=1,i=0;++i<byteLength2&&(mul*=256);)val+=this[offset+i]*mul;return mul*=128,val>=mul&&(val-=Math.pow(2,8*byteLength2)),val};Buffer3.prototype.readIntBE=function(offset,byteLength2,noAssert){offset=offset>>>0,byteLength2=byteLength2>>>0,noAssert||checkOffset(offset,byteLength2,this.length);for(var i=byteLength2,mul=1,val=this[offset+--i];i>0&&(mul*=256);)val+=this[offset+--i]*mul;return mul*=128,val>=mul&&(val-=Math.pow(2,8*byteLength2)),val};Buffer3.prototype.readInt8=function(offset,noAssert){return offset=offset>>>0,noAssert||checkOffset(offset,1,this.length),this[offset]&128?(255-this[offset]+1)*-1:this[offset]};Buffer3.prototype.readInt16LE=function(offset,noAssert){offset=offset>>>0,noAssert||checkOffset(offset,2,this.length);var val=this[offset]|this[offset+1]<<8;return val&32768?val|4294901760:val};Buffer3.prototype.readInt16BE=function(offset,noAssert){offset=offset>>>0,noAssert||checkOffset(offset,2,this.length);var val=this[offset+1]|this[offset]<<8;return val&32768?val|4294901760:val};Buffer3.prototype.readInt32LE=function(offset,noAssert){return offset=offset>>>0,noAssert||checkOffset(offset,4,this.length),this[offset]|this[offset+1]<<8|this[offset+2]<<16|this[offset+3]<<24};Buffer3.prototype.readInt32BE=function(offset,noAssert){return offset=offset>>>0,noAssert||checkOffset(offset,4,this.length),this[offset]<<24|this[offset+1]<<16|this[offset+2]<<8|this[offset+3]};Buffer3.prototype.readFloatLE=function(offset,noAssert){return offset=offset>>>0,noAssert||checkOffset(offset,4,this.length),ieee754.read(this,offset,!0,23,4)};Buffer3.prototype.readFloatBE=function(offset,noAssert){return offset=offset>>>0,noAssert||checkOffset(offset,4,this.length),ieee754.read(this,offset,!1,23,4)};Buffer3.prototype.readDoubleLE=function(offset,noAssert){return offset=offset>>>0,noAssert||checkOffset(offset,8,this.length),ieee754.read(this,offset,!0,52,8)};Buffer3.prototype.readDoubleBE=function(offset,noAssert){return offset=offset>>>0,noAssert||checkOffset(offset,8,this.length),ieee754.read(this,offset,!1,52,8)};function checkInt(buf,value,offset,ext,max,min){if(!Buffer3.isBuffer(buf))throw new TypeError('"buffer" argument must be a Buffer instance');if(value>max||value<min)throw new RangeError('"value" argument is out of bounds');if(offset+ext>buf.length)throw new RangeError("Index out of range")}Buffer3.prototype.writeUintLE=Buffer3.prototype.writeUIntLE=function(value,offset,byteLength2,noAssert){if(value=+value,offset=offset>>>0,byteLength2=byteLength2>>>0,!noAssert){var maxBytes=Math.pow(2,8*byteLength2)-1;checkInt(this,value,offset,byteLength2,maxBytes,0)}var mul=1,i=0;for(this[offset]=value&255;++i<byteLength2&&(mul*=256);)this[offset+i]=value/mul&255;return offset+byteLength2};Buffer3.prototype.writeUintBE=Buffer3.prototype.writeUIntBE=function(value,offset,byteLength2,noAssert){if(value=+value,offset=offset>>>0,byteLength2=byteLength2>>>0,!noAssert){var maxBytes=Math.pow(2,8*byteLength2)-1;checkInt(this,value,offset,byteLength2,maxBytes,0)}var i=byteLength2-1,mul=1;for(this[offset+i]=value&255;--i>=0&&(mul*=256);)this[offset+i]=value/mul&255;return offset+byteLength2};Buffer3.prototype.writeUint8=Buffer3.prototype.writeUInt8=function(value,offset,noAssert){return value=+value,offset=offset>>>0,noAssert||checkInt(this,value,offset,1,255,0),this[offset]=value&255,offset+1};Buffer3.prototype.writeUint16LE=Buffer3.prototype.writeUInt16LE=function(value,offset,noAssert){return value=+value,offset=offset>>>0,noAssert||checkInt(this,value,offset,2,65535,0),this[offset]=value&255,this[offset+1]=value>>>8,offset+2};Buffer3.prototype.writeUint16BE=Buffer3.prototype.writeUInt16BE=function(value,offset,noAssert){return value=+value,offset=offset>>>0,noAssert||checkInt(this,value,offset,2,65535,0),this[offset]=value>>>8,this[offset+1]=value&255,offset+2};Buffer3.prototype.writeUint32LE=Buffer3.prototype.writeUInt32LE=function(value,offset,noAssert){return value=+value,offset=offset>>>0,noAssert||checkInt(this,value,offset,4,4294967295,0),this[offset+3]=value>>>24,this[offset+2]=value>>>16,this[offset+1]=value>>>8,this[offset]=value&255,offset+4};Buffer3.prototype.writeUint32BE=Buffer3.prototype.writeUInt32BE=function(value,offset,noAssert){return value=+value,offset=offset>>>0,noAssert||checkInt(this,value,offset,4,4294967295,0),this[offset]=value>>>24,this[offset+1]=value>>>16,this[offset+2]=value>>>8,this[offset+3]=value&255,offset+4};Buffer3.prototype.writeIntLE=function(value,offset,byteLength2,noAssert){if(value=+value,offset=offset>>>0,!noAssert){var limit=Math.pow(2,8*byteLength2-1);checkInt(this,value,offset,byteLength2,limit-1,-limit)}var i=0,mul=1,sub=0;for(this[offset]=value&255;++i<byteLength2&&(mul*=256);)value<0&&sub===0&&this[offset+i-1]!==0&&(sub=1),this[offset+i]=(value/mul>>0)-sub&255;return offset+byteLength2};Buffer3.prototype.writeIntBE=function(value,offset,byteLength2,noAssert){if(value=+value,offset=offset>>>0,!noAssert){var limit=Math.pow(2,8*byteLength2-1);checkInt(this,value,offset,byteLength2,limit-1,-limit)}var i=byteLength2-1,mul=1,sub=0;for(this[offset+i]=value&255;--i>=0&&(mul*=256);)value<0&&sub===0&&this[offset+i+1]!==0&&(sub=1),this[offset+i]=(value/mul>>0)-sub&255;return offset+byteLength2};Buffer3.prototype.writeInt8=function(value,offset,noAssert){return value=+value,offset=offset>>>0,noAssert||checkInt(this,value,offset,1,127,-128),value<0&&(value=255+value+1),this[offset]=value&255,offset+1};Buffer3.prototype.writeInt16LE=function(value,offset,noAssert){return value=+value,offset=offset>>>0,noAssert||checkInt(this,value,offset,2,32767,-32768),this[offset]=value&255,this[offset+1]=value>>>8,offset+2};Buffer3.prototype.writeInt16BE=function(value,offset,noAssert){return value=+value,offset=offset>>>0,noAssert||checkInt(this,value,offset,2,32767,-32768),this[offset]=value>>>8,this[offset+1]=value&255,offset+2};Buffer3.prototype.writeInt32LE=function(value,offset,noAssert){return value=+value,offset=offset>>>0,noAssert||checkInt(this,value,offset,4,2147483647,-2147483648),this[offset]=value&255,this[offset+1]=value>>>8,this[offset+2]=value>>>16,this[offset+3]=value>>>24,offset+4};Buffer3.prototype.writeInt32BE=function(value,offset,noAssert){return value=+value,offset=offset>>>0,noAssert||checkInt(this,value,offset,4,2147483647,-2147483648),value<0&&(value=4294967295+value+1),this[offset]=value>>>24,this[offset+1]=value>>>16,this[offset+2]=value>>>8,this[offset+3]=value&255,offset+4};function checkIEEE754(buf,value,offset,ext,max,min){if(offset+ext>buf.length)throw new RangeError("Index out of range");if(offset<0)throw new RangeError("Index out of range")}function writeFloat(buf,value,offset,littleEndian,noAssert){return value=+value,offset=offset>>>0,noAssert||checkIEEE754(buf,value,offset,4,34028234663852886e22,-34028234663852886e22),ieee754.write(buf,value,offset,littleEndian,23,4),offset+4}Buffer3.prototype.writeFloatLE=function(value,offset,noAssert){return writeFloat(this,value,offset,!0,noAssert)};Buffer3.prototype.writeFloatBE=function(value,offset,noAssert){return writeFloat(this,value,offset,!1,noAssert)};function writeDouble(buf,value,offset,littleEndian,noAssert){return value=+value,offset=offset>>>0,noAssert||checkIEEE754(buf,value,offset,8,17976931348623157e292,-17976931348623157e292),ieee754.write(buf,value,offset,littleEndian,52,8),offset+8}Buffer3.prototype.writeDoubleLE=function(value,offset,noAssert){return writeDouble(this,value,offset,!0,noAssert)};Buffer3.prototype.writeDoubleBE=function(value,offset,noAssert){return writeDouble(this,value,offset,!1,noAssert)};Buffer3.prototype.copy=function(target,targetStart,start,end){if(!Buffer3.isBuffer(target))throw new TypeError("argument should be a Buffer");if(start||(start=0),!end&&end!==0&&(end=this.length),targetStart>=target.length&&(targetStart=target.length),targetStart||(targetStart=0),end>0&&end<start&&(end=start),end===start||target.length===0||this.length===0)return 0;if(targetStart<0)throw new RangeError("targetStart out of bounds");if(start<0||start>=this.length)throw new RangeError("Index out of range");if(end<0)throw new RangeError("sourceEnd out of bounds");end>this.length&&(end=this.length),target.length-targetStart<end-start&&(end=target.length-targetStart+start);var len=end-start;return this===target&&typeof Uint8Array.prototype.copyWithin=="function"?this.copyWithin(targetStart,start,end):Uint8Array.prototype.set.call(target,this.subarray(start,end),targetStart),len};Buffer3.prototype.fill=function(val,start,end,encoding){if(typeof val=="string"){if(typeof start=="string"?(encoding=start,start=0,end=this.length):typeof end=="string"&&(encoding=end,end=this.length),encoding!==void 0&&typeof encoding!="string")throw new TypeError("encoding must be a string");if(typeof encoding=="string"&&!Buffer3.isEncoding(encoding))throw new TypeError("Unknown encoding: "+encoding);if(val.length===1){var code=val.charCodeAt(0);(encoding==="utf8"&&code<128||encoding==="latin1")&&(val=code)}}else typeof val=="number"?val=val&255:typeof val=="boolean"&&(val=Number(val));if(start<0||this.length<start||this.length<end)throw new RangeError("Out of range index");if(end<=start)return this;start=start>>>0,end=end===void 0?this.length:end>>>0,val||(val=0);var i;if(typeof val=="number")for(i=start;i<end;++i)this[i]=val;else{var bytes=Buffer3.isBuffer(val)?val:Buffer3.from(val,encoding),len=bytes.length;if(len===0)throw new TypeError('The value "'+val+'" is invalid for argument "value"');for(i=0;i<end-start;++i)this[i+start]=bytes[i%len]}return this};var INVALID_BASE64_RE=/[^+/0-9A-Za-z-_]/g;function base64clean(str){if(str=str.split("=")[0],str=str.trim().replace(INVALID_BASE64_RE,""),str.length<2)return"";for(;str.length%4!==0;)str=str+"=";return str}function utf8ToBytes(string,units){units=units||1/0;for(var codePoint,length=string.length,leadSurrogate=null,bytes=[],i=0;i<length;++i){if(codePoint=string.charCodeAt(i),codePoint>55295&&codePoint<57344){if(!leadSurrogate){if(codePoint>56319){(units-=3)>-1&&bytes.push(239,191,189);continue}else if(i+1===length){(units-=3)>-1&&bytes.push(239,191,189);continue}leadSurrogate=codePoint;continue}if(codePoint<56320){(units-=3)>-1&&bytes.push(239,191,189),leadSurrogate=codePoint;continue}codePoint=(leadSurrogate-55296<<10|codePoint-56320)+65536}else leadSurrogate&&(units-=3)>-1&&bytes.push(239,191,189);if(leadSurrogate=null,codePoint<128){if((units-=1)<0)break;bytes.push(codePoint)}else if(codePoint<2048){if((units-=2)<0)break;bytes.push(codePoint>>6|192,codePoint&63|128)}else if(codePoint<65536){if((units-=3)<0)break;bytes.push(codePoint>>12|224,codePoint>>6&63|128,codePoint&63|128)}else if(codePoint<1114112){if((units-=4)<0)break;bytes.push(codePoint>>18|240,codePoint>>12&63|128,codePoint>>6&63|128,codePoint&63|128)}else throw new Error("Invalid code point")}return bytes}function asciiToBytes(str){for(var byteArray=[],i=0;i<str.length;++i)byteArray.push(str.charCodeAt(i)&255);return byteArray}function utf16leToBytes(str,units){for(var c,hi,lo,byteArray=[],i=0;i<str.length&&!((units-=2)<0);++i)c=str.charCodeAt(i),hi=c>>8,lo=c%256,byteArray.push(lo),byteArray.push(hi);return byteArray}function base64ToBytes(str){return base64.toByteArray(base64clean(str))}function blitBuffer(src,dst,offset,length){for(var i=0;i<length&&!(i+offset>=dst.length||i>=src.length);++i)dst[i+offset]=src[i];return i}function isInstance(obj,type){return obj instanceof type||obj!=null&&obj.constructor!=null&&obj.constructor.name!=null&&obj.constructor.name===type.name}function numberIsNaN(obj){return obj!==obj}var hexSliceLookupTable=function(){for(var alphabet="0123456789abcdef",table=new Array(256),i=0;i<16;++i)for(var i16=i*16,j=0;j<16;++j)table[i16+j]=alphabet[i]+alphabet[j];return table}()}});var require_browser=__commonJS({"node_modules/process/browser.js"(exports,module){init_define_process_env();init_shim();var process2=module.exports={},cachedSetTimeout,cachedClearTimeout;function defaultSetTimout(){throw new Error("setTimeout has not been defined")}function defaultClearTimeout(){throw new Error("clearTimeout has not been defined")}(function(){try{typeof setTimeout=="function"?cachedSetTimeout=setTimeout:cachedSetTimeout=defaultSetTimout}catch(e){cachedSetTimeout=defaultSetTimout}try{typeof clearTimeout=="function"?cachedClearTimeout=clearTimeout:cachedClearTimeout=defaultClearTimeout}catch(e){cachedClearTimeout=defaultClearTimeout}})();function runTimeout(fun){if(cachedSetTimeout===setTimeout)return setTimeout(fun,0);if((cachedSetTimeout===defaultSetTimout||!cachedSetTimeout)&&setTimeout)return cachedSetTimeout=setTimeout,setTimeout(fun,0);try{return cachedSetTimeout(fun,0)}catch(e){try{return cachedSetTimeout.call(null,fun,0)}catch(e2){return cachedSetTimeout.call(this,fun,0)}}}function runClearTimeout(marker){if(cachedClearTimeout===clearTimeout)return clearTimeout(marker);if((cachedClearTimeout===defaultClearTimeout||!cachedClearTimeout)&&clearTimeout)return cachedClearTimeout=clearTimeout,clearTimeout(marker);try{return cachedClearTimeout(marker)}catch(e){try{return cachedClearTimeout.call(null,marker)}catch(e2){return cachedClearTimeout.call(this,marker)}}}var queue=[],draining=!1,currentQueue,queueIndex=-1;function cleanUpNextTick(){!draining||!currentQueue||(draining=!1,currentQueue.length?queue=currentQueue.concat(queue):queueIndex=-1,queue.length&&drainQueue())}function drainQueue(){if(!draining){var timeout=runTimeout(cleanUpNextTick);draining=!0;for(var len=queue.length;len;){for(currentQueue=queue,queue=[];++queueIndex<len;)currentQueue&&currentQueue[queueIndex].run();queueIndex=-1,len=queue.length}currentQueue=null,draining=!1,runClearTimeout(timeout)}}process2.nextTick=function(fun){var args=new Array(arguments.length-1);if(arguments.length>1)for(var i=1;i<arguments.length;i++)args[i-1]=arguments[i];queue.push(new Item(fun,args)),queue.length===1&&!draining&&runTimeout(drainQueue)};function Item(fun,array){this.fun=fun,this.array=array}Item.prototype.run=function(){this.fun.apply(null,this.array)};process2.title="browser";process2.browser=!0;process2.env={};process2.argv=[];process2.version="";process2.versions={};function noop(){}process2.on=noop;process2.addListener=noop;process2.once=noop;process2.off=noop;process2.removeListener=noop;process2.removeAllListeners=noop;process2.emit=noop;process2.prependListener=noop;process2.prependOnceListener=noop;process2.listeners=function(name){return[]};process2.binding=function(name){throw new Error("process.binding is not supported")};process2.cwd=function(){return"/"};process2.chdir=function(dir){throw new Error("process.chdir is not supported")};process2.umask=function(){return 0}}});var import_buffer,import_process,_globalThis,init_shim=__esm({"node_modules/node-stdlib-browser/helpers/esbuild/shim.js"(){import_buffer=__toESM(require_buffer()),import_process=__toESM(require_browser()),_globalThis=function(Object2){function get(){var _global3=this||self;return delete Object2.prototype.__magic__,_global3}if(typeof globalThis=="object")return globalThis;if(this)return get();Object2.defineProperty(Object2.prototype,"__magic__",{configurable:!0,get});var _global2=__magic__;return _global2}(Object)}});var require_fails=__commonJS({"node_modules/core-js/internals/fails.js"(exports,module){"use strict";init_define_process_env();init_shim();module.exports=function(exec){try{return!!exec()}catch(error){return!0}}}});var require_function_bind_native=__commonJS({"node_modules/core-js/internals/function-bind-native.js"(exports,module){"use strict";init_define_process_env();init_shim();var fails=require_fails();module.exports=!fails(function(){var test=(function(){}).bind();return typeof test!="function"||test.hasOwnProperty("prototype")})}});var require_function_uncurry_this=__commonJS({"node_modules/core-js/internals/function-uncurry-this.js"(exports,module){"use strict";init_define_process_env();init_shim();var NATIVE_BIND=require_function_bind_native(),FunctionPrototype=Function.prototype,call=FunctionPrototype.call,uncurryThisWithBind=NATIVE_BIND&&FunctionPrototype.bind.bind(call,call);module.exports=NATIVE_BIND?uncurryThisWithBind:function(fn){return function(){return call.apply(fn,arguments)}}}});var require_classof_raw=__commonJS({"node_modules/core-js/internals/classof-raw.js"(exports,module){"use strict";init_define_process_env();init_shim();var uncurryThis=require_function_uncurry_this(),toString=uncurryThis({}.toString),stringSlice=uncurryThis("".slice);module.exports=function(it){return stringSlice(toString(it),8,-1)}}});var require_indexed_object=__commonJS({"node_modules/core-js/internals/indexed-object.js"(exports,module){"use strict";init_define_process_env();init_shim();var uncurryThis=require_function_uncurry_this(),fails=require_fails(),classof=require_classof_raw(),$Object=Object,split=uncurryThis("".split);module.exports=fails(function(){return!$Object("z").propertyIsEnumerable(0)})?function(it){return classof(it)==="String"?split(it,""):$Object(it)}:$Object}});var require_is_null_or_undefined=__commonJS({"node_modules/core-js/internals/is-null-or-undefined.js"(exports,module){"use strict";init_define_process_env();init_shim();module.exports=function(it){return it==null}}});var require_require_object_coercible=__commonJS({"node_modules/core-js/internals/require-object-coercible.js"(exports,module){"use strict";init_define_process_env();init_shim();var isNullOrUndefined=require_is_null_or_undefined(),$TypeError=TypeError;module.exports=function(it){if(isNullOrUndefined(it))throw new $TypeError("Can't call method on "+it);return it}}});var require_to_indexed_object=__commonJS({"node_modules/core-js/internals/to-indexed-object.js"(exports,module){"use strict";init_define_process_env();init_shim();var IndexedObject=require_indexed_object(),requireObjectCoercible=require_require_object_coercible();module.exports=function(it){return IndexedObject(requireObjectCoercible(it))}}});var require_global=__commonJS({"node_modules/core-js/internals/global.js"(exports,module){"use strict";init_define_process_env();init_shim();var check=function(it){return it&&it.Math===Math&&it};module.exports=check(typeof globalThis=="object"&&globalThis)||check(typeof window=="object"&&window)||check(typeof self=="object"&&self)||check(typeof window=="object"&&window)||check(typeof exports=="object"&&exports)||function(){return this}()||Function("return this")()}});var require_is_pure=__commonJS({"node_modules/core-js/internals/is-pure.js"(exports,module){"use strict";init_define_process_env();init_shim();module.exports=!1}});var require_define_global_property=__commonJS({"node_modules/core-js/internals/define-global-property.js"(exports,module){"use strict";init_define_process_env();init_shim();var global=require_global(),defineProperty=Object.defineProperty;module.exports=function(key,value){try{defineProperty(global,key,{value,configurable:!0,writable:!0})}catch(error){global[key]=value}return value}}});var require_shared_store=__commonJS({"node_modules/core-js/internals/shared-store.js"(exports,module){"use strict";init_define_process_env();init_shim();var global=require_global(),defineGlobalProperty=require_define_global_property(),SHARED="__core-js_shared__",store=global[SHARED]||defineGlobalProperty(SHARED,{});module.exports=store}});var require_shared=__commonJS({"node_modules/core-js/internals/shared.js"(exports,module){"use strict";init_define_process_env();init_shim();var IS_PURE=require_is_pure(),store=require_shared_store();(module.exports=function(key,value){return store[key]||(store[key]=value!==void 0?value:{})})("versions",[]).push({version:"3.35.1",mode:IS_PURE?"pure":"global",copyright:"\xA9 2014-2024 Denis Pushkarev (zloirock.ru)",license:"https://github.com/zloirock/core-js/blob/v3.35.1/LICENSE",source:"https://github.com/zloirock/core-js"})}});var require_to_object=__commonJS({"node_modules/core-js/internals/to-object.js"(exports,module){"use strict";init_define_process_env();init_shim();var requireObjectCoercible=require_require_object_coercible(),$Object=Object;module.exports=function(argument){return $Object(requireObjectCoercible(argument))}}});var require_has_own_property=__commonJS({"node_modules/core-js/internals/has-own-property.js"(exports,module){"use strict";init_define_process_env();init_shim();var uncurryThis=require_function_uncurry_this(),toObject=require_to_object(),hasOwnProperty=uncurryThis({}.hasOwnProperty);module.exports=Object.hasOwn||function(it,key){return hasOwnProperty(toObject(it),key)}}});var require_uid=__commonJS({"node_modules/core-js/internals/uid.js"(exports,module){"use strict";init_define_process_env();init_shim();var uncurryThis=require_function_uncurry_this(),id=0,postfix=Math.random(),toString=uncurryThis(1 .toString);module.exports=function(key){return"Symbol("+(key===void 0?"":key)+")_"+toString(++id+postfix,36)}}});var require_engine_user_agent=__commonJS({"node_modules/core-js/internals/engine-user-agent.js"(exports,module){"use strict";init_define_process_env();init_shim();module.exports=typeof navigator<"u"&&String(navigator.userAgent)||""}});var require_engine_v8_version=__commonJS({"node_modules/core-js/internals/engine-v8-version.js"(exports,module){"use strict";init_define_process_env();init_shim();var global=require_global(),userAgent=require_engine_user_agent(),process2=global.process,Deno=global.Deno,versions=process2&&process2.versions||Deno&&Deno.version,v8=versions&&versions.v8,match,version;v8&&(match=v8.split("."),version=match[0]>0&&match[0]<4?1:+(match[0]+match[1]));!version&&userAgent&&(match=userAgent.match(/Edge\/(\d+)/),(!match||match[1]>=74)&&(match=userAgent.match(/Chrome\/(\d+)/),match&&(version=+match[1])));module.exports=version}});var require_symbol_constructor_detection=__commonJS({"node_modules/core-js/internals/symbol-constructor-detection.js"(exports,module){"use strict";init_define_process_env();init_shim();var V8_VERSION=require_engine_v8_version(),fails=require_fails(),global=require_global(),$String=global.String;module.exports=!!Object.getOwnPropertySymbols&&!fails(function(){var symbol=Symbol("symbol detection");return!$String(symbol)||!(Object(symbol)instanceof Symbol)||!Symbol.sham&&V8_VERSION&&V8_VERSION<41})}});var require_use_symbol_as_uid=__commonJS({"node_modules/core-js/internals/use-symbol-as-uid.js"(exports,module){"use strict";init_define_process_env();init_shim();var NATIVE_SYMBOL=require_symbol_constructor_detection();module.exports=NATIVE_SYMBOL&&!Symbol.sham&&typeof Symbol.iterator=="symbol"}});var require_well_known_symbol=__commonJS({"node_modules/core-js/internals/well-known-symbol.js"(exports,module){"use strict";init_define_process_env();init_shim();var global=require_global(),shared=require_shared(),hasOwn=require_has_own_property(),uid=require_uid(),NATIVE_SYMBOL=require_symbol_constructor_detection(),USE_SYMBOL_AS_UID=require_use_symbol_as_uid(),Symbol2=global.Symbol,WellKnownSymbolsStore=shared("wks"),createWellKnownSymbol=USE_SYMBOL_AS_UID?Symbol2.for||Symbol2:Symbol2&&Symbol2.withoutSetter||uid;module.exports=function(name){return hasOwn(WellKnownSymbolsStore,name)||(WellKnownSymbolsStore[name]=NATIVE_SYMBOL&&hasOwn(Symbol2,name)?Symbol2[name]:createWellKnownSymbol("Symbol."+name)),WellKnownSymbolsStore[name]}}});var require_is_callable=__commonJS({"node_modules/core-js/internals/is-callable.js"(exports,module){"use strict";init_define_process_env();init_shim();var documentAll=typeof document=="object"&&document.all;module.exports=typeof documentAll>"u"&&documentAll!==void 0?function(argument){return typeof argument=="function"||argument===documentAll}:function(argument){return typeof argument=="function"}}});var require_is_object=__commonJS({"node_modules/core-js/internals/is-object.js"(exports,module){"use strict";init_define_process_env();init_shim();var isCallable=require_is_callable();module.exports=function(it){return typeof it=="object"?it!==null:isCallable(it)}}});var require_an_object=__commonJS({"node_modules/core-js/internals/an-object.js"(exports,module){"use strict";init_define_process_env();init_shim();var isObject=require_is_object(),$String=String,$TypeError=TypeError;module.exports=function(argument){if(isObject(argument))return argument;throw new $TypeError($String(argument)+" is not an object")}}});var require_descriptors=__commonJS({"node_modules/core-js/internals/descriptors.js"(exports,module){"use strict";init_define_process_env();init_shim();var fails=require_fails();module.exports=!fails(function(){return Object.defineProperty({},1,{get:function(){return 7}})[1]!==7})}});var require_v8_prototype_define_bug=__commonJS({"node_modules/core-js/internals/v8-prototype-define-bug.js"(exports,module){"use strict";init_define_process_env();init_shim();var DESCRIPTORS=require_descriptors(),fails=require_fails();module.exports=DESCRIPTORS&&fails(function(){return Object.defineProperty(function(){},"prototype",{value:42,writable:!1}).prototype!==42})}});var require_document_create_element=__commonJS({"node_modules/core-js/internals/document-create-element.js"(exports,module){"use strict";init_define_process_env();init_shim();var global=require_global(),isObject=require_is_object(),document2=global.document,EXISTS=isObject(document2)&&isObject(document2.createElement);module.exports=function(it){return EXISTS?document2.createElement(it):{}}}});var require_ie8_dom_define=__commonJS({"node_modules/core-js/internals/ie8-dom-define.js"(exports,module){"use strict";init_define_process_env();init_shim();var DESCRIPTORS=require_descriptors(),fails=require_fails(),createElement=require_document_create_element();module.exports=!DESCRIPTORS&&!fails(function(){return Object.defineProperty(createElement("div"),"a",{get:function(){return 7}}).a!==7})}});var require_function_call=__commonJS({"node_modules/core-js/internals/function-call.js"(exports,module){"use strict";init_define_process_env();init_shim();var NATIVE_BIND=require_function_bind_native(),call=Function.prototype.call;module.exports=NATIVE_BIND?call.bind(call):function(){return call.apply(call,arguments)}}});var require_get_built_in=__commonJS({"node_modules/core-js/internals/get-built-in.js"(exports,module){"use strict";init_define_process_env();init_shim();var global=require_global(),isCallable=require_is_callable(),aFunction=function(argument){return isCallable(argument)?argument:void 0};module.exports=function(namespace,method){return arguments.length<2?aFunction(global[namespace]):global[namespace]&&global[namespace][method]}}});var require_object_is_prototype_of=__commonJS({"node_modules/core-js/internals/object-is-prototype-of.js"(exports,module){"use strict";init_define_process_env();init_shim();var uncurryThis=require_function_uncurry_this();module.exports=uncurryThis({}.isPrototypeOf)}});var require_is_symbol=__commonJS({"node_modules/core-js/internals/is-symbol.js"(exports,module){"use strict";init_define_process_env();init_shim();var getBuiltIn=require_get_built_in(),isCallable=require_is_callable(),isPrototypeOf=require_object_is_prototype_of(),USE_SYMBOL_AS_UID=require_use_symbol_as_uid(),$Object=Object;module.exports=USE_SYMBOL_AS_UID?function(it){return typeof it=="symbol"}:function(it){var $Symbol=getBuiltIn("Symbol");return isCallable($Symbol)&&isPrototypeOf($Symbol.prototype,$Object(it))}}});var require_try_to_string=__commonJS({"node_modules/core-js/internals/try-to-string.js"(exports,module){"use strict";init_define_process_env();init_shim();var $String=String;module.exports=function(argument){try{return $String(argument)}catch(error){return"Object"}}}});var require_a_callable=__commonJS({"node_modules/core-js/internals/a-callable.js"(exports,module){"use strict";init_define_process_env();init_shim();var isCallable=require_is_callable(),tryToString=require_try_to_string(),$TypeError=TypeError;module.exports=function(argument){if(isCallable(argument))return argument;throw new $TypeError(tryToString(argument)+" is not a function")}}});var require_get_method=__commonJS({"node_modules/core-js/internals/get-method.js"(exports,module){"use strict";init_define_process_env();init_shim();var aCallable=require_a_callable(),isNullOrUndefined=require_is_null_or_undefined();module.exports=function(V,P){var func=V[P];return isNullOrUndefined(func)?void 0:aCallable(func)}}});var require_ordinary_to_primitive=__commonJS({"node_modules/core-js/internals/ordinary-to-primitive.js"(exports,module){"use strict";init_define_process_env();init_shim();var call=require_function_call(),isCallable=require_is_callable(),isObject=require_is_object(),$TypeError=TypeError;module.exports=function(input,pref){var fn,val;if(pref==="string"&&isCallable(fn=input.toString)&&!isObject(val=call(fn,input))||isCallable(fn=input.valueOf)&&!isObject(val=call(fn,input))||pref!=="string"&&isCallable(fn=input.toString)&&!isObject(val=call(fn,input)))return val;throw new $TypeError("Can't convert object to primitive value")}}});var require_to_primitive=__commonJS({"node_modules/core-js/internals/to-primitive.js"(exports,module){"use strict";init_define_process_env();init_shim();var call=require_function_call(),isObject=require_is_object(),isSymbol=require_is_symbol(),getMethod=require_get_method(),ordinaryToPrimitive=require_ordinary_to_primitive(),wellKnownSymbol=require_well_known_symbol(),$TypeError=TypeError,TO_PRIMITIVE=wellKnownSymbol("toPrimitive");module.exports=function(input,pref){if(!isObject(input)||isSymbol(input))return input;var exoticToPrim=getMethod(input,TO_PRIMITIVE),result;if(exoticToPrim){if(pref===void 0&&(pref="default"),result=call(exoticToPrim,input,pref),!isObject(result)||isSymbol(result))return result;throw new $TypeError("Can't convert object to primitive value")}return pref===void 0&&(pref="number"),ordinaryToPrimitive(input,pref)}}});var require_to_property_key=__commonJS({"node_modules/core-js/internals/to-property-key.js"(exports,module){"use strict";init_define_process_env();init_shim();var toPrimitive=require_to_primitive(),isSymbol=require_is_symbol();module.exports=function(argument){var key=toPrimitive(argument,"string");return isSymbol(key)?key:key+""}}});var require_object_define_property=__commonJS({"node_modules/core-js/internals/object-define-property.js"(exports){"use strict";init_define_process_env();init_shim();var DESCRIPTORS=require_descriptors(),IE8_DOM_DEFINE=require_ie8_dom_define(),V8_PROTOTYPE_DEFINE_BUG=require_v8_prototype_define_bug(),anObject=require_an_object(),toPropertyKey=require_to_property_key(),$TypeError=TypeError,$defineProperty=Object.defineProperty,$getOwnPropertyDescriptor=Object.getOwnPropertyDescriptor,ENUMERABLE="enumerable",CONFIGURABLE="configurable",WRITABLE="writable";exports.f=DESCRIPTORS?V8_PROTOTYPE_DEFINE_BUG?function(O,P,Attributes){if(anObject(O),P=toPropertyKey(P),anObject(Attributes),typeof O=="function"&&P==="prototype"&&"value"in Attributes&&WRITABLE in Attributes&&!Attributes[WRITABLE]){var current=$getOwnPropertyDescriptor(O,P);current&&current[WRITABLE]&&(O[P]=Attributes.value,Attributes={configurable:CONFIGURABLE in Attributes?Attributes[CONFIGURABLE]:current[CONFIGURABLE],enumerable:ENUMERABLE in Attributes?Attributes[ENUMERABLE]:current[ENUMERABLE],writable:!1})}return $defineProperty(O,P,Attributes)}:$defineProperty:function(O,P,Attributes){if(anObject(O),P=toPropertyKey(P),anObject(Attributes),IE8_DOM_DEFINE)try{return $defineProperty(O,P,Attributes)}catch(error){}if("get"in Attributes||"set"in Attributes)throw new $TypeError("Accessors not supported");return"value"in Attributes&&(O[P]=Attributes.value),O}}});var require_math_trunc=__commonJS({"node_modules/core-js/internals/math-trunc.js"(exports,module){"use strict";init_define_process_env();init_shim();var ceil=Math.ceil,floor=Math.floor;module.exports=Math.trunc||function(x){var n=+x;return(n>0?floor:ceil)(n)}}});var require_to_integer_or_infinity=__commonJS({"node_modules/core-js/internals/to-integer-or-infinity.js"(exports,module){"use strict";init_define_process_env();init_shim();var trunc=require_math_trunc();module.exports=function(argument){var number=+argument;return number!==number||number===0?0:trunc(number)}}});var require_to_absolute_index=__commonJS({"node_modules/core-js/internals/to-absolute-index.js"(exports,module){"use strict";init_define_process_env();init_shim();var toIntegerOrInfinity=require_to_integer_or_infinity(),max=Math.max,min=Math.min;module.exports=function(index,length){var integer=toIntegerOrInfinity(index);return integer<0?max(integer+length,0):min(integer,length)}}});var require_to_length=__commonJS({"node_modules/core-js/internals/to-length.js"(exports,module){"use strict";init_define_process_env();init_shim();var toIntegerOrInfinity=require_to_integer_or_infinity(),min=Math.min;module.exports=function(argument){var len=toIntegerOrInfinity(argument);return len>0?min(len,9007199254740991):0}}});var require_length_of_array_like=__commonJS({"node_modules/core-js/internals/length-of-array-like.js"(exports,module){"use strict";init_define_process_env();init_shim();var toLength=require_to_length();module.exports=function(obj){return toLength(obj.length)}}});var require_array_includes=__commonJS({"node_modules/core-js/internals/array-includes.js"(exports,module){"use strict";init_define_process_env();init_shim();var toIndexedObject=require_to_indexed_object(),toAbsoluteIndex=require_to_absolute_index(),lengthOfArrayLike=require_length_of_array_like(),createMethod=function(IS_INCLUDES){return function($this,el,fromIndex){var O=toIndexedObject($this),length=lengthOfArrayLike(O),index=toAbsoluteIndex(fromIndex,length),value;if(IS_INCLUDES&&el!==el){for(;length>index;)if(value=O[index++],value!==value)return!0}else for(;length>index;index++)if((IS_INCLUDES||index in O)&&O[index]===el)return IS_INCLUDES||index||0;return!IS_INCLUDES&&-1}};module.exports={includes:createMethod(!0),indexOf:createMethod(!1)}}});var require_hidden_keys=__commonJS({"node_modules/core-js/internals/hidden-keys.js"(exports,module){"use strict";init_define_process_env();init_shim();module.exports={}}});var require_object_keys_internal=__commonJS({"node_modules/core-js/internals/object-keys-internal.js"(exports,module){"use strict";init_define_process_env();init_shim();var uncurryThis=require_function_uncurry_this(),hasOwn=require_has_own_property(),toIndexedObject=require_to_indexed_object(),indexOf=require_array_includes().indexOf,hiddenKeys=require_hidden_keys(),push=uncurryThis([].push);module.exports=function(object,names){var O=toIndexedObject(object),i=0,result=[],key;for(key in O)!hasOwn(hiddenKeys,key)&&hasOwn(O,key)&&push(result,key);for(;names.length>i;)hasOwn(O,key=names[i++])&&(~indexOf(result,key)||push(result,key));return result}}});var require_enum_bug_keys=__commonJS({"node_modules/core-js/internals/enum-bug-keys.js"(exports,module){"use strict";init_define_process_env();init_shim();module.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]}});var require_object_keys=__commonJS({"node_modules/core-js/internals/object-keys.js"(exports,module){"use strict";init_define_process_env();init_shim();var internalObjectKeys=require_object_keys_internal(),enumBugKeys=require_enum_bug_keys();module.exports=Object.keys||function(O){return internalObjectKeys(O,enumBugKeys)}}});var require_object_define_properties=__commonJS({"node_modules/core-js/internals/object-define-properties.js"(exports){"use strict";init_define_process_env();init_shim();var DESCRIPTORS=require_descriptors(),V8_PROTOTYPE_DEFINE_BUG=require_v8_prototype_define_bug(),definePropertyModule=require_object_define_property(),anObject=require_an_object(),toIndexedObject=require_to_indexed_object(),objectKeys=require_object_keys();exports.f=DESCRIPTORS&&!V8_PROTOTYPE_DEFINE_BUG?Object.defineProperties:function(O,Properties){anObject(O);for(var props=toIndexedObject(Properties),keys=objectKeys(Properties),length=keys.length,index=0,key;length>index;)definePropertyModule.f(O,key=keys[index++],props[key]);return O}}});var require_html=__commonJS({"node_modules/core-js/internals/html.js"(exports,module){"use strict";init_define_process_env();init_shim();var getBuiltIn=require_get_built_in();module.exports=getBuiltIn("document","documentElement")}});var require_shared_key=__commonJS({"node_modules/core-js/internals/shared-key.js"(exports,module){"use strict";init_define_process_env();init_shim();var shared=require_shared(),uid=require_uid(),keys=shared("keys");module.exports=function(key){return keys[key]||(keys[key]=uid(key))}}});var require_object_create=__commonJS({"node_modules/core-js/internals/object-create.js"(exports,module){"use strict";init_define_process_env();init_shim();var anObject=require_an_object(),definePropertiesModule=require_object_define_properties(),enumBugKeys=require_enum_bug_keys(),hiddenKeys=require_hidden_keys(),html=require_html(),documentCreateElement=require_document_create_element(),sharedKey=require_shared_key(),GT=">",LT="<",PROTOTYPE="prototype",SCRIPT="script",IE_PROTO=sharedKey("IE_PROTO"),EmptyConstructor=function(){},scriptTag=function(content){return LT+SCRIPT+GT+content+LT+"/"+SCRIPT+GT},NullProtoObjectViaActiveX=function(activeXDocument2){activeXDocument2.write(scriptTag("")),activeXDocument2.close();var temp=activeXDocument2.parentWindow.Object;return activeXDocument2=null,temp},NullProtoObjectViaIFrame=function(){var iframe=documentCreateElement("iframe"),JS="java"+SCRIPT+":",iframeDocument;return iframe.style.display="none",html.appendChild(iframe),iframe.src=String(JS),iframeDocument=iframe.contentWindow.document,iframeDocument.open(),iframeDocument.write(scriptTag("document.F=Object")),iframeDocument.close(),iframeDocument.F},activeXDocument,NullProtoObject=function(){try{activeXDocument=new ActiveXObject("htmlfile")}catch(error){}NullProtoObject=typeof document<"u"?document.domain&&activeXDocument?NullProtoObjectViaActiveX(activeXDocument):NullProtoObjectViaIFrame():NullProtoObjectViaActiveX(activeXDocument);for(var length=enumBugKeys.length;length--;)delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];return NullProtoObject()};hiddenKeys[IE_PROTO]=!0;module.exports=Object.create||function(O,Properties){var result;return O!==null?(EmptyConstructor[PROTOTYPE]=anObject(O),result=new EmptyConstructor,EmptyConstructor[PROTOTYPE]=null,result[IE_PROTO]=O):result=NullProtoObject(),Properties===void 0?result:definePropertiesModule.f(result,Properties)}}});var require_add_to_unscopables=__commonJS({"node_modules/core-js/internals/add-to-unscopables.js"(exports,module){"use strict";init_define_process_env();init_shim();var wellKnownSymbol=require_well_known_symbol(),create=require_object_create(),defineProperty=require_object_define_property().f,UNSCOPABLES=wellKnownSymbol("unscopables"),ArrayPrototype=Array.prototype;ArrayPrototype[UNSCOPABLES]===void 0&&defineProperty(ArrayPrototype,UNSCOPABLES,{configurable:!0,value:create(null)});module.exports=function(key){ArrayPrototype[UNSCOPABLES][key]=!0}}});var require_iterators=__commonJS({"node_modules/core-js/internals/iterators.js"(exports,module){"use strict";init_define_process_env();init_shim();module.exports={}}});var require_weak_map_basic_detection=__commonJS({"node_modules/core-js/internals/weak-map-basic-detection.js"(exports,module){"use strict";init_define_process_env();init_shim();var global=require_global(),isCallable=require_is_callable(),WeakMap=global.WeakMap;module.exports=isCallable(WeakMap)&&/native code/.test(String(WeakMap))}});var require_create_property_descriptor=__commonJS({"node_modules/core-js/internals/create-property-descriptor.js"(exports,module){"use strict";init_define_process_env();init_shim();module.exports=function(bitmap,value){return{enumerable:!(bitmap&1),configurable:!(bitmap&2),writable:!(bitmap&4),value}}}});var require_create_non_enumerable_property=__commonJS({"node_modules/core-js/internals/create-non-enumerable-property.js"(exports,module){"use strict";init_define_process_env();init_shim();var DESCRIPTORS=require_descriptors(),definePropertyModule=require_object_define_property(),createPropertyDescriptor=require_create_property_descriptor();module.exports=DESCRIPTORS?function(object,key,value){return definePropertyModule.f(object,key,createPropertyDescriptor(1,value))}:function(object,key,value){return object[key]=value,object}}});var require_internal_state=__commonJS({"node_modules/core-js/internals/internal-state.js"(exports,module){"use strict";init_define_process_env();init_shim();var NATIVE_WEAK_MAP=require_weak_map_basic_detection(),global=require_global(),isObject=require_is_object(),createNonEnumerableProperty=require_create_non_enumerable_property(),hasOwn=require_has_own_property(),shared=require_shared_store(),sharedKey=require_shared_key(),hiddenKeys=require_hidden_keys(),OBJECT_ALREADY_INITIALIZED="Object already initialized",TypeError2=global.TypeError,WeakMap=global.WeakMap,set,get,has,enforce=function(it){return has(it)?get(it):set(it,{})},getterFor=function(TYPE){return function(it){var state;if(!isObject(it)||(state=get(it)).type!==TYPE)throw new TypeError2("Incompatible receiver, "+TYPE+" required");return state}};NATIVE_WEAK_MAP||shared.state?(store=shared.state||(shared.state=new WeakMap),store.get=store.get,store.has=store.has,store.set=store.set,set=function(it,metadata){if(store.has(it))throw new TypeError2(OBJECT_ALREADY_INITIALIZED);return metadata.facade=it,store.set(it,metadata),metadata},get=function(it){return store.get(it)||{}},has=function(it){return store.has(it)}):(STATE=sharedKey("state"),hiddenKeys[STATE]=!0,set=function(it,metadata){if(hasOwn(it,STATE))throw new TypeError2(OBJECT_ALREADY_INITIALIZED);return metadata.facade=it,createNonEnumerableProperty(it,STATE,metadata),metadata},get=function(it){return hasOwn(it,STATE)?it[STATE]:{}},has=function(it){return hasOwn(it,STATE)});var store,STATE;module.exports={set,get,has,enforce,getterFor}}});var require_object_property_is_enumerable=__commonJS({"node_modules/core-js/internals/object-property-is-enumerable.js"(exports){"use strict";init_define_process_env();init_shim();var $propertyIsEnumerable={}.propertyIsEnumerable,getOwnPropertyDescriptor=Object.getOwnPropertyDescriptor,NASHORN_BUG=getOwnPropertyDescriptor&&!$propertyIsEnumerable.call({1:2},1);exports.f=NASHORN_BUG?function(V){var descriptor=getOwnPropertyDescriptor(this,V);return!!descriptor&&descriptor.enumerable}:$propertyIsEnumerable}});var require_object_get_own_property_descriptor=__commonJS({"node_modules/core-js/internals/object-get-own-property-descriptor.js"(exports){"use strict";init_define_process_env();init_shim();var DESCRIPTORS=require_descriptors(),call=require_function_call(),propertyIsEnumerableModule=require_object_property_is_enumerable(),createPropertyDescriptor=require_create_property_descriptor(),toIndexedObject=require_to_indexed_object(),toPropertyKey=require_to_property_key(),hasOwn=require_has_own_property(),IE8_DOM_DEFINE=require_ie8_dom_define(),$getOwnPropertyDescriptor=Object.getOwnPropertyDescriptor;exports.f=DESCRIPTORS?$getOwnPropertyDescriptor:function(O,P){if(O=toIndexedObject(O),P=toPropertyKey(P),IE8_DOM_DEFINE)try{return $getOwnPropertyDescriptor(O,P)}catch(error){}if(hasOwn(O,P))return createPropertyDescriptor(!call(propertyIsEnumerableModule.f,O,P),O[P])}}});var require_function_name=__commonJS({"node_modules/core-js/internals/function-name.js"(exports,module){"use strict";init_define_process_env();init_shim();var DESCRIPTORS=require_descriptors(),hasOwn=require_has_own_property(),FunctionPrototype=Function.prototype,getDescriptor=DESCRIPTORS&&Object.getOwnPropertyDescriptor,EXISTS=hasOwn(FunctionPrototype,"name"),PROPER=EXISTS&&(function(){}).name==="something",CONFIGURABLE=EXISTS&&(!DESCRIPTORS||DESCRIPTORS&&getDescriptor(FunctionPrototype,"name").configurable);module.exports={EXISTS,PROPER,CONFIGURABLE}}});var require_inspect_source=__commonJS({"node_modules/core-js/internals/inspect-source.js"(exports,module){"use strict";init_define_process_env();init_shim();var uncurryThis=require_function_uncurry_this(),isCallable=require_is_callable(),store=require_shared_store(),functionToString=uncurryThis(Function.toString);isCallable(store.inspectSource)||(store.inspectSource=function(it){return functionToString(it)});module.exports=store.inspectSource}});var require_make_built_in=__commonJS({"node_modules/core-js/internals/make-built-in.js"(exports,module){"use strict";init_define_process_env();init_shim();var uncurryThis=require_function_uncurry_this(),fails=require_fails(),isCallable=require_is_callable(),hasOwn=require_has_own_property(),DESCRIPTORS=require_descriptors(),CONFIGURABLE_FUNCTION_NAME=require_function_name().CONFIGURABLE,inspectSource=require_inspect_source(),InternalStateModule=require_internal_state(),enforceInternalState=InternalStateModule.enforce,getInternalState=InternalStateModule.get,$String=String,defineProperty=Object.defineProperty,stringSlice=uncurryThis("".slice),replace=uncurryThis("".replace),join=uncurryThis([].join),CONFIGURABLE_LENGTH=DESCRIPTORS&&!fails(function(){return defineProperty(function(){},"length",{value:8}).length!==8}),TEMPLATE=String(String).split("String"),makeBuiltIn=module.exports=function(value,name,options){stringSlice($String(name),0,7)==="Symbol("&&(name="["+replace($String(name),/^Symbol\(([^)]*)\).*$/,"$1")+"]"),options&&options.getter&&(name="get "+name),options&&options.setter&&(name="set "+name),(!hasOwn(value,"name")||CONFIGURABLE_FUNCTION_NAME&&value.name!==name)&&(DESCRIPTORS?defineProperty(value,"name",{value:name,configurable:!0}):value.name=name),CONFIGURABLE_LENGTH&&options&&hasOwn(options,"arity")&&value.length!==options.arity&&defineProperty(value,"length",{value:options.arity});try{options&&hasOwn(options,"constructor")&&options.constructor?DESCRIPTORS&&defineProperty(value,"prototype",{writable:!1}):value.prototype&&(value.prototype=void 0)}catch(error){}var state=enforceInternalState(value);return hasOwn(state,"source")||(state.source=join(TEMPLATE,typeof name=="string"?name:"")),value};Function.prototype.toString=makeBuiltIn(function(){return isCallable(this)&&getInternalState(this).source||inspectSource(this)},"toString")}});var require_define_built_in=__commonJS({"node_modules/core-js/internals/define-built-in.js"(exports,module){"use strict";init_define_process_env();init_shim();var isCallable=require_is_callable(),definePropertyModule=require_object_define_property(),makeBuiltIn=require_make_built_in(),defineGlobalProperty=require_define_global_property();module.exports=function(O,key,value,options){options||(options={});var simple=options.enumerable,name=options.name!==void 0?options.name:key;if(isCallable(value)&&makeBuiltIn(value,name,options),options.global)simple?O[key]=value:defineGlobalProperty(key,value);else{try{options.unsafe?O[key]&&(simple=!0):delete O[key]}catch(error){}simple?O[key]=value:definePropertyModule.f(O,key,{value,enumerable:!1,configurable:!options.nonConfigurable,writable:!options.nonWritable})}return O}}});var require_object_get_own_property_names=__commonJS({"node_modules/core-js/internals/object-get-own-property-names.js"(exports){"use strict";init_define_process_env();init_shim();var internalObjectKeys=require_object_keys_internal(),enumBugKeys=require_enum_bug_keys(),hiddenKeys=enumBugKeys.concat("length","prototype");exports.f=Object.getOwnPropertyNames||function(O){return internalObjectKeys(O,hiddenKeys)}}});var require_object_get_own_property_symbols=__commonJS({"node_modules/core-js/internals/object-get-own-property-symbols.js"(exports){"use strict";init_define_process_env();init_shim();exports.f=Object.getOwnPropertySymbols}});var require_own_keys=__commonJS({"node_modules/core-js/internals/own-keys.js"(exports,module){"use strict";init_define_process_env();init_shim();var getBuiltIn=require_get_built_in(),uncurryThis=require_function_uncurry_this(),getOwnPropertyNamesModule=require_object_get_own_property_names(),getOwnPropertySymbolsModule=require_object_get_own_property_symbols(),anObject=require_an_object(),concat=uncurryThis([].concat);module.exports=getBuiltIn("Reflect","ownKeys")||function(it){var keys=getOwnPropertyNamesModule.f(anObject(it)),getOwnPropertySymbols=getOwnPropertySymbolsModule.f;return getOwnPropertySymbols?concat(keys,getOwnPropertySymbols(it)):keys}}});var require_copy_constructor_properties=__commonJS({"node_modules/core-js/internals/copy-constructor-properties.js"(exports,module){"use strict";init_define_process_env();init_shim();var hasOwn=require_has_own_property(),ownKeys=require_own_keys(),getOwnPropertyDescriptorModule=require_object_get_own_property_descriptor(),definePropertyModule=require_object_define_property();module.exports=function(target,source,exceptions){for(var keys=ownKeys(source),defineProperty=definePropertyModule.f,getOwnPropertyDescriptor=getOwnPropertyDescriptorModule.f,i=0;i<keys.length;i++){var key=keys[i];!hasOwn(target,key)&&!(exceptions&&hasOwn(exceptions,key))&&defineProperty(target,key,getOwnPropertyDescriptor(source,key))}}}});var require_is_forced=__commonJS({"node_modules/core-js/internals/is-forced.js"(exports,module){"use strict";init_define_process_env();init_shim();var fails=require_fails(),isCallable=require_is_callable(),replacement=/#|\.prototype\./,isForced=function(feature,detection){var value=data[normalize(feature)];return value===POLYFILL?!0:value===NATIVE?!1:isCallable(detection)?fails(detection):!!detection},normalize=isForced.normalize=function(string){return String(string).replace(replacement,".").toLowerCase()},data=isForced.data={},NATIVE=isForced.NATIVE="N",POLYFILL=isForced.POLYFILL="P";module.exports=isForced}});var require_export=__commonJS({"node_modules/core-js/internals/export.js"(exports,module){"use strict";init_define_process_env();init_shim();var global=require_global(),getOwnPropertyDescriptor=require_object_get_own_property_descriptor().f,createNonEnumerableProperty=require_create_non_enumerable_property(),defineBuiltIn=require_define_built_in(),defineGlobalProperty=require_define_global_property(),copyConstructorProperties=require_copy_constructor_properties(),isForced=require_is_forced();module.exports=function(options,source){var TARGET=options.target,GLOBAL=options.global,STATIC=options.stat,FORCED,target,key,targetProperty,sourceProperty,descriptor;if(GLOBAL?target=global:STATIC?target=global[TARGET]||defineGlobalProperty(TARGET,{}):target=global[TARGET]&&global[TARGET].prototype,target)for(key in source){if(sourceProperty=source[key],options.dontCallGetSet?(descriptor=getOwnPropertyDescriptor(target,key),targetProperty=descriptor&&descriptor.value):targetProperty=target[key],FORCED=isForced(GLOBAL?key:TARGET+(STATIC?".":"#")+key,options.forced),!FORCED&&targetProperty!==void 0){if(typeof sourceProperty==typeof targetProperty)continue;copyConstructorProperties(sourceProperty,targetProperty)}(options.sham||targetProperty&&targetProperty.sham)&&createNonEnumerableProperty(sourceProperty,"sham",!0),defineBuiltIn(target,key,sourceProperty,options)}}}});var require_correct_prototype_getter=__commonJS({"node_modules/core-js/internals/correct-prototype-getter.js"(exports,module){"use strict";init_define_process_env();init_shim();var fails=require_fails();module.exports=!fails(function(){function F(){}return F.prototype.constructor=null,Object.getPrototypeOf(new F)!==F.prototype})}});var require_object_get_prototype_of=__commonJS({"node_modules/core-js/internals/object-get-prototype-of.js"(exports,module){"use strict";init_define_process_env();init_shim();var hasOwn=require_has_own_property(),isCallable=require_is_callable(),toObject=require_to_object(),sharedKey=require_shared_key(),CORRECT_PROTOTYPE_GETTER=require_correct_prototype_getter(),IE_PROTO=sharedKey("IE_PROTO"),$Object=Object,ObjectPrototype=$Object.prototype;module.exports=CORRECT_PROTOTYPE_GETTER?$Object.getPrototypeOf:function(O){var object=toObject(O);if(hasOwn(object,IE_PROTO))return object[IE_PROTO];var constructor=object.constructor;return isCallable(constructor)&&object instanceof constructor?constructor.prototype:object instanceof $Object?ObjectPrototype:null}}});var require_iterators_core=__commonJS({"node_modules/core-js/internals/iterators-core.js"(exports,module){"use strict";init_define_process_env();init_shim();var fails=require_fails(),isCallable=require_is_callable(),isObject=require_is_object(),create=require_object_create(),getPrototypeOf=require_object_get_prototype_of(),defineBuiltIn=require_define_built_in(),wellKnownSymbol=require_well_known_symbol(),IS_PURE=require_is_pure(),ITERATOR=wellKnownSymbol("iterator"),BUGGY_SAFARI_ITERATORS=!1,IteratorPrototype,PrototypeOfArrayIteratorPrototype,arrayIterator;[].keys&&(arrayIterator=[].keys(),"next"in arrayIterator?(PrototypeOfArrayIteratorPrototype=getPrototypeOf(getPrototypeOf(arrayIterator)),PrototypeOfArrayIteratorPrototype!==Object.prototype&&(IteratorPrototype=PrototypeOfArrayIteratorPrototype)):BUGGY_SAFARI_ITERATORS=!0);var NEW_ITERATOR_PROTOTYPE=!isObject(IteratorPrototype)||fails(function(){var test={};return IteratorPrototype[ITERATOR].call(test)!==test});NEW_ITERATOR_PROTOTYPE?IteratorPrototype={}:IS_PURE&&(IteratorPrototype=create(IteratorPrototype));isCallable(IteratorPrototype[ITERATOR])||defineBuiltIn(IteratorPrototype,ITERATOR,function(){return this});module.exports={IteratorPrototype,BUGGY_SAFARI_ITERATORS}}});var require_set_to_string_tag=__commonJS({"node_modules/core-js/internals/set-to-string-tag.js"(exports,module){"use strict";init_define_process_env();init_shim();var defineProperty=require_object_define_property().f,hasOwn=require_has_own_property(),wellKnownSymbol=require_well_known_symbol(),TO_STRING_TAG=wellKnownSymbol("toStringTag");module.exports=function(target,TAG,STATIC){target&&!STATIC&&(target=target.prototype),target&&!hasOwn(target,TO_STRING_TAG)&&defineProperty(target,TO_STRING_TAG,{configurable:!0,value:TAG})}}});var require_iterator_create_constructor=__commonJS({"node_modules/core-js/internals/iterator-create-constructor.js"(exports,module){"use strict";init_define_process_env();init_shim();var IteratorPrototype=require_iterators_core().IteratorPrototype,create=require_object_create(),createPropertyDescriptor=require_create_property_descriptor(),setToStringTag=require_set_to_string_tag(),Iterators=require_iterators(),returnThis=function(){return this};module.exports=function(IteratorConstructor,NAME,next,ENUMERABLE_NEXT){var TO_STRING_TAG=NAME+" Iterator";return IteratorConstructor.prototype=create(IteratorPrototype,{next:createPropertyDescriptor(+!ENUMERABLE_NEXT,next)}),setToStringTag(IteratorConstructor,TO_STRING_TAG,!1,!0),Iterators[TO_STRING_TAG]=returnThis,IteratorConstructor}}});var require_function_uncurry_this_accessor=__commonJS({"node_modules/core-js/internals/function-uncurry-this-accessor.js"(exports,module){"use strict";init_define_process_env();init_shim();var uncurryThis=require_function_uncurry_this(),aCallable=require_a_callable();module.exports=function(object,key,method){try{return uncurryThis(aCallable(Object.getOwnPropertyDescriptor(object,key)[method]))}catch(error){}}}});var require_is_possible_prototype=__commonJS({"node_modules/core-js/internals/is-possible-prototype.js"(exports,module){"use strict";init_define_process_env();init_shim();var isObject=require_is_object();module.exports=function(argument){return isObject(argument)||argument===null}}});var require_a_possible_prototype=__commonJS({"node_modules/core-js/internals/a-possible-prototype.js"(exports,module){"use strict";init_define_process_env();init_shim();var isPossiblePrototype=require_is_possible_prototype(),$String=String,$TypeError=TypeError;module.exports=function(argument){if(isPossiblePrototype(argument))return argument;throw new $TypeError("Can't set "+$String(argument)+" as a prototype")}}});var require_object_set_prototype_of=__commonJS({"node_modules/core-js/internals/object-set-prototype-of.js"(exports,module){"use strict";init_define_process_env();init_shim();var uncurryThisAccessor=require_function_uncurry_this_accessor(),anObject=require_an_object(),aPossiblePrototype=require_a_possible_prototype();module.exports=Object.setPrototypeOf||("__proto__"in{}?function(){var CORRECT_SETTER=!1,test={},setter;try{setter=uncurryThisAccessor(Object.prototype,"__proto__","set"),setter(test,[]),CORRECT_SETTER=test instanceof Array}catch(error){}return function(O,proto){return anObject(O),aPossiblePrototype(proto),CORRECT_SETTER?setter(O,proto):O.__proto__=proto,O}}():void 0)}});var require_iterator_define=__commonJS({"node_modules/core-js/internals/iterator-define.js"(exports,module){"use strict";init_define_process_env();init_shim();var $=require_export(),call=require_function_call(),IS_PURE=require_is_pure(),FunctionName=require_function_name(),isCallable=require_is_callable(),createIteratorConstructor=require_iterator_create_constructor(),getPrototypeOf=require_object_get_prototype_of(),setPrototypeOf=require_object_set_prototype_of(),setToStringTag=require_set_to_string_tag(),createNonEnumerableProperty=require_create_non_enumerable_property(),defineBuiltIn=require_define_built_in(),wellKnownSymbol=require_well_known_symbol(),Iterators=require_iterators(),IteratorsCore=require_iterators_core(),PROPER_FUNCTION_NAME=FunctionName.PROPER,CONFIGURABLE_FUNCTION_NAME=FunctionName.CONFIGURABLE,IteratorPrototype=IteratorsCore.IteratorPrototype,BUGGY_SAFARI_ITERATORS=IteratorsCore.BUGGY_SAFARI_ITERATORS,ITERATOR=wellKnownSymbol("iterator"),KEYS="keys",VALUES="values",ENTRIES="entries",returnThis=function(){return this};module.exports=function(Iterable,NAME,IteratorConstructor,next,DEFAULT,IS_SET,FORCED){createIteratorConstructor(IteratorConstructor,NAME,next);var getIterationMethod=function(KIND){if(KIND===DEFAULT&&defaultIterator)return defaultIterator;if(!BUGGY_SAFARI_ITERATORS&&KIND&&KIND in IterablePrototype)return IterablePrototype[KIND];switch(KIND){case KEYS:return function(){return new IteratorConstructor(this,KIND)};case VALUES:return function(){return new IteratorConstructor(this,KIND)};case ENTRIES:return function(){return new IteratorConstructor(this,KIND)}}return function(){return new IteratorConstructor(this)}},TO_STRING_TAG=NAME+" Iterator",INCORRECT_VALUES_NAME=!1,IterablePrototype=Iterable.prototype,nativeIterator=IterablePrototype[ITERATOR]||IterablePrototype["@@iterator"]||DEFAULT&&IterablePrototype[DEFAULT],defaultIterator=!BUGGY_SAFARI_ITERATORS&&nativeIterator||getIterationMethod(DEFAULT),anyNativeIterator=NAME==="Array"&&IterablePrototype.entries||nativeIterator,CurrentIteratorPrototype,methods,KEY;if(anyNativeIterator&&(CurrentIteratorPrototype=getPrototypeOf(anyNativeIterator.call(new Iterable)),CurrentIteratorPrototype!==Object.prototype&&CurrentIteratorPrototype.next&&(!IS_PURE&&getPrototypeOf(CurrentIteratorPrototype)!==IteratorPrototype&&(setPrototypeOf?setPrototypeOf(CurrentIteratorPrototype,IteratorPrototype):isCallable(CurrentIteratorPrototype[ITERATOR])||defineBuiltIn(CurrentIteratorPrototype,ITERATOR,returnThis)),setToStringTag(CurrentIteratorPrototype,TO_STRING_TAG,!0,!0),IS_PURE&&(Iterators[TO_STRING_TAG]=returnThis))),PROPER_FUNCTION_NAME&&DEFAULT===VALUES&&nativeIterator&&nativeIterator.name!==VALUES&&(!IS_PURE&&CONFIGURABLE_FUNCTION_NAME?createNonEnumerableProperty(IterablePrototype,"name",VALUES):(INCORRECT_VALUES_NAME=!0,defaultIterator=function(){return call(nativeIterator,this)})),DEFAULT)if(methods={values:getIterationMethod(VALUES),keys:IS_SET?defaultIterator:getIterationMethod(KEYS),entries:getIterationMethod(ENTRIES)},FORCED)for(KEY in methods)(BUGGY_SAFARI_ITERATORS||INCORRECT_VALUES_NAME||!(KEY in IterablePrototype))&&defineBuiltIn(IterablePrototype,KEY,methods[KEY]);else $({target:NAME,proto:!0,forced:BUGGY_SAFARI_ITERATORS||INCORRECT_VALUES_NAME},methods);return(!IS_PURE||FORCED)&&IterablePrototype[ITERATOR]!==defaultIterator&&defineBuiltIn(IterablePrototype,ITERATOR,defaultIterator,{name:DEFAULT}),Iterators[NAME]=defaultIterator,methods}}});var require_create_iter_result_object=__commonJS({"node_modules/core-js/internals/create-iter-result-object.js"(exports,module){"use strict";init_define_process_env();init_shim();module.exports=function(value,done){return{value,done}}}});var require_es_array_iterator=__commonJS({"node_modules/core-js/modules/es.array.iterator.js"(exports,module){"use strict";init_define_process_env();init_shim();var toIndexedObject=require_to_indexed_object(),addToUnscopables=require_add_to_unscopables(),Iterators=require_iterators(),InternalStateModule=require_internal_state(),defineProperty=require_object_define_property().f,defineIterator=require_iterator_define(),createIterResultObject=require_create_iter_result_object(),IS_PURE=require_is_pure(),DESCRIPTORS=require_descriptors(),ARRAY_ITERATOR="Array Iterator",setInternalState=InternalStateModule.set,getInternalState=InternalStateModule.getterFor(ARRAY_ITERATOR);module.exports=defineIterator(Array,"Array",function(iterated,kind){setInternalState(this,{type:ARRAY_ITERATOR,target:toIndexedObject(iterated),index:0,kind})},function(){var state=getInternalState(this),target=state.target,index=state.index++;if(!target||index>=target.length)return state.target=void 0,createIterResultObject(void 0,!0);switch(state.kind){case"keys":return createIterResultObject(index,!1);case"values":return createIterResultObject(target[index],!1)}return createIterResultObject([index,target[index]],!1)},"values");var values=Iterators.Arguments=Iterators.Array;addToUnscopables("keys");addToUnscopables("values");addToUnscopables("entries");if(!IS_PURE&&DESCRIPTORS&&values.name!=="values")try{defineProperty(values,"name",{value:"values"})}catch(error){}}});var require_dom_iterables=__commonJS({"node_modules/core-js/internals/dom-iterables.js"(exports,module){"use strict";init_define_process_env();init_shim();module.exports={CSSRuleList:0,CSSStyleDeclaration:0,CSSValueList:0,ClientRectList:0,DOMRectList:0,DOMStringList:0,DOMTokenList:1,DataTransferItemList:0,FileList:0,HTMLAllCollection:0,HTMLCollection:0,HTMLFormElement:0,HTMLSelectElement:0,MediaList:0,MimeTypeArray:0,NamedNodeMap:0,NodeList:1,PaintRequestList:0,Plugin:0,PluginArray:0,SVGLengthList:0,SVGNumberList:0,SVGPathSegList:0,SVGPointList:0,SVGStringList:0,SVGTransformList:0,SourceBufferList:0,StyleSheetList:0,TextTrackCueList:0,TextTrackList:0,TouchList:0}}});var require_dom_token_list_prototype=__commonJS({"node_modules/core-js/internals/dom-token-list-prototype.js"(exports,module){"use strict";init_define_process_env();init_shim();var documentCreateElement=require_document_create_element(),classList=documentCreateElement("span").classList,DOMTokenListPrototype=classList&&classList.constructor&&classList.constructor.prototype;module.exports=DOMTokenListPrototype===Object.prototype?void 0:DOMTokenListPrototype}});var require_web_dom_collections_iterator=__commonJS({"node_modules/core-js/modules/web.dom-collections.iterator.js"(){"use strict";init_define_process_env();init_shim();var global=require_global(),DOMIterables=require_dom_iterables(),DOMTokenListPrototype=require_dom_token_list_prototype(),ArrayIteratorMethods=require_es_array_iterator(),createNonEnumerableProperty=require_create_non_enumerable_property(),setToStringTag=require_set_to_string_tag(),wellKnownSymbol=require_well_known_symbol(),ITERATOR=wellKnownSymbol("iterator"),ArrayValues=ArrayIteratorMethods.values,handlePrototype=function(CollectionPrototype,COLLECTION_NAME2){if(CollectionPrototype){if(CollectionPrototype[ITERATOR]!==ArrayValues)try{createNonEnumerableProperty(CollectionPrototype,ITERATOR,ArrayValues)}catch(error){CollectionPrototype[ITERATOR]=ArrayValues}if(setToStringTag(CollectionPrototype,COLLECTION_NAME2,!0),DOMIterables[COLLECTION_NAME2]){for(var METHOD_NAME in ArrayIteratorMethods)if(CollectionPrototype[METHOD_NAME]!==ArrayIteratorMethods[METHOD_NAME])try{createNonEnumerableProperty(CollectionPrototype,METHOD_NAME,ArrayIteratorMethods[METHOD_NAME])}catch(error){CollectionPrototype[METHOD_NAME]=ArrayIteratorMethods[METHOD_NAME]}}}};for(COLLECTION_NAME in DOMIterables)handlePrototype(global[COLLECTION_NAME]&&global[COLLECTION_NAME].prototype,COLLECTION_NAME);var COLLECTION_NAME;handlePrototype(DOMTokenListPrototype,"DOMTokenList")}});init_define_process_env();init_shim();var import_es_array_iterator=__toESM(require_es_array_iterator()),import_web_dom_collections_iterator=__toESM(require_web_dom_collections_iterator());init_define_process_env();init_shim();var _window$u,_window,_window$safe_require,_window2,u=(_window$u=(_window=window)==null?void 0:_window.u)!=null?_window$u:_u,safe_require=(_window$safe_require=(_window2=window)==null?void 0:_window2.safe_require)!=null?_window$safe_require:_safe_require;var Lib=safe_require.safe_require("./lib"),appquery=safe_require.safe_require("./lang/appquery"),external=safe_require.safe_require("./external"),services=safe_require.safe_require("./services"),plugin_registry=safe_require.safe_require("./services/shared/plugin_registry"),element_utils=safe_require.safe_require("./core/core_elements/core_elements_utilities/element_utils"),property_applications=safe_require.safe_require("./core/property_applications"),element_eval=safe_require.safe_require("./lang/evaluation/element_eval"),element_modifications=safe_require.safe_require("./core/core_elements/legacy/responsive_v0/element_modifications");element_modifications.set_legacy_element_modifications("addtoany-AddToAnyShareButtons");var PLUGIN_FILE="addtoany",platforms=["email","facebook","twitter","x","linkedin","pinterest","google_plus","tumblr","reddit","hacker_news"],script_html="<script>\nvar a2a_config = a2a_config || {};\n(function(){\n    var url = 'https://static.addtoany.com/menu/page.js';\n    if (document.querySelector('script[src=\"' + url + '\"]')) {\n      if (window.a2a) {\n        window.a2a.init_all();\n      }\n    } else {\n      var a = document.createElement('script');\n      a.type = 'text/javascript';\n      a.async = true;\n      a.src = url;\n      var s = document.getElementsByTagName('script')[0];\n      s.parentNode.insertBefore(a, s);\n    }\n})();\n<\/script>",cls=class extends external.Service{constructor(){super(),this.authenticator=new external.NoAuth,this.elements=this._get_initial_elements()}get script_html(){return script_html}_get_initial_elements(){return{AddToAnyShareButtons:{display:"Share Buttons",category:"visual elements",icon:"ion-android-share-alt",condition(root){var _root$is_mobile;return!(root!=null&&(_root$is_mobile=root.is_mobile)!=null&&_root$is_mobile.call(root))},defaults:{width:117,height:40},field_names:u.extend({url_to_share:{default:"https://bubble.io"},name_to_share:{no_states:!0,default:"Bubble"},include_email:{no_states:!0,default:!0},include_facebook:{no_states:!0,default:!0},include_twitter:{no_states:!0,default:!0},include_x:{no_states:!0},include_pinterest:{no_states:!0},include_linkedin:{no_states:!0},include_google_plus:{no_states:!0},include_tumblr:{no_states:!0},include_reddit:{no_states:!0},include_hacker_news:{no_states:!0},include_generic:{no_states:!0},overwrite_color:{no_states:!0},icons_color:{no_states:!0,default:"#B0B0B0"}}),property_applications:[new property_applications.Dimensions,new property_applications.Border,new property_applications.BoxShadow,new property_applications.Background,new property_applications.ResponsiveElement],get uses_css_responsive(){return uses_css_responsive()},get_html(instance){return"<div></div>"},initialize(instance){services.log_plugin_element_init({name:this.plugin_name,plugin:PLUGIN_FILE});let canvas=instance.get_canvas();canvas.css("padding",4);let props_to_load=["url_to_share","name_to_share","include_generic","overwrite_color","icons_color"];for(let platform of platforms)props_to_load.push("include_"+platform);return element_eval.pre_cache(instance,props_to_load),instance.autorun(()=>{let props={};for(let prop of props_to_load)props[prop]=element_eval.evaluate_property(instance,prop);canvas.empty();let html='<div class="a2a_kit a2a_kit_size_32 a2a_default_style" data-a2a-url="'+props.url_to_share;if(props.name_to_share&&(html+='" data-a2a-title="'+props.name_to_share+'"'),props.overwrite_color){let{code}=u.rgb_to_hex(props.icons_color);html+=' data-a2a-icon-color="'+code+'">'}else html+='">';for(let platform of platforms)props["include_"+platform]&&(html+='<a class="a2a_button_'+platform+'"></a>');if(props.include_generic&&(html+='<a class="a2a_dd" href="https://www.addtoany.com/share_save"></a>'),html+="</div>\n".concat(script_html),canvas.html(html),instance.edit_mode())return element_utils.do_add_an_invisible_div_on_the_top(instance)})},change_cursor_style_if_clickable:!1,add_an_invisible_div_on_the_top:!0,is_input:!1,contains_group_data:!1}}}keys(){return plugin_version()>=1?{}:{css_responsive:{caption:"Use new responsive properties for this plugin's elements",type:"client_safe",editor:"Checkbox"}}}};function plugin_version(){if(Lib()){var _appquery$get_public_;return(_appquery$get_public_=appquery.get_public_setting("addtoany_installed_version"))!=null?_appquery$get_public_:0}else return 1}function uses_css_responsive(){return Lib()?plugin_version()>=1||appquery.get_public_setting("addtoany_css_responsive")===!0:!0}var addtoany={cls,script_html};typeof window<"u"&&window!==null&&((_window$optional_modu=(_window3=window).optional_modules)!=null||(_window3.optional_modules={}),window.optional_modules.addtoany=addtoany);var _window3,_window$optional_modu;plugin_registry.register_plugin("addtoany",addtoany);})();
/*! Bundled license information:

buffer/index.js:
  (*!
   * The buffer module from node.js, for the browser.
   *
   * @author   Feross Aboukhadijeh <https://feross.org>
   * @license  MIT
   *)
*/

}


window.preloaded['plugin/first_party:addtoany'] = true;
window._bubble_page_load_data.hardcoded_plugins['progressbar'] = true;
window.__code__ = window.__code__ || {};
if(!window.__code__['3715b72e6109c185c3496bb9665da7f9f968deab9034763a31a4bcf5416ad40e']){window.__code__['3715b72e6109c185c3496bb9665da7f9f968deab9034763a31a4bcf5416ad40e']=1;

"use strict";(()=>{var __create=Object.create;var __defProp=Object.defineProperty;var __getOwnPropDesc=Object.getOwnPropertyDescriptor;var __getOwnPropNames=Object.getOwnPropertyNames;var __getProtoOf=Object.getPrototypeOf,__hasOwnProp=Object.prototype.hasOwnProperty;var __esm=(fn,res)=>function(){return fn&&(res=(0,fn[__getOwnPropNames(fn)[0]])(fn=0)),res};var __commonJS=(cb,mod)=>function(){return mod||(0,cb[__getOwnPropNames(cb)[0]])((mod={exports:{}}).exports,mod),mod.exports};var __copyProps=(to,from,except,desc)=>{if(from&&typeof from=="object"||typeof from=="function")for(let key of __getOwnPropNames(from))!__hasOwnProp.call(to,key)&&key!==except&&__defProp(to,key,{get:()=>from[key],enumerable:!(desc=__getOwnPropDesc(from,key))||desc.enumerable});return to};var __toESM=(mod,isNodeMode,target)=>(target=mod!=null?__create(__getProtoOf(mod)):{},__copyProps(isNodeMode||!mod||!mod.__esModule?__defProp(target,"default",{value:mod,enumerable:!0}):target,mod));var init_define_process_env=__esm({"<define:process.env>"(){}});var require_base64_js=__commonJS({"node_modules/base64-js/index.js"(exports){"use strict";init_define_process_env();init_shim();exports.byteLength=byteLength;exports.toByteArray=toByteArray;exports.fromByteArray=fromByteArray;var lookup=[],revLookup=[],Arr=typeof Uint8Array<"u"?Uint8Array:Array,code="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";for(i=0,len=code.length;i<len;++i)lookup[i]=code[i],revLookup[code.charCodeAt(i)]=i;var i,len;revLookup["-".charCodeAt(0)]=62;revLookup["_".charCodeAt(0)]=63;function getLens(b64){var len2=b64.length;if(len2%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var validLen=b64.indexOf("=");validLen===-1&&(validLen=len2);var placeHoldersLen=validLen===len2?0:4-validLen%4;return[validLen,placeHoldersLen]}function byteLength(b64){var lens=getLens(b64),validLen=lens[0],placeHoldersLen=lens[1];return(validLen+placeHoldersLen)*3/4-placeHoldersLen}function _byteLength(b64,validLen,placeHoldersLen){return(validLen+placeHoldersLen)*3/4-placeHoldersLen}function toByteArray(b64){var tmp,lens=getLens(b64),validLen=lens[0],placeHoldersLen=lens[1],arr=new Arr(_byteLength(b64,validLen,placeHoldersLen)),curByte=0,len2=placeHoldersLen>0?validLen-4:validLen,i2;for(i2=0;i2<len2;i2+=4)tmp=revLookup[b64.charCodeAt(i2)]<<18|revLookup[b64.charCodeAt(i2+1)]<<12|revLookup[b64.charCodeAt(i2+2)]<<6|revLookup[b64.charCodeAt(i2+3)],arr[curByte++]=tmp>>16&255,arr[curByte++]=tmp>>8&255,arr[curByte++]=tmp&255;return placeHoldersLen===2&&(tmp=revLookup[b64.charCodeAt(i2)]<<2|revLookup[b64.charCodeAt(i2+1)]>>4,arr[curByte++]=tmp&255),placeHoldersLen===1&&(tmp=revLookup[b64.charCodeAt(i2)]<<10|revLookup[b64.charCodeAt(i2+1)]<<4|revLookup[b64.charCodeAt(i2+2)]>>2,arr[curByte++]=tmp>>8&255,arr[curByte++]=tmp&255),arr}function tripletToBase64(num){return lookup[num>>18&63]+lookup[num>>12&63]+lookup[num>>6&63]+lookup[num&63]}function encodeChunk(uint8,start,end){for(var tmp,output=[],i2=start;i2<end;i2+=3)tmp=(uint8[i2]<<16&16711680)+(uint8[i2+1]<<8&65280)+(uint8[i2+2]&255),output.push(tripletToBase64(tmp));return output.join("")}function fromByteArray(uint8){for(var tmp,len2=uint8.length,extraBytes=len2%3,parts=[],maxChunkLength=16383,i2=0,len22=len2-extraBytes;i2<len22;i2+=maxChunkLength)parts.push(encodeChunk(uint8,i2,i2+maxChunkLength>len22?len22:i2+maxChunkLength));return extraBytes===1?(tmp=uint8[len2-1],parts.push(lookup[tmp>>2]+lookup[tmp<<4&63]+"==")):extraBytes===2&&(tmp=(uint8[len2-2]<<8)+uint8[len2-1],parts.push(lookup[tmp>>10]+lookup[tmp>>4&63]+lookup[tmp<<2&63]+"=")),parts.join("")}}});var require_ieee754=__commonJS({"node_modules/ieee754/index.js"(exports){init_define_process_env();init_shim();exports.read=function(buffer,offset,isLE,mLen,nBytes){var e,m,eLen=nBytes*8-mLen-1,eMax=(1<<eLen)-1,eBias=eMax>>1,nBits=-7,i=isLE?nBytes-1:0,d=isLE?-1:1,s=buffer[offset+i];for(i+=d,e=s&(1<<-nBits)-1,s>>=-nBits,nBits+=eLen;nBits>0;e=e*256+buffer[offset+i],i+=d,nBits-=8);for(m=e&(1<<-nBits)-1,e>>=-nBits,nBits+=mLen;nBits>0;m=m*256+buffer[offset+i],i+=d,nBits-=8);if(e===0)e=1-eBias;else{if(e===eMax)return m?NaN:(s?-1:1)*(1/0);m=m+Math.pow(2,mLen),e=e-eBias}return(s?-1:1)*m*Math.pow(2,e-mLen)};exports.write=function(buffer,value,offset,isLE,mLen,nBytes){var e,m,c,eLen=nBytes*8-mLen-1,eMax=(1<<eLen)-1,eBias=eMax>>1,rt=mLen===23?Math.pow(2,-24)-Math.pow(2,-77):0,i=isLE?0:nBytes-1,d=isLE?1:-1,s=value<0||value===0&&1/value<0?1:0;for(value=Math.abs(value),isNaN(value)||value===1/0?(m=isNaN(value)?1:0,e=eMax):(e=Math.floor(Math.log(value)/Math.LN2),value*(c=Math.pow(2,-e))<1&&(e--,c*=2),e+eBias>=1?value+=rt/c:value+=rt*Math.pow(2,1-eBias),value*c>=2&&(e++,c/=2),e+eBias>=eMax?(m=0,e=eMax):e+eBias>=1?(m=(value*c-1)*Math.pow(2,mLen),e=e+eBias):(m=value*Math.pow(2,eBias-1)*Math.pow(2,mLen),e=0));mLen>=8;buffer[offset+i]=m&255,i+=d,m/=256,mLen-=8);for(e=e<<mLen|m,eLen+=mLen;eLen>0;buffer[offset+i]=e&255,i+=d,e/=256,eLen-=8);buffer[offset+i-d]|=s*128}}});var require_buffer=__commonJS({"node_modules/node-stdlib-browser/node_modules/buffer/index.js"(exports){"use strict";init_define_process_env();init_shim();var base64=require_base64_js(),ieee754=require_ieee754(),customInspectSymbol=typeof Symbol=="function"&&typeof Symbol.for=="function"?Symbol.for("nodejs.util.inspect.custom"):null;exports.Buffer=Buffer3;exports.SlowBuffer=SlowBuffer;exports.INSPECT_MAX_BYTES=50;var K_MAX_LENGTH=2147483647;exports.kMaxLength=K_MAX_LENGTH;Buffer3.TYPED_ARRAY_SUPPORT=typedArraySupport();!Buffer3.TYPED_ARRAY_SUPPORT&&typeof console<"u"&&typeof console.error=="function"&&console.error("This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support.");function typedArraySupport(){try{var arr=new Uint8Array(1),proto={foo:function(){return 42}};return Object.setPrototypeOf(proto,Uint8Array.prototype),Object.setPrototypeOf(arr,proto),arr.foo()===42}catch(e){return!1}}Object.defineProperty(Buffer3.prototype,"parent",{enumerable:!0,get:function(){if(Buffer3.isBuffer(this))return this.buffer}});Object.defineProperty(Buffer3.prototype,"offset",{enumerable:!0,get:function(){if(Buffer3.isBuffer(this))return this.byteOffset}});function createBuffer(length){if(length>K_MAX_LENGTH)throw new RangeError('The value "'+length+'" is invalid for option "size"');var buf=new Uint8Array(length);return Object.setPrototypeOf(buf,Buffer3.prototype),buf}function Buffer3(arg,encodingOrOffset,length){if(typeof arg=="number"){if(typeof encodingOrOffset=="string")throw new TypeError('The "string" argument must be of type string. Received type number');return allocUnsafe(arg)}return from(arg,encodingOrOffset,length)}Buffer3.poolSize=8192;function from(value,encodingOrOffset,length){if(typeof value=="string")return fromString(value,encodingOrOffset);if(ArrayBuffer.isView(value))return fromArrayView(value);if(value==null)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof value);if(isInstance(value,ArrayBuffer)||value&&isInstance(value.buffer,ArrayBuffer)||typeof SharedArrayBuffer<"u"&&(isInstance(value,SharedArrayBuffer)||value&&isInstance(value.buffer,SharedArrayBuffer)))return fromArrayBuffer(value,encodingOrOffset,length);if(typeof value=="number")throw new TypeError('The "value" argument must not be of type number. Received type number');var valueOf=value.valueOf&&value.valueOf();if(valueOf!=null&&valueOf!==value)return Buffer3.from(valueOf,encodingOrOffset,length);var b=fromObject(value);if(b)return b;if(typeof Symbol<"u"&&Symbol.toPrimitive!=null&&typeof value[Symbol.toPrimitive]=="function")return Buffer3.from(value[Symbol.toPrimitive]("string"),encodingOrOffset,length);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof value)}Buffer3.from=function(value,encodingOrOffset,length){return from(value,encodingOrOffset,length)};Object.setPrototypeOf(Buffer3.prototype,Uint8Array.prototype);Object.setPrototypeOf(Buffer3,Uint8Array);function assertSize(size){if(typeof size!="number")throw new TypeError('"size" argument must be of type number');if(size<0)throw new RangeError('The value "'+size+'" is invalid for option "size"')}function alloc(size,fill,encoding){return assertSize(size),size<=0?createBuffer(size):fill!==void 0?typeof encoding=="string"?createBuffer(size).fill(fill,encoding):createBuffer(size).fill(fill):createBuffer(size)}Buffer3.alloc=function(size,fill,encoding){return alloc(size,fill,encoding)};function allocUnsafe(size){return assertSize(size),createBuffer(size<0?0:checked(size)|0)}Buffer3.allocUnsafe=function(size){return allocUnsafe(size)};Buffer3.allocUnsafeSlow=function(size){return allocUnsafe(size)};function fromString(string,encoding){if((typeof encoding!="string"||encoding==="")&&(encoding="utf8"),!Buffer3.isEncoding(encoding))throw new TypeError("Unknown encoding: "+encoding);var length=byteLength(string,encoding)|0,buf=createBuffer(length),actual=buf.write(string,encoding);return actual!==length&&(buf=buf.slice(0,actual)),buf}function fromArrayLike(array){for(var length=array.length<0?0:checked(array.length)|0,buf=createBuffer(length),i=0;i<length;i+=1)buf[i]=array[i]&255;return buf}function fromArrayView(arrayView){if(isInstance(arrayView,Uint8Array)){var copy=new Uint8Array(arrayView);return fromArrayBuffer(copy.buffer,copy.byteOffset,copy.byteLength)}return fromArrayLike(arrayView)}function fromArrayBuffer(array,byteOffset,length){if(byteOffset<0||array.byteLength<byteOffset)throw new RangeError('"offset" is outside of buffer bounds');if(array.byteLength<byteOffset+(length||0))throw new RangeError('"length" is outside of buffer bounds');var buf;return byteOffset===void 0&&length===void 0?buf=new Uint8Array(array):length===void 0?buf=new Uint8Array(array,byteOffset):buf=new Uint8Array(array,byteOffset,length),Object.setPrototypeOf(buf,Buffer3.prototype),buf}function fromObject(obj){if(Buffer3.isBuffer(obj)){var len=checked(obj.length)|0,buf=createBuffer(len);return buf.length===0||obj.copy(buf,0,0,len),buf}if(obj.length!==void 0)return typeof obj.length!="number"||numberIsNaN(obj.length)?createBuffer(0):fromArrayLike(obj);if(obj.type==="Buffer"&&Array.isArray(obj.data))return fromArrayLike(obj.data)}function checked(length){if(length>=K_MAX_LENGTH)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+K_MAX_LENGTH.toString(16)+" bytes");return length|0}function SlowBuffer(length){return+length!=length&&(length=0),Buffer3.alloc(+length)}Buffer3.isBuffer=function(b){return b!=null&&b._isBuffer===!0&&b!==Buffer3.prototype};Buffer3.compare=function(a,b){if(isInstance(a,Uint8Array)&&(a=Buffer3.from(a,a.offset,a.byteLength)),isInstance(b,Uint8Array)&&(b=Buffer3.from(b,b.offset,b.byteLength)),!Buffer3.isBuffer(a)||!Buffer3.isBuffer(b))throw new TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array');if(a===b)return 0;for(var x=a.length,y=b.length,i=0,len=Math.min(x,y);i<len;++i)if(a[i]!==b[i]){x=a[i],y=b[i];break}return x<y?-1:y<x?1:0};Buffer3.isEncoding=function(encoding){switch(String(encoding).toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"latin1":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return!0;default:return!1}};Buffer3.concat=function(list,length){if(!Array.isArray(list))throw new TypeError('"list" argument must be an Array of Buffers');if(list.length===0)return Buffer3.alloc(0);var i;if(length===void 0)for(length=0,i=0;i<list.length;++i)length+=list[i].length;var buffer=Buffer3.allocUnsafe(length),pos=0;for(i=0;i<list.length;++i){var buf=list[i];if(isInstance(buf,Uint8Array))pos+buf.length>buffer.length?Buffer3.from(buf).copy(buffer,pos):Uint8Array.prototype.set.call(buffer,buf,pos);else if(Buffer3.isBuffer(buf))buf.copy(buffer,pos);else throw new TypeError('"list" argument must be an Array of Buffers');pos+=buf.length}return buffer};function byteLength(string,encoding){if(Buffer3.isBuffer(string))return string.length;if(ArrayBuffer.isView(string)||isInstance(string,ArrayBuffer))return string.byteLength;if(typeof string!="string")throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof string);var len=string.length,mustMatch=arguments.length>2&&arguments[2]===!0;if(!mustMatch&&len===0)return 0;for(var loweredCase=!1;;)switch(encoding){case"ascii":case"latin1":case"binary":return len;case"utf8":case"utf-8":return utf8ToBytes(string).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return len*2;case"hex":return len>>>1;case"base64":return base64ToBytes(string).length;default:if(loweredCase)return mustMatch?-1:utf8ToBytes(string).length;encoding=(""+encoding).toLowerCase(),loweredCase=!0}}Buffer3.byteLength=byteLength;function slowToString(encoding,start,end){var loweredCase=!1;if((start===void 0||start<0)&&(start=0),start>this.length||((end===void 0||end>this.length)&&(end=this.length),end<=0)||(end>>>=0,start>>>=0,end<=start))return"";for(encoding||(encoding="utf8");;)switch(encoding){case"hex":return hexSlice(this,start,end);case"utf8":case"utf-8":return utf8Slice(this,start,end);case"ascii":return asciiSlice(this,start,end);case"latin1":case"binary":return latin1Slice(this,start,end);case"base64":return base64Slice(this,start,end);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return utf16leSlice(this,start,end);default:if(loweredCase)throw new TypeError("Unknown encoding: "+encoding);encoding=(encoding+"").toLowerCase(),loweredCase=!0}}Buffer3.prototype._isBuffer=!0;function swap(b,n,m){var i=b[n];b[n]=b[m],b[m]=i}Buffer3.prototype.swap16=function(){var len=this.length;if(len%2!==0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(var i=0;i<len;i+=2)swap(this,i,i+1);return this};Buffer3.prototype.swap32=function(){var len=this.length;if(len%4!==0)throw new RangeError("Buffer size must be a multiple of 32-bits");for(var i=0;i<len;i+=4)swap(this,i,i+3),swap(this,i+1,i+2);return this};Buffer3.prototype.swap64=function(){var len=this.length;if(len%8!==0)throw new RangeError("Buffer size must be a multiple of 64-bits");for(var i=0;i<len;i+=8)swap(this,i,i+7),swap(this,i+1,i+6),swap(this,i+2,i+5),swap(this,i+3,i+4);return this};Buffer3.prototype.toString=function(){var length=this.length;return length===0?"":arguments.length===0?utf8Slice(this,0,length):slowToString.apply(this,arguments)};Buffer3.prototype.toLocaleString=Buffer3.prototype.toString;Buffer3.prototype.equals=function(b){if(!Buffer3.isBuffer(b))throw new TypeError("Argument must be a Buffer");return this===b?!0:Buffer3.compare(this,b)===0};Buffer3.prototype.inspect=function(){var str="",max=exports.INSPECT_MAX_BYTES;return str=this.toString("hex",0,max).replace(/(.{2})/g,"$1 ").trim(),this.length>max&&(str+=" ... "),"<Buffer "+str+">"};customInspectSymbol&&(Buffer3.prototype[customInspectSymbol]=Buffer3.prototype.inspect);Buffer3.prototype.compare=function(target,start,end,thisStart,thisEnd){if(isInstance(target,Uint8Array)&&(target=Buffer3.from(target,target.offset,target.byteLength)),!Buffer3.isBuffer(target))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof target);if(start===void 0&&(start=0),end===void 0&&(end=target?target.length:0),thisStart===void 0&&(thisStart=0),thisEnd===void 0&&(thisEnd=this.length),start<0||end>target.length||thisStart<0||thisEnd>this.length)throw new RangeError("out of range index");if(thisStart>=thisEnd&&start>=end)return 0;if(thisStart>=thisEnd)return-1;if(start>=end)return 1;if(start>>>=0,end>>>=0,thisStart>>>=0,thisEnd>>>=0,this===target)return 0;for(var x=thisEnd-thisStart,y=end-start,len=Math.min(x,y),thisCopy=this.slice(thisStart,thisEnd),targetCopy=target.slice(start,end),i=0;i<len;++i)if(thisCopy[i]!==targetCopy[i]){x=thisCopy[i],y=targetCopy[i];break}return x<y?-1:y<x?1:0};function bidirectionalIndexOf(buffer,val,byteOffset,encoding,dir){if(buffer.length===0)return-1;if(typeof byteOffset=="string"?(encoding=byteOffset,byteOffset=0):byteOffset>2147483647?byteOffset=2147483647:byteOffset<-2147483648&&(byteOffset=-2147483648),byteOffset=+byteOffset,numberIsNaN(byteOffset)&&(byteOffset=dir?0:buffer.length-1),byteOffset<0&&(byteOffset=buffer.length+byteOffset),byteOffset>=buffer.length){if(dir)return-1;byteOffset=buffer.length-1}else if(byteOffset<0)if(dir)byteOffset=0;else return-1;if(typeof val=="string"&&(val=Buffer3.from(val,encoding)),Buffer3.isBuffer(val))return val.length===0?-1:arrayIndexOf(buffer,val,byteOffset,encoding,dir);if(typeof val=="number")return val=val&255,typeof Uint8Array.prototype.indexOf=="function"?dir?Uint8Array.prototype.indexOf.call(buffer,val,byteOffset):Uint8Array.prototype.lastIndexOf.call(buffer,val,byteOffset):arrayIndexOf(buffer,[val],byteOffset,encoding,dir);throw new TypeError("val must be string, number or Buffer")}function arrayIndexOf(arr,val,byteOffset,encoding,dir){var indexSize=1,arrLength=arr.length,valLength=val.length;if(encoding!==void 0&&(encoding=String(encoding).toLowerCase(),encoding==="ucs2"||encoding==="ucs-2"||encoding==="utf16le"||encoding==="utf-16le")){if(arr.length<2||val.length<2)return-1;indexSize=2,arrLength/=2,valLength/=2,byteOffset/=2}function read(buf,i2){return indexSize===1?buf[i2]:buf.readUInt16BE(i2*indexSize)}var i;if(dir){var foundIndex=-1;for(i=byteOffset;i<arrLength;i++)if(read(arr,i)===read(val,foundIndex===-1?0:i-foundIndex)){if(foundIndex===-1&&(foundIndex=i),i-foundIndex+1===valLength)return foundIndex*indexSize}else foundIndex!==-1&&(i-=i-foundIndex),foundIndex=-1}else for(byteOffset+valLength>arrLength&&(byteOffset=arrLength-valLength),i=byteOffset;i>=0;i--){for(var found=!0,j=0;j<valLength;j++)if(read(arr,i+j)!==read(val,j)){found=!1;break}if(found)return i}return-1}Buffer3.prototype.includes=function(val,byteOffset,encoding){return this.indexOf(val,byteOffset,encoding)!==-1};Buffer3.prototype.indexOf=function(val,byteOffset,encoding){return bidirectionalIndexOf(this,val,byteOffset,encoding,!0)};Buffer3.prototype.lastIndexOf=function(val,byteOffset,encoding){return bidirectionalIndexOf(this,val,byteOffset,encoding,!1)};function hexWrite(buf,string,offset,length){offset=Number(offset)||0;var remaining=buf.length-offset;length?(length=Number(length),length>remaining&&(length=remaining)):length=remaining;var strLen=string.length;length>strLen/2&&(length=strLen/2);for(var i=0;i<length;++i){var parsed=parseInt(string.substr(i*2,2),16);if(numberIsNaN(parsed))return i;buf[offset+i]=parsed}return i}function utf8Write(buf,string,offset,length){return blitBuffer(utf8ToBytes(string,buf.length-offset),buf,offset,length)}function asciiWrite(buf,string,offset,length){return blitBuffer(asciiToBytes(string),buf,offset,length)}function base64Write(buf,string,offset,length){return blitBuffer(base64ToBytes(string),buf,offset,length)}function ucs2Write(buf,string,offset,length){return blitBuffer(utf16leToBytes(string,buf.length-offset),buf,offset,length)}Buffer3.prototype.write=function(string,offset,length,encoding){if(offset===void 0)encoding="utf8",length=this.length,offset=0;else if(length===void 0&&typeof offset=="string")encoding=offset,length=this.length,offset=0;else if(isFinite(offset))offset=offset>>>0,isFinite(length)?(length=length>>>0,encoding===void 0&&(encoding="utf8")):(encoding=length,length=void 0);else throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");var remaining=this.length-offset;if((length===void 0||length>remaining)&&(length=remaining),string.length>0&&(length<0||offset<0)||offset>this.length)throw new RangeError("Attempt to write outside buffer bounds");encoding||(encoding="utf8");for(var loweredCase=!1;;)switch(encoding){case"hex":return hexWrite(this,string,offset,length);case"utf8":case"utf-8":return utf8Write(this,string,offset,length);case"ascii":case"latin1":case"binary":return asciiWrite(this,string,offset,length);case"base64":return base64Write(this,string,offset,length);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return ucs2Write(this,string,offset,length);default:if(loweredCase)throw new TypeError("Unknown encoding: "+encoding);encoding=(""+encoding).toLowerCase(),loweredCase=!0}};Buffer3.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function base64Slice(buf,start,end){return start===0&&end===buf.length?base64.fromByteArray(buf):base64.fromByteArray(buf.slice(start,end))}function utf8Slice(buf,start,end){end=Math.min(buf.length,end);for(var res=[],i=start;i<end;){var firstByte=buf[i],codePoint=null,bytesPerSequence=firstByte>239?4:firstByte>223?3:firstByte>191?2:1;if(i+bytesPerSequence<=end){var secondByte,thirdByte,fourthByte,tempCodePoint;switch(bytesPerSequence){case 1:firstByte<128&&(codePoint=firstByte);break;case 2:secondByte=buf[i+1],(secondByte&192)===128&&(tempCodePoint=(firstByte&31)<<6|secondByte&63,tempCodePoint>127&&(codePoint=tempCodePoint));break;case 3:secondByte=buf[i+1],thirdByte=buf[i+2],(secondByte&192)===128&&(thirdByte&192)===128&&(tempCodePoint=(firstByte&15)<<12|(secondByte&63)<<6|thirdByte&63,tempCodePoint>2047&&(tempCodePoint<55296||tempCodePoint>57343)&&(codePoint=tempCodePoint));break;case 4:secondByte=buf[i+1],thirdByte=buf[i+2],fourthByte=buf[i+3],(secondByte&192)===128&&(thirdByte&192)===128&&(fourthByte&192)===128&&(tempCodePoint=(firstByte&15)<<18|(secondByte&63)<<12|(thirdByte&63)<<6|fourthByte&63,tempCodePoint>65535&&tempCodePoint<1114112&&(codePoint=tempCodePoint))}}codePoint===null?(codePoint=65533,bytesPerSequence=1):codePoint>65535&&(codePoint-=65536,res.push(codePoint>>>10&1023|55296),codePoint=56320|codePoint&1023),res.push(codePoint),i+=bytesPerSequence}return decodeCodePointsArray(res)}var MAX_ARGUMENTS_LENGTH=4096;function decodeCodePointsArray(codePoints){var len=codePoints.length;if(len<=MAX_ARGUMENTS_LENGTH)return String.fromCharCode.apply(String,codePoints);for(var res="",i=0;i<len;)res+=String.fromCharCode.apply(String,codePoints.slice(i,i+=MAX_ARGUMENTS_LENGTH));return res}function asciiSlice(buf,start,end){var ret="";end=Math.min(buf.length,end);for(var i=start;i<end;++i)ret+=String.fromCharCode(buf[i]&127);return ret}function latin1Slice(buf,start,end){var ret="";end=Math.min(buf.length,end);for(var i=start;i<end;++i)ret+=String.fromCharCode(buf[i]);return ret}function hexSlice(buf,start,end){var len=buf.length;(!start||start<0)&&(start=0),(!end||end<0||end>len)&&(end=len);for(var out="",i=start;i<end;++i)out+=hexSliceLookupTable[buf[i]];return out}function utf16leSlice(buf,start,end){for(var bytes=buf.slice(start,end),res="",i=0;i<bytes.length-1;i+=2)res+=String.fromCharCode(bytes[i]+bytes[i+1]*256);return res}Buffer3.prototype.slice=function(start,end){var len=this.length;start=~~start,end=end===void 0?len:~~end,start<0?(start+=len,start<0&&(start=0)):start>len&&(start=len),end<0?(end+=len,end<0&&(end=0)):end>len&&(end=len),end<start&&(end=start);var newBuf=this.subarray(start,end);return Object.setPrototypeOf(newBuf,Buffer3.prototype),newBuf};function checkOffset(offset,ext,length){if(offset%1!==0||offset<0)throw new RangeError("offset is not uint");if(offset+ext>length)throw new RangeError("Trying to access beyond buffer length")}Buffer3.prototype.readUintLE=Buffer3.prototype.readUIntLE=function(offset,byteLength2,noAssert){offset=offset>>>0,byteLength2=byteLength2>>>0,noAssert||checkOffset(offset,byteLength2,this.length);for(var val=this[offset],mul=1,i=0;++i<byteLength2&&(mul*=256);)val+=this[offset+i]*mul;return val};Buffer3.prototype.readUintBE=Buffer3.prototype.readUIntBE=function(offset,byteLength2,noAssert){offset=offset>>>0,byteLength2=byteLength2>>>0,noAssert||checkOffset(offset,byteLength2,this.length);for(var val=this[offset+--byteLength2],mul=1;byteLength2>0&&(mul*=256);)val+=this[offset+--byteLength2]*mul;return val};Buffer3.prototype.readUint8=Buffer3.prototype.readUInt8=function(offset,noAssert){return offset=offset>>>0,noAssert||checkOffset(offset,1,this.length),this[offset]};Buffer3.prototype.readUint16LE=Buffer3.prototype.readUInt16LE=function(offset,noAssert){return offset=offset>>>0,noAssert||checkOffset(offset,2,this.length),this[offset]|this[offset+1]<<8};Buffer3.prototype.readUint16BE=Buffer3.prototype.readUInt16BE=function(offset,noAssert){return offset=offset>>>0,noAssert||checkOffset(offset,2,this.length),this[offset]<<8|this[offset+1]};Buffer3.prototype.readUint32LE=Buffer3.prototype.readUInt32LE=function(offset,noAssert){return offset=offset>>>0,noAssert||checkOffset(offset,4,this.length),(this[offset]|this[offset+1]<<8|this[offset+2]<<16)+this[offset+3]*16777216};Buffer3.prototype.readUint32BE=Buffer3.prototype.readUInt32BE=function(offset,noAssert){return offset=offset>>>0,noAssert||checkOffset(offset,4,this.length),this[offset]*16777216+(this[offset+1]<<16|this[offset+2]<<8|this[offset+3])};Buffer3.prototype.readIntLE=function(offset,byteLength2,noAssert){offset=offset>>>0,byteLength2=byteLength2>>>0,noAssert||checkOffset(offset,byteLength2,this.length);for(var val=this[offset],mul=1,i=0;++i<byteLength2&&(mul*=256);)val+=this[offset+i]*mul;return mul*=128,val>=mul&&(val-=Math.pow(2,8*byteLength2)),val};Buffer3.prototype.readIntBE=function(offset,byteLength2,noAssert){offset=offset>>>0,byteLength2=byteLength2>>>0,noAssert||checkOffset(offset,byteLength2,this.length);for(var i=byteLength2,mul=1,val=this[offset+--i];i>0&&(mul*=256);)val+=this[offset+--i]*mul;return mul*=128,val>=mul&&(val-=Math.pow(2,8*byteLength2)),val};Buffer3.prototype.readInt8=function(offset,noAssert){return offset=offset>>>0,noAssert||checkOffset(offset,1,this.length),this[offset]&128?(255-this[offset]+1)*-1:this[offset]};Buffer3.prototype.readInt16LE=function(offset,noAssert){offset=offset>>>0,noAssert||checkOffset(offset,2,this.length);var val=this[offset]|this[offset+1]<<8;return val&32768?val|4294901760:val};Buffer3.prototype.readInt16BE=function(offset,noAssert){offset=offset>>>0,noAssert||checkOffset(offset,2,this.length);var val=this[offset+1]|this[offset]<<8;return val&32768?val|4294901760:val};Buffer3.prototype.readInt32LE=function(offset,noAssert){return offset=offset>>>0,noAssert||checkOffset(offset,4,this.length),this[offset]|this[offset+1]<<8|this[offset+2]<<16|this[offset+3]<<24};Buffer3.prototype.readInt32BE=function(offset,noAssert){return offset=offset>>>0,noAssert||checkOffset(offset,4,this.length),this[offset]<<24|this[offset+1]<<16|this[offset+2]<<8|this[offset+3]};Buffer3.prototype.readFloatLE=function(offset,noAssert){return offset=offset>>>0,noAssert||checkOffset(offset,4,this.length),ieee754.read(this,offset,!0,23,4)};Buffer3.prototype.readFloatBE=function(offset,noAssert){return offset=offset>>>0,noAssert||checkOffset(offset,4,this.length),ieee754.read(this,offset,!1,23,4)};Buffer3.prototype.readDoubleLE=function(offset,noAssert){return offset=offset>>>0,noAssert||checkOffset(offset,8,this.length),ieee754.read(this,offset,!0,52,8)};Buffer3.prototype.readDoubleBE=function(offset,noAssert){return offset=offset>>>0,noAssert||checkOffset(offset,8,this.length),ieee754.read(this,offset,!1,52,8)};function checkInt(buf,value,offset,ext,max,min){if(!Buffer3.isBuffer(buf))throw new TypeError('"buffer" argument must be a Buffer instance');if(value>max||value<min)throw new RangeError('"value" argument is out of bounds');if(offset+ext>buf.length)throw new RangeError("Index out of range")}Buffer3.prototype.writeUintLE=Buffer3.prototype.writeUIntLE=function(value,offset,byteLength2,noAssert){if(value=+value,offset=offset>>>0,byteLength2=byteLength2>>>0,!noAssert){var maxBytes=Math.pow(2,8*byteLength2)-1;checkInt(this,value,offset,byteLength2,maxBytes,0)}var mul=1,i=0;for(this[offset]=value&255;++i<byteLength2&&(mul*=256);)this[offset+i]=value/mul&255;return offset+byteLength2};Buffer3.prototype.writeUintBE=Buffer3.prototype.writeUIntBE=function(value,offset,byteLength2,noAssert){if(value=+value,offset=offset>>>0,byteLength2=byteLength2>>>0,!noAssert){var maxBytes=Math.pow(2,8*byteLength2)-1;checkInt(this,value,offset,byteLength2,maxBytes,0)}var i=byteLength2-1,mul=1;for(this[offset+i]=value&255;--i>=0&&(mul*=256);)this[offset+i]=value/mul&255;return offset+byteLength2};Buffer3.prototype.writeUint8=Buffer3.prototype.writeUInt8=function(value,offset,noAssert){return value=+value,offset=offset>>>0,noAssert||checkInt(this,value,offset,1,255,0),this[offset]=value&255,offset+1};Buffer3.prototype.writeUint16LE=Buffer3.prototype.writeUInt16LE=function(value,offset,noAssert){return value=+value,offset=offset>>>0,noAssert||checkInt(this,value,offset,2,65535,0),this[offset]=value&255,this[offset+1]=value>>>8,offset+2};Buffer3.prototype.writeUint16BE=Buffer3.prototype.writeUInt16BE=function(value,offset,noAssert){return value=+value,offset=offset>>>0,noAssert||checkInt(this,value,offset,2,65535,0),this[offset]=value>>>8,this[offset+1]=value&255,offset+2};Buffer3.prototype.writeUint32LE=Buffer3.prototype.writeUInt32LE=function(value,offset,noAssert){return value=+value,offset=offset>>>0,noAssert||checkInt(this,value,offset,4,4294967295,0),this[offset+3]=value>>>24,this[offset+2]=value>>>16,this[offset+1]=value>>>8,this[offset]=value&255,offset+4};Buffer3.prototype.writeUint32BE=Buffer3.prototype.writeUInt32BE=function(value,offset,noAssert){return value=+value,offset=offset>>>0,noAssert||checkInt(this,value,offset,4,4294967295,0),this[offset]=value>>>24,this[offset+1]=value>>>16,this[offset+2]=value>>>8,this[offset+3]=value&255,offset+4};Buffer3.prototype.writeIntLE=function(value,offset,byteLength2,noAssert){if(value=+value,offset=offset>>>0,!noAssert){var limit=Math.pow(2,8*byteLength2-1);checkInt(this,value,offset,byteLength2,limit-1,-limit)}var i=0,mul=1,sub=0;for(this[offset]=value&255;++i<byteLength2&&(mul*=256);)value<0&&sub===0&&this[offset+i-1]!==0&&(sub=1),this[offset+i]=(value/mul>>0)-sub&255;return offset+byteLength2};Buffer3.prototype.writeIntBE=function(value,offset,byteLength2,noAssert){if(value=+value,offset=offset>>>0,!noAssert){var limit=Math.pow(2,8*byteLength2-1);checkInt(this,value,offset,byteLength2,limit-1,-limit)}var i=byteLength2-1,mul=1,sub=0;for(this[offset+i]=value&255;--i>=0&&(mul*=256);)value<0&&sub===0&&this[offset+i+1]!==0&&(sub=1),this[offset+i]=(value/mul>>0)-sub&255;return offset+byteLength2};Buffer3.prototype.writeInt8=function(value,offset,noAssert){return value=+value,offset=offset>>>0,noAssert||checkInt(this,value,offset,1,127,-128),value<0&&(value=255+value+1),this[offset]=value&255,offset+1};Buffer3.prototype.writeInt16LE=function(value,offset,noAssert){return value=+value,offset=offset>>>0,noAssert||checkInt(this,value,offset,2,32767,-32768),this[offset]=value&255,this[offset+1]=value>>>8,offset+2};Buffer3.prototype.writeInt16BE=function(value,offset,noAssert){return value=+value,offset=offset>>>0,noAssert||checkInt(this,value,offset,2,32767,-32768),this[offset]=value>>>8,this[offset+1]=value&255,offset+2};Buffer3.prototype.writeInt32LE=function(value,offset,noAssert){return value=+value,offset=offset>>>0,noAssert||checkInt(this,value,offset,4,2147483647,-2147483648),this[offset]=value&255,this[offset+1]=value>>>8,this[offset+2]=value>>>16,this[offset+3]=value>>>24,offset+4};Buffer3.prototype.writeInt32BE=function(value,offset,noAssert){return value=+value,offset=offset>>>0,noAssert||checkInt(this,value,offset,4,2147483647,-2147483648),value<0&&(value=4294967295+value+1),this[offset]=value>>>24,this[offset+1]=value>>>16,this[offset+2]=value>>>8,this[offset+3]=value&255,offset+4};function checkIEEE754(buf,value,offset,ext,max,min){if(offset+ext>buf.length)throw new RangeError("Index out of range");if(offset<0)throw new RangeError("Index out of range")}function writeFloat(buf,value,offset,littleEndian,noAssert){return value=+value,offset=offset>>>0,noAssert||checkIEEE754(buf,value,offset,4,34028234663852886e22,-34028234663852886e22),ieee754.write(buf,value,offset,littleEndian,23,4),offset+4}Buffer3.prototype.writeFloatLE=function(value,offset,noAssert){return writeFloat(this,value,offset,!0,noAssert)};Buffer3.prototype.writeFloatBE=function(value,offset,noAssert){return writeFloat(this,value,offset,!1,noAssert)};function writeDouble(buf,value,offset,littleEndian,noAssert){return value=+value,offset=offset>>>0,noAssert||checkIEEE754(buf,value,offset,8,17976931348623157e292,-17976931348623157e292),ieee754.write(buf,value,offset,littleEndian,52,8),offset+8}Buffer3.prototype.writeDoubleLE=function(value,offset,noAssert){return writeDouble(this,value,offset,!0,noAssert)};Buffer3.prototype.writeDoubleBE=function(value,offset,noAssert){return writeDouble(this,value,offset,!1,noAssert)};Buffer3.prototype.copy=function(target,targetStart,start,end){if(!Buffer3.isBuffer(target))throw new TypeError("argument should be a Buffer");if(start||(start=0),!end&&end!==0&&(end=this.length),targetStart>=target.length&&(targetStart=target.length),targetStart||(targetStart=0),end>0&&end<start&&(end=start),end===start||target.length===0||this.length===0)return 0;if(targetStart<0)throw new RangeError("targetStart out of bounds");if(start<0||start>=this.length)throw new RangeError("Index out of range");if(end<0)throw new RangeError("sourceEnd out of bounds");end>this.length&&(end=this.length),target.length-targetStart<end-start&&(end=target.length-targetStart+start);var len=end-start;return this===target&&typeof Uint8Array.prototype.copyWithin=="function"?this.copyWithin(targetStart,start,end):Uint8Array.prototype.set.call(target,this.subarray(start,end),targetStart),len};Buffer3.prototype.fill=function(val,start,end,encoding){if(typeof val=="string"){if(typeof start=="string"?(encoding=start,start=0,end=this.length):typeof end=="string"&&(encoding=end,end=this.length),encoding!==void 0&&typeof encoding!="string")throw new TypeError("encoding must be a string");if(typeof encoding=="string"&&!Buffer3.isEncoding(encoding))throw new TypeError("Unknown encoding: "+encoding);if(val.length===1){var code=val.charCodeAt(0);(encoding==="utf8"&&code<128||encoding==="latin1")&&(val=code)}}else typeof val=="number"?val=val&255:typeof val=="boolean"&&(val=Number(val));if(start<0||this.length<start||this.length<end)throw new RangeError("Out of range index");if(end<=start)return this;start=start>>>0,end=end===void 0?this.length:end>>>0,val||(val=0);var i;if(typeof val=="number")for(i=start;i<end;++i)this[i]=val;else{var bytes=Buffer3.isBuffer(val)?val:Buffer3.from(val,encoding),len=bytes.length;if(len===0)throw new TypeError('The value "'+val+'" is invalid for argument "value"');for(i=0;i<end-start;++i)this[i+start]=bytes[i%len]}return this};var INVALID_BASE64_RE=/[^+/0-9A-Za-z-_]/g;function base64clean(str){if(str=str.split("=")[0],str=str.trim().replace(INVALID_BASE64_RE,""),str.length<2)return"";for(;str.length%4!==0;)str=str+"=";return str}function utf8ToBytes(string,units){units=units||1/0;for(var codePoint,length=string.length,leadSurrogate=null,bytes=[],i=0;i<length;++i){if(codePoint=string.charCodeAt(i),codePoint>55295&&codePoint<57344){if(!leadSurrogate){if(codePoint>56319){(units-=3)>-1&&bytes.push(239,191,189);continue}else if(i+1===length){(units-=3)>-1&&bytes.push(239,191,189);continue}leadSurrogate=codePoint;continue}if(codePoint<56320){(units-=3)>-1&&bytes.push(239,191,189),leadSurrogate=codePoint;continue}codePoint=(leadSurrogate-55296<<10|codePoint-56320)+65536}else leadSurrogate&&(units-=3)>-1&&bytes.push(239,191,189);if(leadSurrogate=null,codePoint<128){if((units-=1)<0)break;bytes.push(codePoint)}else if(codePoint<2048){if((units-=2)<0)break;bytes.push(codePoint>>6|192,codePoint&63|128)}else if(codePoint<65536){if((units-=3)<0)break;bytes.push(codePoint>>12|224,codePoint>>6&63|128,codePoint&63|128)}else if(codePoint<1114112){if((units-=4)<0)break;bytes.push(codePoint>>18|240,codePoint>>12&63|128,codePoint>>6&63|128,codePoint&63|128)}else throw new Error("Invalid code point")}return bytes}function asciiToBytes(str){for(var byteArray=[],i=0;i<str.length;++i)byteArray.push(str.charCodeAt(i)&255);return byteArray}function utf16leToBytes(str,units){for(var c,hi,lo,byteArray=[],i=0;i<str.length&&!((units-=2)<0);++i)c=str.charCodeAt(i),hi=c>>8,lo=c%256,byteArray.push(lo),byteArray.push(hi);return byteArray}function base64ToBytes(str){return base64.toByteArray(base64clean(str))}function blitBuffer(src,dst,offset,length){for(var i=0;i<length&&!(i+offset>=dst.length||i>=src.length);++i)dst[i+offset]=src[i];return i}function isInstance(obj,type){return obj instanceof type||obj!=null&&obj.constructor!=null&&obj.constructor.name!=null&&obj.constructor.name===type.name}function numberIsNaN(obj){return obj!==obj}var hexSliceLookupTable=function(){for(var alphabet="0123456789abcdef",table=new Array(256),i=0;i<16;++i)for(var i16=i*16,j=0;j<16;++j)table[i16+j]=alphabet[i]+alphabet[j];return table}()}});var require_browser=__commonJS({"node_modules/process/browser.js"(exports,module){init_define_process_env();init_shim();var process2=module.exports={},cachedSetTimeout,cachedClearTimeout;function defaultSetTimout(){throw new Error("setTimeout has not been defined")}function defaultClearTimeout(){throw new Error("clearTimeout has not been defined")}(function(){try{typeof setTimeout=="function"?cachedSetTimeout=setTimeout:cachedSetTimeout=defaultSetTimout}catch(e){cachedSetTimeout=defaultSetTimout}try{typeof clearTimeout=="function"?cachedClearTimeout=clearTimeout:cachedClearTimeout=defaultClearTimeout}catch(e){cachedClearTimeout=defaultClearTimeout}})();function runTimeout(fun){if(cachedSetTimeout===setTimeout)return setTimeout(fun,0);if((cachedSetTimeout===defaultSetTimout||!cachedSetTimeout)&&setTimeout)return cachedSetTimeout=setTimeout,setTimeout(fun,0);try{return cachedSetTimeout(fun,0)}catch(e){try{return cachedSetTimeout.call(null,fun,0)}catch(e2){return cachedSetTimeout.call(this,fun,0)}}}function runClearTimeout(marker){if(cachedClearTimeout===clearTimeout)return clearTimeout(marker);if((cachedClearTimeout===defaultClearTimeout||!cachedClearTimeout)&&clearTimeout)return cachedClearTimeout=clearTimeout,clearTimeout(marker);try{return cachedClearTimeout(marker)}catch(e){try{return cachedClearTimeout.call(null,marker)}catch(e2){return cachedClearTimeout.call(this,marker)}}}var queue=[],draining=!1,currentQueue,queueIndex=-1;function cleanUpNextTick(){!draining||!currentQueue||(draining=!1,currentQueue.length?queue=currentQueue.concat(queue):queueIndex=-1,queue.length&&drainQueue())}function drainQueue(){if(!draining){var timeout=runTimeout(cleanUpNextTick);draining=!0;for(var len=queue.length;len;){for(currentQueue=queue,queue=[];++queueIndex<len;)currentQueue&&currentQueue[queueIndex].run();queueIndex=-1,len=queue.length}currentQueue=null,draining=!1,runClearTimeout(timeout)}}process2.nextTick=function(fun){var args=new Array(arguments.length-1);if(arguments.length>1)for(var i=1;i<arguments.length;i++)args[i-1]=arguments[i];queue.push(new Item(fun,args)),queue.length===1&&!draining&&runTimeout(drainQueue)};function Item(fun,array){this.fun=fun,this.array=array}Item.prototype.run=function(){this.fun.apply(null,this.array)};process2.title="browser";process2.browser=!0;process2.env={};process2.argv=[];process2.version="";process2.versions={};function noop(){}process2.on=noop;process2.addListener=noop;process2.once=noop;process2.off=noop;process2.removeListener=noop;process2.removeAllListeners=noop;process2.emit=noop;process2.prependListener=noop;process2.prependOnceListener=noop;process2.listeners=function(name){return[]};process2.binding=function(name){throw new Error("process.binding is not supported")};process2.cwd=function(){return"/"};process2.chdir=function(dir){throw new Error("process.chdir is not supported")};process2.umask=function(){return 0}}});var import_buffer,import_process,_globalThis,init_shim=__esm({"node_modules/node-stdlib-browser/helpers/esbuild/shim.js"(){import_buffer=__toESM(require_buffer()),import_process=__toESM(require_browser()),_globalThis=function(Object2){function get(){var _global3=this||self;return delete Object2.prototype.__magic__,_global3}if(typeof globalThis=="object")return globalThis;if(this)return get();Object2.defineProperty(Object2.prototype,"__magic__",{configurable:!0,get});var _global2=__magic__;return _global2}(Object)}});var require_global=__commonJS({"node_modules/core-js/internals/global.js"(exports,module){"use strict";init_define_process_env();init_shim();var check=function(it){return it&&it.Math===Math&&it};module.exports=check(typeof globalThis=="object"&&globalThis)||check(typeof window=="object"&&window)||check(typeof self=="object"&&self)||check(typeof window=="object"&&window)||check(typeof exports=="object"&&exports)||function(){return this}()||Function("return this")()}});var require_fails=__commonJS({"node_modules/core-js/internals/fails.js"(exports,module){"use strict";init_define_process_env();init_shim();module.exports=function(exec){try{return!!exec()}catch(error){return!0}}}});var require_descriptors=__commonJS({"node_modules/core-js/internals/descriptors.js"(exports,module){"use strict";init_define_process_env();init_shim();var fails=require_fails();module.exports=!fails(function(){return Object.defineProperty({},1,{get:function(){return 7}})[1]!==7})}});var require_function_bind_native=__commonJS({"node_modules/core-js/internals/function-bind-native.js"(exports,module){"use strict";init_define_process_env();init_shim();var fails=require_fails();module.exports=!fails(function(){var test=(function(){}).bind();return typeof test!="function"||test.hasOwnProperty("prototype")})}});var require_function_call=__commonJS({"node_modules/core-js/internals/function-call.js"(exports,module){"use strict";init_define_process_env();init_shim();var NATIVE_BIND=require_function_bind_native(),call=Function.prototype.call;module.exports=NATIVE_BIND?call.bind(call):function(){return call.apply(call,arguments)}}});var require_object_property_is_enumerable=__commonJS({"node_modules/core-js/internals/object-property-is-enumerable.js"(exports){"use strict";init_define_process_env();init_shim();var $propertyIsEnumerable={}.propertyIsEnumerable,getOwnPropertyDescriptor=Object.getOwnPropertyDescriptor,NASHORN_BUG=getOwnPropertyDescriptor&&!$propertyIsEnumerable.call({1:2},1);exports.f=NASHORN_BUG?function(V){var descriptor=getOwnPropertyDescriptor(this,V);return!!descriptor&&descriptor.enumerable}:$propertyIsEnumerable}});var require_create_property_descriptor=__commonJS({"node_modules/core-js/internals/create-property-descriptor.js"(exports,module){"use strict";init_define_process_env();init_shim();module.exports=function(bitmap,value){return{enumerable:!(bitmap&1),configurable:!(bitmap&2),writable:!(bitmap&4),value}}}});var require_function_uncurry_this=__commonJS({"node_modules/core-js/internals/function-uncurry-this.js"(exports,module){"use strict";init_define_process_env();init_shim();var NATIVE_BIND=require_function_bind_native(),FunctionPrototype=Function.prototype,call=FunctionPrototype.call,uncurryThisWithBind=NATIVE_BIND&&FunctionPrototype.bind.bind(call,call);module.exports=NATIVE_BIND?uncurryThisWithBind:function(fn){return function(){return call.apply(fn,arguments)}}}});var require_classof_raw=__commonJS({"node_modules/core-js/internals/classof-raw.js"(exports,module){"use strict";init_define_process_env();init_shim();var uncurryThis=require_function_uncurry_this(),toString=uncurryThis({}.toString),stringSlice=uncurryThis("".slice);module.exports=function(it){return stringSlice(toString(it),8,-1)}}});var require_indexed_object=__commonJS({"node_modules/core-js/internals/indexed-object.js"(exports,module){"use strict";init_define_process_env();init_shim();var uncurryThis=require_function_uncurry_this(),fails=require_fails(),classof=require_classof_raw(),$Object=Object,split=uncurryThis("".split);module.exports=fails(function(){return!$Object("z").propertyIsEnumerable(0)})?function(it){return classof(it)==="String"?split(it,""):$Object(it)}:$Object}});var require_is_null_or_undefined=__commonJS({"node_modules/core-js/internals/is-null-or-undefined.js"(exports,module){"use strict";init_define_process_env();init_shim();module.exports=function(it){return it==null}}});var require_require_object_coercible=__commonJS({"node_modules/core-js/internals/require-object-coercible.js"(exports,module){"use strict";init_define_process_env();init_shim();var isNullOrUndefined=require_is_null_or_undefined(),$TypeError=TypeError;module.exports=function(it){if(isNullOrUndefined(it))throw new $TypeError("Can't call method on "+it);return it}}});var require_to_indexed_object=__commonJS({"node_modules/core-js/internals/to-indexed-object.js"(exports,module){"use strict";init_define_process_env();init_shim();var IndexedObject=require_indexed_object(),requireObjectCoercible=require_require_object_coercible();module.exports=function(it){return IndexedObject(requireObjectCoercible(it))}}});var require_is_callable=__commonJS({"node_modules/core-js/internals/is-callable.js"(exports,module){"use strict";init_define_process_env();init_shim();var documentAll=typeof document=="object"&&document.all;module.exports=typeof documentAll>"u"&&documentAll!==void 0?function(argument){return typeof argument=="function"||argument===documentAll}:function(argument){return typeof argument=="function"}}});var require_is_object=__commonJS({"node_modules/core-js/internals/is-object.js"(exports,module){"use strict";init_define_process_env();init_shim();var isCallable=require_is_callable();module.exports=function(it){return typeof it=="object"?it!==null:isCallable(it)}}});var require_get_built_in=__commonJS({"node_modules/core-js/internals/get-built-in.js"(exports,module){"use strict";init_define_process_env();init_shim();var global=require_global(),isCallable=require_is_callable(),aFunction=function(argument){return isCallable(argument)?argument:void 0};module.exports=function(namespace,method){return arguments.length<2?aFunction(global[namespace]):global[namespace]&&global[namespace][method]}}});var require_object_is_prototype_of=__commonJS({"node_modules/core-js/internals/object-is-prototype-of.js"(exports,module){"use strict";init_define_process_env();init_shim();var uncurryThis=require_function_uncurry_this();module.exports=uncurryThis({}.isPrototypeOf)}});var require_engine_user_agent=__commonJS({"node_modules/core-js/internals/engine-user-agent.js"(exports,module){"use strict";init_define_process_env();init_shim();module.exports=typeof navigator<"u"&&String(navigator.userAgent)||""}});var require_engine_v8_version=__commonJS({"node_modules/core-js/internals/engine-v8-version.js"(exports,module){"use strict";init_define_process_env();init_shim();var global=require_global(),userAgent=require_engine_user_agent(),process2=global.process,Deno=global.Deno,versions=process2&&process2.versions||Deno&&Deno.version,v8=versions&&versions.v8,match,version;v8&&(match=v8.split("."),version=match[0]>0&&match[0]<4?1:+(match[0]+match[1]));!version&&userAgent&&(match=userAgent.match(/Edge\/(\d+)/),(!match||match[1]>=74)&&(match=userAgent.match(/Chrome\/(\d+)/),match&&(version=+match[1])));module.exports=version}});var require_symbol_constructor_detection=__commonJS({"node_modules/core-js/internals/symbol-constructor-detection.js"(exports,module){"use strict";init_define_process_env();init_shim();var V8_VERSION=require_engine_v8_version(),fails=require_fails(),global=require_global(),$String=global.String;module.exports=!!Object.getOwnPropertySymbols&&!fails(function(){var symbol=Symbol("symbol detection");return!$String(symbol)||!(Object(symbol)instanceof Symbol)||!Symbol.sham&&V8_VERSION&&V8_VERSION<41})}});var require_use_symbol_as_uid=__commonJS({"node_modules/core-js/internals/use-symbol-as-uid.js"(exports,module){"use strict";init_define_process_env();init_shim();var NATIVE_SYMBOL=require_symbol_constructor_detection();module.exports=NATIVE_SYMBOL&&!Symbol.sham&&typeof Symbol.iterator=="symbol"}});var require_is_symbol=__commonJS({"node_modules/core-js/internals/is-symbol.js"(exports,module){"use strict";init_define_process_env();init_shim();var getBuiltIn=require_get_built_in(),isCallable=require_is_callable(),isPrototypeOf=require_object_is_prototype_of(),USE_SYMBOL_AS_UID=require_use_symbol_as_uid(),$Object=Object;module.exports=USE_SYMBOL_AS_UID?function(it){return typeof it=="symbol"}:function(it){var $Symbol=getBuiltIn("Symbol");return isCallable($Symbol)&&isPrototypeOf($Symbol.prototype,$Object(it))}}});var require_try_to_string=__commonJS({"node_modules/core-js/internals/try-to-string.js"(exports,module){"use strict";init_define_process_env();init_shim();var $String=String;module.exports=function(argument){try{return $String(argument)}catch(error){return"Object"}}}});var require_a_callable=__commonJS({"node_modules/core-js/internals/a-callable.js"(exports,module){"use strict";init_define_process_env();init_shim();var isCallable=require_is_callable(),tryToString=require_try_to_string(),$TypeError=TypeError;module.exports=function(argument){if(isCallable(argument))return argument;throw new $TypeError(tryToString(argument)+" is not a function")}}});var require_get_method=__commonJS({"node_modules/core-js/internals/get-method.js"(exports,module){"use strict";init_define_process_env();init_shim();var aCallable=require_a_callable(),isNullOrUndefined=require_is_null_or_undefined();module.exports=function(V,P){var func=V[P];return isNullOrUndefined(func)?void 0:aCallable(func)}}});var require_ordinary_to_primitive=__commonJS({"node_modules/core-js/internals/ordinary-to-primitive.js"(exports,module){"use strict";init_define_process_env();init_shim();var call=require_function_call(),isCallable=require_is_callable(),isObject=require_is_object(),$TypeError=TypeError;module.exports=function(input,pref){var fn,val;if(pref==="string"&&isCallable(fn=input.toString)&&!isObject(val=call(fn,input))||isCallable(fn=input.valueOf)&&!isObject(val=call(fn,input))||pref!=="string"&&isCallable(fn=input.toString)&&!isObject(val=call(fn,input)))return val;throw new $TypeError("Can't convert object to primitive value")}}});var require_is_pure=__commonJS({"node_modules/core-js/internals/is-pure.js"(exports,module){"use strict";init_define_process_env();init_shim();module.exports=!1}});var require_define_global_property=__commonJS({"node_modules/core-js/internals/define-global-property.js"(exports,module){"use strict";init_define_process_env();init_shim();var global=require_global(),defineProperty=Object.defineProperty;module.exports=function(key,value){try{defineProperty(global,key,{value,configurable:!0,writable:!0})}catch(error){global[key]=value}return value}}});var require_shared_store=__commonJS({"node_modules/core-js/internals/shared-store.js"(exports,module){"use strict";init_define_process_env();init_shim();var global=require_global(),defineGlobalProperty=require_define_global_property(),SHARED="__core-js_shared__",store=global[SHARED]||defineGlobalProperty(SHARED,{});module.exports=store}});var require_shared=__commonJS({"node_modules/core-js/internals/shared.js"(exports,module){"use strict";init_define_process_env();init_shim();var IS_PURE=require_is_pure(),store=require_shared_store();(module.exports=function(key,value){return store[key]||(store[key]=value!==void 0?value:{})})("versions",[]).push({version:"3.35.1",mode:IS_PURE?"pure":"global",copyright:"\xA9 2014-2024 Denis Pushkarev (zloirock.ru)",license:"https://github.com/zloirock/core-js/blob/v3.35.1/LICENSE",source:"https://github.com/zloirock/core-js"})}});var require_to_object=__commonJS({"node_modules/core-js/internals/to-object.js"(exports,module){"use strict";init_define_process_env();init_shim();var requireObjectCoercible=require_require_object_coercible(),$Object=Object;module.exports=function(argument){return $Object(requireObjectCoercible(argument))}}});var require_has_own_property=__commonJS({"node_modules/core-js/internals/has-own-property.js"(exports,module){"use strict";init_define_process_env();init_shim();var uncurryThis=require_function_uncurry_this(),toObject=require_to_object(),hasOwnProperty=uncurryThis({}.hasOwnProperty);module.exports=Object.hasOwn||function(it,key){return hasOwnProperty(toObject(it),key)}}});var require_uid=__commonJS({"node_modules/core-js/internals/uid.js"(exports,module){"use strict";init_define_process_env();init_shim();var uncurryThis=require_function_uncurry_this(),id=0,postfix=Math.random(),toString=uncurryThis(1 .toString);module.exports=function(key){return"Symbol("+(key===void 0?"":key)+")_"+toString(++id+postfix,36)}}});var require_well_known_symbol=__commonJS({"node_modules/core-js/internals/well-known-symbol.js"(exports,module){"use strict";init_define_process_env();init_shim();var global=require_global(),shared=require_shared(),hasOwn=require_has_own_property(),uid=require_uid(),NATIVE_SYMBOL=require_symbol_constructor_detection(),USE_SYMBOL_AS_UID=require_use_symbol_as_uid(),Symbol2=global.Symbol,WellKnownSymbolsStore=shared("wks"),createWellKnownSymbol=USE_SYMBOL_AS_UID?Symbol2.for||Symbol2:Symbol2&&Symbol2.withoutSetter||uid;module.exports=function(name){return hasOwn(WellKnownSymbolsStore,name)||(WellKnownSymbolsStore[name]=NATIVE_SYMBOL&&hasOwn(Symbol2,name)?Symbol2[name]:createWellKnownSymbol("Symbol."+name)),WellKnownSymbolsStore[name]}}});var require_to_primitive=__commonJS({"node_modules/core-js/internals/to-primitive.js"(exports,module){"use strict";init_define_process_env();init_shim();var call=require_function_call(),isObject=require_is_object(),isSymbol=require_is_symbol(),getMethod=require_get_method(),ordinaryToPrimitive=require_ordinary_to_primitive(),wellKnownSymbol=require_well_known_symbol(),$TypeError=TypeError,TO_PRIMITIVE=wellKnownSymbol("toPrimitive");module.exports=function(input,pref){if(!isObject(input)||isSymbol(input))return input;var exoticToPrim=getMethod(input,TO_PRIMITIVE),result;if(exoticToPrim){if(pref===void 0&&(pref="default"),result=call(exoticToPrim,input,pref),!isObject(result)||isSymbol(result))return result;throw new $TypeError("Can't convert object to primitive value")}return pref===void 0&&(pref="number"),ordinaryToPrimitive(input,pref)}}});var require_to_property_key=__commonJS({"node_modules/core-js/internals/to-property-key.js"(exports,module){"use strict";init_define_process_env();init_shim();var toPrimitive=require_to_primitive(),isSymbol=require_is_symbol();module.exports=function(argument){var key=toPrimitive(argument,"string");return isSymbol(key)?key:key+""}}});var require_document_create_element=__commonJS({"node_modules/core-js/internals/document-create-element.js"(exports,module){"use strict";init_define_process_env();init_shim();var global=require_global(),isObject=require_is_object(),document2=global.document,EXISTS=isObject(document2)&&isObject(document2.createElement);module.exports=function(it){return EXISTS?document2.createElement(it):{}}}});var require_ie8_dom_define=__commonJS({"node_modules/core-js/internals/ie8-dom-define.js"(exports,module){"use strict";init_define_process_env();init_shim();var DESCRIPTORS=require_descriptors(),fails=require_fails(),createElement=require_document_create_element();module.exports=!DESCRIPTORS&&!fails(function(){return Object.defineProperty(createElement("div"),"a",{get:function(){return 7}}).a!==7})}});var require_object_get_own_property_descriptor=__commonJS({"node_modules/core-js/internals/object-get-own-property-descriptor.js"(exports){"use strict";init_define_process_env();init_shim();var DESCRIPTORS=require_descriptors(),call=require_function_call(),propertyIsEnumerableModule=require_object_property_is_enumerable(),createPropertyDescriptor=require_create_property_descriptor(),toIndexedObject=require_to_indexed_object(),toPropertyKey=require_to_property_key(),hasOwn=require_has_own_property(),IE8_DOM_DEFINE=require_ie8_dom_define(),$getOwnPropertyDescriptor=Object.getOwnPropertyDescriptor;exports.f=DESCRIPTORS?$getOwnPropertyDescriptor:function(O,P){if(O=toIndexedObject(O),P=toPropertyKey(P),IE8_DOM_DEFINE)try{return $getOwnPropertyDescriptor(O,P)}catch(error){}if(hasOwn(O,P))return createPropertyDescriptor(!call(propertyIsEnumerableModule.f,O,P),O[P])}}});var require_v8_prototype_define_bug=__commonJS({"node_modules/core-js/internals/v8-prototype-define-bug.js"(exports,module){"use strict";init_define_process_env();init_shim();var DESCRIPTORS=require_descriptors(),fails=require_fails();module.exports=DESCRIPTORS&&fails(function(){return Object.defineProperty(function(){},"prototype",{value:42,writable:!1}).prototype!==42})}});var require_an_object=__commonJS({"node_modules/core-js/internals/an-object.js"(exports,module){"use strict";init_define_process_env();init_shim();var isObject=require_is_object(),$String=String,$TypeError=TypeError;module.exports=function(argument){if(isObject(argument))return argument;throw new $TypeError($String(argument)+" is not an object")}}});var require_object_define_property=__commonJS({"node_modules/core-js/internals/object-define-property.js"(exports){"use strict";init_define_process_env();init_shim();var DESCRIPTORS=require_descriptors(),IE8_DOM_DEFINE=require_ie8_dom_define(),V8_PROTOTYPE_DEFINE_BUG=require_v8_prototype_define_bug(),anObject=require_an_object(),toPropertyKey=require_to_property_key(),$TypeError=TypeError,$defineProperty=Object.defineProperty,$getOwnPropertyDescriptor=Object.getOwnPropertyDescriptor,ENUMERABLE="enumerable",CONFIGURABLE="configurable",WRITABLE="writable";exports.f=DESCRIPTORS?V8_PROTOTYPE_DEFINE_BUG?function(O,P,Attributes){if(anObject(O),P=toPropertyKey(P),anObject(Attributes),typeof O=="function"&&P==="prototype"&&"value"in Attributes&&WRITABLE in Attributes&&!Attributes[WRITABLE]){var current=$getOwnPropertyDescriptor(O,P);current&&current[WRITABLE]&&(O[P]=Attributes.value,Attributes={configurable:CONFIGURABLE in Attributes?Attributes[CONFIGURABLE]:current[CONFIGURABLE],enumerable:ENUMERABLE in Attributes?Attributes[ENUMERABLE]:current[ENUMERABLE],writable:!1})}return $defineProperty(O,P,Attributes)}:$defineProperty:function(O,P,Attributes){if(anObject(O),P=toPropertyKey(P),anObject(Attributes),IE8_DOM_DEFINE)try{return $defineProperty(O,P,Attributes)}catch(error){}if("get"in Attributes||"set"in Attributes)throw new $TypeError("Accessors not supported");return"value"in Attributes&&(O[P]=Attributes.value),O}}});var require_create_non_enumerable_property=__commonJS({"node_modules/core-js/internals/create-non-enumerable-property.js"(exports,module){"use strict";init_define_process_env();init_shim();var DESCRIPTORS=require_descriptors(),definePropertyModule=require_object_define_property(),createPropertyDescriptor=require_create_property_descriptor();module.exports=DESCRIPTORS?function(object,key,value){return definePropertyModule.f(object,key,createPropertyDescriptor(1,value))}:function(object,key,value){return object[key]=value,object}}});var require_function_name=__commonJS({"node_modules/core-js/internals/function-name.js"(exports,module){"use strict";init_define_process_env();init_shim();var DESCRIPTORS=require_descriptors(),hasOwn=require_has_own_property(),FunctionPrototype=Function.prototype,getDescriptor=DESCRIPTORS&&Object.getOwnPropertyDescriptor,EXISTS=hasOwn(FunctionPrototype,"name"),PROPER=EXISTS&&(function(){}).name==="something",CONFIGURABLE=EXISTS&&(!DESCRIPTORS||DESCRIPTORS&&getDescriptor(FunctionPrototype,"name").configurable);module.exports={EXISTS,PROPER,CONFIGURABLE}}});var require_inspect_source=__commonJS({"node_modules/core-js/internals/inspect-source.js"(exports,module){"use strict";init_define_process_env();init_shim();var uncurryThis=require_function_uncurry_this(),isCallable=require_is_callable(),store=require_shared_store(),functionToString=uncurryThis(Function.toString);isCallable(store.inspectSource)||(store.inspectSource=function(it){return functionToString(it)});module.exports=store.inspectSource}});var require_weak_map_basic_detection=__commonJS({"node_modules/core-js/internals/weak-map-basic-detection.js"(exports,module){"use strict";init_define_process_env();init_shim();var global=require_global(),isCallable=require_is_callable(),WeakMap=global.WeakMap;module.exports=isCallable(WeakMap)&&/native code/.test(String(WeakMap))}});var require_shared_key=__commonJS({"node_modules/core-js/internals/shared-key.js"(exports,module){"use strict";init_define_process_env();init_shim();var shared=require_shared(),uid=require_uid(),keys=shared("keys");module.exports=function(key){return keys[key]||(keys[key]=uid(key))}}});var require_hidden_keys=__commonJS({"node_modules/core-js/internals/hidden-keys.js"(exports,module){"use strict";init_define_process_env();init_shim();module.exports={}}});var require_internal_state=__commonJS({"node_modules/core-js/internals/internal-state.js"(exports,module){"use strict";init_define_process_env();init_shim();var NATIVE_WEAK_MAP=require_weak_map_basic_detection(),global=require_global(),isObject=require_is_object(),createNonEnumerableProperty=require_create_non_enumerable_property(),hasOwn=require_has_own_property(),shared=require_shared_store(),sharedKey=require_shared_key(),hiddenKeys=require_hidden_keys(),OBJECT_ALREADY_INITIALIZED="Object already initialized",TypeError2=global.TypeError,WeakMap=global.WeakMap,set,get,has,enforce=function(it){return has(it)?get(it):set(it,{})},getterFor=function(TYPE){return function(it){var state;if(!isObject(it)||(state=get(it)).type!==TYPE)throw new TypeError2("Incompatible receiver, "+TYPE+" required");return state}};NATIVE_WEAK_MAP||shared.state?(store=shared.state||(shared.state=new WeakMap),store.get=store.get,store.has=store.has,store.set=store.set,set=function(it,metadata){if(store.has(it))throw new TypeError2(OBJECT_ALREADY_INITIALIZED);return metadata.facade=it,store.set(it,metadata),metadata},get=function(it){return store.get(it)||{}},has=function(it){return store.has(it)}):(STATE=sharedKey("state"),hiddenKeys[STATE]=!0,set=function(it,metadata){if(hasOwn(it,STATE))throw new TypeError2(OBJECT_ALREADY_INITIALIZED);return metadata.facade=it,createNonEnumerableProperty(it,STATE,metadata),metadata},get=function(it){return hasOwn(it,STATE)?it[STATE]:{}},has=function(it){return hasOwn(it,STATE)});var store,STATE;module.exports={set,get,has,enforce,getterFor}}});var require_make_built_in=__commonJS({"node_modules/core-js/internals/make-built-in.js"(exports,module){"use strict";init_define_process_env();init_shim();var uncurryThis=require_function_uncurry_this(),fails=require_fails(),isCallable=require_is_callable(),hasOwn=require_has_own_property(),DESCRIPTORS=require_descriptors(),CONFIGURABLE_FUNCTION_NAME=require_function_name().CONFIGURABLE,inspectSource=require_inspect_source(),InternalStateModule=require_internal_state(),enforceInternalState=InternalStateModule.enforce,getInternalState=InternalStateModule.get,$String=String,defineProperty=Object.defineProperty,stringSlice=uncurryThis("".slice),replace=uncurryThis("".replace),join=uncurryThis([].join),CONFIGURABLE_LENGTH=DESCRIPTORS&&!fails(function(){return defineProperty(function(){},"length",{value:8}).length!==8}),TEMPLATE=String(String).split("String"),makeBuiltIn=module.exports=function(value,name,options){stringSlice($String(name),0,7)==="Symbol("&&(name="["+replace($String(name),/^Symbol\(([^)]*)\).*$/,"$1")+"]"),options&&options.getter&&(name="get "+name),options&&options.setter&&(name="set "+name),(!hasOwn(value,"name")||CONFIGURABLE_FUNCTION_NAME&&value.name!==name)&&(DESCRIPTORS?defineProperty(value,"name",{value:name,configurable:!0}):value.name=name),CONFIGURABLE_LENGTH&&options&&hasOwn(options,"arity")&&value.length!==options.arity&&defineProperty(value,"length",{value:options.arity});try{options&&hasOwn(options,"constructor")&&options.constructor?DESCRIPTORS&&defineProperty(value,"prototype",{writable:!1}):value.prototype&&(value.prototype=void 0)}catch(error){}var state=enforceInternalState(value);return hasOwn(state,"source")||(state.source=join(TEMPLATE,typeof name=="string"?name:"")),value};Function.prototype.toString=makeBuiltIn(function(){return isCallable(this)&&getInternalState(this).source||inspectSource(this)},"toString")}});var require_define_built_in=__commonJS({"node_modules/core-js/internals/define-built-in.js"(exports,module){"use strict";init_define_process_env();init_shim();var isCallable=require_is_callable(),definePropertyModule=require_object_define_property(),makeBuiltIn=require_make_built_in(),defineGlobalProperty=require_define_global_property();module.exports=function(O,key,value,options){options||(options={});var simple=options.enumerable,name=options.name!==void 0?options.name:key;if(isCallable(value)&&makeBuiltIn(value,name,options),options.global)simple?O[key]=value:defineGlobalProperty(key,value);else{try{options.unsafe?O[key]&&(simple=!0):delete O[key]}catch(error){}simple?O[key]=value:definePropertyModule.f(O,key,{value,enumerable:!1,configurable:!options.nonConfigurable,writable:!options.nonWritable})}return O}}});var require_math_trunc=__commonJS({"node_modules/core-js/internals/math-trunc.js"(exports,module){"use strict";init_define_process_env();init_shim();var ceil=Math.ceil,floor=Math.floor;module.exports=Math.trunc||function(x){var n=+x;return(n>0?floor:ceil)(n)}}});var require_to_integer_or_infinity=__commonJS({"node_modules/core-js/internals/to-integer-or-infinity.js"(exports,module){"use strict";init_define_process_env();init_shim();var trunc=require_math_trunc();module.exports=function(argument){var number=+argument;return number!==number||number===0?0:trunc(number)}}});var require_to_absolute_index=__commonJS({"node_modules/core-js/internals/to-absolute-index.js"(exports,module){"use strict";init_define_process_env();init_shim();var toIntegerOrInfinity=require_to_integer_or_infinity(),max=Math.max,min=Math.min;module.exports=function(index,length){var integer=toIntegerOrInfinity(index);return integer<0?max(integer+length,0):min(integer,length)}}});var require_to_length=__commonJS({"node_modules/core-js/internals/to-length.js"(exports,module){"use strict";init_define_process_env();init_shim();var toIntegerOrInfinity=require_to_integer_or_infinity(),min=Math.min;module.exports=function(argument){var len=toIntegerOrInfinity(argument);return len>0?min(len,9007199254740991):0}}});var require_length_of_array_like=__commonJS({"node_modules/core-js/internals/length-of-array-like.js"(exports,module){"use strict";init_define_process_env();init_shim();var toLength=require_to_length();module.exports=function(obj){return toLength(obj.length)}}});var require_array_includes=__commonJS({"node_modules/core-js/internals/array-includes.js"(exports,module){"use strict";init_define_process_env();init_shim();var toIndexedObject=require_to_indexed_object(),toAbsoluteIndex=require_to_absolute_index(),lengthOfArrayLike=require_length_of_array_like(),createMethod=function(IS_INCLUDES){return function($this,el,fromIndex){var O=toIndexedObject($this),length=lengthOfArrayLike(O),index=toAbsoluteIndex(fromIndex,length),value;if(IS_INCLUDES&&el!==el){for(;length>index;)if(value=O[index++],value!==value)return!0}else for(;length>index;index++)if((IS_INCLUDES||index in O)&&O[index]===el)return IS_INCLUDES||index||0;return!IS_INCLUDES&&-1}};module.exports={includes:createMethod(!0),indexOf:createMethod(!1)}}});var require_object_keys_internal=__commonJS({"node_modules/core-js/internals/object-keys-internal.js"(exports,module){"use strict";init_define_process_env();init_shim();var uncurryThis=require_function_uncurry_this(),hasOwn=require_has_own_property(),toIndexedObject=require_to_indexed_object(),indexOf=require_array_includes().indexOf,hiddenKeys=require_hidden_keys(),push=uncurryThis([].push);module.exports=function(object,names){var O=toIndexedObject(object),i=0,result=[],key;for(key in O)!hasOwn(hiddenKeys,key)&&hasOwn(O,key)&&push(result,key);for(;names.length>i;)hasOwn(O,key=names[i++])&&(~indexOf(result,key)||push(result,key));return result}}});var require_enum_bug_keys=__commonJS({"node_modules/core-js/internals/enum-bug-keys.js"(exports,module){"use strict";init_define_process_env();init_shim();module.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]}});var require_object_get_own_property_names=__commonJS({"node_modules/core-js/internals/object-get-own-property-names.js"(exports){"use strict";init_define_process_env();init_shim();var internalObjectKeys=require_object_keys_internal(),enumBugKeys=require_enum_bug_keys(),hiddenKeys=enumBugKeys.concat("length","prototype");exports.f=Object.getOwnPropertyNames||function(O){return internalObjectKeys(O,hiddenKeys)}}});var require_object_get_own_property_symbols=__commonJS({"node_modules/core-js/internals/object-get-own-property-symbols.js"(exports){"use strict";init_define_process_env();init_shim();exports.f=Object.getOwnPropertySymbols}});var require_own_keys=__commonJS({"node_modules/core-js/internals/own-keys.js"(exports,module){"use strict";init_define_process_env();init_shim();var getBuiltIn=require_get_built_in(),uncurryThis=require_function_uncurry_this(),getOwnPropertyNamesModule=require_object_get_own_property_names(),getOwnPropertySymbolsModule=require_object_get_own_property_symbols(),anObject=require_an_object(),concat=uncurryThis([].concat);module.exports=getBuiltIn("Reflect","ownKeys")||function(it){var keys=getOwnPropertyNamesModule.f(anObject(it)),getOwnPropertySymbols=getOwnPropertySymbolsModule.f;return getOwnPropertySymbols?concat(keys,getOwnPropertySymbols(it)):keys}}});var require_copy_constructor_properties=__commonJS({"node_modules/core-js/internals/copy-constructor-properties.js"(exports,module){"use strict";init_define_process_env();init_shim();var hasOwn=require_has_own_property(),ownKeys=require_own_keys(),getOwnPropertyDescriptorModule=require_object_get_own_property_descriptor(),definePropertyModule=require_object_define_property();module.exports=function(target,source,exceptions){for(var keys=ownKeys(source),defineProperty=definePropertyModule.f,getOwnPropertyDescriptor=getOwnPropertyDescriptorModule.f,i=0;i<keys.length;i++){var key=keys[i];!hasOwn(target,key)&&!(exceptions&&hasOwn(exceptions,key))&&defineProperty(target,key,getOwnPropertyDescriptor(source,key))}}}});var require_is_forced=__commonJS({"node_modules/core-js/internals/is-forced.js"(exports,module){"use strict";init_define_process_env();init_shim();var fails=require_fails(),isCallable=require_is_callable(),replacement=/#|\.prototype\./,isForced=function(feature,detection){var value=data[normalize(feature)];return value===POLYFILL?!0:value===NATIVE?!1:isCallable(detection)?fails(detection):!!detection},normalize=isForced.normalize=function(string){return String(string).replace(replacement,".").toLowerCase()},data=isForced.data={},NATIVE=isForced.NATIVE="N",POLYFILL=isForced.POLYFILL="P";module.exports=isForced}});var require_export=__commonJS({"node_modules/core-js/internals/export.js"(exports,module){"use strict";init_define_process_env();init_shim();var global=require_global(),getOwnPropertyDescriptor=require_object_get_own_property_descriptor().f,createNonEnumerableProperty=require_create_non_enumerable_property(),defineBuiltIn=require_define_built_in(),defineGlobalProperty=require_define_global_property(),copyConstructorProperties=require_copy_constructor_properties(),isForced=require_is_forced();module.exports=function(options,source){var TARGET=options.target,GLOBAL=options.global,STATIC=options.stat,FORCED,target,key,targetProperty,sourceProperty,descriptor;if(GLOBAL?target=global:STATIC?target=global[TARGET]||defineGlobalProperty(TARGET,{}):target=global[TARGET]&&global[TARGET].prototype,target)for(key in source){if(sourceProperty=source[key],options.dontCallGetSet?(descriptor=getOwnPropertyDescriptor(target,key),targetProperty=descriptor&&descriptor.value):targetProperty=target[key],FORCED=isForced(GLOBAL?key:TARGET+(STATIC?".":"#")+key,options.forced),!FORCED&&targetProperty!==void 0){if(typeof sourceProperty==typeof targetProperty)continue;copyConstructorProperties(sourceProperty,targetProperty)}(options.sham||targetProperty&&targetProperty.sham)&&createNonEnumerableProperty(sourceProperty,"sham",!0),defineBuiltIn(target,key,sourceProperty,options)}}}});var require_to_string_tag_support=__commonJS({"node_modules/core-js/internals/to-string-tag-support.js"(exports,module){"use strict";init_define_process_env();init_shim();var wellKnownSymbol=require_well_known_symbol(),TO_STRING_TAG=wellKnownSymbol("toStringTag"),test={};test[TO_STRING_TAG]="z";module.exports=String(test)==="[object z]"}});var require_classof=__commonJS({"node_modules/core-js/internals/classof.js"(exports,module){"use strict";init_define_process_env();init_shim();var TO_STRING_TAG_SUPPORT=require_to_string_tag_support(),isCallable=require_is_callable(),classofRaw=require_classof_raw(),wellKnownSymbol=require_well_known_symbol(),TO_STRING_TAG=wellKnownSymbol("toStringTag"),$Object=Object,CORRECT_ARGUMENTS=classofRaw(function(){return arguments}())==="Arguments",tryGet=function(it,key){try{return it[key]}catch(error){}};module.exports=TO_STRING_TAG_SUPPORT?classofRaw:function(it){var O,tag,result;return it===void 0?"Undefined":it===null?"Null":typeof(tag=tryGet(O=$Object(it),TO_STRING_TAG))=="string"?tag:CORRECT_ARGUMENTS?classofRaw(O):(result=classofRaw(O))==="Object"&&isCallable(O.callee)?"Arguments":result}}});var require_to_string=__commonJS({"node_modules/core-js/internals/to-string.js"(exports,module){"use strict";init_define_process_env();init_shim();var classof=require_classof(),$String=String;module.exports=function(argument){if(classof(argument)==="Symbol")throw new TypeError("Cannot convert a Symbol value to a string");return $String(argument)}}});var require_whitespaces=__commonJS({"node_modules/core-js/internals/whitespaces.js"(exports,module){"use strict";init_define_process_env();init_shim();module.exports="	\n\v\f\r \xA0\u1680\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028\u2029\uFEFF"}});var require_string_trim=__commonJS({"node_modules/core-js/internals/string-trim.js"(exports,module){"use strict";init_define_process_env();init_shim();var uncurryThis=require_function_uncurry_this(),requireObjectCoercible=require_require_object_coercible(),toString=require_to_string(),whitespaces=require_whitespaces(),replace=uncurryThis("".replace),ltrim=RegExp("^["+whitespaces+"]+"),rtrim=RegExp("(^|[^"+whitespaces+"])["+whitespaces+"]+$"),createMethod=function(TYPE){return function($this){var string=toString(requireObjectCoercible($this));return TYPE&1&&(string=replace(string,ltrim,"")),TYPE&2&&(string=replace(string,rtrim,"$1")),string}};module.exports={start:createMethod(1),end:createMethod(2),trim:createMethod(3)}}});var require_number_parse_int=__commonJS({"node_modules/core-js/internals/number-parse-int.js"(exports,module){"use strict";init_define_process_env();init_shim();var global=require_global(),fails=require_fails(),uncurryThis=require_function_uncurry_this(),toString=require_to_string(),trim=require_string_trim().trim,whitespaces=require_whitespaces(),$parseInt=global.parseInt,Symbol2=global.Symbol,ITERATOR=Symbol2&&Symbol2.iterator,hex=/^[+-]?0x/i,exec=uncurryThis(hex.exec),FORCED=$parseInt(whitespaces+"08")!==8||$parseInt(whitespaces+"0x16")!==22||ITERATOR&&!fails(function(){$parseInt(Object(ITERATOR))});module.exports=FORCED?function(string,radix){var S=trim(toString(string));return $parseInt(S,radix>>>0||(exec(hex,S)?16:10))}:$parseInt}});var require_es_parse_int=__commonJS({"node_modules/core-js/modules/es.parse-int.js"(){"use strict";init_define_process_env();init_shim();var $=require_export(),$parseInt=require_number_parse_int();$({global:!0,forced:parseInt!==$parseInt},{parseInt:$parseInt})}});init_define_process_env();init_shim();var import_es_parse_int=__toESM(require_es_parse_int());init_define_process_env();init_shim();var _window$u,_window,_window$safe_require,_window2,u=(_window$u=(_window=window)==null?void 0:_window.u)!=null?_window$u:_u,safe_require=(_window$safe_require=(_window2=window)==null?void 0:_window2.safe_require)!=null?_window$safe_require:_safe_require;var Lib=safe_require.safe_require("./lib"),external=safe_require.safe_require("./external"),services=safe_require.safe_require("./services"),property_applications=safe_require.safe_require("./core/property_applications"),appquery=safe_require.safe_require("./lang/appquery"),element_eval=safe_require.safe_require("./lang/evaluation/element_eval"),PLUGIN_FILE="progressbar",element_modifications=safe_require.safe_require("./core/core_elements/legacy/responsive_v0/element_modifications");element_modifications.set_legacy_element_modifications("progressbar-ProgressBar");function get_bar_label_styles(_ref){let{animation_delay="0s",bar_element,instance,percentage}=_ref,element_width=instance.current_width(),padding_left=0,padding_right=0;if(bar_element!=null&&bar_element[0]){var _bar_element$,_bar_element$$style,_bar_element$2,_bar_element$2$style;padding_left=parseInt(((_bar_element$=bar_element[0])==null||(_bar_element$$style=_bar_element$.style)==null?void 0:_bar_element$$style["padding-left"])||padding_left,10),padding_right=parseInt(((_bar_element$2=bar_element[0])==null||(_bar_element$2$style=_bar_element$2.style)==null?void 0:_bar_element$2$style["padding-right"])||padding_right,10)}let total_left_right_padding=padding_left+padding_right,bar_width=element_width*percentage/100,transition="width "+animation_delay+", clip-path"+animation_delay,left_clip=bar_width-padding_left,bar_label_styles={"clip-path":"inset(0px 0px 0px ".concat(left_clip,"px)"),padding:"inherit",transition,width:element_width-total_left_right_padding},right_clip=element_width-bar_width-padding_right,bar_label_overlay_styles={"clip-path":"inset(0px ".concat(right_clip,"px 0px 0px)"),padding:"inherit",transition,width:element_width-total_left_right_padding};return{bar_label_styles,bar_label_overlay_styles}}function plugin_version(){if(Lib()){var _appquery$get_public_;return(_appquery$get_public_=appquery.get_public_setting("progressbar_installed_version"))!=null?_appquery$get_public_:0}else return 1}function uses_css_responsive(){return Lib()?plugin_version()>=1||appquery.get_public_setting("progressbar_css_responsive")===!0:!0}var cls=class extends external.Service{constructor(){super(),this.authenticator=new external.NoAuth,this.elements=this._get_initial_elements()}_get_initial_elements(){return{ProgressBar:{display:"Progress Bar",category:"visual elements",icon:"ion-ios-speedometer",condition(root){var _root$is_mobile;return!(root!=null&&(_root$is_mobile=root.is_mobile)!=null&&_root$is_mobile.call(root))},defaults:{font_alignment:"center",font_color:"#FFFFFF",background_style:"bgcolor",bgcolor:"#FFFFFF",border_roundness:3,border_width:1,border_style:"solid",border_color:"#211A66",width:300,height:25},field_names:{percentage:{},animate:{default:!0,no_states:!0},bar_color:{default:"#7F95EB"}},primary_field(){return"percentage"},_fields(element){return[{name:"percentage",caption:"Percentage",editor:"Basic",btype:"number",pretty:{section:"ProgressBarContent"}},{name:"bar_color",caption:"Progress bar color",editor:"Color",dynamic:!0,pretty:{section:"ProgressBarContent"}},{name:"animate",caption:"Animate progress",editor:"Checkbox",pretty:{section:"ProgressBarContent"}}]},property_applications:[new property_applications.Dimensions,new property_applications.InputPadding(".inner-progressbar"),new property_applications.Font,new property_applications.FontShadow,new property_applications.Border,new property_applications.BoxShadow,new property_applications.Background,new property_applications.Rotation,new property_applications.ResponsiveElement],get uses_css_responsive(){return uses_css_responsive()},get_html(instance){return"<div></div>"},get_min_width(){return 0},change_cursor_style_if_clickable:!0,initialize(instance){services.log_plugin_element_init({name:this.plugin_name,plugin:PLUGIN_FILE});let canvas=instance.get_canvas(),bar=u.div("inner-progressbar",canvas),bar_label=u.div("progressbar-label",bar),bar_label_overlay=u.div("progressbar-label-overlay",bar);return instance.autorun(()=>{let percentage=element_eval.evaluate_property(instance,"percentage");if(instance.run_mode()){var _percentage;(_percentage=percentage)!=null||(percentage=0)}else{var _percentage2;(_percentage2=percentage)!=null||(percentage=60)}percentage>100?percentage=100:percentage<0&&(percentage=0);let prop_node=instance.element.property("percentage");instance.run_mode()||prop_node.is_static()?(bar_label.html(Lib().locale().format_decimal(percentage)+"%"),bar_label_overlay.html(Lib().locale().format_decimal(percentage)+"%")):(bar_label.html(prop_node.get_tree_display()+" %"),bar_label_overlay.html(prop_node.get_tree_display()+" %"));let animation_delay=instance.run_mode()&&instance.get_static_property("animate")?".3s":"0s";bar.css({"background-color":element_eval.evaluate_property(instance,"bar_color"),"line-height":instance.current_height()+"px",transition:"width "+animation_delay,width:percentage+"%"});let{bar_label_styles,bar_label_overlay_styles}=get_bar_label_styles({animation_delay,bar_element:bar,instance,percentage});return bar_label.css(bar_label_styles),bar_label_overlay.css(bar_label_overlay_styles),bar})},add_an_invisible_div_on_the_top:!1,css_files:["css/optional/progressbar.css"],events:["ButtonClicked","ElementPressed"],contains_group_data:!1,is_input:!1}}}keys(){return plugin_version()>=1?{}:{css_responsive:{caption:"Use new responsive properties for this plugin's elements",type:"client_safe",editor:"Checkbox"}}}},progressbar={cls};typeof window<"u"&&window!==null&&((_window$optional_modu=(_window3=window).optional_modules)!=null||(_window3.optional_modules={}),window.optional_modules.progressbar=progressbar);var _window3,_window$optional_modu,plugin_registry=safe_require.safe_require("./services/shared/plugin_registry");plugin_registry.register_plugin("progressbar",progressbar);})();
/*! Bundled license information:

buffer/index.js:
  (*!
   * The buffer module from node.js, for the browser.
   *
   * @author   Feross Aboukhadijeh <https://feross.org>
   * @license  MIT
   *)
*/

}


window.preloaded['plugin/first_party:progressbar'] = true;
window._bubble_page_load_data.hardcoded_plugins['apiconnector2'] = true;
window.__code__ = window.__code__ || {};
if(!window.__code__['0fc81b8accbb3692a1df256f595e17e71bad75c37d3c1438233633dccd2fa45e']){window.__code__['0fc81b8accbb3692a1df256f595e17e71bad75c37d3c1438233633dccd2fa45e']=1;

"use strict";(()=>{var __create=Object.create;var __defProp=Object.defineProperty;var __getOwnPropDesc=Object.getOwnPropertyDescriptor;var __getOwnPropNames=Object.getOwnPropertyNames;var __getProtoOf=Object.getPrototypeOf,__hasOwnProp=Object.prototype.hasOwnProperty;var __esm=(fn,res)=>function(){return fn&&(res=(0,fn[__getOwnPropNames(fn)[0]])(fn=0)),res};var __commonJS=(cb,mod)=>function(){return mod||(0,cb[__getOwnPropNames(cb)[0]])((mod={exports:{}}).exports,mod),mod.exports};var __copyProps=(to,from,except,desc)=>{if(from&&typeof from=="object"||typeof from=="function")for(let key of __getOwnPropNames(from))!__hasOwnProp.call(to,key)&&key!==except&&__defProp(to,key,{get:()=>from[key],enumerable:!(desc=__getOwnPropDesc(from,key))||desc.enumerable});return to};var __toESM=(mod,isNodeMode,target)=>(target=mod!=null?__create(__getProtoOf(mod)):{},__copyProps(isNodeMode||!mod||!mod.__esModule?__defProp(target,"default",{value:mod,enumerable:!0}):target,mod));var init_define_process_env=__esm({"<define:process.env>"(){}});var require_base64_js=__commonJS({"node_modules/base64-js/index.js"(exports2){"use strict";init_define_process_env();init_shim();exports2.byteLength=byteLength;exports2.toByteArray=toByteArray;exports2.fromByteArray=fromByteArray;var lookup=[],revLookup=[],Arr=typeof Uint8Array<"u"?Uint8Array:Array,code="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";for(i=0,len=code.length;i<len;++i)lookup[i]=code[i],revLookup[code.charCodeAt(i)]=i;var i,len;revLookup["-".charCodeAt(0)]=62;revLookup["_".charCodeAt(0)]=63;function getLens(b64){var len2=b64.length;if(len2%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var validLen=b64.indexOf("=");validLen===-1&&(validLen=len2);var placeHoldersLen=validLen===len2?0:4-validLen%4;return[validLen,placeHoldersLen]}function byteLength(b64){var lens=getLens(b64),validLen=lens[0],placeHoldersLen=lens[1];return(validLen+placeHoldersLen)*3/4-placeHoldersLen}function _byteLength(b64,validLen,placeHoldersLen){return(validLen+placeHoldersLen)*3/4-placeHoldersLen}function toByteArray(b64){var tmp,lens=getLens(b64),validLen=lens[0],placeHoldersLen=lens[1],arr=new Arr(_byteLength(b64,validLen,placeHoldersLen)),curByte=0,len2=placeHoldersLen>0?validLen-4:validLen,i2;for(i2=0;i2<len2;i2+=4)tmp=revLookup[b64.charCodeAt(i2)]<<18|revLookup[b64.charCodeAt(i2+1)]<<12|revLookup[b64.charCodeAt(i2+2)]<<6|revLookup[b64.charCodeAt(i2+3)],arr[curByte++]=tmp>>16&255,arr[curByte++]=tmp>>8&255,arr[curByte++]=tmp&255;return placeHoldersLen===2&&(tmp=revLookup[b64.charCodeAt(i2)]<<2|revLookup[b64.charCodeAt(i2+1)]>>4,arr[curByte++]=tmp&255),placeHoldersLen===1&&(tmp=revLookup[b64.charCodeAt(i2)]<<10|revLookup[b64.charCodeAt(i2+1)]<<4|revLookup[b64.charCodeAt(i2+2)]>>2,arr[curByte++]=tmp>>8&255,arr[curByte++]=tmp&255),arr}function tripletToBase64(num){return lookup[num>>18&63]+lookup[num>>12&63]+lookup[num>>6&63]+lookup[num&63]}function encodeChunk(uint8,start,end){for(var tmp,output=[],i2=start;i2<end;i2+=3)tmp=(uint8[i2]<<16&16711680)+(uint8[i2+1]<<8&65280)+(uint8[i2+2]&255),output.push(tripletToBase64(tmp));return output.join("")}function fromByteArray(uint8){for(var tmp,len2=uint8.length,extraBytes=len2%3,parts=[],maxChunkLength=16383,i2=0,len22=len2-extraBytes;i2<len22;i2+=maxChunkLength)parts.push(encodeChunk(uint8,i2,i2+maxChunkLength>len22?len22:i2+maxChunkLength));return extraBytes===1?(tmp=uint8[len2-1],parts.push(lookup[tmp>>2]+lookup[tmp<<4&63]+"==")):extraBytes===2&&(tmp=(uint8[len2-2]<<8)+uint8[len2-1],parts.push(lookup[tmp>>10]+lookup[tmp>>4&63]+lookup[tmp<<2&63]+"=")),parts.join("")}}});var require_ieee754=__commonJS({"node_modules/ieee754/index.js"(exports2){init_define_process_env();init_shim();exports2.read=function(buffer,offset,isLE,mLen,nBytes){var e,m,eLen=nBytes*8-mLen-1,eMax=(1<<eLen)-1,eBias=eMax>>1,nBits=-7,i=isLE?nBytes-1:0,d=isLE?-1:1,s=buffer[offset+i];for(i+=d,e=s&(1<<-nBits)-1,s>>=-nBits,nBits+=eLen;nBits>0;e=e*256+buffer[offset+i],i+=d,nBits-=8);for(m=e&(1<<-nBits)-1,e>>=-nBits,nBits+=mLen;nBits>0;m=m*256+buffer[offset+i],i+=d,nBits-=8);if(e===0)e=1-eBias;else{if(e===eMax)return m?NaN:(s?-1:1)*(1/0);m=m+Math.pow(2,mLen),e=e-eBias}return(s?-1:1)*m*Math.pow(2,e-mLen)};exports2.write=function(buffer,value,offset,isLE,mLen,nBytes){var e,m,c,eLen=nBytes*8-mLen-1,eMax=(1<<eLen)-1,eBias=eMax>>1,rt=mLen===23?Math.pow(2,-24)-Math.pow(2,-77):0,i=isLE?0:nBytes-1,d=isLE?1:-1,s=value<0||value===0&&1/value<0?1:0;for(value=Math.abs(value),isNaN(value)||value===1/0?(m=isNaN(value)?1:0,e=eMax):(e=Math.floor(Math.log(value)/Math.LN2),value*(c=Math.pow(2,-e))<1&&(e--,c*=2),e+eBias>=1?value+=rt/c:value+=rt*Math.pow(2,1-eBias),value*c>=2&&(e++,c/=2),e+eBias>=eMax?(m=0,e=eMax):e+eBias>=1?(m=(value*c-1)*Math.pow(2,mLen),e=e+eBias):(m=value*Math.pow(2,eBias-1)*Math.pow(2,mLen),e=0));mLen>=8;buffer[offset+i]=m&255,i+=d,m/=256,mLen-=8);for(e=e<<mLen|m,eLen+=mLen;eLen>0;buffer[offset+i]=e&255,i+=d,e/=256,eLen-=8);buffer[offset+i-d]|=s*128}}});var require_buffer=__commonJS({"node_modules/node-stdlib-browser/node_modules/buffer/index.js"(exports2){"use strict";init_define_process_env();init_shim();var base64=require_base64_js(),ieee754=require_ieee754(),customInspectSymbol=typeof Symbol=="function"&&typeof Symbol.for=="function"?Symbol.for("nodejs.util.inspect.custom"):null;exports2.Buffer=Buffer4;exports2.SlowBuffer=SlowBuffer;exports2.INSPECT_MAX_BYTES=50;var K_MAX_LENGTH=2147483647;exports2.kMaxLength=K_MAX_LENGTH;Buffer4.TYPED_ARRAY_SUPPORT=typedArraySupport();!Buffer4.TYPED_ARRAY_SUPPORT&&typeof console<"u"&&typeof console.error=="function"&&console.error("This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support.");function typedArraySupport(){try{var arr=new Uint8Array(1),proto={foo:function(){return 42}};return Object.setPrototypeOf(proto,Uint8Array.prototype),Object.setPrototypeOf(arr,proto),arr.foo()===42}catch(e){return!1}}Object.defineProperty(Buffer4.prototype,"parent",{enumerable:!0,get:function(){if(Buffer4.isBuffer(this))return this.buffer}});Object.defineProperty(Buffer4.prototype,"offset",{enumerable:!0,get:function(){if(Buffer4.isBuffer(this))return this.byteOffset}});function createBuffer(length){if(length>K_MAX_LENGTH)throw new RangeError('The value "'+length+'" is invalid for option "size"');var buf=new Uint8Array(length);return Object.setPrototypeOf(buf,Buffer4.prototype),buf}function Buffer4(arg,encodingOrOffset,length){if(typeof arg=="number"){if(typeof encodingOrOffset=="string")throw new TypeError('The "string" argument must be of type string. Received type number');return allocUnsafe(arg)}return from(arg,encodingOrOffset,length)}Buffer4.poolSize=8192;function from(value,encodingOrOffset,length){if(typeof value=="string")return fromString(value,encodingOrOffset);if(ArrayBuffer.isView(value))return fromArrayView(value);if(value==null)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof value);if(isInstance(value,ArrayBuffer)||value&&isInstance(value.buffer,ArrayBuffer)||typeof SharedArrayBuffer<"u"&&(isInstance(value,SharedArrayBuffer)||value&&isInstance(value.buffer,SharedArrayBuffer)))return fromArrayBuffer(value,encodingOrOffset,length);if(typeof value=="number")throw new TypeError('The "value" argument must not be of type number. Received type number');var valueOf=value.valueOf&&value.valueOf();if(valueOf!=null&&valueOf!==value)return Buffer4.from(valueOf,encodingOrOffset,length);var b=fromObject(value);if(b)return b;if(typeof Symbol<"u"&&Symbol.toPrimitive!=null&&typeof value[Symbol.toPrimitive]=="function")return Buffer4.from(value[Symbol.toPrimitive]("string"),encodingOrOffset,length);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof value)}Buffer4.from=function(value,encodingOrOffset,length){return from(value,encodingOrOffset,length)};Object.setPrototypeOf(Buffer4.prototype,Uint8Array.prototype);Object.setPrototypeOf(Buffer4,Uint8Array);function assertSize(size){if(typeof size!="number")throw new TypeError('"size" argument must be of type number');if(size<0)throw new RangeError('The value "'+size+'" is invalid for option "size"')}function alloc(size,fill,encoding){return assertSize(size),size<=0?createBuffer(size):fill!==void 0?typeof encoding=="string"?createBuffer(size).fill(fill,encoding):createBuffer(size).fill(fill):createBuffer(size)}Buffer4.alloc=function(size,fill,encoding){return alloc(size,fill,encoding)};function allocUnsafe(size){return assertSize(size),createBuffer(size<0?0:checked(size)|0)}Buffer4.allocUnsafe=function(size){return allocUnsafe(size)};Buffer4.allocUnsafeSlow=function(size){return allocUnsafe(size)};function fromString(string,encoding){if((typeof encoding!="string"||encoding==="")&&(encoding="utf8"),!Buffer4.isEncoding(encoding))throw new TypeError("Unknown encoding: "+encoding);var length=byteLength(string,encoding)|0,buf=createBuffer(length),actual=buf.write(string,encoding);return actual!==length&&(buf=buf.slice(0,actual)),buf}function fromArrayLike(array){for(var length=array.length<0?0:checked(array.length)|0,buf=createBuffer(length),i=0;i<length;i+=1)buf[i]=array[i]&255;return buf}function fromArrayView(arrayView){if(isInstance(arrayView,Uint8Array)){var copy=new Uint8Array(arrayView);return fromArrayBuffer(copy.buffer,copy.byteOffset,copy.byteLength)}return fromArrayLike(arrayView)}function fromArrayBuffer(array,byteOffset,length){if(byteOffset<0||array.byteLength<byteOffset)throw new RangeError('"offset" is outside of buffer bounds');if(array.byteLength<byteOffset+(length||0))throw new RangeError('"length" is outside of buffer bounds');var buf;return byteOffset===void 0&&length===void 0?buf=new Uint8Array(array):length===void 0?buf=new Uint8Array(array,byteOffset):buf=new Uint8Array(array,byteOffset,length),Object.setPrototypeOf(buf,Buffer4.prototype),buf}function fromObject(obj){if(Buffer4.isBuffer(obj)){var len=checked(obj.length)|0,buf=createBuffer(len);return buf.length===0||obj.copy(buf,0,0,len),buf}if(obj.length!==void 0)return typeof obj.length!="number"||numberIsNaN(obj.length)?createBuffer(0):fromArrayLike(obj);if(obj.type==="Buffer"&&Array.isArray(obj.data))return fromArrayLike(obj.data)}function checked(length){if(length>=K_MAX_LENGTH)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+K_MAX_LENGTH.toString(16)+" bytes");return length|0}function SlowBuffer(length){return+length!=length&&(length=0),Buffer4.alloc(+length)}Buffer4.isBuffer=function(b){return b!=null&&b._isBuffer===!0&&b!==Buffer4.prototype};Buffer4.compare=function(a,b){if(isInstance(a,Uint8Array)&&(a=Buffer4.from(a,a.offset,a.byteLength)),isInstance(b,Uint8Array)&&(b=Buffer4.from(b,b.offset,b.byteLength)),!Buffer4.isBuffer(a)||!Buffer4.isBuffer(b))throw new TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array');if(a===b)return 0;for(var x=a.length,y=b.length,i=0,len=Math.min(x,y);i<len;++i)if(a[i]!==b[i]){x=a[i],y=b[i];break}return x<y?-1:y<x?1:0};Buffer4.isEncoding=function(encoding){switch(String(encoding).toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"latin1":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return!0;default:return!1}};Buffer4.concat=function(list,length){if(!Array.isArray(list))throw new TypeError('"list" argument must be an Array of Buffers');if(list.length===0)return Buffer4.alloc(0);var i;if(length===void 0)for(length=0,i=0;i<list.length;++i)length+=list[i].length;var buffer=Buffer4.allocUnsafe(length),pos=0;for(i=0;i<list.length;++i){var buf=list[i];if(isInstance(buf,Uint8Array))pos+buf.length>buffer.length?Buffer4.from(buf).copy(buffer,pos):Uint8Array.prototype.set.call(buffer,buf,pos);else if(Buffer4.isBuffer(buf))buf.copy(buffer,pos);else throw new TypeError('"list" argument must be an Array of Buffers');pos+=buf.length}return buffer};function byteLength(string,encoding){if(Buffer4.isBuffer(string))return string.length;if(ArrayBuffer.isView(string)||isInstance(string,ArrayBuffer))return string.byteLength;if(typeof string!="string")throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof string);var len=string.length,mustMatch=arguments.length>2&&arguments[2]===!0;if(!mustMatch&&len===0)return 0;for(var loweredCase=!1;;)switch(encoding){case"ascii":case"latin1":case"binary":return len;case"utf8":case"utf-8":return utf8ToBytes(string).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return len*2;case"hex":return len>>>1;case"base64":return base64ToBytes(string).length;default:if(loweredCase)return mustMatch?-1:utf8ToBytes(string).length;encoding=(""+encoding).toLowerCase(),loweredCase=!0}}Buffer4.byteLength=byteLength;function slowToString(encoding,start,end){var loweredCase=!1;if((start===void 0||start<0)&&(start=0),start>this.length||((end===void 0||end>this.length)&&(end=this.length),end<=0)||(end>>>=0,start>>>=0,end<=start))return"";for(encoding||(encoding="utf8");;)switch(encoding){case"hex":return hexSlice(this,start,end);case"utf8":case"utf-8":return utf8Slice(this,start,end);case"ascii":return asciiSlice(this,start,end);case"latin1":case"binary":return latin1Slice(this,start,end);case"base64":return base64Slice(this,start,end);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return utf16leSlice(this,start,end);default:if(loweredCase)throw new TypeError("Unknown encoding: "+encoding);encoding=(encoding+"").toLowerCase(),loweredCase=!0}}Buffer4.prototype._isBuffer=!0;function swap(b,n,m){var i=b[n];b[n]=b[m],b[m]=i}Buffer4.prototype.swap16=function(){var len=this.length;if(len%2!==0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(var i=0;i<len;i+=2)swap(this,i,i+1);return this};Buffer4.prototype.swap32=function(){var len=this.length;if(len%4!==0)throw new RangeError("Buffer size must be a multiple of 32-bits");for(var i=0;i<len;i+=4)swap(this,i,i+3),swap(this,i+1,i+2);return this};Buffer4.prototype.swap64=function(){var len=this.length;if(len%8!==0)throw new RangeError("Buffer size must be a multiple of 64-bits");for(var i=0;i<len;i+=8)swap(this,i,i+7),swap(this,i+1,i+6),swap(this,i+2,i+5),swap(this,i+3,i+4);return this};Buffer4.prototype.toString=function(){var length=this.length;return length===0?"":arguments.length===0?utf8Slice(this,0,length):slowToString.apply(this,arguments)};Buffer4.prototype.toLocaleString=Buffer4.prototype.toString;Buffer4.prototype.equals=function(b){if(!Buffer4.isBuffer(b))throw new TypeError("Argument must be a Buffer");return this===b?!0:Buffer4.compare(this,b)===0};Buffer4.prototype.inspect=function(){var str="",max=exports2.INSPECT_MAX_BYTES;return str=this.toString("hex",0,max).replace(/(.{2})/g,"$1 ").trim(),this.length>max&&(str+=" ... "),"<Buffer "+str+">"};customInspectSymbol&&(Buffer4.prototype[customInspectSymbol]=Buffer4.prototype.inspect);Buffer4.prototype.compare=function(target,start,end,thisStart,thisEnd){if(isInstance(target,Uint8Array)&&(target=Buffer4.from(target,target.offset,target.byteLength)),!Buffer4.isBuffer(target))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof target);if(start===void 0&&(start=0),end===void 0&&(end=target?target.length:0),thisStart===void 0&&(thisStart=0),thisEnd===void 0&&(thisEnd=this.length),start<0||end>target.length||thisStart<0||thisEnd>this.length)throw new RangeError("out of range index");if(thisStart>=thisEnd&&start>=end)return 0;if(thisStart>=thisEnd)return-1;if(start>=end)return 1;if(start>>>=0,end>>>=0,thisStart>>>=0,thisEnd>>>=0,this===target)return 0;for(var x=thisEnd-thisStart,y=end-start,len=Math.min(x,y),thisCopy=this.slice(thisStart,thisEnd),targetCopy=target.slice(start,end),i=0;i<len;++i)if(thisCopy[i]!==targetCopy[i]){x=thisCopy[i],y=targetCopy[i];break}return x<y?-1:y<x?1:0};function bidirectionalIndexOf(buffer,val,byteOffset,encoding,dir){if(buffer.length===0)return-1;if(typeof byteOffset=="string"?(encoding=byteOffset,byteOffset=0):byteOffset>2147483647?byteOffset=2147483647:byteOffset<-2147483648&&(byteOffset=-2147483648),byteOffset=+byteOffset,numberIsNaN(byteOffset)&&(byteOffset=dir?0:buffer.length-1),byteOffset<0&&(byteOffset=buffer.length+byteOffset),byteOffset>=buffer.length){if(dir)return-1;byteOffset=buffer.length-1}else if(byteOffset<0)if(dir)byteOffset=0;else return-1;if(typeof val=="string"&&(val=Buffer4.from(val,encoding)),Buffer4.isBuffer(val))return val.length===0?-1:arrayIndexOf(buffer,val,byteOffset,encoding,dir);if(typeof val=="number")return val=val&255,typeof Uint8Array.prototype.indexOf=="function"?dir?Uint8Array.prototype.indexOf.call(buffer,val,byteOffset):Uint8Array.prototype.lastIndexOf.call(buffer,val,byteOffset):arrayIndexOf(buffer,[val],byteOffset,encoding,dir);throw new TypeError("val must be string, number or Buffer")}function arrayIndexOf(arr,val,byteOffset,encoding,dir){var indexSize=1,arrLength=arr.length,valLength=val.length;if(encoding!==void 0&&(encoding=String(encoding).toLowerCase(),encoding==="ucs2"||encoding==="ucs-2"||encoding==="utf16le"||encoding==="utf-16le")){if(arr.length<2||val.length<2)return-1;indexSize=2,arrLength/=2,valLength/=2,byteOffset/=2}function read(buf,i2){return indexSize===1?buf[i2]:buf.readUInt16BE(i2*indexSize)}var i;if(dir){var foundIndex=-1;for(i=byteOffset;i<arrLength;i++)if(read(arr,i)===read(val,foundIndex===-1?0:i-foundIndex)){if(foundIndex===-1&&(foundIndex=i),i-foundIndex+1===valLength)return foundIndex*indexSize}else foundIndex!==-1&&(i-=i-foundIndex),foundIndex=-1}else for(byteOffset+valLength>arrLength&&(byteOffset=arrLength-valLength),i=byteOffset;i>=0;i--){for(var found=!0,j=0;j<valLength;j++)if(read(arr,i+j)!==read(val,j)){found=!1;break}if(found)return i}return-1}Buffer4.prototype.includes=function(val,byteOffset,encoding){return this.indexOf(val,byteOffset,encoding)!==-1};Buffer4.prototype.indexOf=function(val,byteOffset,encoding){return bidirectionalIndexOf(this,val,byteOffset,encoding,!0)};Buffer4.prototype.lastIndexOf=function(val,byteOffset,encoding){return bidirectionalIndexOf(this,val,byteOffset,encoding,!1)};function hexWrite(buf,string,offset,length){offset=Number(offset)||0;var remaining=buf.length-offset;length?(length=Number(length),length>remaining&&(length=remaining)):length=remaining;var strLen=string.length;length>strLen/2&&(length=strLen/2);for(var i=0;i<length;++i){var parsed=parseInt(string.substr(i*2,2),16);if(numberIsNaN(parsed))return i;buf[offset+i]=parsed}return i}function utf8Write(buf,string,offset,length){return blitBuffer(utf8ToBytes(string,buf.length-offset),buf,offset,length)}function asciiWrite(buf,string,offset,length){return blitBuffer(asciiToBytes(string),buf,offset,length)}function base64Write(buf,string,offset,length){return blitBuffer(base64ToBytes(string),buf,offset,length)}function ucs2Write(buf,string,offset,length){return blitBuffer(utf16leToBytes(string,buf.length-offset),buf,offset,length)}Buffer4.prototype.write=function(string,offset,length,encoding){if(offset===void 0)encoding="utf8",length=this.length,offset=0;else if(length===void 0&&typeof offset=="string")encoding=offset,length=this.length,offset=0;else if(isFinite(offset))offset=offset>>>0,isFinite(length)?(length=length>>>0,encoding===void 0&&(encoding="utf8")):(encoding=length,length=void 0);else throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");var remaining=this.length-offset;if((length===void 0||length>remaining)&&(length=remaining),string.length>0&&(length<0||offset<0)||offset>this.length)throw new RangeError("Attempt to write outside buffer bounds");encoding||(encoding="utf8");for(var loweredCase=!1;;)switch(encoding){case"hex":return hexWrite(this,string,offset,length);case"utf8":case"utf-8":return utf8Write(this,string,offset,length);case"ascii":case"latin1":case"binary":return asciiWrite(this,string,offset,length);case"base64":return base64Write(this,string,offset,length);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return ucs2Write(this,string,offset,length);default:if(loweredCase)throw new TypeError("Unknown encoding: "+encoding);encoding=(""+encoding).toLowerCase(),loweredCase=!0}};Buffer4.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function base64Slice(buf,start,end){return start===0&&end===buf.length?base64.fromByteArray(buf):base64.fromByteArray(buf.slice(start,end))}function utf8Slice(buf,start,end){end=Math.min(buf.length,end);for(var res=[],i=start;i<end;){var firstByte=buf[i],codePoint=null,bytesPerSequence=firstByte>239?4:firstByte>223?3:firstByte>191?2:1;if(i+bytesPerSequence<=end){var secondByte,thirdByte,fourthByte,tempCodePoint;switch(bytesPerSequence){case 1:firstByte<128&&(codePoint=firstByte);break;case 2:secondByte=buf[i+1],(secondByte&192)===128&&(tempCodePoint=(firstByte&31)<<6|secondByte&63,tempCodePoint>127&&(codePoint=tempCodePoint));break;case 3:secondByte=buf[i+1],thirdByte=buf[i+2],(secondByte&192)===128&&(thirdByte&192)===128&&(tempCodePoint=(firstByte&15)<<12|(secondByte&63)<<6|thirdByte&63,tempCodePoint>2047&&(tempCodePoint<55296||tempCodePoint>57343)&&(codePoint=tempCodePoint));break;case 4:secondByte=buf[i+1],thirdByte=buf[i+2],fourthByte=buf[i+3],(secondByte&192)===128&&(thirdByte&192)===128&&(fourthByte&192)===128&&(tempCodePoint=(firstByte&15)<<18|(secondByte&63)<<12|(thirdByte&63)<<6|fourthByte&63,tempCodePoint>65535&&tempCodePoint<1114112&&(codePoint=tempCodePoint))}}codePoint===null?(codePoint=65533,bytesPerSequence=1):codePoint>65535&&(codePoint-=65536,res.push(codePoint>>>10&1023|55296),codePoint=56320|codePoint&1023),res.push(codePoint),i+=bytesPerSequence}return decodeCodePointsArray(res)}var MAX_ARGUMENTS_LENGTH=4096;function decodeCodePointsArray(codePoints){var len=codePoints.length;if(len<=MAX_ARGUMENTS_LENGTH)return String.fromCharCode.apply(String,codePoints);for(var res="",i=0;i<len;)res+=String.fromCharCode.apply(String,codePoints.slice(i,i+=MAX_ARGUMENTS_LENGTH));return res}function asciiSlice(buf,start,end){var ret="";end=Math.min(buf.length,end);for(var i=start;i<end;++i)ret+=String.fromCharCode(buf[i]&127);return ret}function latin1Slice(buf,start,end){var ret="";end=Math.min(buf.length,end);for(var i=start;i<end;++i)ret+=String.fromCharCode(buf[i]);return ret}function hexSlice(buf,start,end){var len=buf.length;(!start||start<0)&&(start=0),(!end||end<0||end>len)&&(end=len);for(var out="",i=start;i<end;++i)out+=hexSliceLookupTable[buf[i]];return out}function utf16leSlice(buf,start,end){for(var bytes=buf.slice(start,end),res="",i=0;i<bytes.length-1;i+=2)res+=String.fromCharCode(bytes[i]+bytes[i+1]*256);return res}Buffer4.prototype.slice=function(start,end){var len=this.length;start=~~start,end=end===void 0?len:~~end,start<0?(start+=len,start<0&&(start=0)):start>len&&(start=len),end<0?(end+=len,end<0&&(end=0)):end>len&&(end=len),end<start&&(end=start);var newBuf=this.subarray(start,end);return Object.setPrototypeOf(newBuf,Buffer4.prototype),newBuf};function checkOffset(offset,ext,length){if(offset%1!==0||offset<0)throw new RangeError("offset is not uint");if(offset+ext>length)throw new RangeError("Trying to access beyond buffer length")}Buffer4.prototype.readUintLE=Buffer4.prototype.readUIntLE=function(offset,byteLength2,noAssert){offset=offset>>>0,byteLength2=byteLength2>>>0,noAssert||checkOffset(offset,byteLength2,this.length);for(var val=this[offset],mul=1,i=0;++i<byteLength2&&(mul*=256);)val+=this[offset+i]*mul;return val};Buffer4.prototype.readUintBE=Buffer4.prototype.readUIntBE=function(offset,byteLength2,noAssert){offset=offset>>>0,byteLength2=byteLength2>>>0,noAssert||checkOffset(offset,byteLength2,this.length);for(var val=this[offset+--byteLength2],mul=1;byteLength2>0&&(mul*=256);)val+=this[offset+--byteLength2]*mul;return val};Buffer4.prototype.readUint8=Buffer4.prototype.readUInt8=function(offset,noAssert){return offset=offset>>>0,noAssert||checkOffset(offset,1,this.length),this[offset]};Buffer4.prototype.readUint16LE=Buffer4.prototype.readUInt16LE=function(offset,noAssert){return offset=offset>>>0,noAssert||checkOffset(offset,2,this.length),this[offset]|this[offset+1]<<8};Buffer4.prototype.readUint16BE=Buffer4.prototype.readUInt16BE=function(offset,noAssert){return offset=offset>>>0,noAssert||checkOffset(offset,2,this.length),this[offset]<<8|this[offset+1]};Buffer4.prototype.readUint32LE=Buffer4.prototype.readUInt32LE=function(offset,noAssert){return offset=offset>>>0,noAssert||checkOffset(offset,4,this.length),(this[offset]|this[offset+1]<<8|this[offset+2]<<16)+this[offset+3]*16777216};Buffer4.prototype.readUint32BE=Buffer4.prototype.readUInt32BE=function(offset,noAssert){return offset=offset>>>0,noAssert||checkOffset(offset,4,this.length),this[offset]*16777216+(this[offset+1]<<16|this[offset+2]<<8|this[offset+3])};Buffer4.prototype.readIntLE=function(offset,byteLength2,noAssert){offset=offset>>>0,byteLength2=byteLength2>>>0,noAssert||checkOffset(offset,byteLength2,this.length);for(var val=this[offset],mul=1,i=0;++i<byteLength2&&(mul*=256);)val+=this[offset+i]*mul;return mul*=128,val>=mul&&(val-=Math.pow(2,8*byteLength2)),val};Buffer4.prototype.readIntBE=function(offset,byteLength2,noAssert){offset=offset>>>0,byteLength2=byteLength2>>>0,noAssert||checkOffset(offset,byteLength2,this.length);for(var i=byteLength2,mul=1,val=this[offset+--i];i>0&&(mul*=256);)val+=this[offset+--i]*mul;return mul*=128,val>=mul&&(val-=Math.pow(2,8*byteLength2)),val};Buffer4.prototype.readInt8=function(offset,noAssert){return offset=offset>>>0,noAssert||checkOffset(offset,1,this.length),this[offset]&128?(255-this[offset]+1)*-1:this[offset]};Buffer4.prototype.readInt16LE=function(offset,noAssert){offset=offset>>>0,noAssert||checkOffset(offset,2,this.length);var val=this[offset]|this[offset+1]<<8;return val&32768?val|4294901760:val};Buffer4.prototype.readInt16BE=function(offset,noAssert){offset=offset>>>0,noAssert||checkOffset(offset,2,this.length);var val=this[offset+1]|this[offset]<<8;return val&32768?val|4294901760:val};Buffer4.prototype.readInt32LE=function(offset,noAssert){return offset=offset>>>0,noAssert||checkOffset(offset,4,this.length),this[offset]|this[offset+1]<<8|this[offset+2]<<16|this[offset+3]<<24};Buffer4.prototype.readInt32BE=function(offset,noAssert){return offset=offset>>>0,noAssert||checkOffset(offset,4,this.length),this[offset]<<24|this[offset+1]<<16|this[offset+2]<<8|this[offset+3]};Buffer4.prototype.readFloatLE=function(offset,noAssert){return offset=offset>>>0,noAssert||checkOffset(offset,4,this.length),ieee754.read(this,offset,!0,23,4)};Buffer4.prototype.readFloatBE=function(offset,noAssert){return offset=offset>>>0,noAssert||checkOffset(offset,4,this.length),ieee754.read(this,offset,!1,23,4)};Buffer4.prototype.readDoubleLE=function(offset,noAssert){return offset=offset>>>0,noAssert||checkOffset(offset,8,this.length),ieee754.read(this,offset,!0,52,8)};Buffer4.prototype.readDoubleBE=function(offset,noAssert){return offset=offset>>>0,noAssert||checkOffset(offset,8,this.length),ieee754.read(this,offset,!1,52,8)};function checkInt(buf,value,offset,ext,max,min){if(!Buffer4.isBuffer(buf))throw new TypeError('"buffer" argument must be a Buffer instance');if(value>max||value<min)throw new RangeError('"value" argument is out of bounds');if(offset+ext>buf.length)throw new RangeError("Index out of range")}Buffer4.prototype.writeUintLE=Buffer4.prototype.writeUIntLE=function(value,offset,byteLength2,noAssert){if(value=+value,offset=offset>>>0,byteLength2=byteLength2>>>0,!noAssert){var maxBytes=Math.pow(2,8*byteLength2)-1;checkInt(this,value,offset,byteLength2,maxBytes,0)}var mul=1,i=0;for(this[offset]=value&255;++i<byteLength2&&(mul*=256);)this[offset+i]=value/mul&255;return offset+byteLength2};Buffer4.prototype.writeUintBE=Buffer4.prototype.writeUIntBE=function(value,offset,byteLength2,noAssert){if(value=+value,offset=offset>>>0,byteLength2=byteLength2>>>0,!noAssert){var maxBytes=Math.pow(2,8*byteLength2)-1;checkInt(this,value,offset,byteLength2,maxBytes,0)}var i=byteLength2-1,mul=1;for(this[offset+i]=value&255;--i>=0&&(mul*=256);)this[offset+i]=value/mul&255;return offset+byteLength2};Buffer4.prototype.writeUint8=Buffer4.prototype.writeUInt8=function(value,offset,noAssert){return value=+value,offset=offset>>>0,noAssert||checkInt(this,value,offset,1,255,0),this[offset]=value&255,offset+1};Buffer4.prototype.writeUint16LE=Buffer4.prototype.writeUInt16LE=function(value,offset,noAssert){return value=+value,offset=offset>>>0,noAssert||checkInt(this,value,offset,2,65535,0),this[offset]=value&255,this[offset+1]=value>>>8,offset+2};Buffer4.prototype.writeUint16BE=Buffer4.prototype.writeUInt16BE=function(value,offset,noAssert){return value=+value,offset=offset>>>0,noAssert||checkInt(this,value,offset,2,65535,0),this[offset]=value>>>8,this[offset+1]=value&255,offset+2};Buffer4.prototype.writeUint32LE=Buffer4.prototype.writeUInt32LE=function(value,offset,noAssert){return value=+value,offset=offset>>>0,noAssert||checkInt(this,value,offset,4,4294967295,0),this[offset+3]=value>>>24,this[offset+2]=value>>>16,this[offset+1]=value>>>8,this[offset]=value&255,offset+4};Buffer4.prototype.writeUint32BE=Buffer4.prototype.writeUInt32BE=function(value,offset,noAssert){return value=+value,offset=offset>>>0,noAssert||checkInt(this,value,offset,4,4294967295,0),this[offset]=value>>>24,this[offset+1]=value>>>16,this[offset+2]=value>>>8,this[offset+3]=value&255,offset+4};Buffer4.prototype.writeIntLE=function(value,offset,byteLength2,noAssert){if(value=+value,offset=offset>>>0,!noAssert){var limit=Math.pow(2,8*byteLength2-1);checkInt(this,value,offset,byteLength2,limit-1,-limit)}var i=0,mul=1,sub=0;for(this[offset]=value&255;++i<byteLength2&&(mul*=256);)value<0&&sub===0&&this[offset+i-1]!==0&&(sub=1),this[offset+i]=(value/mul>>0)-sub&255;return offset+byteLength2};Buffer4.prototype.writeIntBE=function(value,offset,byteLength2,noAssert){if(value=+value,offset=offset>>>0,!noAssert){var limit=Math.pow(2,8*byteLength2-1);checkInt(this,value,offset,byteLength2,limit-1,-limit)}var i=byteLength2-1,mul=1,sub=0;for(this[offset+i]=value&255;--i>=0&&(mul*=256);)value<0&&sub===0&&this[offset+i+1]!==0&&(sub=1),this[offset+i]=(value/mul>>0)-sub&255;return offset+byteLength2};Buffer4.prototype.writeInt8=function(value,offset,noAssert){return value=+value,offset=offset>>>0,noAssert||checkInt(this,value,offset,1,127,-128),value<0&&(value=255+value+1),this[offset]=value&255,offset+1};Buffer4.prototype.writeInt16LE=function(value,offset,noAssert){return value=+value,offset=offset>>>0,noAssert||checkInt(this,value,offset,2,32767,-32768),this[offset]=value&255,this[offset+1]=value>>>8,offset+2};Buffer4.prototype.writeInt16BE=function(value,offset,noAssert){return value=+value,offset=offset>>>0,noAssert||checkInt(this,value,offset,2,32767,-32768),this[offset]=value>>>8,this[offset+1]=value&255,offset+2};Buffer4.prototype.writeInt32LE=function(value,offset,noAssert){return value=+value,offset=offset>>>0,noAssert||checkInt(this,value,offset,4,2147483647,-2147483648),this[offset]=value&255,this[offset+1]=value>>>8,this[offset+2]=value>>>16,this[offset+3]=value>>>24,offset+4};Buffer4.prototype.writeInt32BE=function(value,offset,noAssert){return value=+value,offset=offset>>>0,noAssert||checkInt(this,value,offset,4,2147483647,-2147483648),value<0&&(value=4294967295+value+1),this[offset]=value>>>24,this[offset+1]=value>>>16,this[offset+2]=value>>>8,this[offset+3]=value&255,offset+4};function checkIEEE754(buf,value,offset,ext,max,min){if(offset+ext>buf.length)throw new RangeError("Index out of range");if(offset<0)throw new RangeError("Index out of range")}function writeFloat(buf,value,offset,littleEndian,noAssert){return value=+value,offset=offset>>>0,noAssert||checkIEEE754(buf,value,offset,4,34028234663852886e22,-34028234663852886e22),ieee754.write(buf,value,offset,littleEndian,23,4),offset+4}Buffer4.prototype.writeFloatLE=function(value,offset,noAssert){return writeFloat(this,value,offset,!0,noAssert)};Buffer4.prototype.writeFloatBE=function(value,offset,noAssert){return writeFloat(this,value,offset,!1,noAssert)};function writeDouble(buf,value,offset,littleEndian,noAssert){return value=+value,offset=offset>>>0,noAssert||checkIEEE754(buf,value,offset,8,17976931348623157e292,-17976931348623157e292),ieee754.write(buf,value,offset,littleEndian,52,8),offset+8}Buffer4.prototype.writeDoubleLE=function(value,offset,noAssert){return writeDouble(this,value,offset,!0,noAssert)};Buffer4.prototype.writeDoubleBE=function(value,offset,noAssert){return writeDouble(this,value,offset,!1,noAssert)};Buffer4.prototype.copy=function(target,targetStart,start,end){if(!Buffer4.isBuffer(target))throw new TypeError("argument should be a Buffer");if(start||(start=0),!end&&end!==0&&(end=this.length),targetStart>=target.length&&(targetStart=target.length),targetStart||(targetStart=0),end>0&&end<start&&(end=start),end===start||target.length===0||this.length===0)return 0;if(targetStart<0)throw new RangeError("targetStart out of bounds");if(start<0||start>=this.length)throw new RangeError("Index out of range");if(end<0)throw new RangeError("sourceEnd out of bounds");end>this.length&&(end=this.length),target.length-targetStart<end-start&&(end=target.length-targetStart+start);var len=end-start;return this===target&&typeof Uint8Array.prototype.copyWithin=="function"?this.copyWithin(targetStart,start,end):Uint8Array.prototype.set.call(target,this.subarray(start,end),targetStart),len};Buffer4.prototype.fill=function(val,start,end,encoding){if(typeof val=="string"){if(typeof start=="string"?(encoding=start,start=0,end=this.length):typeof end=="string"&&(encoding=end,end=this.length),encoding!==void 0&&typeof encoding!="string")throw new TypeError("encoding must be a string");if(typeof encoding=="string"&&!Buffer4.isEncoding(encoding))throw new TypeError("Unknown encoding: "+encoding);if(val.length===1){var code=val.charCodeAt(0);(encoding==="utf8"&&code<128||encoding==="latin1")&&(val=code)}}else typeof val=="number"?val=val&255:typeof val=="boolean"&&(val=Number(val));if(start<0||this.length<start||this.length<end)throw new RangeError("Out of range index");if(end<=start)return this;start=start>>>0,end=end===void 0?this.length:end>>>0,val||(val=0);var i;if(typeof val=="number")for(i=start;i<end;++i)this[i]=val;else{var bytes=Buffer4.isBuffer(val)?val:Buffer4.from(val,encoding),len=bytes.length;if(len===0)throw new TypeError('The value "'+val+'" is invalid for argument "value"');for(i=0;i<end-start;++i)this[i+start]=bytes[i%len]}return this};var INVALID_BASE64_RE=/[^+/0-9A-Za-z-_]/g;function base64clean(str){if(str=str.split("=")[0],str=str.trim().replace(INVALID_BASE64_RE,""),str.length<2)return"";for(;str.length%4!==0;)str=str+"=";return str}function utf8ToBytes(string,units){units=units||1/0;for(var codePoint,length=string.length,leadSurrogate=null,bytes=[],i=0;i<length;++i){if(codePoint=string.charCodeAt(i),codePoint>55295&&codePoint<57344){if(!leadSurrogate){if(codePoint>56319){(units-=3)>-1&&bytes.push(239,191,189);continue}else if(i+1===length){(units-=3)>-1&&bytes.push(239,191,189);continue}leadSurrogate=codePoint;continue}if(codePoint<56320){(units-=3)>-1&&bytes.push(239,191,189),leadSurrogate=codePoint;continue}codePoint=(leadSurrogate-55296<<10|codePoint-56320)+65536}else leadSurrogate&&(units-=3)>-1&&bytes.push(239,191,189);if(leadSurrogate=null,codePoint<128){if((units-=1)<0)break;bytes.push(codePoint)}else if(codePoint<2048){if((units-=2)<0)break;bytes.push(codePoint>>6|192,codePoint&63|128)}else if(codePoint<65536){if((units-=3)<0)break;bytes.push(codePoint>>12|224,codePoint>>6&63|128,codePoint&63|128)}else if(codePoint<1114112){if((units-=4)<0)break;bytes.push(codePoint>>18|240,codePoint>>12&63|128,codePoint>>6&63|128,codePoint&63|128)}else throw new Error("Invalid code point")}return bytes}function asciiToBytes(str){for(var byteArray=[],i=0;i<str.length;++i)byteArray.push(str.charCodeAt(i)&255);return byteArray}function utf16leToBytes(str,units){for(var c,hi,lo,byteArray=[],i=0;i<str.length&&!((units-=2)<0);++i)c=str.charCodeAt(i),hi=c>>8,lo=c%256,byteArray.push(lo),byteArray.push(hi);return byteArray}function base64ToBytes(str){return base64.toByteArray(base64clean(str))}function blitBuffer(src,dst,offset,length){for(var i=0;i<length&&!(i+offset>=dst.length||i>=src.length);++i)dst[i+offset]=src[i];return i}function isInstance(obj,type){return obj instanceof type||obj!=null&&obj.constructor!=null&&obj.constructor.name!=null&&obj.constructor.name===type.name}function numberIsNaN(obj){return obj!==obj}var hexSliceLookupTable=function(){for(var alphabet="0123456789abcdef",table=new Array(256),i=0;i<16;++i)for(var i16=i*16,j=0;j<16;++j)table[i16+j]=alphabet[i]+alphabet[j];return table}()}});var require_browser=__commonJS({"node_modules/process/browser.js"(exports2,module2){init_define_process_env();init_shim();var process2=module2.exports={},cachedSetTimeout,cachedClearTimeout;function defaultSetTimout(){throw new Error("setTimeout has not been defined")}function defaultClearTimeout(){throw new Error("clearTimeout has not been defined")}(function(){try{typeof setTimeout=="function"?cachedSetTimeout=setTimeout:cachedSetTimeout=defaultSetTimout}catch(e){cachedSetTimeout=defaultSetTimout}try{typeof clearTimeout=="function"?cachedClearTimeout=clearTimeout:cachedClearTimeout=defaultClearTimeout}catch(e){cachedClearTimeout=defaultClearTimeout}})();function runTimeout(fun){if(cachedSetTimeout===setTimeout)return setTimeout(fun,0);if((cachedSetTimeout===defaultSetTimout||!cachedSetTimeout)&&setTimeout)return cachedSetTimeout=setTimeout,setTimeout(fun,0);try{return cachedSetTimeout(fun,0)}catch(e){try{return cachedSetTimeout.call(null,fun,0)}catch(e2){return cachedSetTimeout.call(this,fun,0)}}}function runClearTimeout(marker){if(cachedClearTimeout===clearTimeout)return clearTimeout(marker);if((cachedClearTimeout===defaultClearTimeout||!cachedClearTimeout)&&clearTimeout)return cachedClearTimeout=clearTimeout,clearTimeout(marker);try{return cachedClearTimeout(marker)}catch(e){try{return cachedClearTimeout.call(null,marker)}catch(e2){return cachedClearTimeout.call(this,marker)}}}var queue=[],draining=!1,currentQueue,queueIndex=-1;function cleanUpNextTick(){!draining||!currentQueue||(draining=!1,currentQueue.length?queue=currentQueue.concat(queue):queueIndex=-1,queue.length&&drainQueue())}function drainQueue(){if(!draining){var timeout=runTimeout(cleanUpNextTick);draining=!0;for(var len=queue.length;len;){for(currentQueue=queue,queue=[];++queueIndex<len;)currentQueue&&currentQueue[queueIndex].run();queueIndex=-1,len=queue.length}currentQueue=null,draining=!1,runClearTimeout(timeout)}}process2.nextTick=function(fun){var args=new Array(arguments.length-1);if(arguments.length>1)for(var i=1;i<arguments.length;i++)args[i-1]=arguments[i];queue.push(new Item(fun,args)),queue.length===1&&!draining&&runTimeout(drainQueue)};function Item(fun,array){this.fun=fun,this.array=array}Item.prototype.run=function(){this.fun.apply(null,this.array)};process2.title="browser";process2.browser=!0;process2.env={};process2.argv=[];process2.version="";process2.versions={};function noop(){}process2.on=noop;process2.addListener=noop;process2.once=noop;process2.off=noop;process2.removeListener=noop;process2.removeAllListeners=noop;process2.emit=noop;process2.prependListener=noop;process2.prependOnceListener=noop;process2.listeners=function(name){return[]};process2.binding=function(name){throw new Error("process.binding is not supported")};process2.cwd=function(){return"/"};process2.chdir=function(dir){throw new Error("process.chdir is not supported")};process2.umask=function(){return 0}}});var import_buffer,import_process,_globalThis,init_shim=__esm({"node_modules/node-stdlib-browser/helpers/esbuild/shim.js"(){import_buffer=__toESM(require_buffer()),import_process=__toESM(require_browser()),_globalThis=function(Object2){function get(){var _global3=this||self;return delete Object2.prototype.__magic__,_global3}if(typeof globalThis=="object")return globalThis;if(this)return get();Object2.defineProperty(Object2.prototype,"__magic__",{configurable:!0,get});var _global2=__magic__;return _global2}(Object)}});var require_fails=__commonJS({"node_modules/core-js/internals/fails.js"(exports2,module2){"use strict";init_define_process_env();init_shim();module2.exports=function(exec){try{return!!exec()}catch(error){return!0}}}});var require_function_bind_native=__commonJS({"node_modules/core-js/internals/function-bind-native.js"(exports2,module2){"use strict";init_define_process_env();init_shim();var fails=require_fails();module2.exports=!fails(function(){var test=(function(){}).bind();return typeof test!="function"||test.hasOwnProperty("prototype")})}});var require_function_uncurry_this=__commonJS({"node_modules/core-js/internals/function-uncurry-this.js"(exports2,module2){"use strict";init_define_process_env();init_shim();var NATIVE_BIND=require_function_bind_native(),FunctionPrototype=Function.prototype,call=FunctionPrototype.call,uncurryThisWithBind=NATIVE_BIND&&FunctionPrototype.bind.bind(call,call);module2.exports=NATIVE_BIND?uncurryThisWithBind:function(fn){return function(){return call.apply(fn,arguments)}}}});var require_classof_raw=__commonJS({"node_modules/core-js/internals/classof-raw.js"(exports2,module2){"use strict";init_define_process_env();init_shim();var uncurryThis=require_function_uncurry_this(),toString=uncurryThis({}.toString),stringSlice=uncurryThis("".slice);module2.exports=function(it){return stringSlice(toString(it),8,-1)}}});var require_indexed_object=__commonJS({"node_modules/core-js/internals/indexed-object.js"(exports2,module2){"use strict";init_define_process_env();init_shim();var uncurryThis=require_function_uncurry_this(),fails=require_fails(),classof=require_classof_raw(),$Object=Object,split=uncurryThis("".split);module2.exports=fails(function(){return!$Object("z").propertyIsEnumerable(0)})?function(it){return classof(it)==="String"?split(it,""):$Object(it)}:$Object}});var require_is_null_or_undefined=__commonJS({"node_modules/core-js/internals/is-null-or-undefined.js"(exports2,module2){"use strict";init_define_process_env();init_shim();module2.exports=function(it){return it==null}}});var require_require_object_coercible=__commonJS({"node_modules/core-js/internals/require-object-coercible.js"(exports2,module2){"use strict";init_define_process_env();init_shim();var isNullOrUndefined=require_is_null_or_undefined(),$TypeError=TypeError;module2.exports=function(it){if(isNullOrUndefined(it))throw new $TypeError("Can't call method on "+it);return it}}});var require_to_indexed_object=__commonJS({"node_modules/core-js/internals/to-indexed-object.js"(exports2,module2){"use strict";init_define_process_env();init_shim();var IndexedObject=require_indexed_object(),requireObjectCoercible=require_require_object_coercible();module2.exports=function(it){return IndexedObject(requireObjectCoercible(it))}}});var require_global=__commonJS({"node_modules/core-js/internals/global.js"(exports2,module2){"use strict";init_define_process_env();init_shim();var check=function(it){return it&&it.Math===Math&&it};module2.exports=check(typeof globalThis=="object"&&globalThis)||check(typeof window=="object"&&window)||check(typeof self=="object"&&self)||check(typeof window=="object"&&window)||check(typeof exports2=="object"&&exports2)||function(){return this}()||Function("return this")()}});var require_is_pure=__commonJS({"node_modules/core-js/internals/is-pure.js"(exports2,module2){"use strict";init_define_process_env();init_shim();module2.exports=!1}});var require_define_global_property=__commonJS({"node_modules/core-js/internals/define-global-property.js"(exports2,module2){"use strict";init_define_process_env();init_shim();var global=require_global(),defineProperty=Object.defineProperty;module2.exports=function(key,value){try{defineProperty(global,key,{value,configurable:!0,writable:!0})}catch(error){global[key]=value}return value}}});var require_shared_store=__commonJS({"node_modules/core-js/internals/shared-store.js"(exports2,module2){"use strict";init_define_process_env();init_shim();var global=require_global(),defineGlobalProperty=require_define_global_property(),SHARED="__core-js_shared__",store=global[SHARED]||defineGlobalProperty(SHARED,{});module2.exports=store}});var require_shared=__commonJS({"node_modules/core-js/internals/shared.js"(exports2,module2){"use strict";init_define_process_env();init_shim();var IS_PURE=require_is_pure(),store=require_shared_store();(module2.exports=function(key,value){return store[key]||(store[key]=value!==void 0?value:{})})("versions",[]).push({version:"3.35.1",mode:IS_PURE?"pure":"global",copyright:"\xA9 2014-2024 Denis Pushkarev (zloirock.ru)",license:"https://github.com/zloirock/core-js/blob/v3.35.1/LICENSE",source:"https://github.com/zloirock/core-js"})}});var require_to_object=__commonJS({"node_modules/core-js/internals/to-object.js"(exports2,module2){"use strict";init_define_process_env();init_shim();var requireObjectCoercible=require_require_object_coercible(),$Object=Object;module2.exports=function(argument){return $Object(requireObjectCoercible(argument))}}});var require_has_own_property=__commonJS({"node_modules/core-js/internals/has-own-property.js"(exports2,module2){"use strict";init_define_process_env();init_shim();var uncurryThis=require_function_uncurry_this(),toObject=require_to_object(),hasOwnProperty10=uncurryThis({}.hasOwnProperty);module2.exports=Object.hasOwn||function(it,key){return hasOwnProperty10(toObject(it),key)}}});var require_uid=__commonJS({"node_modules/core-js/internals/uid.js"(exports2,module2){"use strict";init_define_process_env();init_shim();var uncurryThis=require_function_uncurry_this(),id=0,postfix=Math.random(),toString=uncurryThis(1 .toString);module2.exports=function(key){return"Symbol("+(key===void 0?"":key)+")_"+toString(++id+postfix,36)}}});var require_engine_user_agent=__commonJS({"node_modules/core-js/internals/engine-user-agent.js"(exports2,module2){"use strict";init_define_process_env();init_shim();module2.exports=typeof navigator<"u"&&String(navigator.userAgent)||""}});var require_engine_v8_version=__commonJS({"node_modules/core-js/internals/engine-v8-version.js"(exports2,module2){"use strict";init_define_process_env();init_shim();var global=require_global(),userAgent=require_engine_user_agent(),process2=global.process,Deno=global.Deno,versions=process2&&process2.versions||Deno&&Deno.version,v8=versions&&versions.v8,match,version;v8&&(match=v8.split("."),version=match[0]>0&&match[0]<4?1:+(match[0]+match[1]));!version&&userAgent&&(match=userAgent.match(/Edge\/(\d+)/),(!match||match[1]>=74)&&(match=userAgent.match(/Chrome\/(\d+)/),match&&(version=+match[1])));module2.exports=version}});var require_symbol_constructor_detection=__commonJS({"node_modules/core-js/internals/symbol-constructor-detection.js"(exports2,module2){"use strict";init_define_process_env();init_shim();var V8_VERSION=require_engine_v8_version(),fails=require_fails(),global=require_global(),$String=global.String;module2.exports=!!Object.getOwnPropertySymbols&&!fails(function(){var symbol=Symbol("symbol detection");return!$String(symbol)||!(Object(symbol)instanceof Symbol)||!Symbol.sham&&V8_VERSION&&V8_VERSION<41})}});var require_use_symbol_as_uid=__commonJS({"node_modules/core-js/internals/use-symbol-as-uid.js"(exports2,module2){"use strict";init_define_process_env();init_shim();var NATIVE_SYMBOL=require_symbol_constructor_detection();module2.exports=NATIVE_SYMBOL&&!Symbol.sham&&typeof Symbol.iterator=="symbol"}});var require_well_known_symbol=__commonJS({"node_modules/core-js/internals/well-known-symbol.js"(exports2,module2){"use strict";init_define_process_env();init_shim();var global=require_global(),shared=require_shared(),hasOwn=require_has_own_property(),uid=require_uid(),NATIVE_SYMBOL=require_symbol_constructor_detection(),USE_SYMBOL_AS_UID=require_use_symbol_as_uid(),Symbol3=global.Symbol,WellKnownSymbolsStore=shared("wks"),createWellKnownSymbol=USE_SYMBOL_AS_UID?Symbol3.for||Symbol3:Symbol3&&Symbol3.withoutSetter||uid;module2.exports=function(name){return hasOwn(WellKnownSymbolsStore,name)||(WellKnownSymbolsStore[name]=NATIVE_SYMBOL&&hasOwn(Symbol3,name)?Symbol3[name]:createWellKnownSymbol("Symbol."+name)),WellKnownSymbolsStore[name]}}});var require_is_callable=__commonJS({"node_modules/core-js/internals/is-callable.js"(exports2,module2){"use strict";init_define_process_env();init_shim();var documentAll=typeof document=="object"&&document.all;module2.exports=typeof documentAll>"u"&&documentAll!==void 0?function(argument){return typeof argument=="function"||argument===documentAll}:function(argument){return typeof argument=="function"}}});var require_is_object=__commonJS({"node_modules/core-js/internals/is-object.js"(exports2,module2){"use strict";init_define_process_env();init_shim();var isCallable=require_is_callable();module2.exports=function(it){return typeof it=="object"?it!==null:isCallable(it)}}});var require_an_object=__commonJS({"node_modules/core-js/internals/an-object.js"(exports2,module2){"use strict";init_define_process_env();init_shim();var isObject2=require_is_object(),$String=String,$TypeError=TypeError;module2.exports=function(argument){if(isObject2(argument))return argument;throw new $TypeError($String(argument)+" is not an object")}}});var require_descriptors=__commonJS({"node_modules/core-js/internals/descriptors.js"(exports2,module2){"use strict";init_define_process_env();init_shim();var fails=require_fails();module2.exports=!fails(function(){return Object.defineProperty({},1,{get:function(){return 7}})[1]!==7})}});var require_v8_prototype_define_bug=__commonJS({"node_modules/core-js/internals/v8-prototype-define-bug.js"(exports2,module2){"use strict";init_define_process_env();init_shim();var DESCRIPTORS=require_descriptors(),fails=require_fails();module2.exports=DESCRIPTORS&&fails(function(){return Object.defineProperty(function(){},"prototype",{value:42,writable:!1}).prototype!==42})}});var require_document_create_element=__commonJS({"node_modules/core-js/internals/document-create-element.js"(exports2,module2){"use strict";init_define_process_env();init_shim();var global=require_global(),isObject2=require_is_object(),document2=global.document,EXISTS=isObject2(document2)&&isObject2(document2.createElement);module2.exports=function(it){return EXISTS?document2.createElement(it):{}}}});var require_ie8_dom_define=__commonJS({"node_modules/core-js/internals/ie8-dom-define.js"(exports2,module2){"use strict";init_define_process_env();init_shim();var DESCRIPTORS=require_descriptors(),fails=require_fails(),createElement=require_document_create_element();module2.exports=!DESCRIPTORS&&!fails(function(){return Object.defineProperty(createElement("div"),"a",{get:function(){return 7}}).a!==7})}});var require_function_call=__commonJS({"node_modules/core-js/internals/function-call.js"(exports2,module2){"use strict";init_define_process_env();init_shim();var NATIVE_BIND=require_function_bind_native(),call=Function.prototype.call;module2.exports=NATIVE_BIND?call.bind(call):function(){return call.apply(call,arguments)}}});var require_get_built_in=__commonJS({"node_modules/core-js/internals/get-built-in.js"(exports2,module2){"use strict";init_define_process_env();init_shim();var global=require_global(),isCallable=require_is_callable(),aFunction=function(argument){return isCallable(argument)?argument:void 0};module2.exports=function(namespace,method){return arguments.length<2?aFunction(global[namespace]):global[namespace]&&global[namespace][method]}}});var require_object_is_prototype_of=__commonJS({"node_modules/core-js/internals/object-is-prototype-of.js"(exports2,module2){"use strict";init_define_process_env();init_shim();var uncurryThis=require_function_uncurry_this();module2.exports=uncurryThis({}.isPrototypeOf)}});var require_is_symbol=__commonJS({"node_modules/core-js/internals/is-symbol.js"(exports2,module2){"use strict";init_define_process_env();init_shim();var getBuiltIn=require_get_built_in(),isCallable=require_is_callable(),isPrototypeOf=require_object_is_prototype_of(),USE_SYMBOL_AS_UID=require_use_symbol_as_uid(),$Object=Object;module2.exports=USE_SYMBOL_AS_UID?function(it){return typeof it=="symbol"}:function(it){var $Symbol=getBuiltIn("Symbol");return isCallable($Symbol)&&isPrototypeOf($Symbol.prototype,$Object(it))}}});var require_try_to_string=__commonJS({"node_modules/core-js/internals/try-to-string.js"(exports2,module2){"use strict";init_define_process_env();init_shim();var $String=String;module2.exports=function(argument){try{return $String(argument)}catch(error){return"Object"}}}});var require_a_callable=__commonJS({"node_modules/core-js/internals/a-callable.js"(exports2,module2){"use strict";init_define_process_env();init_shim();var isCallable=require_is_callable(),tryToString=require_try_to_string(),$TypeError=TypeError;module2.exports=function(argument){if(isCallable(argument))return argument;throw new $TypeError(tryToString(argument)+" is not a function")}}});var require_get_method=__commonJS({"node_modules/core-js/internals/get-method.js"(exports2,module2){"use strict";init_define_process_env();init_shim();var aCallable=require_a_callable(),isNullOrUndefined=require_is_null_or_undefined();module2.exports=function(V,P){var func=V[P];return isNullOrUndefined(func)?void 0:aCallable(func)}}});var require_ordinary_to_primitive=__commonJS({"node_modules/core-js/internals/ordinary-to-primitive.js"(exports2,module2){"use strict";init_define_process_env();init_shim();var call=require_function_call(),isCallable=require_is_callable(),isObject2=require_is_object(),$TypeError=TypeError;module2.exports=function(input,pref){var fn,val;if(pref==="string"&&isCallable(fn=input.toString)&&!isObject2(val=call(fn,input))||isCallable(fn=input.valueOf)&&!isObject2(val=call(fn,input))||pref!=="string"&&isCallable(fn=input.toString)&&!isObject2(val=call(fn,input)))return val;throw new $TypeError("Can't convert object to primitive value")}}});var require_to_primitive=__commonJS({"node_modules/core-js/internals/to-primitive.js"(exports2,module2){"use strict";init_define_process_env();init_shim();var call=require_function_call(),isObject2=require_is_object(),isSymbol=require_is_symbol(),getMethod=require_get_method(),ordinaryToPrimitive=require_ordinary_to_primitive(),wellKnownSymbol=require_well_known_symbol(),$TypeError=TypeError,TO_PRIMITIVE=wellKnownSymbol("toPrimitive");module2.exports=function(input,pref){if(!isObject2(input)||isSymbol(input))return input;var exoticToPrim=getMethod(input,TO_PRIMITIVE),result;if(exoticToPrim){if(pref===void 0&&(pref="default"),result=call(exoticToPrim,input,pref),!isObject2(result)||isSymbol(result))return result;throw new $TypeError("Can't convert object to primitive value")}return pref===void 0&&(pref="number"),ordinaryToPrimitive(input,pref)}}});var require_to_property_key=__commonJS({"node_modules/core-js/internals/to-property-key.js"(exports2,module2){"use strict";init_define_process_env();init_shim();var toPrimitive=require_to_primitive(),isSymbol=require_is_symbol();module2.exports=function(argument){var key=toPrimitive(argument,"string");return isSymbol(key)?key:key+""}}});var require_object_define_property=__commonJS({"node_modules/core-js/internals/object-define-property.js"(exports2){"use strict";init_define_process_env();init_shim();var DESCRIPTORS=require_descriptors(),IE8_DOM_DEFINE=require_ie8_dom_define(),V8_PROTOTYPE_DEFINE_BUG=require_v8_prototype_define_bug(),anObject=require_an_object(),toPropertyKey=require_to_property_key(),$TypeError=TypeError,$defineProperty=Object.defineProperty,$getOwnPropertyDescriptor=Object.getOwnPropertyDescriptor,ENUMERABLE="enumerable",CONFIGURABLE="configurable",WRITABLE="writable";exports2.f=DESCRIPTORS?V8_PROTOTYPE_DEFINE_BUG?function(O,P,Attributes){if(anObject(O),P=toPropertyKey(P),anObject(Attributes),typeof O=="function"&&P==="prototype"&&"value"in Attributes&&WRITABLE in Attributes&&!Attributes[WRITABLE]){var current=$getOwnPropertyDescriptor(O,P);current&&current[WRITABLE]&&(O[P]=Attributes.value,Attributes={configurable:CONFIGURABLE in Attributes?Attributes[CONFIGURABLE]:current[CONFIGURABLE],enumerable:ENUMERABLE in Attributes?Attributes[ENUMERABLE]:current[ENUMERABLE],writable:!1})}return $defineProperty(O,P,Attributes)}:$defineProperty:function(O,P,Attributes){if(anObject(O),P=toPropertyKey(P),anObject(Attributes),IE8_DOM_DEFINE)try{return $defineProperty(O,P,Attributes)}catch(error){}if("get"in Attributes||"set"in Attributes)throw new $TypeError("Accessors not supported");return"value"in Attributes&&(O[P]=Attributes.value),O}}});var require_math_trunc=__commonJS({"node_modules/core-js/internals/math-trunc.js"(exports2,module2){"use strict";init_define_process_env();init_shim();var ceil=Math.ceil,floor=Math.floor;module2.exports=Math.trunc||function(x){var n=+x;return(n>0?floor:ceil)(n)}}});var require_to_integer_or_infinity=__commonJS({"node_modules/core-js/internals/to-integer-or-infinity.js"(exports2,module2){"use strict";init_define_process_env();init_shim();var trunc=require_math_trunc();module2.exports=function(argument){var number=+argument;return number!==number||number===0?0:trunc(number)}}});var require_to_absolute_index=__commonJS({"node_modules/core-js/internals/to-absolute-index.js"(exports2,module2){"use strict";init_define_process_env();init_shim();var toIntegerOrInfinity=require_to_integer_or_infinity(),max=Math.max,min=Math.min;module2.exports=function(index,length){var integer=toIntegerOrInfinity(index);return integer<0?max(integer+length,0):min(integer,length)}}});var require_to_length=__commonJS({"node_modules/core-js/internals/to-length.js"(exports2,module2){"use strict";init_define_process_env();init_shim();var toIntegerOrInfinity=require_to_integer_or_infinity(),min=Math.min;module2.exports=function(argument){var len=toIntegerOrInfinity(argument);return len>0?min(len,9007199254740991):0}}});var require_length_of_array_like=__commonJS({"node_modules/core-js/internals/length-of-array-like.js"(exports2,module2){"use strict";init_define_process_env();init_shim();var toLength=require_to_length();module2.exports=function(obj){return toLength(obj.length)}}});var require_array_includes=__commonJS({"node_modules/core-js/internals/array-includes.js"(exports2,module2){"use strict";init_define_process_env();init_shim();var toIndexedObject=require_to_indexed_object(),toAbsoluteIndex=require_to_absolute_index(),lengthOfArrayLike=require_length_of_array_like(),createMethod=function(IS_INCLUDES){return function($this,el,fromIndex){var O=toIndexedObject($this),length=lengthOfArrayLike(O),index=toAbsoluteIndex(fromIndex,length),value;if(IS_INCLUDES&&el!==el){for(;length>index;)if(value=O[index++],value!==value)return!0}else for(;length>index;index++)if((IS_INCLUDES||index in O)&&O[index]===el)return IS_INCLUDES||index||0;return!IS_INCLUDES&&-1}};module2.exports={includes:createMethod(!0),indexOf:createMethod(!1)}}});var require_hidden_keys=__commonJS({"node_modules/core-js/internals/hidden-keys.js"(exports2,module2){"use strict";init_define_process_env();init_shim();module2.exports={}}});var require_object_keys_internal=__commonJS({"node_modules/core-js/internals/object-keys-internal.js"(exports2,module2){"use strict";init_define_process_env();init_shim();var uncurryThis=require_function_uncurry_this(),hasOwn=require_has_own_property(),toIndexedObject=require_to_indexed_object(),indexOf=require_array_includes().indexOf,hiddenKeys=require_hidden_keys(),push=uncurryThis([].push);module2.exports=function(object,names){var O=toIndexedObject(object),i=0,result=[],key;for(key in O)!hasOwn(hiddenKeys,key)&&hasOwn(O,key)&&push(result,key);for(;names.length>i;)hasOwn(O,key=names[i++])&&(~indexOf(result,key)||push(result,key));return result}}});var require_enum_bug_keys=__commonJS({"node_modules/core-js/internals/enum-bug-keys.js"(exports2,module2){"use strict";init_define_process_env();init_shim();module2.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]}});var require_object_keys=__commonJS({"node_modules/core-js/internals/object-keys.js"(exports2,module2){"use strict";init_define_process_env();init_shim();var internalObjectKeys=require_object_keys_internal(),enumBugKeys=require_enum_bug_keys();module2.exports=Object.keys||function(O){return internalObjectKeys(O,enumBugKeys)}}});var require_object_define_properties=__commonJS({"node_modules/core-js/internals/object-define-properties.js"(exports2){"use strict";init_define_process_env();init_shim();var DESCRIPTORS=require_descriptors(),V8_PROTOTYPE_DEFINE_BUG=require_v8_prototype_define_bug(),definePropertyModule=require_object_define_property(),anObject=require_an_object(),toIndexedObject=require_to_indexed_object(),objectKeys=require_object_keys();exports2.f=DESCRIPTORS&&!V8_PROTOTYPE_DEFINE_BUG?Object.defineProperties:function(O,Properties){anObject(O);for(var props=toIndexedObject(Properties),keys2=objectKeys(Properties),length=keys2.length,index=0,key;length>index;)definePropertyModule.f(O,key=keys2[index++],props[key]);return O}}});var require_html=__commonJS({"node_modules/core-js/internals/html.js"(exports2,module2){"use strict";init_define_process_env();init_shim();var getBuiltIn=require_get_built_in();module2.exports=getBuiltIn("document","documentElement")}});var require_shared_key=__commonJS({"node_modules/core-js/internals/shared-key.js"(exports2,module2){"use strict";init_define_process_env();init_shim();var shared=require_shared(),uid=require_uid(),keys2=shared("keys");module2.exports=function(key){return keys2[key]||(keys2[key]=uid(key))}}});var require_object_create=__commonJS({"node_modules/core-js/internals/object-create.js"(exports2,module2){"use strict";init_define_process_env();init_shim();var anObject=require_an_object(),definePropertiesModule=require_object_define_properties(),enumBugKeys=require_enum_bug_keys(),hiddenKeys=require_hidden_keys(),html=require_html(),documentCreateElement=require_document_create_element(),sharedKey=require_shared_key(),GT=">",LT="<",PROTOTYPE="prototype",SCRIPT="script",IE_PROTO=sharedKey("IE_PROTO"),EmptyConstructor=function(){},scriptTag=function(content){return LT+SCRIPT+GT+content+LT+"/"+SCRIPT+GT},NullProtoObjectViaActiveX=function(activeXDocument2){activeXDocument2.write(scriptTag("")),activeXDocument2.close();var temp=activeXDocument2.parentWindow.Object;return activeXDocument2=null,temp},NullProtoObjectViaIFrame=function(){var iframe=documentCreateElement("iframe"),JS="java"+SCRIPT+":",iframeDocument;return iframe.style.display="none",html.appendChild(iframe),iframe.src=String(JS),iframeDocument=iframe.contentWindow.document,iframeDocument.open(),iframeDocument.write(scriptTag("document.F=Object")),iframeDocument.close(),iframeDocument.F},activeXDocument,NullProtoObject=function(){try{activeXDocument=new ActiveXObject("htmlfile")}catch(error){}NullProtoObject=typeof document<"u"?document.domain&&activeXDocument?NullProtoObjectViaActiveX(activeXDocument):NullProtoObjectViaIFrame():NullProtoObjectViaActiveX(activeXDocument);for(var length=enumBugKeys.length;length--;)delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];return NullProtoObject()};hiddenKeys[IE_PROTO]=!0;module2.exports=Object.create||function(O,Properties){var result;return O!==null?(EmptyConstructor[PROTOTYPE]=anObject(O),result=new EmptyConstructor,EmptyConstructor[PROTOTYPE]=null,result[IE_PROTO]=O):result=NullProtoObject(),Properties===void 0?result:definePropertiesModule.f(result,Properties)}}});var require_add_to_unscopables=__commonJS({"node_modules/core-js/internals/add-to-unscopables.js"(exports2,module2){"use strict";init_define_process_env();init_shim();var wellKnownSymbol=require_well_known_symbol(),create=require_object_create(),defineProperty=require_object_define_property().f,UNSCOPABLES=wellKnownSymbol("unscopables"),ArrayPrototype=Array.prototype;ArrayPrototype[UNSCOPABLES]===void 0&&defineProperty(ArrayPrototype,UNSCOPABLES,{configurable:!0,value:create(null)});module2.exports=function(key){ArrayPrototype[UNSCOPABLES][key]=!0}}});var require_iterators=__commonJS({"node_modules/core-js/internals/iterators.js"(exports2,module2){"use strict";init_define_process_env();init_shim();module2.exports={}}});var require_weak_map_basic_detection=__commonJS({"node_modules/core-js/internals/weak-map-basic-detection.js"(exports2,module2){"use strict";init_define_process_env();init_shim();var global=require_global(),isCallable=require_is_callable(),WeakMap2=global.WeakMap;module2.exports=isCallable(WeakMap2)&&/native code/.test(String(WeakMap2))}});var require_create_property_descriptor=__commonJS({"node_modules/core-js/internals/create-property-descriptor.js"(exports2,module2){"use strict";init_define_process_env();init_shim();module2.exports=function(bitmap,value){return{enumerable:!(bitmap&1),configurable:!(bitmap&2),writable:!(bitmap&4),value}}}});var require_create_non_enumerable_property=__commonJS({"node_modules/core-js/internals/create-non-enumerable-property.js"(exports2,module2){"use strict";init_define_process_env();init_shim();var DESCRIPTORS=require_descriptors(),definePropertyModule=require_object_define_property(),createPropertyDescriptor=require_create_property_descriptor();module2.exports=DESCRIPTORS?function(object,key,value){return definePropertyModule.f(object,key,createPropertyDescriptor(1,value))}:function(object,key,value){return object[key]=value,object}}});var require_internal_state=__commonJS({"node_modules/core-js/internals/internal-state.js"(exports2,module2){"use strict";init_define_process_env();init_shim();var NATIVE_WEAK_MAP=require_weak_map_basic_detection(),global=require_global(),isObject2=require_is_object(),createNonEnumerableProperty=require_create_non_enumerable_property(),hasOwn=require_has_own_property(),shared=require_shared_store(),sharedKey=require_shared_key(),hiddenKeys=require_hidden_keys(),OBJECT_ALREADY_INITIALIZED="Object already initialized",TypeError2=global.TypeError,WeakMap2=global.WeakMap,set,get,has,enforce=function(it){return has(it)?get(it):set(it,{})},getterFor=function(TYPE){return function(it){var state;if(!isObject2(it)||(state=get(it)).type!==TYPE)throw new TypeError2("Incompatible receiver, "+TYPE+" required");return state}};NATIVE_WEAK_MAP||shared.state?(store=shared.state||(shared.state=new WeakMap2),store.get=store.get,store.has=store.has,store.set=store.set,set=function(it,metadata){if(store.has(it))throw new TypeError2(OBJECT_ALREADY_INITIALIZED);return metadata.facade=it,store.set(it,metadata),metadata},get=function(it){return store.get(it)||{}},has=function(it){return store.has(it)}):(STATE=sharedKey("state"),hiddenKeys[STATE]=!0,set=function(it,metadata){if(hasOwn(it,STATE))throw new TypeError2(OBJECT_ALREADY_INITIALIZED);return metadata.facade=it,createNonEnumerableProperty(it,STATE,metadata),metadata},get=function(it){return hasOwn(it,STATE)?it[STATE]:{}},has=function(it){return hasOwn(it,STATE)});var store,STATE;module2.exports={set,get,has,enforce,getterFor}}});var require_object_property_is_enumerable=__commonJS({"node_modules/core-js/internals/object-property-is-enumerable.js"(exports2){"use strict";init_define_process_env();init_shim();var $propertyIsEnumerable={}.propertyIsEnumerable,getOwnPropertyDescriptor=Object.getOwnPropertyDescriptor,NASHORN_BUG=getOwnPropertyDescriptor&&!$propertyIsEnumerable.call({1:2},1);exports2.f=NASHORN_BUG?function(V){var descriptor=getOwnPropertyDescriptor(this,V);return!!descriptor&&descriptor.enumerable}:$propertyIsEnumerable}});var require_object_get_own_property_descriptor=__commonJS({"node_modules/core-js/internals/object-get-own-property-descriptor.js"(exports2){"use strict";init_define_process_env();init_shim();var DESCRIPTORS=require_descriptors(),call=require_function_call(),propertyIsEnumerableModule=require_object_property_is_enumerable(),createPropertyDescriptor=require_create_property_descriptor(),toIndexedObject=require_to_indexed_object(),toPropertyKey=require_to_property_key(),hasOwn=require_has_own_property(),IE8_DOM_DEFINE=require_ie8_dom_define(),$getOwnPropertyDescriptor=Object.getOwnPropertyDescriptor;exports2.f=DESCRIPTORS?$getOwnPropertyDescriptor:function(O,P){if(O=toIndexedObject(O),P=toPropertyKey(P),IE8_DOM_DEFINE)try{return $getOwnPropertyDescriptor(O,P)}catch(error){}if(hasOwn(O,P))return createPropertyDescriptor(!call(propertyIsEnumerableModule.f,O,P),O[P])}}});var require_function_name=__commonJS({"node_modules/core-js/internals/function-name.js"(exports2,module2){"use strict";init_define_process_env();init_shim();var DESCRIPTORS=require_descriptors(),hasOwn=require_has_own_property(),FunctionPrototype=Function.prototype,getDescriptor=DESCRIPTORS&&Object.getOwnPropertyDescriptor,EXISTS=hasOwn(FunctionPrototype,"name"),PROPER=EXISTS&&(function(){}).name==="something",CONFIGURABLE=EXISTS&&(!DESCRIPTORS||DESCRIPTORS&&getDescriptor(FunctionPrototype,"name").configurable);module2.exports={EXISTS,PROPER,CONFIGURABLE}}});var require_inspect_source=__commonJS({"node_modules/core-js/internals/inspect-source.js"(exports2,module2){"use strict";init_define_process_env();init_shim();var uncurryThis=require_function_uncurry_this(),isCallable=require_is_callable(),store=require_shared_store(),functionToString=uncurryThis(Function.toString);isCallable(store.inspectSource)||(store.inspectSource=function(it){return functionToString(it)});module2.exports=store.inspectSource}});var require_make_built_in=__commonJS({"node_modules/core-js/internals/make-built-in.js"(exports2,module2){"use strict";init_define_process_env();init_shim();var uncurryThis=require_function_uncurry_this(),fails=require_fails(),isCallable=require_is_callable(),hasOwn=require_has_own_property(),DESCRIPTORS=require_descriptors(),CONFIGURABLE_FUNCTION_NAME=require_function_name().CONFIGURABLE,inspectSource=require_inspect_source(),InternalStateModule=require_internal_state(),enforceInternalState=InternalStateModule.enforce,getInternalState=InternalStateModule.get,$String=String,defineProperty=Object.defineProperty,stringSlice=uncurryThis("".slice),replace=uncurryThis("".replace),join=uncurryThis([].join),CONFIGURABLE_LENGTH=DESCRIPTORS&&!fails(function(){return defineProperty(function(){},"length",{value:8}).length!==8}),TEMPLATE=String(String).split("String"),makeBuiltIn=module2.exports=function(value,name,options){stringSlice($String(name),0,7)==="Symbol("&&(name="["+replace($String(name),/^Symbol\(([^)]*)\).*$/,"$1")+"]"),options&&options.getter&&(name="get "+name),options&&options.setter&&(name="set "+name),(!hasOwn(value,"name")||CONFIGURABLE_FUNCTION_NAME&&value.name!==name)&&(DESCRIPTORS?defineProperty(value,"name",{value:name,configurable:!0}):value.name=name),CONFIGURABLE_LENGTH&&options&&hasOwn(options,"arity")&&value.length!==options.arity&&defineProperty(value,"length",{value:options.arity});try{options&&hasOwn(options,"constructor")&&options.constructor?DESCRIPTORS&&defineProperty(value,"prototype",{writable:!1}):value.prototype&&(value.prototype=void 0)}catch(error){}var state=enforceInternalState(value);return hasOwn(state,"source")||(state.source=join(TEMPLATE,typeof name=="string"?name:"")),value};Function.prototype.toString=makeBuiltIn(function(){return isCallable(this)&&getInternalState(this).source||inspectSource(this)},"toString")}});var require_define_built_in=__commonJS({"node_modules/core-js/internals/define-built-in.js"(exports2,module2){"use strict";init_define_process_env();init_shim();var isCallable=require_is_callable(),definePropertyModule=require_object_define_property(),makeBuiltIn=require_make_built_in(),defineGlobalProperty=require_define_global_property();module2.exports=function(O,key,value,options){options||(options={});var simple=options.enumerable,name=options.name!==void 0?options.name:key;if(isCallable(value)&&makeBuiltIn(value,name,options),options.global)simple?O[key]=value:defineGlobalProperty(key,value);else{try{options.unsafe?O[key]&&(simple=!0):delete O[key]}catch(error){}simple?O[key]=value:definePropertyModule.f(O,key,{value,enumerable:!1,configurable:!options.nonConfigurable,writable:!options.nonWritable})}return O}}});var require_object_get_own_property_names=__commonJS({"node_modules/core-js/internals/object-get-own-property-names.js"(exports2){"use strict";init_define_process_env();init_shim();var internalObjectKeys=require_object_keys_internal(),enumBugKeys=require_enum_bug_keys(),hiddenKeys=enumBugKeys.concat("length","prototype");exports2.f=Object.getOwnPropertyNames||function(O){return internalObjectKeys(O,hiddenKeys)}}});var require_object_get_own_property_symbols=__commonJS({"node_modules/core-js/internals/object-get-own-property-symbols.js"(exports2){"use strict";init_define_process_env();init_shim();exports2.f=Object.getOwnPropertySymbols}});var require_own_keys=__commonJS({"node_modules/core-js/internals/own-keys.js"(exports2,module2){"use strict";init_define_process_env();init_shim();var getBuiltIn=require_get_built_in(),uncurryThis=require_function_uncurry_this(),getOwnPropertyNamesModule=require_object_get_own_property_names(),getOwnPropertySymbolsModule=require_object_get_own_property_symbols(),anObject=require_an_object(),concat=uncurryThis([].concat);module2.exports=getBuiltIn("Reflect","ownKeys")||function(it){var keys2=getOwnPropertyNamesModule.f(anObject(it)),getOwnPropertySymbols=getOwnPropertySymbolsModule.f;return getOwnPropertySymbols?concat(keys2,getOwnPropertySymbols(it)):keys2}}});var require_copy_constructor_properties=__commonJS({"node_modules/core-js/internals/copy-constructor-properties.js"(exports2,module2){"use strict";init_define_process_env();init_shim();var hasOwn=require_has_own_property(),ownKeys=require_own_keys(),getOwnPropertyDescriptorModule=require_object_get_own_property_descriptor(),definePropertyModule=require_object_define_property();module2.exports=function(target,source,exceptions){for(var keys2=ownKeys(source),defineProperty=definePropertyModule.f,getOwnPropertyDescriptor=getOwnPropertyDescriptorModule.f,i=0;i<keys2.length;i++){var key=keys2[i];!hasOwn(target,key)&&!(exceptions&&hasOwn(exceptions,key))&&defineProperty(target,key,getOwnPropertyDescriptor(source,key))}}}});var require_is_forced=__commonJS({"node_modules/core-js/internals/is-forced.js"(exports2,module2){"use strict";init_define_process_env();init_shim();var fails=require_fails(),isCallable=require_is_callable(),replacement=/#|\.prototype\./,isForced=function(feature,detection){var value=data[normalize(feature)];return value===POLYFILL?!0:value===NATIVE?!1:isCallable(detection)?fails(detection):!!detection},normalize=isForced.normalize=function(string){return String(string).replace(replacement,".").toLowerCase()},data=isForced.data={},NATIVE=isForced.NATIVE="N",POLYFILL=isForced.POLYFILL="P";module2.exports=isForced}});var require_export=__commonJS({"node_modules/core-js/internals/export.js"(exports2,module2){"use strict";init_define_process_env();init_shim();var global=require_global(),getOwnPropertyDescriptor=require_object_get_own_property_descriptor().f,createNonEnumerableProperty=require_create_non_enumerable_property(),defineBuiltIn=require_define_built_in(),defineGlobalProperty=require_define_global_property(),copyConstructorProperties=require_copy_constructor_properties(),isForced=require_is_forced();module2.exports=function(options,source){var TARGET=options.target,GLOBAL=options.global,STATIC=options.stat,FORCED,target,key,targetProperty,sourceProperty,descriptor;if(GLOBAL?target=global:STATIC?target=global[TARGET]||defineGlobalProperty(TARGET,{}):target=global[TARGET]&&global[TARGET].prototype,target)for(key in source){if(sourceProperty=source[key],options.dontCallGetSet?(descriptor=getOwnPropertyDescriptor(target,key),targetProperty=descriptor&&descriptor.value):targetProperty=target[key],FORCED=isForced(GLOBAL?key:TARGET+(STATIC?".":"#")+key,options.forced),!FORCED&&targetProperty!==void 0){if(typeof sourceProperty==typeof targetProperty)continue;copyConstructorProperties(sourceProperty,targetProperty)}(options.sham||targetProperty&&targetProperty.sham)&&createNonEnumerableProperty(sourceProperty,"sham",!0),defineBuiltIn(target,key,sourceProperty,options)}}}});var require_correct_prototype_getter=__commonJS({"node_modules/core-js/internals/correct-prototype-getter.js"(exports2,module2){"use strict";init_define_process_env();init_shim();var fails=require_fails();module2.exports=!fails(function(){function F(){}return F.prototype.constructor=null,Object.getPrototypeOf(new F)!==F.prototype})}});var require_object_get_prototype_of=__commonJS({"node_modules/core-js/internals/object-get-prototype-of.js"(exports2,module2){"use strict";init_define_process_env();init_shim();var hasOwn=require_has_own_property(),isCallable=require_is_callable(),toObject=require_to_object(),sharedKey=require_shared_key(),CORRECT_PROTOTYPE_GETTER=require_correct_prototype_getter(),IE_PROTO=sharedKey("IE_PROTO"),$Object=Object,ObjectPrototype=$Object.prototype;module2.exports=CORRECT_PROTOTYPE_GETTER?$Object.getPrototypeOf:function(O){var object=toObject(O);if(hasOwn(object,IE_PROTO))return object[IE_PROTO];var constructor=object.constructor;return isCallable(constructor)&&object instanceof constructor?constructor.prototype:object instanceof $Object?ObjectPrototype:null}}});var require_iterators_core=__commonJS({"node_modules/core-js/internals/iterators-core.js"(exports2,module2){"use strict";init_define_process_env();init_shim();var fails=require_fails(),isCallable=require_is_callable(),isObject2=require_is_object(),create=require_object_create(),getPrototypeOf=require_object_get_prototype_of(),defineBuiltIn=require_define_built_in(),wellKnownSymbol=require_well_known_symbol(),IS_PURE=require_is_pure(),ITERATOR=wellKnownSymbol("iterator"),BUGGY_SAFARI_ITERATORS=!1,IteratorPrototype,PrototypeOfArrayIteratorPrototype,arrayIterator;[].keys&&(arrayIterator=[].keys(),"next"in arrayIterator?(PrototypeOfArrayIteratorPrototype=getPrototypeOf(getPrototypeOf(arrayIterator)),PrototypeOfArrayIteratorPrototype!==Object.prototype&&(IteratorPrototype=PrototypeOfArrayIteratorPrototype)):BUGGY_SAFARI_ITERATORS=!0);var NEW_ITERATOR_PROTOTYPE=!isObject2(IteratorPrototype)||fails(function(){var test={};return IteratorPrototype[ITERATOR].call(test)!==test});NEW_ITERATOR_PROTOTYPE?IteratorPrototype={}:IS_PURE&&(IteratorPrototype=create(IteratorPrototype));isCallable(IteratorPrototype[ITERATOR])||defineBuiltIn(IteratorPrototype,ITERATOR,function(){return this});module2.exports={IteratorPrototype,BUGGY_SAFARI_ITERATORS}}});var require_set_to_string_tag=__commonJS({"node_modules/core-js/internals/set-to-string-tag.js"(exports2,module2){"use strict";init_define_process_env();init_shim();var defineProperty=require_object_define_property().f,hasOwn=require_has_own_property(),wellKnownSymbol=require_well_known_symbol(),TO_STRING_TAG=wellKnownSymbol("toStringTag");module2.exports=function(target,TAG,STATIC){target&&!STATIC&&(target=target.prototype),target&&!hasOwn(target,TO_STRING_TAG)&&defineProperty(target,TO_STRING_TAG,{configurable:!0,value:TAG})}}});var require_iterator_create_constructor=__commonJS({"node_modules/core-js/internals/iterator-create-constructor.js"(exports2,module2){"use strict";init_define_process_env();init_shim();var IteratorPrototype=require_iterators_core().IteratorPrototype,create=require_object_create(),createPropertyDescriptor=require_create_property_descriptor(),setToStringTag=require_set_to_string_tag(),Iterators=require_iterators(),returnThis=function(){return this};module2.exports=function(IteratorConstructor,NAME,next,ENUMERABLE_NEXT){var TO_STRING_TAG=NAME+" Iterator";return IteratorConstructor.prototype=create(IteratorPrototype,{next:createPropertyDescriptor(+!ENUMERABLE_NEXT,next)}),setToStringTag(IteratorConstructor,TO_STRING_TAG,!1,!0),Iterators[TO_STRING_TAG]=returnThis,IteratorConstructor}}});var require_function_uncurry_this_accessor=__commonJS({"node_modules/core-js/internals/function-uncurry-this-accessor.js"(exports2,module2){"use strict";init_define_process_env();init_shim();var uncurryThis=require_function_uncurry_this(),aCallable=require_a_callable();module2.exports=function(object,key,method){try{return uncurryThis(aCallable(Object.getOwnPropertyDescriptor(object,key)[method]))}catch(error){}}}});var require_is_possible_prototype=__commonJS({"node_modules/core-js/internals/is-possible-prototype.js"(exports2,module2){"use strict";init_define_process_env();init_shim();var isObject2=require_is_object();module2.exports=function(argument){return isObject2(argument)||argument===null}}});var require_a_possible_prototype=__commonJS({"node_modules/core-js/internals/a-possible-prototype.js"(exports2,module2){"use strict";init_define_process_env();init_shim();var isPossiblePrototype=require_is_possible_prototype(),$String=String,$TypeError=TypeError;module2.exports=function(argument){if(isPossiblePrototype(argument))return argument;throw new $TypeError("Can't set "+$String(argument)+" as a prototype")}}});var require_object_set_prototype_of=__commonJS({"node_modules/core-js/internals/object-set-prototype-of.js"(exports2,module2){"use strict";init_define_process_env();init_shim();var uncurryThisAccessor=require_function_uncurry_this_accessor(),anObject=require_an_object(),aPossiblePrototype=require_a_possible_prototype();module2.exports=Object.setPrototypeOf||("__proto__"in{}?function(){var CORRECT_SETTER=!1,test={},setter;try{setter=uncurryThisAccessor(Object.prototype,"__proto__","set"),setter(test,[]),CORRECT_SETTER=test instanceof Array}catch(error){}return function(O,proto){return anObject(O),aPossiblePrototype(proto),CORRECT_SETTER?setter(O,proto):O.__proto__=proto,O}}():void 0)}});var require_iterator_define=__commonJS({"node_modules/core-js/internals/iterator-define.js"(exports2,module2){"use strict";init_define_process_env();init_shim();var $=require_export(),call=require_function_call(),IS_PURE=require_is_pure(),FunctionName=require_function_name(),isCallable=require_is_callable(),createIteratorConstructor=require_iterator_create_constructor(),getPrototypeOf=require_object_get_prototype_of(),setPrototypeOf=require_object_set_prototype_of(),setToStringTag=require_set_to_string_tag(),createNonEnumerableProperty=require_create_non_enumerable_property(),defineBuiltIn=require_define_built_in(),wellKnownSymbol=require_well_known_symbol(),Iterators=require_iterators(),IteratorsCore=require_iterators_core(),PROPER_FUNCTION_NAME=FunctionName.PROPER,CONFIGURABLE_FUNCTION_NAME=FunctionName.CONFIGURABLE,IteratorPrototype=IteratorsCore.IteratorPrototype,BUGGY_SAFARI_ITERATORS=IteratorsCore.BUGGY_SAFARI_ITERATORS,ITERATOR=wellKnownSymbol("iterator"),KEYS="keys",VALUES="values",ENTRIES="entries",returnThis=function(){return this};module2.exports=function(Iterable,NAME,IteratorConstructor,next,DEFAULT,IS_SET,FORCED){createIteratorConstructor(IteratorConstructor,NAME,next);var getIterationMethod=function(KIND){if(KIND===DEFAULT&&defaultIterator)return defaultIterator;if(!BUGGY_SAFARI_ITERATORS&&KIND&&KIND in IterablePrototype)return IterablePrototype[KIND];switch(KIND){case KEYS:return function(){return new IteratorConstructor(this,KIND)};case VALUES:return function(){return new IteratorConstructor(this,KIND)};case ENTRIES:return function(){return new IteratorConstructor(this,KIND)}}return function(){return new IteratorConstructor(this)}},TO_STRING_TAG=NAME+" Iterator",INCORRECT_VALUES_NAME=!1,IterablePrototype=Iterable.prototype,nativeIterator=IterablePrototype[ITERATOR]||IterablePrototype["@@iterator"]||DEFAULT&&IterablePrototype[DEFAULT],defaultIterator=!BUGGY_SAFARI_ITERATORS&&nativeIterator||getIterationMethod(DEFAULT),anyNativeIterator=NAME==="Array"&&IterablePrototype.entries||nativeIterator,CurrentIteratorPrototype,methods,KEY;if(anyNativeIterator&&(CurrentIteratorPrototype=getPrototypeOf(anyNativeIterator.call(new Iterable)),CurrentIteratorPrototype!==Object.prototype&&CurrentIteratorPrototype.next&&(!IS_PURE&&getPrototypeOf(CurrentIteratorPrototype)!==IteratorPrototype&&(setPrototypeOf?setPrototypeOf(CurrentIteratorPrototype,IteratorPrototype):isCallable(CurrentIteratorPrototype[ITERATOR])||defineBuiltIn(CurrentIteratorPrototype,ITERATOR,returnThis)),setToStringTag(CurrentIteratorPrototype,TO_STRING_TAG,!0,!0),IS_PURE&&(Iterators[TO_STRING_TAG]=returnThis))),PROPER_FUNCTION_NAME&&DEFAULT===VALUES&&nativeIterator&&nativeIterator.name!==VALUES&&(!IS_PURE&&CONFIGURABLE_FUNCTION_NAME?createNonEnumerableProperty(IterablePrototype,"name",VALUES):(INCORRECT_VALUES_NAME=!0,defaultIterator=function(){return call(nativeIterator,this)})),DEFAULT)if(methods={values:getIterationMethod(VALUES),keys:IS_SET?defaultIterator:getIterationMethod(KEYS),entries:getIterationMethod(ENTRIES)},FORCED)for(KEY in methods)(BUGGY_SAFARI_ITERATORS||INCORRECT_VALUES_NAME||!(KEY in IterablePrototype))&&defineBuiltIn(IterablePrototype,KEY,methods[KEY]);else $({target:NAME,proto:!0,forced:BUGGY_SAFARI_ITERATORS||INCORRECT_VALUES_NAME},methods);return(!IS_PURE||FORCED)&&IterablePrototype[ITERATOR]!==defaultIterator&&defineBuiltIn(IterablePrototype,ITERATOR,defaultIterator,{name:DEFAULT}),Iterators[NAME]=defaultIterator,methods}}});var require_create_iter_result_object=__commonJS({"node_modules/core-js/internals/create-iter-result-object.js"(exports2,module2){"use strict";init_define_process_env();init_shim();module2.exports=function(value,done){return{value,done}}}});var require_es_array_iterator=__commonJS({"node_modules/core-js/modules/es.array.iterator.js"(exports2,module2){"use strict";init_define_process_env();init_shim();var toIndexedObject=require_to_indexed_object(),addToUnscopables=require_add_to_unscopables(),Iterators=require_iterators(),InternalStateModule=require_internal_state(),defineProperty=require_object_define_property().f,defineIterator=require_iterator_define(),createIterResultObject=require_create_iter_result_object(),IS_PURE=require_is_pure(),DESCRIPTORS=require_descriptors(),ARRAY_ITERATOR="Array Iterator",setInternalState=InternalStateModule.set,getInternalState=InternalStateModule.getterFor(ARRAY_ITERATOR);module2.exports=defineIterator(Array,"Array",function(iterated,kind){setInternalState(this,{type:ARRAY_ITERATOR,target:toIndexedObject(iterated),index:0,kind})},function(){var state=getInternalState(this),target=state.target,index=state.index++;if(!target||index>=target.length)return state.target=void 0,createIterResultObject(void 0,!0);switch(state.kind){case"keys":return createIterResultObject(index,!1);case"values":return createIterResultObject(target[index],!1)}return createIterResultObject([index,target[index]],!1)},"values");var values=Iterators.Arguments=Iterators.Array;addToUnscopables("keys");addToUnscopables("values");addToUnscopables("entries");if(!IS_PURE&&DESCRIPTORS&&values.name!=="values")try{defineProperty(values,"name",{value:"values"})}catch(error){}}});var require_dom_iterables=__commonJS({"node_modules/core-js/internals/dom-iterables.js"(exports2,module2){"use strict";init_define_process_env();init_shim();module2.exports={CSSRuleList:0,CSSStyleDeclaration:0,CSSValueList:0,ClientRectList:0,DOMRectList:0,DOMStringList:0,DOMTokenList:1,DataTransferItemList:0,FileList:0,HTMLAllCollection:0,HTMLCollection:0,HTMLFormElement:0,HTMLSelectElement:0,MediaList:0,MimeTypeArray:0,NamedNodeMap:0,NodeList:1,PaintRequestList:0,Plugin:0,PluginArray:0,SVGLengthList:0,SVGNumberList:0,SVGPathSegList:0,SVGPointList:0,SVGStringList:0,SVGTransformList:0,SourceBufferList:0,StyleSheetList:0,TextTrackCueList:0,TextTrackList:0,TouchList:0}}});var require_dom_token_list_prototype=__commonJS({"node_modules/core-js/internals/dom-token-list-prototype.js"(exports2,module2){"use strict";init_define_process_env();init_shim();var documentCreateElement=require_document_create_element(),classList=documentCreateElement("span").classList,DOMTokenListPrototype=classList&&classList.constructor&&classList.constructor.prototype;module2.exports=DOMTokenListPrototype===Object.prototype?void 0:DOMTokenListPrototype}});var require_web_dom_collections_iterator=__commonJS({"node_modules/core-js/modules/web.dom-collections.iterator.js"(){"use strict";init_define_process_env();init_shim();var global=require_global(),DOMIterables=require_dom_iterables(),DOMTokenListPrototype=require_dom_token_list_prototype(),ArrayIteratorMethods=require_es_array_iterator(),createNonEnumerableProperty=require_create_non_enumerable_property(),setToStringTag=require_set_to_string_tag(),wellKnownSymbol=require_well_known_symbol(),ITERATOR=wellKnownSymbol("iterator"),ArrayValues=ArrayIteratorMethods.values,handlePrototype=function(CollectionPrototype,COLLECTION_NAME2){if(CollectionPrototype){if(CollectionPrototype[ITERATOR]!==ArrayValues)try{createNonEnumerableProperty(CollectionPrototype,ITERATOR,ArrayValues)}catch(error){CollectionPrototype[ITERATOR]=ArrayValues}if(setToStringTag(CollectionPrototype,COLLECTION_NAME2,!0),DOMIterables[COLLECTION_NAME2]){for(var METHOD_NAME in ArrayIteratorMethods)if(CollectionPrototype[METHOD_NAME]!==ArrayIteratorMethods[METHOD_NAME])try{createNonEnumerableProperty(CollectionPrototype,METHOD_NAME,ArrayIteratorMethods[METHOD_NAME])}catch(error){CollectionPrototype[METHOD_NAME]=ArrayIteratorMethods[METHOD_NAME]}}}};for(COLLECTION_NAME in DOMIterables)handlePrototype(global[COLLECTION_NAME]&&global[COLLECTION_NAME].prototype,COLLECTION_NAME);var COLLECTION_NAME;handlePrototype(DOMTokenListPrototype,"DOMTokenList")}});var require_inherit_if_required=__commonJS({"node_modules/core-js/internals/inherit-if-required.js"(exports2,module2){"use strict";init_define_process_env();init_shim();var isCallable=require_is_callable(),isObject2=require_is_object(),setPrototypeOf=require_object_set_prototype_of();module2.exports=function($this,dummy,Wrapper){var NewTarget,NewTargetPrototype;return setPrototypeOf&&isCallable(NewTarget=dummy.constructor)&&NewTarget!==Wrapper&&isObject2(NewTargetPrototype=NewTarget.prototype)&&NewTargetPrototype!==Wrapper.prototype&&setPrototypeOf($this,NewTargetPrototype),$this}}});var require_is_regexp=__commonJS({"node_modules/core-js/internals/is-regexp.js"(exports2,module2){"use strict";init_define_process_env();init_shim();var isObject2=require_is_object(),classof=require_classof_raw(),wellKnownSymbol=require_well_known_symbol(),MATCH=wellKnownSymbol("match");module2.exports=function(it){var isRegExp;return isObject2(it)&&((isRegExp=it[MATCH])!==void 0?!!isRegExp:classof(it)==="RegExp")}}});var require_to_string_tag_support=__commonJS({"node_modules/core-js/internals/to-string-tag-support.js"(exports2,module2){"use strict";init_define_process_env();init_shim();var wellKnownSymbol=require_well_known_symbol(),TO_STRING_TAG=wellKnownSymbol("toStringTag"),test={};test[TO_STRING_TAG]="z";module2.exports=String(test)==="[object z]"}});var require_classof=__commonJS({"node_modules/core-js/internals/classof.js"(exports2,module2){"use strict";init_define_process_env();init_shim();var TO_STRING_TAG_SUPPORT=require_to_string_tag_support(),isCallable=require_is_callable(),classofRaw=require_classof_raw(),wellKnownSymbol=require_well_known_symbol(),TO_STRING_TAG=wellKnownSymbol("toStringTag"),$Object=Object,CORRECT_ARGUMENTS=classofRaw(function(){return arguments}())==="Arguments",tryGet=function(it,key){try{return it[key]}catch(error){}};module2.exports=TO_STRING_TAG_SUPPORT?classofRaw:function(it){var O,tag,result;return it===void 0?"Undefined":it===null?"Null":typeof(tag=tryGet(O=$Object(it),TO_STRING_TAG))=="string"?tag:CORRECT_ARGUMENTS?classofRaw(O):(result=classofRaw(O))==="Object"&&isCallable(O.callee)?"Arguments":result}}});var require_to_string=__commonJS({"node_modules/core-js/internals/to-string.js"(exports2,module2){"use strict";init_define_process_env();init_shim();var classof=require_classof(),$String=String;module2.exports=function(argument){if(classof(argument)==="Symbol")throw new TypeError("Cannot convert a Symbol value to a string");return $String(argument)}}});var require_regexp_flags=__commonJS({"node_modules/core-js/internals/regexp-flags.js"(exports2,module2){"use strict";init_define_process_env();init_shim();var anObject=require_an_object();module2.exports=function(){var that=anObject(this),result="";return that.hasIndices&&(result+="d"),that.global&&(result+="g"),that.ignoreCase&&(result+="i"),that.multiline&&(result+="m"),that.dotAll&&(result+="s"),that.unicode&&(result+="u"),that.unicodeSets&&(result+="v"),that.sticky&&(result+="y"),result}}});var require_regexp_get_flags=__commonJS({"node_modules/core-js/internals/regexp-get-flags.js"(exports2,module2){"use strict";init_define_process_env();init_shim();var call=require_function_call(),hasOwn=require_has_own_property(),isPrototypeOf=require_object_is_prototype_of(),regExpFlags=require_regexp_flags(),RegExpPrototype=RegExp.prototype;module2.exports=function(R){var flags=R.flags;return flags===void 0&&!("flags"in RegExpPrototype)&&!hasOwn(R,"flags")&&isPrototypeOf(RegExpPrototype,R)?call(regExpFlags,R):flags}}});var require_regexp_sticky_helpers=__commonJS({"node_modules/core-js/internals/regexp-sticky-helpers.js"(exports2,module2){"use strict";init_define_process_env();init_shim();var fails=require_fails(),global=require_global(),$RegExp=global.RegExp,UNSUPPORTED_Y=fails(function(){var re=$RegExp("a","y");return re.lastIndex=2,re.exec("abcd")!==null}),MISSED_STICKY=UNSUPPORTED_Y||fails(function(){return!$RegExp("a","y").sticky}),BROKEN_CARET=UNSUPPORTED_Y||fails(function(){var re=$RegExp("^r","gy");return re.lastIndex=2,re.exec("str")!==null});module2.exports={BROKEN_CARET,MISSED_STICKY,UNSUPPORTED_Y}}});var require_proxy_accessor=__commonJS({"node_modules/core-js/internals/proxy-accessor.js"(exports2,module2){"use strict";init_define_process_env();init_shim();var defineProperty=require_object_define_property().f;module2.exports=function(Target,Source,key){key in Target||defineProperty(Target,key,{configurable:!0,get:function(){return Source[key]},set:function(it){Source[key]=it}})}}});var require_define_built_in_accessor=__commonJS({"node_modules/core-js/internals/define-built-in-accessor.js"(exports2,module2){"use strict";init_define_process_env();init_shim();var makeBuiltIn=require_make_built_in(),defineProperty=require_object_define_property();module2.exports=function(target,name,descriptor){return descriptor.get&&makeBuiltIn(descriptor.get,name,{getter:!0}),descriptor.set&&makeBuiltIn(descriptor.set,name,{setter:!0}),defineProperty.f(target,name,descriptor)}}});var require_set_species=__commonJS({"node_modules/core-js/internals/set-species.js"(exports2,module2){"use strict";init_define_process_env();init_shim();var getBuiltIn=require_get_built_in(),defineBuiltInAccessor=require_define_built_in_accessor(),wellKnownSymbol=require_well_known_symbol(),DESCRIPTORS=require_descriptors(),SPECIES=wellKnownSymbol("species");module2.exports=function(CONSTRUCTOR_NAME){var Constructor=getBuiltIn(CONSTRUCTOR_NAME);DESCRIPTORS&&Constructor&&!Constructor[SPECIES]&&defineBuiltInAccessor(Constructor,SPECIES,{configurable:!0,get:function(){return this}})}}});var require_regexp_unsupported_dot_all=__commonJS({"node_modules/core-js/internals/regexp-unsupported-dot-all.js"(exports2,module2){"use strict";init_define_process_env();init_shim();var fails=require_fails(),global=require_global(),$RegExp=global.RegExp;module2.exports=fails(function(){var re=$RegExp(".","s");return!(re.dotAll&&re.test("\n")&&re.flags==="s")})}});var require_regexp_unsupported_ncg=__commonJS({"node_modules/core-js/internals/regexp-unsupported-ncg.js"(exports2,module2){"use strict";init_define_process_env();init_shim();var fails=require_fails(),global=require_global(),$RegExp=global.RegExp;module2.exports=fails(function(){var re=$RegExp("(?<a>b)","g");return re.exec("b").groups.a!=="b"||"b".replace(re,"$<a>c")!=="bc"})}});var require_es_regexp_constructor=__commonJS({"node_modules/core-js/modules/es.regexp.constructor.js"(){"use strict";init_define_process_env();init_shim();var DESCRIPTORS=require_descriptors(),global=require_global(),uncurryThis=require_function_uncurry_this(),isForced=require_is_forced(),inheritIfRequired=require_inherit_if_required(),createNonEnumerableProperty=require_create_non_enumerable_property(),create=require_object_create(),getOwnPropertyNames=require_object_get_own_property_names().f,isPrototypeOf=require_object_is_prototype_of(),isRegExp=require_is_regexp(),toString=require_to_string(),getRegExpFlags=require_regexp_get_flags(),stickyHelpers=require_regexp_sticky_helpers(),proxyAccessor=require_proxy_accessor(),defineBuiltIn=require_define_built_in(),fails=require_fails(),hasOwn=require_has_own_property(),enforceInternalState=require_internal_state().enforce,setSpecies=require_set_species(),wellKnownSymbol=require_well_known_symbol(),UNSUPPORTED_DOT_ALL=require_regexp_unsupported_dot_all(),UNSUPPORTED_NCG=require_regexp_unsupported_ncg(),MATCH=wellKnownSymbol("match"),NativeRegExp=global.RegExp,RegExpPrototype=NativeRegExp.prototype,SyntaxError=global.SyntaxError,exec=uncurryThis(RegExpPrototype.exec),charAt=uncurryThis("".charAt),replace=uncurryThis("".replace),stringIndexOf=uncurryThis("".indexOf),stringSlice=uncurryThis("".slice),IS_NCG=/^\?<[^\s\d!#%&*+<=>@^][^\s!#%&*+<=>@^]*>/,re1=/a/g,re2=/a/g,CORRECT_NEW=new NativeRegExp(re1)!==re1,MISSED_STICKY=stickyHelpers.MISSED_STICKY,UNSUPPORTED_Y=stickyHelpers.UNSUPPORTED_Y,BASE_FORCED=DESCRIPTORS&&(!CORRECT_NEW||MISSED_STICKY||UNSUPPORTED_DOT_ALL||UNSUPPORTED_NCG||fails(function(){return re2[MATCH]=!1,NativeRegExp(re1)!==re1||NativeRegExp(re2)===re2||String(NativeRegExp(re1,"i"))!=="/a/i"})),handleDotAll=function(string){for(var length=string.length,index2=0,result="",brackets=!1,chr;index2<=length;index2++){if(chr=charAt(string,index2),chr==="\\"){result+=chr+charAt(string,++index2);continue}!brackets&&chr==="."?result+="[\\s\\S]":(chr==="["?brackets=!0:chr==="]"&&(brackets=!1),result+=chr)}return result},handleNCG=function(string){for(var length=string.length,index2=0,result="",named=[],names=create(null),brackets=!1,ncg=!1,groupid=0,groupname="",chr;index2<=length;index2++){if(chr=charAt(string,index2),chr==="\\")chr+=charAt(string,++index2);else if(chr==="]")brackets=!1;else if(!brackets)switch(!0){case chr==="[":brackets=!0;break;case chr==="(":exec(IS_NCG,stringSlice(string,index2+1))&&(index2+=2,ncg=!0),result+=chr,groupid++;continue;case(chr===">"&&ncg):if(groupname===""||hasOwn(names,groupname))throw new SyntaxError("Invalid capture group name");names[groupname]=!0,named[named.length]=[groupname,groupid],ncg=!1,groupname="";continue}ncg?groupname+=chr:result+=chr}return[result,named]};if(isForced("RegExp",BASE_FORCED)){for(RegExpWrapper=function(pattern,flags){var thisIsRegExp=isPrototypeOf(RegExpPrototype,this),patternIsRegExp=isRegExp(pattern),flagsAreUndefined=flags===void 0,groups=[],rawPattern=pattern,rawFlags,dotAll,sticky,handled,result,state;if(!thisIsRegExp&&patternIsRegExp&&flagsAreUndefined&&pattern.constructor===RegExpWrapper)return pattern;if((patternIsRegExp||isPrototypeOf(RegExpPrototype,pattern))&&(pattern=pattern.source,flagsAreUndefined&&(flags=getRegExpFlags(rawPattern))),pattern=pattern===void 0?"":toString(pattern),flags=flags===void 0?"":toString(flags),rawPattern=pattern,UNSUPPORTED_DOT_ALL&&"dotAll"in re1&&(dotAll=!!flags&&stringIndexOf(flags,"s")>-1,dotAll&&(flags=replace(flags,/s/g,""))),rawFlags=flags,MISSED_STICKY&&"sticky"in re1&&(sticky=!!flags&&stringIndexOf(flags,"y")>-1,sticky&&UNSUPPORTED_Y&&(flags=replace(flags,/y/g,""))),UNSUPPORTED_NCG&&(handled=handleNCG(pattern),pattern=handled[0],groups=handled[1]),result=inheritIfRequired(NativeRegExp(pattern,flags),thisIsRegExp?this:RegExpPrototype,RegExpWrapper),(dotAll||sticky||groups.length)&&(state=enforceInternalState(result),dotAll&&(state.dotAll=!0,state.raw=RegExpWrapper(handleDotAll(pattern),rawFlags)),sticky&&(state.sticky=!0),groups.length&&(state.groups=groups)),pattern!==rawPattern)try{createNonEnumerableProperty(result,"source",rawPattern===""?"(?:)":rawPattern)}catch(error){}return result},keys2=getOwnPropertyNames(NativeRegExp),index=0;keys2.length>index;)proxyAccessor(RegExpWrapper,NativeRegExp,keys2[index++]);RegExpPrototype.constructor=RegExpWrapper,RegExpWrapper.prototype=RegExpPrototype,defineBuiltIn(global,"RegExp",RegExpWrapper,{constructor:!0})}var RegExpWrapper,keys2,index;setSpecies("RegExp")}});var require_es_regexp_dot_all=__commonJS({"node_modules/core-js/modules/es.regexp.dot-all.js"(){"use strict";init_define_process_env();init_shim();var DESCRIPTORS=require_descriptors(),UNSUPPORTED_DOT_ALL=require_regexp_unsupported_dot_all(),classof=require_classof_raw(),defineBuiltInAccessor=require_define_built_in_accessor(),getInternalState=require_internal_state().get,RegExpPrototype=RegExp.prototype,$TypeError=TypeError;DESCRIPTORS&&UNSUPPORTED_DOT_ALL&&defineBuiltInAccessor(RegExpPrototype,"dotAll",{configurable:!0,get:function(){if(this!==RegExpPrototype){if(classof(this)==="RegExp")return!!getInternalState(this).dotAll;throw new $TypeError("Incompatible receiver, RegExp required")}}})}});var require_regexp_exec=__commonJS({"node_modules/core-js/internals/regexp-exec.js"(exports2,module2){"use strict";init_define_process_env();init_shim();var call=require_function_call(),uncurryThis=require_function_uncurry_this(),toString=require_to_string(),regexpFlags=require_regexp_flags(),stickyHelpers=require_regexp_sticky_helpers(),shared=require_shared(),create=require_object_create(),getInternalState=require_internal_state().get,UNSUPPORTED_DOT_ALL=require_regexp_unsupported_dot_all(),UNSUPPORTED_NCG=require_regexp_unsupported_ncg(),nativeReplace=shared("native-string-replace",String.prototype.replace),nativeExec=RegExp.prototype.exec,patchedExec=nativeExec,charAt=uncurryThis("".charAt),indexOf=uncurryThis("".indexOf),replace=uncurryThis("".replace),stringSlice=uncurryThis("".slice),UPDATES_LAST_INDEX_WRONG=function(){var re1=/a/,re2=/b*/g;return call(nativeExec,re1,"a"),call(nativeExec,re2,"a"),re1.lastIndex!==0||re2.lastIndex!==0}(),UNSUPPORTED_Y=stickyHelpers.BROKEN_CARET,NPCG_INCLUDED=/()??/.exec("")[1]!==void 0,PATCH=UPDATES_LAST_INDEX_WRONG||NPCG_INCLUDED||UNSUPPORTED_Y||UNSUPPORTED_DOT_ALL||UNSUPPORTED_NCG;PATCH&&(patchedExec=function(string){var re=this,state=getInternalState(re),str=toString(string),raw=state.raw,result,reCopy,lastIndex,match,i,object,group;if(raw)return raw.lastIndex=re.lastIndex,result=call(patchedExec,raw,str),re.lastIndex=raw.lastIndex,result;var groups=state.groups,sticky=UNSUPPORTED_Y&&re.sticky,flags=call(regexpFlags,re),source=re.source,charsAdded=0,strCopy=str;if(sticky&&(flags=replace(flags,"y",""),indexOf(flags,"g")===-1&&(flags+="g"),strCopy=stringSlice(str,re.lastIndex),re.lastIndex>0&&(!re.multiline||re.multiline&&charAt(str,re.lastIndex-1)!=="\n")&&(source="(?: "+source+")",strCopy=" "+strCopy,charsAdded++),reCopy=new RegExp("^(?:"+source+")",flags)),NPCG_INCLUDED&&(reCopy=new RegExp("^"+source+"$(?!\\s)",flags)),UPDATES_LAST_INDEX_WRONG&&(lastIndex=re.lastIndex),match=call(nativeExec,sticky?reCopy:re,strCopy),sticky?match?(match.input=stringSlice(match.input,charsAdded),match[0]=stringSlice(match[0],charsAdded),match.index=re.lastIndex,re.lastIndex+=match[0].length):re.lastIndex=0:UPDATES_LAST_INDEX_WRONG&&match&&(re.lastIndex=re.global?match.index+match[0].length:lastIndex),NPCG_INCLUDED&&match&&match.length>1&&call(nativeReplace,match[0],reCopy,function(){for(i=1;i<arguments.length-2;i++)arguments[i]===void 0&&(match[i]=void 0)}),match&&groups)for(match.groups=object=create(null),i=0;i<groups.length;i++)group=groups[i],object[group[0]]=match[group[1]];return match});module2.exports=patchedExec}});var require_es_regexp_exec=__commonJS({"node_modules/core-js/modules/es.regexp.exec.js"(){"use strict";init_define_process_env();init_shim();var $=require_export(),exec=require_regexp_exec();$({target:"RegExp",proto:!0,forced:/./.exec!==exec},{exec})}});var require_es_regexp_to_string=__commonJS({"node_modules/core-js/modules/es.regexp.to-string.js"(){"use strict";init_define_process_env();init_shim();var PROPER_FUNCTION_NAME=require_function_name().PROPER,defineBuiltIn=require_define_built_in(),anObject=require_an_object(),$toString=require_to_string(),fails=require_fails(),getRegExpFlags=require_regexp_get_flags(),TO_STRING="toString",RegExpPrototype=RegExp.prototype,nativeToString=RegExpPrototype[TO_STRING],NOT_GENERIC=fails(function(){return nativeToString.call({source:"a",flags:"b"})!=="/a/b"}),INCORRECT_NAME=PROPER_FUNCTION_NAME&&nativeToString.name!==TO_STRING;(NOT_GENERIC||INCORRECT_NAME)&&defineBuiltIn(RegExpPrototype,TO_STRING,function(){var R=anObject(this),pattern=$toString(R.source),flags=$toString(getRegExpFlags(R));return"/"+pattern+"/"+flags},{unsafe:!0})}});var require_function_apply=__commonJS({"node_modules/core-js/internals/function-apply.js"(exports2,module2){"use strict";init_define_process_env();init_shim();var NATIVE_BIND=require_function_bind_native(),FunctionPrototype=Function.prototype,apply=FunctionPrototype.apply,call=FunctionPrototype.call;module2.exports=typeof Reflect=="object"&&Reflect.apply||(NATIVE_BIND?call.bind(apply):function(){return call.apply(apply,arguments)})}});var require_fix_regexp_well_known_symbol_logic=__commonJS({"node_modules/core-js/internals/fix-regexp-well-known-symbol-logic.js"(exports2,module2){"use strict";init_define_process_env();init_shim();require_es_regexp_exec();var call=require_function_call(),defineBuiltIn=require_define_built_in(),regexpExec=require_regexp_exec(),fails=require_fails(),wellKnownSymbol=require_well_known_symbol(),createNonEnumerableProperty=require_create_non_enumerable_property(),SPECIES=wellKnownSymbol("species"),RegExpPrototype=RegExp.prototype;module2.exports=function(KEY,exec,FORCED,SHAM){var SYMBOL=wellKnownSymbol(KEY),DELEGATES_TO_SYMBOL=!fails(function(){var O={};return O[SYMBOL]=function(){return 7},""[KEY](O)!==7}),DELEGATES_TO_EXEC=DELEGATES_TO_SYMBOL&&!fails(function(){var execCalled=!1,re=/a/;return KEY==="split"&&(re={},re.constructor={},re.constructor[SPECIES]=function(){return re},re.flags="",re[SYMBOL]=/./[SYMBOL]),re.exec=function(){return execCalled=!0,null},re[SYMBOL](""),!execCalled});if(!DELEGATES_TO_SYMBOL||!DELEGATES_TO_EXEC||FORCED){var nativeRegExpMethod=/./[SYMBOL],methods=exec(SYMBOL,""[KEY],function(nativeMethod,regexp,str,arg2,forceStringMethod){var $exec=regexp.exec;return $exec===regexpExec||$exec===RegExpPrototype.exec?DELEGATES_TO_SYMBOL&&!forceStringMethod?{done:!0,value:call(nativeRegExpMethod,regexp,str,arg2)}:{done:!0,value:call(nativeMethod,str,regexp,arg2)}:{done:!1}});defineBuiltIn(String.prototype,KEY,methods[0]),defineBuiltIn(RegExpPrototype,SYMBOL,methods[1])}SHAM&&createNonEnumerableProperty(RegExpPrototype[SYMBOL],"sham",!0)}}});var require_string_multibyte=__commonJS({"node_modules/core-js/internals/string-multibyte.js"(exports2,module2){"use strict";init_define_process_env();init_shim();var uncurryThis=require_function_uncurry_this(),toIntegerOrInfinity=require_to_integer_or_infinity(),toString=require_to_string(),requireObjectCoercible=require_require_object_coercible(),charAt=uncurryThis("".charAt),charCodeAt=uncurryThis("".charCodeAt),stringSlice=uncurryThis("".slice),createMethod=function(CONVERT_TO_STRING){return function($this,pos){var S=toString(requireObjectCoercible($this)),position=toIntegerOrInfinity(pos),size=S.length,first,second;return position<0||position>=size?CONVERT_TO_STRING?"":void 0:(first=charCodeAt(S,position),first<55296||first>56319||position+1===size||(second=charCodeAt(S,position+1))<56320||second>57343?CONVERT_TO_STRING?charAt(S,position):first:CONVERT_TO_STRING?stringSlice(S,position,position+2):(first-55296<<10)+(second-56320)+65536)}};module2.exports={codeAt:createMethod(!1),charAt:createMethod(!0)}}});var require_advance_string_index=__commonJS({"node_modules/core-js/internals/advance-string-index.js"(exports2,module2){"use strict";init_define_process_env();init_shim();var charAt=require_string_multibyte().charAt;module2.exports=function(S,index,unicode){return index+(unicode?charAt(S,index).length:1)}}});var require_get_substitution=__commonJS({"node_modules/core-js/internals/get-substitution.js"(exports2,module2){"use strict";init_define_process_env();init_shim();var uncurryThis=require_function_uncurry_this(),toObject=require_to_object(),floor=Math.floor,charAt=uncurryThis("".charAt),replace=uncurryThis("".replace),stringSlice=uncurryThis("".slice),SUBSTITUTION_SYMBOLS=/\$([$&'`]|\d{1,2}|<[^>]*>)/g,SUBSTITUTION_SYMBOLS_NO_NAMED=/\$([$&'`]|\d{1,2})/g;module2.exports=function(matched,str,position,captures,namedCaptures,replacement){var tailPos=position+matched.length,m=captures.length,symbols=SUBSTITUTION_SYMBOLS_NO_NAMED;return namedCaptures!==void 0&&(namedCaptures=toObject(namedCaptures),symbols=SUBSTITUTION_SYMBOLS),replace(replacement,symbols,function(match,ch){var capture;switch(charAt(ch,0)){case"$":return"$";case"&":return matched;case"`":return stringSlice(str,0,position);case"'":return stringSlice(str,tailPos);case"<":capture=namedCaptures[stringSlice(ch,1,-1)];break;default:var n=+ch;if(n===0)return match;if(n>m){var f=floor(n/10);return f===0?match:f<=m?captures[f-1]===void 0?charAt(ch,1):captures[f-1]+charAt(ch,1):match}capture=captures[n-1]}return capture===void 0?"":capture})}}});var require_regexp_exec_abstract=__commonJS({"node_modules/core-js/internals/regexp-exec-abstract.js"(exports2,module2){"use strict";init_define_process_env();init_shim();var call=require_function_call(),anObject=require_an_object(),isCallable=require_is_callable(),classof=require_classof_raw(),regexpExec=require_regexp_exec(),$TypeError=TypeError;module2.exports=function(R,S){var exec=R.exec;if(isCallable(exec)){var result=call(exec,R,S);return result!==null&&anObject(result),result}if(classof(R)==="RegExp")return call(regexpExec,R,S);throw new $TypeError("RegExp#exec called on incompatible receiver")}}});var require_es_string_replace=__commonJS({"node_modules/core-js/modules/es.string.replace.js"(){"use strict";init_define_process_env();init_shim();var apply=require_function_apply(),call=require_function_call(),uncurryThis=require_function_uncurry_this(),fixRegExpWellKnownSymbolLogic=require_fix_regexp_well_known_symbol_logic(),fails=require_fails(),anObject=require_an_object(),isCallable=require_is_callable(),isNullOrUndefined=require_is_null_or_undefined(),toIntegerOrInfinity=require_to_integer_or_infinity(),toLength=require_to_length(),toString=require_to_string(),requireObjectCoercible=require_require_object_coercible(),advanceStringIndex=require_advance_string_index(),getMethod=require_get_method(),getSubstitution=require_get_substitution(),regExpExec=require_regexp_exec_abstract(),wellKnownSymbol=require_well_known_symbol(),REPLACE=wellKnownSymbol("replace"),max=Math.max,min=Math.min,concat=uncurryThis([].concat),push=uncurryThis([].push),stringIndexOf=uncurryThis("".indexOf),stringSlice=uncurryThis("".slice),maybeToString=function(it){return it===void 0?it:String(it)},REPLACE_KEEPS_$0=function(){return"a".replace(/./,"$0")==="$0"}(),REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE=function(){return/./[REPLACE]?/./[REPLACE]("a","$0")==="":!1}(),REPLACE_SUPPORTS_NAMED_GROUPS=!fails(function(){var re=/./;return re.exec=function(){var result=[];return result.groups={a:"7"},result},"".replace(re,"$<a>")!=="7"});fixRegExpWellKnownSymbolLogic("replace",function(_,nativeReplace,maybeCallNative){var UNSAFE_SUBSTITUTE=REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE?"$":"$0";return[function(searchValue,replaceValue){var O=requireObjectCoercible(this),replacer=isNullOrUndefined(searchValue)?void 0:getMethod(searchValue,REPLACE);return replacer?call(replacer,searchValue,O,replaceValue):call(nativeReplace,toString(O),searchValue,replaceValue)},function(string,replaceValue){var rx=anObject(this),S=toString(string);if(typeof replaceValue=="string"&&stringIndexOf(replaceValue,UNSAFE_SUBSTITUTE)===-1&&stringIndexOf(replaceValue,"$<")===-1){var res=maybeCallNative(nativeReplace,rx,S,replaceValue);if(res.done)return res.value}var functionalReplace=isCallable(replaceValue);functionalReplace||(replaceValue=toString(replaceValue));var global=rx.global,fullUnicode;global&&(fullUnicode=rx.unicode,rx.lastIndex=0);for(var results=[],result;result=regExpExec(rx,S),!(result===null||(push(results,result),!global));){var matchStr=toString(result[0]);matchStr===""&&(rx.lastIndex=advanceStringIndex(S,toLength(rx.lastIndex),fullUnicode))}for(var accumulatedResult="",nextSourcePosition=0,i=0;i<results.length;i++){result=results[i];for(var matched=toString(result[0]),position=max(min(toIntegerOrInfinity(result.index),S.length),0),captures=[],replacement,j=1;j<result.length;j++)push(captures,maybeToString(result[j]));var namedCaptures=result.groups;if(functionalReplace){var replacerArgs=concat([matched],captures,position,S);namedCaptures!==void 0&&push(replacerArgs,namedCaptures),replacement=toString(apply(replaceValue,void 0,replacerArgs))}else replacement=getSubstitution(matched,S,position,captures,namedCaptures,replaceValue);position>=nextSourcePosition&&(accumulatedResult+=stringSlice(S,nextSourcePosition,position)+replacement,nextSourcePosition=position+matched.length)}return accumulatedResult+stringSlice(S,nextSourcePosition)}]},!REPLACE_SUPPORTS_NAMED_GROUPS||!REPLACE_KEEPS_$0||REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE)}});var require_array_slice=__commonJS({"node_modules/core-js/internals/array-slice.js"(exports2,module2){"use strict";init_define_process_env();init_shim();var uncurryThis=require_function_uncurry_this();module2.exports=uncurryThis([].slice)}});var require_is_array=__commonJS({"node_modules/core-js/internals/is-array.js"(exports2,module2){"use strict";init_define_process_env();init_shim();var classof=require_classof_raw();module2.exports=Array.isArray||function(argument){return classof(argument)==="Array"}}});var require_get_json_replacer_function=__commonJS({"node_modules/core-js/internals/get-json-replacer-function.js"(exports2,module2){"use strict";init_define_process_env();init_shim();var uncurryThis=require_function_uncurry_this(),isArray2=require_is_array(),isCallable=require_is_callable(),classof=require_classof_raw(),toString=require_to_string(),push=uncurryThis([].push);module2.exports=function(replacer){if(isCallable(replacer))return replacer;if(isArray2(replacer)){for(var rawLength=replacer.length,keys2=[],i=0;i<rawLength;i++){var element=replacer[i];typeof element=="string"?push(keys2,element):(typeof element=="number"||classof(element)==="Number"||classof(element)==="String")&&push(keys2,toString(element))}var keysLength=keys2.length,root2=!0;return function(key,value){if(root2)return root2=!1,value;if(isArray2(this))return value;for(var j=0;j<keysLength;j++)if(keys2[j]===key)return value}}}}});var require_es_json_stringify=__commonJS({"node_modules/core-js/modules/es.json.stringify.js"(){"use strict";init_define_process_env();init_shim();var $=require_export(),getBuiltIn=require_get_built_in(),apply=require_function_apply(),call=require_function_call(),uncurryThis=require_function_uncurry_this(),fails=require_fails(),isCallable=require_is_callable(),isSymbol=require_is_symbol(),arraySlice=require_array_slice(),getReplacerFunction=require_get_json_replacer_function(),NATIVE_SYMBOL=require_symbol_constructor_detection(),$String=String,$stringify=getBuiltIn("JSON","stringify"),exec=uncurryThis(/./.exec),charAt=uncurryThis("".charAt),charCodeAt=uncurryThis("".charCodeAt),replace=uncurryThis("".replace),numberToString=uncurryThis(1 .toString),tester=/[\uD800-\uDFFF]/g,low=/^[\uD800-\uDBFF]$/,hi=/^[\uDC00-\uDFFF]$/,WRONG_SYMBOLS_CONVERSION=!NATIVE_SYMBOL||fails(function(){var symbol=getBuiltIn("Symbol")("stringify detection");return $stringify([symbol])!=="[null]"||$stringify({a:symbol})!=="{}"||$stringify(Object(symbol))!=="{}"}),ILL_FORMED_UNICODE=fails(function(){return $stringify("\uDF06\uD834")!=='"\\udf06\\ud834"'||$stringify("\uDEAD")!=='"\\udead"'}),stringifyWithSymbolsFix=function(it,replacer){var args=arraySlice(arguments),$replacer=getReplacerFunction(replacer);if(!(!isCallable($replacer)&&(it===void 0||isSymbol(it))))return args[1]=function(key,value){if(isCallable($replacer)&&(value=call($replacer,this,$String(key),value)),!isSymbol(value))return value},apply($stringify,null,args)},fixIllFormed=function(match,offset,string){var prev=charAt(string,offset-1),next=charAt(string,offset+1);return exec(low,match)&&!exec(hi,next)||exec(hi,match)&&!exec(low,prev)?"\\u"+numberToString(charCodeAt(match,0),16):match};$stringify&&$({target:"JSON",stat:!0,arity:3,forced:WRONG_SYMBOLS_CONVERSION||ILL_FORMED_UNICODE},{stringify:function(it,replacer,space){var args=arraySlice(arguments),result=apply(WRONG_SYMBOLS_CONVERSION?stringifyWithSymbolsFix:$stringify,null,args);return ILL_FORMED_UNICODE&&typeof result=="string"?replace(result,tester,fixIllFormed):result}})}});var require_es_array_includes=__commonJS({"node_modules/core-js/modules/es.array.includes.js"(){"use strict";init_define_process_env();init_shim();var $=require_export(),$includes=require_array_includes().includes,fails=require_fails(),addToUnscopables=require_add_to_unscopables(),BROKEN_ON_SPARSE=fails(function(){return!Array(1).includes()});$({target:"Array",proto:!0,forced:BROKEN_ON_SPARSE},{includes:function(el){return $includes(this,el,arguments.length>1?arguments[1]:void 0)}});addToUnscopables("includes")}});var require_function_uncurry_this_clause=__commonJS({"node_modules/core-js/internals/function-uncurry-this-clause.js"(exports2,module2){"use strict";init_define_process_env();init_shim();var classofRaw=require_classof_raw(),uncurryThis=require_function_uncurry_this();module2.exports=function(fn){if(classofRaw(fn)==="Function")return uncurryThis(fn)}}});var require_not_a_regexp=__commonJS({"node_modules/core-js/internals/not-a-regexp.js"(exports2,module2){"use strict";init_define_process_env();init_shim();var isRegExp=require_is_regexp(),$TypeError=TypeError;module2.exports=function(it){if(isRegExp(it))throw new $TypeError("The method doesn't accept regular expressions");return it}}});var require_correct_is_regexp_logic=__commonJS({"node_modules/core-js/internals/correct-is-regexp-logic.js"(exports2,module2){"use strict";init_define_process_env();init_shim();var wellKnownSymbol=require_well_known_symbol(),MATCH=wellKnownSymbol("match");module2.exports=function(METHOD_NAME){var regexp=/./;try{"/./"[METHOD_NAME](regexp)}catch(error1){try{return regexp[MATCH]=!1,"/./"[METHOD_NAME](regexp)}catch(error2){}}return!1}}});var require_es_string_starts_with=__commonJS({"node_modules/core-js/modules/es.string.starts-with.js"(){"use strict";init_define_process_env();init_shim();var $=require_export(),uncurryThis=require_function_uncurry_this_clause(),getOwnPropertyDescriptor=require_object_get_own_property_descriptor().f,toLength=require_to_length(),toString=require_to_string(),notARegExp=require_not_a_regexp(),requireObjectCoercible=require_require_object_coercible(),correctIsRegExpLogic=require_correct_is_regexp_logic(),IS_PURE=require_is_pure(),stringSlice=uncurryThis("".slice),min=Math.min,CORRECT_IS_REGEXP_LOGIC=correctIsRegExpLogic("startsWith"),MDN_POLYFILL_BUG=!IS_PURE&&!CORRECT_IS_REGEXP_LOGIC&&!!function(){var descriptor=getOwnPropertyDescriptor(String.prototype,"startsWith");return descriptor&&!descriptor.writable}();$({target:"String",proto:!0,forced:!MDN_POLYFILL_BUG&&!CORRECT_IS_REGEXP_LOGIC},{startsWith:function(searchString){var that=toString(requireObjectCoercible(this));notARegExp(searchString);var index=toLength(min(arguments.length>1?arguments[1]:void 0,that.length)),search=toString(searchString);return stringSlice(that,index,index+search.length)===search}})}});init_define_process_env();init_shim();var import_es_array_iterator=__toESM(require_es_array_iterator()),import_web_dom_collections_iterator=__toESM(require_web_dom_collections_iterator()),import_es_regexp_constructor=__toESM(require_es_regexp_constructor()),import_es_regexp_dot_all=__toESM(require_es_regexp_dot_all()),import_es_regexp_exec=__toESM(require_es_regexp_exec()),import_es_regexp_to_string=__toESM(require_es_regexp_to_string()),import_es_string_replace=__toESM(require_es_string_replace()),import_es_json_stringify=__toESM(require_es_json_stringify()),import_es_array_includes=__toESM(require_es_array_includes()),import_es_string_starts_with=__toESM(require_es_string_starts_with());init_define_process_env();init_shim();init_define_process_env();init_shim();init_define_process_env();init_shim();init_define_process_env();init_shim();init_define_process_env();init_shim();var freeGlobal=typeof window=="object"&&window&&window.Object===Object&&window,freeGlobal_default=freeGlobal;var freeSelf=typeof self=="object"&&self&&self.Object===Object&&self,root=freeGlobal_default||freeSelf||Function("return this")(),root_default=root;var Symbol2=root_default.Symbol,Symbol_default=Symbol2;init_define_process_env();init_shim();var objectProto=Object.prototype,hasOwnProperty=objectProto.hasOwnProperty,nativeObjectToString=objectProto.toString,symToStringTag=Symbol_default?Symbol_default.toStringTag:void 0;function getRawTag(value){var isOwn=hasOwnProperty.call(value,symToStringTag),tag=value[symToStringTag];try{value[symToStringTag]=void 0;var unmasked=!0}catch(e){}var result=nativeObjectToString.call(value);return unmasked&&(isOwn?value[symToStringTag]=tag:delete value[symToStringTag]),result}var getRawTag_default=getRawTag;init_define_process_env();init_shim();var objectProto2=Object.prototype,nativeObjectToString2=objectProto2.toString;function objectToString(value){return nativeObjectToString2.call(value)}var objectToString_default=objectToString;var nullTag="[object Null]",undefinedTag="[object Undefined]",symToStringTag2=Symbol_default?Symbol_default.toStringTag:void 0;function baseGetTag(value){return value==null?value===void 0?undefinedTag:nullTag:symToStringTag2&&symToStringTag2 in Object(value)?getRawTag_default(value):objectToString_default(value)}var baseGetTag_default=baseGetTag;init_define_process_env();init_shim();function isObjectLike(value){return value!=null&&typeof value=="object"}var isObjectLike_default=isObjectLike;init_define_process_env();init_shim();var isArray=Array.isArray,isArray_default=isArray;init_define_process_env();init_shim();function isObject(value){var type=typeof value;return value!=null&&(type=="object"||type=="function")}var isObject_default=isObject;init_define_process_env();init_shim();init_define_process_env();init_shim();init_define_process_env();init_shim();init_define_process_env();init_shim();var asyncTag="[object AsyncFunction]",funcTag="[object Function]",genTag="[object GeneratorFunction]",proxyTag="[object Proxy]";function isFunction(value){if(!isObject_default(value))return!1;var tag=baseGetTag_default(value);return tag==funcTag||tag==genTag||tag==asyncTag||tag==proxyTag}var isFunction_default=isFunction;init_define_process_env();init_shim();init_define_process_env();init_shim();var coreJsData=root_default["__core-js_shared__"],coreJsData_default=coreJsData;var maskSrcKey=function(){var uid=/[^.]+$/.exec(coreJsData_default&&coreJsData_default.keys&&coreJsData_default.keys.IE_PROTO||"");return uid?"Symbol(src)_1."+uid:""}();function isMasked(func){return!!maskSrcKey&&maskSrcKey in func}var isMasked_default=isMasked;init_define_process_env();init_shim();var funcProto=Function.prototype,funcToString=funcProto.toString;function toSource(func){if(func!=null){try{return funcToString.call(func)}catch(e){}try{return func+""}catch(e){}}return""}var toSource_default=toSource;var reRegExpChar=/[\\^$.*+?()[\]{}|]/g,reIsHostCtor=/^\[object .+?Constructor\]$/,funcProto2=Function.prototype,objectProto3=Object.prototype,funcToString2=funcProto2.toString,hasOwnProperty2=objectProto3.hasOwnProperty,reIsNative=RegExp("^"+funcToString2.call(hasOwnProperty2).replace(reRegExpChar,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function baseIsNative(value){if(!isObject_default(value)||isMasked_default(value))return!1;var pattern=isFunction_default(value)?reIsNative:reIsHostCtor;return pattern.test(toSource_default(value))}var baseIsNative_default=baseIsNative;init_define_process_env();init_shim();function getValue(object,key){return object==null?void 0:object[key]}var getValue_default=getValue;function getNative(object,key){var value=getValue_default(object,key);return baseIsNative_default(value)?value:void 0}var getNative_default=getNative;var WeakMap=getNative_default(root_default,"WeakMap"),WeakMap_default=WeakMap;init_define_process_env();init_shim();var MAX_SAFE_INTEGER=9007199254740991,reIsUint=/^(?:0|[1-9]\d*)$/;function isIndex(value,length){var type=typeof value;return length=length==null?MAX_SAFE_INTEGER:length,!!length&&(type=="number"||type!="symbol"&&reIsUint.test(value))&&value>-1&&value%1==0&&value<length}var isIndex_default=isIndex;init_define_process_env();init_shim();function eq(value,other){return value===other||value!==value&&other!==other}var eq_default=eq;init_define_process_env();init_shim();init_define_process_env();init_shim();var MAX_SAFE_INTEGER2=9007199254740991;function isLength(value){return typeof value=="number"&&value>-1&&value%1==0&&value<=MAX_SAFE_INTEGER2}var isLength_default=isLength;function isArrayLike(value){return value!=null&&isLength_default(value.length)&&!isFunction_default(value)}var isArrayLike_default=isArrayLike;init_define_process_env();init_shim();var objectProto4=Object.prototype;function isPrototype(value){var Ctor=value&&value.constructor,proto=typeof Ctor=="function"&&Ctor.prototype||objectProto4;return value===proto}var isPrototype_default=isPrototype;init_define_process_env();init_shim();init_define_process_env();init_shim();init_define_process_env();init_shim();function baseTimes(n,iteratee){for(var index=-1,result=Array(n);++index<n;)result[index]=iteratee(index);return result}var baseTimes_default=baseTimes;init_define_process_env();init_shim();init_define_process_env();init_shim();var argsTag="[object Arguments]";function baseIsArguments(value){return isObjectLike_default(value)&&baseGetTag_default(value)==argsTag}var baseIsArguments_default=baseIsArguments;var objectProto5=Object.prototype,hasOwnProperty3=objectProto5.hasOwnProperty,propertyIsEnumerable=objectProto5.propertyIsEnumerable,isArguments=baseIsArguments_default(function(){return arguments}())?baseIsArguments_default:function(value){return isObjectLike_default(value)&&hasOwnProperty3.call(value,"callee")&&!propertyIsEnumerable.call(value,"callee")},isArguments_default=isArguments;init_define_process_env();init_shim();init_define_process_env();init_shim();function stubFalse(){return!1}var stubFalse_default=stubFalse;var freeExports=typeof exports=="object"&&exports&&!exports.nodeType&&exports,freeModule=freeExports&&typeof module=="object"&&module&&!module.nodeType&&module,moduleExports=freeModule&&freeModule.exports===freeExports,Buffer3=moduleExports?root_default.Buffer:void 0,nativeIsBuffer=Buffer3?Buffer3.isBuffer:void 0,isBuffer=nativeIsBuffer||stubFalse_default,isBuffer_default=isBuffer;init_define_process_env();init_shim();init_define_process_env();init_shim();var argsTag2="[object Arguments]",arrayTag="[object Array]",boolTag="[object Boolean]",dateTag="[object Date]",errorTag="[object Error]",funcTag2="[object Function]",mapTag="[object Map]",numberTag="[object Number]",objectTag="[object Object]",regexpTag="[object RegExp]",setTag="[object Set]",stringTag="[object String]",weakMapTag="[object WeakMap]",arrayBufferTag="[object ArrayBuffer]",dataViewTag="[object DataView]",float32Tag="[object Float32Array]",float64Tag="[object Float64Array]",int8Tag="[object Int8Array]",int16Tag="[object Int16Array]",int32Tag="[object Int32Array]",uint8Tag="[object Uint8Array]",uint8ClampedTag="[object Uint8ClampedArray]",uint16Tag="[object Uint16Array]",uint32Tag="[object Uint32Array]",typedArrayTags={};typedArrayTags[float32Tag]=typedArrayTags[float64Tag]=typedArrayTags[int8Tag]=typedArrayTags[int16Tag]=typedArrayTags[int32Tag]=typedArrayTags[uint8Tag]=typedArrayTags[uint8ClampedTag]=typedArrayTags[uint16Tag]=typedArrayTags[uint32Tag]=!0;typedArrayTags[argsTag2]=typedArrayTags[arrayTag]=typedArrayTags[arrayBufferTag]=typedArrayTags[boolTag]=typedArrayTags[dataViewTag]=typedArrayTags[dateTag]=typedArrayTags[errorTag]=typedArrayTags[funcTag2]=typedArrayTags[mapTag]=typedArrayTags[numberTag]=typedArrayTags[objectTag]=typedArrayTags[regexpTag]=typedArrayTags[setTag]=typedArrayTags[stringTag]=typedArrayTags[weakMapTag]=!1;function baseIsTypedArray(value){return isObjectLike_default(value)&&isLength_default(value.length)&&!!typedArrayTags[baseGetTag_default(value)]}var baseIsTypedArray_default=baseIsTypedArray;init_define_process_env();init_shim();function baseUnary(func){return function(value){return func(value)}}var baseUnary_default=baseUnary;init_define_process_env();init_shim();var freeExports2=typeof exports=="object"&&exports&&!exports.nodeType&&exports,freeModule2=freeExports2&&typeof module=="object"&&module&&!module.nodeType&&module,moduleExports2=freeModule2&&freeModule2.exports===freeExports2,freeProcess=moduleExports2&&freeGlobal_default.process,nodeUtil=function(){try{var types=freeModule2&&freeModule2.require&&freeModule2.require("util").types;return types||freeProcess&&freeProcess.binding&&freeProcess.binding("util")}catch(e){}}(),nodeUtil_default=nodeUtil;var nodeIsTypedArray=nodeUtil_default&&nodeUtil_default.isTypedArray,isTypedArray=nodeIsTypedArray?baseUnary_default(nodeIsTypedArray):baseIsTypedArray_default,isTypedArray_default=isTypedArray;var objectProto6=Object.prototype,hasOwnProperty4=objectProto6.hasOwnProperty;function arrayLikeKeys(value,inherited){var isArr=isArray_default(value),isArg=!isArr&&isArguments_default(value),isBuff=!isArr&&!isArg&&isBuffer_default(value),isType=!isArr&&!isArg&&!isBuff&&isTypedArray_default(value),skipIndexes=isArr||isArg||isBuff||isType,result=skipIndexes?baseTimes_default(value.length,String):[],length=result.length;for(var key in value)(inherited||hasOwnProperty4.call(value,key))&&!(skipIndexes&&(key=="length"||isBuff&&(key=="offset"||key=="parent")||isType&&(key=="buffer"||key=="byteLength"||key=="byteOffset")||isIndex_default(key,length)))&&result.push(key);return result}var arrayLikeKeys_default=arrayLikeKeys;init_define_process_env();init_shim();init_define_process_env();init_shim();init_define_process_env();init_shim();function overArg(func,transform){return function(arg){return func(transform(arg))}}var overArg_default=overArg;var nativeKeys=overArg_default(Object.keys,Object),nativeKeys_default=nativeKeys;var objectProto7=Object.prototype,hasOwnProperty5=objectProto7.hasOwnProperty;function baseKeys(object){if(!isPrototype_default(object))return nativeKeys_default(object);var result=[];for(var key in Object(object))hasOwnProperty5.call(object,key)&&key!="constructor"&&result.push(key);return result}var baseKeys_default=baseKeys;function keys(object){return isArrayLike_default(object)?arrayLikeKeys_default(object):baseKeys_default(object)}var keys_default=keys;init_define_process_env();init_shim();init_define_process_env();init_shim();init_define_process_env();init_shim();init_define_process_env();init_shim();init_define_process_env();init_shim();var nativeCreate=getNative_default(Object,"create"),nativeCreate_default=nativeCreate;function hashClear(){this.__data__=nativeCreate_default?nativeCreate_default(null):{},this.size=0}var hashClear_default=hashClear;init_define_process_env();init_shim();function hashDelete(key){var result=this.has(key)&&delete this.__data__[key];return this.size-=result?1:0,result}var hashDelete_default=hashDelete;init_define_process_env();init_shim();var HASH_UNDEFINED="__lodash_hash_undefined__",objectProto8=Object.prototype,hasOwnProperty6=objectProto8.hasOwnProperty;function hashGet(key){var data=this.__data__;if(nativeCreate_default){var result=data[key];return result===HASH_UNDEFINED?void 0:result}return hasOwnProperty6.call(data,key)?data[key]:void 0}var hashGet_default=hashGet;init_define_process_env();init_shim();var objectProto9=Object.prototype,hasOwnProperty7=objectProto9.hasOwnProperty;function hashHas(key){var data=this.__data__;return nativeCreate_default?data[key]!==void 0:hasOwnProperty7.call(data,key)}var hashHas_default=hashHas;init_define_process_env();init_shim();var HASH_UNDEFINED2="__lodash_hash_undefined__";function hashSet(key,value){var data=this.__data__;return this.size+=this.has(key)?0:1,data[key]=nativeCreate_default&&value===void 0?HASH_UNDEFINED2:value,this}var hashSet_default=hashSet;function Hash(entries){var index=-1,length=entries==null?0:entries.length;for(this.clear();++index<length;){var entry=entries[index];this.set(entry[0],entry[1])}}Hash.prototype.clear=hashClear_default;Hash.prototype.delete=hashDelete_default;Hash.prototype.get=hashGet_default;Hash.prototype.has=hashHas_default;Hash.prototype.set=hashSet_default;var Hash_default=Hash;init_define_process_env();init_shim();init_define_process_env();init_shim();function listCacheClear(){this.__data__=[],this.size=0}var listCacheClear_default=listCacheClear;init_define_process_env();init_shim();init_define_process_env();init_shim();function assocIndexOf(array,key){for(var length=array.length;length--;)if(eq_default(array[length][0],key))return length;return-1}var assocIndexOf_default=assocIndexOf;var arrayProto=Array.prototype,splice=arrayProto.splice;function listCacheDelete(key){var data=this.__data__,index=assocIndexOf_default(data,key);if(index<0)return!1;var lastIndex=data.length-1;return index==lastIndex?data.pop():splice.call(data,index,1),--this.size,!0}var listCacheDelete_default=listCacheDelete;init_define_process_env();init_shim();function listCacheGet(key){var data=this.__data__,index=assocIndexOf_default(data,key);return index<0?void 0:data[index][1]}var listCacheGet_default=listCacheGet;init_define_process_env();init_shim();function listCacheHas(key){return assocIndexOf_default(this.__data__,key)>-1}var listCacheHas_default=listCacheHas;init_define_process_env();init_shim();function listCacheSet(key,value){var data=this.__data__,index=assocIndexOf_default(data,key);return index<0?(++this.size,data.push([key,value])):data[index][1]=value,this}var listCacheSet_default=listCacheSet;function ListCache(entries){var index=-1,length=entries==null?0:entries.length;for(this.clear();++index<length;){var entry=entries[index];this.set(entry[0],entry[1])}}ListCache.prototype.clear=listCacheClear_default;ListCache.prototype.delete=listCacheDelete_default;ListCache.prototype.get=listCacheGet_default;ListCache.prototype.has=listCacheHas_default;ListCache.prototype.set=listCacheSet_default;var ListCache_default=ListCache;init_define_process_env();init_shim();var Map=getNative_default(root_default,"Map"),Map_default=Map;function mapCacheClear(){this.size=0,this.__data__={hash:new Hash_default,map:new(Map_default||ListCache_default),string:new Hash_default}}var mapCacheClear_default=mapCacheClear;init_define_process_env();init_shim();init_define_process_env();init_shim();init_define_process_env();init_shim();function isKeyable(value){var type=typeof value;return type=="string"||type=="number"||type=="symbol"||type=="boolean"?value!=="__proto__":value===null}var isKeyable_default=isKeyable;function getMapData(map,key){var data=map.__data__;return isKeyable_default(key)?data[typeof key=="string"?"string":"hash"]:data.map}var getMapData_default=getMapData;function mapCacheDelete(key){var result=getMapData_default(this,key).delete(key);return this.size-=result?1:0,result}var mapCacheDelete_default=mapCacheDelete;init_define_process_env();init_shim();function mapCacheGet(key){return getMapData_default(this,key).get(key)}var mapCacheGet_default=mapCacheGet;init_define_process_env();init_shim();function mapCacheHas(key){return getMapData_default(this,key).has(key)}var mapCacheHas_default=mapCacheHas;init_define_process_env();init_shim();function mapCacheSet(key,value){var data=getMapData_default(this,key),size=data.size;return data.set(key,value),this.size+=data.size==size?0:1,this}var mapCacheSet_default=mapCacheSet;function MapCache(entries){var index=-1,length=entries==null?0:entries.length;for(this.clear();++index<length;){var entry=entries[index];this.set(entry[0],entry[1])}}MapCache.prototype.clear=mapCacheClear_default;MapCache.prototype.delete=mapCacheDelete_default;MapCache.prototype.get=mapCacheGet_default;MapCache.prototype.has=mapCacheHas_default;MapCache.prototype.set=mapCacheSet_default;var MapCache_default=MapCache;init_define_process_env();init_shim();function arrayPush(array,values){for(var index=-1,length=values.length,offset=array.length;++index<length;)array[offset+index]=values[index];return array}var arrayPush_default=arrayPush;init_define_process_env();init_shim();init_define_process_env();init_shim();function stackClear(){this.__data__=new ListCache_default,this.size=0}var stackClear_default=stackClear;init_define_process_env();init_shim();function stackDelete(key){var data=this.__data__,result=data.delete(key);return this.size=data.size,result}var stackDelete_default=stackDelete;init_define_process_env();init_shim();function stackGet(key){return this.__data__.get(key)}var stackGet_default=stackGet;init_define_process_env();init_shim();function stackHas(key){return this.__data__.has(key)}var stackHas_default=stackHas;init_define_process_env();init_shim();var LARGE_ARRAY_SIZE=200;function stackSet(key,value){var data=this.__data__;if(data instanceof ListCache_default){var pairs=data.__data__;if(!Map_default||pairs.length<LARGE_ARRAY_SIZE-1)return pairs.push([key,value]),this.size=++data.size,this;data=this.__data__=new MapCache_default(pairs)}return data.set(key,value),this.size=data.size,this}var stackSet_default=stackSet;function Stack(entries){var data=this.__data__=new ListCache_default(entries);this.size=data.size}Stack.prototype.clear=stackClear_default;Stack.prototype.delete=stackDelete_default;Stack.prototype.get=stackGet_default;Stack.prototype.has=stackHas_default;Stack.prototype.set=stackSet_default;var Stack_default=Stack;init_define_process_env();init_shim();init_define_process_env();init_shim();function arrayFilter(array,predicate){for(var index=-1,length=array==null?0:array.length,resIndex=0,result=[];++index<length;){var value=array[index];predicate(value,index,array)&&(result[resIndex++]=value)}return result}var arrayFilter_default=arrayFilter;init_define_process_env();init_shim();function stubArray(){return[]}var stubArray_default=stubArray;var objectProto10=Object.prototype,propertyIsEnumerable2=objectProto10.propertyIsEnumerable,nativeGetSymbols=Object.getOwnPropertySymbols,getSymbols=nativeGetSymbols?function(object){return object==null?[]:(object=Object(object),arrayFilter_default(nativeGetSymbols(object),function(symbol){return propertyIsEnumerable2.call(object,symbol)}))}:stubArray_default,getSymbols_default=getSymbols;init_define_process_env();init_shim();init_define_process_env();init_shim();function baseGetAllKeys(object,keysFunc,symbolsFunc){var result=keysFunc(object);return isArray_default(object)?result:arrayPush_default(result,symbolsFunc(object))}var baseGetAllKeys_default=baseGetAllKeys;function getAllKeys(object){return baseGetAllKeys_default(object,keys_default,getSymbols_default)}var getAllKeys_default=getAllKeys;init_define_process_env();init_shim();init_define_process_env();init_shim();var DataView=getNative_default(root_default,"DataView"),DataView_default=DataView;init_define_process_env();init_shim();var Promise2=getNative_default(root_default,"Promise"),Promise_default=Promise2;init_define_process_env();init_shim();var Set=getNative_default(root_default,"Set"),Set_default=Set;var mapTag2="[object Map]",objectTag2="[object Object]",promiseTag="[object Promise]",setTag2="[object Set]",weakMapTag2="[object WeakMap]",dataViewTag2="[object DataView]",dataViewCtorString=toSource_default(DataView_default),mapCtorString=toSource_default(Map_default),promiseCtorString=toSource_default(Promise_default),setCtorString=toSource_default(Set_default),weakMapCtorString=toSource_default(WeakMap_default),getTag=baseGetTag_default;(DataView_default&&getTag(new DataView_default(new ArrayBuffer(1)))!=dataViewTag2||Map_default&&getTag(new Map_default)!=mapTag2||Promise_default&&getTag(Promise_default.resolve())!=promiseTag||Set_default&&getTag(new Set_default)!=setTag2||WeakMap_default&&getTag(new WeakMap_default)!=weakMapTag2)&&(getTag=function(value){var result=baseGetTag_default(value),Ctor=result==objectTag2?value.constructor:void 0,ctorString=Ctor?toSource_default(Ctor):"";if(ctorString)switch(ctorString){case dataViewCtorString:return dataViewTag2;case mapCtorString:return mapTag2;case promiseCtorString:return promiseTag;case setCtorString:return setTag2;case weakMapCtorString:return weakMapTag2}return result});var getTag_default=getTag;init_define_process_env();init_shim();var Uint8Array2=root_default.Uint8Array,Uint8Array_default=Uint8Array2;init_define_process_env();init_shim();init_define_process_env();init_shim();init_define_process_env();init_shim();init_define_process_env();init_shim();init_define_process_env();init_shim();var HASH_UNDEFINED3="__lodash_hash_undefined__";function setCacheAdd(value){return this.__data__.set(value,HASH_UNDEFINED3),this}var setCacheAdd_default=setCacheAdd;init_define_process_env();init_shim();function setCacheHas(value){return this.__data__.has(value)}var setCacheHas_default=setCacheHas;function SetCache(values){var index=-1,length=values==null?0:values.length;for(this.__data__=new MapCache_default;++index<length;)this.add(values[index])}SetCache.prototype.add=SetCache.prototype.push=setCacheAdd_default;SetCache.prototype.has=setCacheHas_default;var SetCache_default=SetCache;init_define_process_env();init_shim();function arraySome(array,predicate){for(var index=-1,length=array==null?0:array.length;++index<length;)if(predicate(array[index],index,array))return!0;return!1}var arraySome_default=arraySome;init_define_process_env();init_shim();function cacheHas(cache,key){return cache.has(key)}var cacheHas_default=cacheHas;var COMPARE_PARTIAL_FLAG=1,COMPARE_UNORDERED_FLAG=2;function equalArrays(array,other,bitmask,customizer,equalFunc,stack){var isPartial=bitmask&COMPARE_PARTIAL_FLAG,arrLength=array.length,othLength=other.length;if(arrLength!=othLength&&!(isPartial&&othLength>arrLength))return!1;var arrStacked=stack.get(array),othStacked=stack.get(other);if(arrStacked&&othStacked)return arrStacked==other&&othStacked==array;var index=-1,result=!0,seen=bitmask&COMPARE_UNORDERED_FLAG?new SetCache_default:void 0;for(stack.set(array,other),stack.set(other,array);++index<arrLength;){var arrValue=array[index],othValue=other[index];if(customizer)var compared=isPartial?customizer(othValue,arrValue,index,other,array,stack):customizer(arrValue,othValue,index,array,other,stack);if(compared!==void 0){if(compared)continue;result=!1;break}if(seen){if(!arraySome_default(other,function(othValue2,othIndex){if(!cacheHas_default(seen,othIndex)&&(arrValue===othValue2||equalFunc(arrValue,othValue2,bitmask,customizer,stack)))return seen.push(othIndex)})){result=!1;break}}else if(!(arrValue===othValue||equalFunc(arrValue,othValue,bitmask,customizer,stack))){result=!1;break}}return stack.delete(array),stack.delete(other),result}var equalArrays_default=equalArrays;init_define_process_env();init_shim();init_define_process_env();init_shim();function mapToArray(map){var index=-1,result=Array(map.size);return map.forEach(function(value,key){result[++index]=[key,value]}),result}var mapToArray_default=mapToArray;init_define_process_env();init_shim();function setToArray(set){var index=-1,result=Array(set.size);return set.forEach(function(value){result[++index]=value}),result}var setToArray_default=setToArray;var COMPARE_PARTIAL_FLAG2=1,COMPARE_UNORDERED_FLAG2=2,boolTag2="[object Boolean]",dateTag2="[object Date]",errorTag2="[object Error]",mapTag3="[object Map]",numberTag2="[object Number]",regexpTag2="[object RegExp]",setTag3="[object Set]",stringTag2="[object String]",symbolTag="[object Symbol]",arrayBufferTag2="[object ArrayBuffer]",dataViewTag3="[object DataView]",symbolProto=Symbol_default?Symbol_default.prototype:void 0,symbolValueOf=symbolProto?symbolProto.valueOf:void 0;function equalByTag(object,other,tag,bitmask,customizer,equalFunc,stack){switch(tag){case dataViewTag3:if(object.byteLength!=other.byteLength||object.byteOffset!=other.byteOffset)return!1;object=object.buffer,other=other.buffer;case arrayBufferTag2:return!(object.byteLength!=other.byteLength||!equalFunc(new Uint8Array_default(object),new Uint8Array_default(other)));case boolTag2:case dateTag2:case numberTag2:return eq_default(+object,+other);case errorTag2:return object.name==other.name&&object.message==other.message;case regexpTag2:case stringTag2:return object==other+"";case mapTag3:var convert=mapToArray_default;case setTag3:var isPartial=bitmask&COMPARE_PARTIAL_FLAG2;if(convert||(convert=setToArray_default),object.size!=other.size&&!isPartial)return!1;var stacked=stack.get(object);if(stacked)return stacked==other;bitmask|=COMPARE_UNORDERED_FLAG2,stack.set(object,other);var result=equalArrays_default(convert(object),convert(other),bitmask,customizer,equalFunc,stack);return stack.delete(object),result;case symbolTag:if(symbolValueOf)return symbolValueOf.call(object)==symbolValueOf.call(other)}return!1}var equalByTag_default=equalByTag;init_define_process_env();init_shim();var COMPARE_PARTIAL_FLAG3=1,objectProto11=Object.prototype,hasOwnProperty8=objectProto11.hasOwnProperty;function equalObjects(object,other,bitmask,customizer,equalFunc,stack){var isPartial=bitmask&COMPARE_PARTIAL_FLAG3,objProps=getAllKeys_default(object),objLength=objProps.length,othProps=getAllKeys_default(other),othLength=othProps.length;if(objLength!=othLength&&!isPartial)return!1;for(var index=objLength;index--;){var key=objProps[index];if(!(isPartial?key in other:hasOwnProperty8.call(other,key)))return!1}var objStacked=stack.get(object),othStacked=stack.get(other);if(objStacked&&othStacked)return objStacked==other&&othStacked==object;var result=!0;stack.set(object,other),stack.set(other,object);for(var skipCtor=isPartial;++index<objLength;){key=objProps[index];var objValue=object[key],othValue=other[key];if(customizer)var compared=isPartial?customizer(othValue,objValue,key,other,object,stack):customizer(objValue,othValue,key,object,other,stack);if(!(compared===void 0?objValue===othValue||equalFunc(objValue,othValue,bitmask,customizer,stack):compared)){result=!1;break}skipCtor||(skipCtor=key=="constructor")}if(result&&!skipCtor){var objCtor=object.constructor,othCtor=other.constructor;objCtor!=othCtor&&"constructor"in object&&"constructor"in other&&!(typeof objCtor=="function"&&objCtor instanceof objCtor&&typeof othCtor=="function"&&othCtor instanceof othCtor)&&(result=!1)}return stack.delete(object),stack.delete(other),result}var equalObjects_default=equalObjects;var COMPARE_PARTIAL_FLAG4=1,argsTag3="[object Arguments]",arrayTag2="[object Array]",objectTag3="[object Object]",objectProto12=Object.prototype,hasOwnProperty9=objectProto12.hasOwnProperty;function baseIsEqualDeep(object,other,bitmask,customizer,equalFunc,stack){var objIsArr=isArray_default(object),othIsArr=isArray_default(other),objTag=objIsArr?arrayTag2:getTag_default(object),othTag=othIsArr?arrayTag2:getTag_default(other);objTag=objTag==argsTag3?objectTag3:objTag,othTag=othTag==argsTag3?objectTag3:othTag;var objIsObj=objTag==objectTag3,othIsObj=othTag==objectTag3,isSameTag=objTag==othTag;if(isSameTag&&isBuffer_default(object)){if(!isBuffer_default(other))return!1;objIsArr=!0,objIsObj=!1}if(isSameTag&&!objIsObj)return stack||(stack=new Stack_default),objIsArr||isTypedArray_default(object)?equalArrays_default(object,other,bitmask,customizer,equalFunc,stack):equalByTag_default(object,other,objTag,bitmask,customizer,equalFunc,stack);if(!(bitmask&COMPARE_PARTIAL_FLAG4)){var objIsWrapped=objIsObj&&hasOwnProperty9.call(object,"__wrapped__"),othIsWrapped=othIsObj&&hasOwnProperty9.call(other,"__wrapped__");if(objIsWrapped||othIsWrapped){var objUnwrapped=objIsWrapped?object.value():object,othUnwrapped=othIsWrapped?other.value():other;return stack||(stack=new Stack_default),equalFunc(objUnwrapped,othUnwrapped,bitmask,customizer,stack)}}return isSameTag?(stack||(stack=new Stack_default),equalObjects_default(object,other,bitmask,customizer,equalFunc,stack)):!1}var baseIsEqualDeep_default=baseIsEqualDeep;function baseIsEqual(value,other,bitmask,customizer,stack){return value===other?!0:value==null||other==null||!isObjectLike_default(value)&&!isObjectLike_default(other)?value!==value&&other!==other:baseIsEqualDeep_default(value,other,bitmask,customizer,baseIsEqual,stack)}var baseIsEqual_default=baseIsEqual;init_define_process_env();init_shim();function isEqual(value,other){return baseIsEqual_default(value,other)}var isEqual_default=isEqual;init_define_process_env();init_shim();var _window$u,_window,_window$safe_require,_window2,u=(_window$u=(_window=window)==null?void 0:_window.u)!=null?_window$u:_u,safe_require=(_window$safe_require=(_window2=window)==null?void 0:_window2.safe_require)!=null?_window$safe_require:_safe_require;var _Lib,external=safe_require.safe_require("./external"),appquery=safe_require.safe_require("./lang/appquery"),plugin_consts=safe_require.safe_require("./constants/plugin"),{PUBLIC_ONLY}=safe_require.safe_require("./constants/apiconnectorbase"),known_plugins_consts=safe_require.safe_require("./constants/known_plugins"),{WORKOS_AUTH_URL}=safe_require.safe_require("./constants/auth"),logger=safe_require.safe_require("./logger"),Lib=safe_require.safe_require("./lib"),apiconnectorbase=safe_require.safe_require("./apiconnectorbase"),apiconnector_editor,ContextMenu;u.is_edit_mode()&&(apiconnector_editor=safe_require.safe_require("./editor_plugin/apiconnector_editor"),ContextMenu=safe_require.safe_require("./editor/contextmenu"));var API_CONNECTOR_BASE="apiconnector2";function get_path(api_id,call_id,field_name,field_id,key_name){if(api_id==null){logger.error("API connector issue, calling apiconnector2 with an empty call_id");return}let path=API_CONNECTOR_BASE+"."+api_id;return call_id&&(path+=".calls."+call_id),field_name&&(path+="."+field_name,field_id&&(path+="."+field_id,key_name&&(path+="."+key_name))),path}var get_all_apis_editor=u.autorun_cache({fn:()=>{let apis={},object=appquery.get_public_setting(API_CONNECTOR_BASE);for(let id in object)apis[id]=get_api(id);return apis},compare_fn:isEqual_default}),get_all_apis_runmode=function(){return u.autorun_cache(()=>{let apis={},object=appquery.get_public_setting(API_CONNECTOR_BASE);for(let id in object)apis[id]=get_api(id);return apis})("apiconnector2")},get_all_apis=(_Lib=Lib())!=null&&_Lib.is_edit_mode()?get_all_apis_editor:get_all_apis_runmode,API_CONNECTOR_FIELD_PREFIX="_api_c2_";function get_api(api_id){var _appquery$get_public_2,_appquery$get_private2;let pub=(_appquery$get_public_2=appquery.get_public_setting(get_path(api_id)))!=null?_appquery$get_public_2:{},pvt=(_appquery$get_private2=appquery.get_private_setting(get_path(api_id)))!=null?_appquery$get_private2:{},api=u.deep_copy({},pvt,pub);for(let call_id in api.calls){let call=api.calls[call_id];for(let thing of["types","data_container"])call[thing]&&(call[thing]=u.json_parse(call[thing]))}return api}var APIConnectorPrivateKey=class extends apiconnectorbase.APIConnectorBasePrivateKey{_get_api(){return get_api(this.params.call_id)}},APIConnectorBasicAuth=class extends apiconnectorbase.APIConnectorBasicAuth{_get_api(){return get_api(this.params.call_id)}},APIConnectorJWT=class extends apiconnectorbase.APIConnectorBaseJWT{_get_api(){return get_api(this.params.call_id)}},APIConnectorSSLProtocol=class extends apiconnectorbase.APIConnectorBaseSSLProtocol{_get_api(){return get_api(this.params.call_id)}},APIConnectorOauth2PWFlow=class extends apiconnectorbase.APIConnectorBaseOauth2PWFlow{service_name(){return API_CONNECTOR_BASE+plugin_consts.PLUGIN_SEPARATOR+this.params.call_id}_get_api(){return get_api(this.params.call_id)}},APIConnectorOauth2Custom=class extends apiconnectorbase.APIConnectorBaseOauth2Custom{service_name(){return API_CONNECTOR_BASE+plugin_consts.PLUGIN_SEPARATOR+this.params.call_id}_get_api(){return get_api(this.params.call_id)}},APIConnectorOauth2=class extends apiconnectorbase.APIConnectorBaseOauth2{service_name(){return API_CONNECTOR_BASE+plugin_consts.PLUGIN_SEPARATOR+this.params.api_id}human_name(){return get_api(this.params.api_id).human}_get_api(){return get_api(this.params.api_id)}get_key(name){return name==="server_redirect"?this.get_property("server_redirect"):super.get_key(name)}login(context,action,oauth_token,cb){return!this.tested()&&Lib().workflow.debugger==null&&cb(new u.OwnerError("Oauth2 API not tested",{display:"API Connector error: the Oauth2 API "+this.human_name()+" is not tested yet. Please run in with the debugger to validate your settings."})),(this.get_property("authentication_url")==null||this.get_property("generate_token_from_code_uri")==null)&&cb(new u.OwnerError("Oauth2 API missing information",{display:"API Connector error: the Oauth2 API "+this.human_name()+" has some missing informations. please check"})),super.login(context,action,oauth_token)}get_oauth_user_data(login_data){try{return super.get_oauth_user_data(login_data)}catch(e){var _e$message,_e$display,_e$display2;delete e.stack;let message=(_e$message=e.message)==null?void 0:_e$message.replace(this.service().plugin_name+" error:",""),inner_message="".concat(message!=null?message:JSON.stringify(e!=null?e:{})," ").concat((_e$display=(_e$display2=e.display)==null?void 0:_e$display2.call(e))!=null?_e$display:"");throw new u.OwnerError("Oauth2 not configured properly",{display:"".concat(this.service().plugin_name," error: the Oauth2 API ").concat(this.human_name()," is not configured properly - ").concat(inner_message)})}}},WORKOS_SESSION_LENGTH=60*60*4,WorkOSAuth=class extends APIConnectorOauth2{generate_validity_object(user_info){return{access_token:user_info.access_token,refresh_token:user_info.refresh_token,access_token_expires_in:WORKOS_SESSION_LENGTH}}},cls=class extends apiconnectorbase.BaseAPIConnector{constructor(params){super(),this.params=params,this.plugin_name="API Connector",this.BASE=API_CONNECTOR_BASE,this.key_prefix=API_CONNECTOR_FIELD_PREFIX}get_all_apis(){return get_all_apis()}get_api(id){return get_api(id)}authenticator(id){if(!id)return new external.NoAuth;let api_data=this.get_api(id),auth,auth_params;if([null,void 0,"none"].includes(api_data.auth)&&(auth=new external.NoAuth),["private_key_url","private_key_header"].includes(api_data.auth)&&(auth_params=apiconnectorbase.get_private_key_auth_params(api_data),auth_params.call_id=id,auth=new APIConnectorPrivateKey(auth_params)),api_data.auth==="cert_key"&&(auth=new APIConnectorSSLProtocol({call_id:id})),api_data.auth==="basic_auth"&&(auth=new APIConnectorBasicAuth({call_id:id,username:api_data.username,password:api_data.password})),api_data.auth==="oauth2_pw"&&(auth_params=apiconnectorbase.get_oauth2_pw_auth_params(api_data),u.extend(auth_params,{call_id:id,username:api_data.username,password:api_data.password}),auth=new APIConnectorOauth2PWFlow(auth_params)),api_data.auth==="oauth2_custom"&&(auth=new APIConnectorOauth2Custom({call_id:id})),api_data.auth==="oauth2_user"){var _auth_params$authenti;auth_params=apiconnectorbase.get_oauth2_user_auth_params(api_data),u.extend(auth_params,{api_id:id,_id:API_CONNECTOR_BASE+plugin_consts.PLUGIN_SEPARATOR+id}),(_auth_params$authenti=auth_params.authentication_url)!=null&&_auth_params$authenti.startsWith(WORKOS_AUTH_URL)?auth=new WorkOSAuth(auth_params):auth=new APIConnectorOauth2(auth_params)}return api_data.auth==="jwt"&&(auth_params=apiconnectorbase.get_jwt_auth_params(api_data),auth_params.call_id=id,auth=new APIConnectorJWT(auth_params)),auth._service=this,auth._display="API - "+api_data.human,auth.add_shared_params_and_headers=req=>apiconnectorbase.add_shared_params_and_headers(api_data,req,this.plugin_name,(header_id,header)=>header.value,(param_id,param)=>param.value),auth}},plugin_registry=safe_require.safe_require("./services/shared/plugin_registry"),apiconnector2={cls};typeof window<"u"&&window!==null&&((_window$optional_modu=(_window3=window).optional_modules)!=null||(_window3.optional_modules={}),window.optional_modules.apiconnector2=apiconnector2);var _window3,_window$optional_modu;plugin_registry.register_plugin(known_plugins_consts.API_CONNECTOR,apiconnector2);})();
/*! Bundled license information:

buffer/index.js:
  (*!
   * The buffer module from node.js, for the browser.
   *
   * @author   Feross Aboukhadijeh <https://feross.org>
   * @license  MIT
   *)

lodash-es/lodash.js:
  (**
   * @license
   * Lodash (Custom Build) <https://lodash.com/>
   * Build: `lodash modularize exports="es" -o ./`
   * Copyright OpenJS Foundation and other contributors <https://openjsf.org/>
   * Released under MIT license <https://lodash.com/license>
   * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
   * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
   *)
*/

}


window.preloaded['plugin/first_party:apiconnector2'] = true;
window._bubble_page_load_data.hardcoded_plugins['materialicons'] = true;
window.__code__ = window.__code__ || {};
if(!window.__code__['43fcf961fef273a0bb0d8a2f2fe7b3e8e9be71bf091c7fda5a26de690b11ffce']){window.__code__['43fcf961fef273a0bb0d8a2f2fe7b3e8e9be71bf091c7fda5a26de690b11ffce']=1;

"use strict";(()=>{var __create=Object.create;var __defProp=Object.defineProperty;var __getOwnPropDesc=Object.getOwnPropertyDescriptor;var __getOwnPropNames=Object.getOwnPropertyNames;var __getProtoOf=Object.getPrototypeOf,__hasOwnProp=Object.prototype.hasOwnProperty;var __esm=(fn,res)=>function(){return fn&&(res=(0,fn[__getOwnPropNames(fn)[0]])(fn=0)),res};var __commonJS=(cb,mod)=>function(){return mod||(0,cb[__getOwnPropNames(cb)[0]])((mod={exports:{}}).exports,mod),mod.exports};var __export=(target,all)=>{for(var name in all)__defProp(target,name,{get:all[name],enumerable:!0})},__copyProps=(to,from,except,desc)=>{if(from&&typeof from=="object"||typeof from=="function")for(let key of __getOwnPropNames(from))!__hasOwnProp.call(to,key)&&key!==except&&__defProp(to,key,{get:()=>from[key],enumerable:!(desc=__getOwnPropDesc(from,key))||desc.enumerable});return to};var __toESM=(mod,isNodeMode,target)=>(target=mod!=null?__create(__getProtoOf(mod)):{},__copyProps(isNodeMode||!mod||!mod.__esModule?__defProp(target,"default",{value:mod,enumerable:!0}):target,mod)),__toCommonJS=mod=>__copyProps(__defProp({},"__esModule",{value:!0}),mod);var init_define_process_env=__esm({"<define:process.env>"(){}});var require_base64_js=__commonJS({"node_modules/base64-js/index.js"(exports){"use strict";init_define_process_env();init_shim();exports.byteLength=byteLength;exports.toByteArray=toByteArray;exports.fromByteArray=fromByteArray;var lookup=[],revLookup=[],Arr=typeof Uint8Array<"u"?Uint8Array:Array,code="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";for(i=0,len=code.length;i<len;++i)lookup[i]=code[i],revLookup[code.charCodeAt(i)]=i;var i,len;revLookup["-".charCodeAt(0)]=62;revLookup["_".charCodeAt(0)]=63;function getLens(b64){var len2=b64.length;if(len2%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var validLen=b64.indexOf("=");validLen===-1&&(validLen=len2);var placeHoldersLen=validLen===len2?0:4-validLen%4;return[validLen,placeHoldersLen]}function byteLength(b64){var lens=getLens(b64),validLen=lens[0],placeHoldersLen=lens[1];return(validLen+placeHoldersLen)*3/4-placeHoldersLen}function _byteLength(b64,validLen,placeHoldersLen){return(validLen+placeHoldersLen)*3/4-placeHoldersLen}function toByteArray(b64){var tmp,lens=getLens(b64),validLen=lens[0],placeHoldersLen=lens[1],arr=new Arr(_byteLength(b64,validLen,placeHoldersLen)),curByte=0,len2=placeHoldersLen>0?validLen-4:validLen,i2;for(i2=0;i2<len2;i2+=4)tmp=revLookup[b64.charCodeAt(i2)]<<18|revLookup[b64.charCodeAt(i2+1)]<<12|revLookup[b64.charCodeAt(i2+2)]<<6|revLookup[b64.charCodeAt(i2+3)],arr[curByte++]=tmp>>16&255,arr[curByte++]=tmp>>8&255,arr[curByte++]=tmp&255;return placeHoldersLen===2&&(tmp=revLookup[b64.charCodeAt(i2)]<<2|revLookup[b64.charCodeAt(i2+1)]>>4,arr[curByte++]=tmp&255),placeHoldersLen===1&&(tmp=revLookup[b64.charCodeAt(i2)]<<10|revLookup[b64.charCodeAt(i2+1)]<<4|revLookup[b64.charCodeAt(i2+2)]>>2,arr[curByte++]=tmp>>8&255,arr[curByte++]=tmp&255),arr}function tripletToBase64(num){return lookup[num>>18&63]+lookup[num>>12&63]+lookup[num>>6&63]+lookup[num&63]}function encodeChunk(uint8,start,end){for(var tmp,output=[],i2=start;i2<end;i2+=3)tmp=(uint8[i2]<<16&16711680)+(uint8[i2+1]<<8&65280)+(uint8[i2+2]&255),output.push(tripletToBase64(tmp));return output.join("")}function fromByteArray(uint8){for(var tmp,len2=uint8.length,extraBytes=len2%3,parts=[],maxChunkLength=16383,i2=0,len22=len2-extraBytes;i2<len22;i2+=maxChunkLength)parts.push(encodeChunk(uint8,i2,i2+maxChunkLength>len22?len22:i2+maxChunkLength));return extraBytes===1?(tmp=uint8[len2-1],parts.push(lookup[tmp>>2]+lookup[tmp<<4&63]+"==")):extraBytes===2&&(tmp=(uint8[len2-2]<<8)+uint8[len2-1],parts.push(lookup[tmp>>10]+lookup[tmp>>4&63]+lookup[tmp<<2&63]+"=")),parts.join("")}}});var require_ieee754=__commonJS({"node_modules/ieee754/index.js"(exports){init_define_process_env();init_shim();exports.read=function(buffer,offset,isLE,mLen,nBytes){var e,m,eLen=nBytes*8-mLen-1,eMax=(1<<eLen)-1,eBias=eMax>>1,nBits=-7,i=isLE?nBytes-1:0,d=isLE?-1:1,s=buffer[offset+i];for(i+=d,e=s&(1<<-nBits)-1,s>>=-nBits,nBits+=eLen;nBits>0;e=e*256+buffer[offset+i],i+=d,nBits-=8);for(m=e&(1<<-nBits)-1,e>>=-nBits,nBits+=mLen;nBits>0;m=m*256+buffer[offset+i],i+=d,nBits-=8);if(e===0)e=1-eBias;else{if(e===eMax)return m?NaN:(s?-1:1)*(1/0);m=m+Math.pow(2,mLen),e=e-eBias}return(s?-1:1)*m*Math.pow(2,e-mLen)};exports.write=function(buffer,value,offset,isLE,mLen,nBytes){var e,m,c,eLen=nBytes*8-mLen-1,eMax=(1<<eLen)-1,eBias=eMax>>1,rt=mLen===23?Math.pow(2,-24)-Math.pow(2,-77):0,i=isLE?0:nBytes-1,d=isLE?1:-1,s=value<0||value===0&&1/value<0?1:0;for(value=Math.abs(value),isNaN(value)||value===1/0?(m=isNaN(value)?1:0,e=eMax):(e=Math.floor(Math.log(value)/Math.LN2),value*(c=Math.pow(2,-e))<1&&(e--,c*=2),e+eBias>=1?value+=rt/c:value+=rt*Math.pow(2,1-eBias),value*c>=2&&(e++,c/=2),e+eBias>=eMax?(m=0,e=eMax):e+eBias>=1?(m=(value*c-1)*Math.pow(2,mLen),e=e+eBias):(m=value*Math.pow(2,eBias-1)*Math.pow(2,mLen),e=0));mLen>=8;buffer[offset+i]=m&255,i+=d,m/=256,mLen-=8);for(e=e<<mLen|m,eLen+=mLen;eLen>0;buffer[offset+i]=e&255,i+=d,e/=256,eLen-=8);buffer[offset+i-d]|=s*128}}});var require_buffer=__commonJS({"node_modules/node-stdlib-browser/node_modules/buffer/index.js"(exports){"use strict";init_define_process_env();init_shim();var base64=require_base64_js(),ieee754=require_ieee754(),customInspectSymbol=typeof Symbol=="function"&&typeof Symbol.for=="function"?Symbol.for("nodejs.util.inspect.custom"):null;exports.Buffer=Buffer3;exports.SlowBuffer=SlowBuffer;exports.INSPECT_MAX_BYTES=50;var K_MAX_LENGTH=2147483647;exports.kMaxLength=K_MAX_LENGTH;Buffer3.TYPED_ARRAY_SUPPORT=typedArraySupport();!Buffer3.TYPED_ARRAY_SUPPORT&&typeof console<"u"&&typeof console.error=="function"&&console.error("This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support.");function typedArraySupport(){try{var arr=new Uint8Array(1),proto={foo:function(){return 42}};return Object.setPrototypeOf(proto,Uint8Array.prototype),Object.setPrototypeOf(arr,proto),arr.foo()===42}catch(e){return!1}}Object.defineProperty(Buffer3.prototype,"parent",{enumerable:!0,get:function(){if(Buffer3.isBuffer(this))return this.buffer}});Object.defineProperty(Buffer3.prototype,"offset",{enumerable:!0,get:function(){if(Buffer3.isBuffer(this))return this.byteOffset}});function createBuffer(length){if(length>K_MAX_LENGTH)throw new RangeError('The value "'+length+'" is invalid for option "size"');var buf=new Uint8Array(length);return Object.setPrototypeOf(buf,Buffer3.prototype),buf}function Buffer3(arg,encodingOrOffset,length){if(typeof arg=="number"){if(typeof encodingOrOffset=="string")throw new TypeError('The "string" argument must be of type string. Received type number');return allocUnsafe(arg)}return from(arg,encodingOrOffset,length)}Buffer3.poolSize=8192;function from(value,encodingOrOffset,length){if(typeof value=="string")return fromString(value,encodingOrOffset);if(ArrayBuffer.isView(value))return fromArrayView(value);if(value==null)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof value);if(isInstance(value,ArrayBuffer)||value&&isInstance(value.buffer,ArrayBuffer)||typeof SharedArrayBuffer<"u"&&(isInstance(value,SharedArrayBuffer)||value&&isInstance(value.buffer,SharedArrayBuffer)))return fromArrayBuffer(value,encodingOrOffset,length);if(typeof value=="number")throw new TypeError('The "value" argument must not be of type number. Received type number');var valueOf=value.valueOf&&value.valueOf();if(valueOf!=null&&valueOf!==value)return Buffer3.from(valueOf,encodingOrOffset,length);var b=fromObject(value);if(b)return b;if(typeof Symbol<"u"&&Symbol.toPrimitive!=null&&typeof value[Symbol.toPrimitive]=="function")return Buffer3.from(value[Symbol.toPrimitive]("string"),encodingOrOffset,length);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof value)}Buffer3.from=function(value,encodingOrOffset,length){return from(value,encodingOrOffset,length)};Object.setPrototypeOf(Buffer3.prototype,Uint8Array.prototype);Object.setPrototypeOf(Buffer3,Uint8Array);function assertSize(size){if(typeof size!="number")throw new TypeError('"size" argument must be of type number');if(size<0)throw new RangeError('The value "'+size+'" is invalid for option "size"')}function alloc(size,fill,encoding){return assertSize(size),size<=0?createBuffer(size):fill!==void 0?typeof encoding=="string"?createBuffer(size).fill(fill,encoding):createBuffer(size).fill(fill):createBuffer(size)}Buffer3.alloc=function(size,fill,encoding){return alloc(size,fill,encoding)};function allocUnsafe(size){return assertSize(size),createBuffer(size<0?0:checked(size)|0)}Buffer3.allocUnsafe=function(size){return allocUnsafe(size)};Buffer3.allocUnsafeSlow=function(size){return allocUnsafe(size)};function fromString(string,encoding){if((typeof encoding!="string"||encoding==="")&&(encoding="utf8"),!Buffer3.isEncoding(encoding))throw new TypeError("Unknown encoding: "+encoding);var length=byteLength(string,encoding)|0,buf=createBuffer(length),actual=buf.write(string,encoding);return actual!==length&&(buf=buf.slice(0,actual)),buf}function fromArrayLike(array){for(var length=array.length<0?0:checked(array.length)|0,buf=createBuffer(length),i=0;i<length;i+=1)buf[i]=array[i]&255;return buf}function fromArrayView(arrayView){if(isInstance(arrayView,Uint8Array)){var copy=new Uint8Array(arrayView);return fromArrayBuffer(copy.buffer,copy.byteOffset,copy.byteLength)}return fromArrayLike(arrayView)}function fromArrayBuffer(array,byteOffset,length){if(byteOffset<0||array.byteLength<byteOffset)throw new RangeError('"offset" is outside of buffer bounds');if(array.byteLength<byteOffset+(length||0))throw new RangeError('"length" is outside of buffer bounds');var buf;return byteOffset===void 0&&length===void 0?buf=new Uint8Array(array):length===void 0?buf=new Uint8Array(array,byteOffset):buf=new Uint8Array(array,byteOffset,length),Object.setPrototypeOf(buf,Buffer3.prototype),buf}function fromObject(obj){if(Buffer3.isBuffer(obj)){var len=checked(obj.length)|0,buf=createBuffer(len);return buf.length===0||obj.copy(buf,0,0,len),buf}if(obj.length!==void 0)return typeof obj.length!="number"||numberIsNaN(obj.length)?createBuffer(0):fromArrayLike(obj);if(obj.type==="Buffer"&&Array.isArray(obj.data))return fromArrayLike(obj.data)}function checked(length){if(length>=K_MAX_LENGTH)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+K_MAX_LENGTH.toString(16)+" bytes");return length|0}function SlowBuffer(length){return+length!=length&&(length=0),Buffer3.alloc(+length)}Buffer3.isBuffer=function(b){return b!=null&&b._isBuffer===!0&&b!==Buffer3.prototype};Buffer3.compare=function(a,b){if(isInstance(a,Uint8Array)&&(a=Buffer3.from(a,a.offset,a.byteLength)),isInstance(b,Uint8Array)&&(b=Buffer3.from(b,b.offset,b.byteLength)),!Buffer3.isBuffer(a)||!Buffer3.isBuffer(b))throw new TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array');if(a===b)return 0;for(var x=a.length,y=b.length,i=0,len=Math.min(x,y);i<len;++i)if(a[i]!==b[i]){x=a[i],y=b[i];break}return x<y?-1:y<x?1:0};Buffer3.isEncoding=function(encoding){switch(String(encoding).toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"latin1":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return!0;default:return!1}};Buffer3.concat=function(list,length){if(!Array.isArray(list))throw new TypeError('"list" argument must be an Array of Buffers');if(list.length===0)return Buffer3.alloc(0);var i;if(length===void 0)for(length=0,i=0;i<list.length;++i)length+=list[i].length;var buffer=Buffer3.allocUnsafe(length),pos=0;for(i=0;i<list.length;++i){var buf=list[i];if(isInstance(buf,Uint8Array))pos+buf.length>buffer.length?Buffer3.from(buf).copy(buffer,pos):Uint8Array.prototype.set.call(buffer,buf,pos);else if(Buffer3.isBuffer(buf))buf.copy(buffer,pos);else throw new TypeError('"list" argument must be an Array of Buffers');pos+=buf.length}return buffer};function byteLength(string,encoding){if(Buffer3.isBuffer(string))return string.length;if(ArrayBuffer.isView(string)||isInstance(string,ArrayBuffer))return string.byteLength;if(typeof string!="string")throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof string);var len=string.length,mustMatch=arguments.length>2&&arguments[2]===!0;if(!mustMatch&&len===0)return 0;for(var loweredCase=!1;;)switch(encoding){case"ascii":case"latin1":case"binary":return len;case"utf8":case"utf-8":return utf8ToBytes(string).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return len*2;case"hex":return len>>>1;case"base64":return base64ToBytes(string).length;default:if(loweredCase)return mustMatch?-1:utf8ToBytes(string).length;encoding=(""+encoding).toLowerCase(),loweredCase=!0}}Buffer3.byteLength=byteLength;function slowToString(encoding,start,end){var loweredCase=!1;if((start===void 0||start<0)&&(start=0),start>this.length||((end===void 0||end>this.length)&&(end=this.length),end<=0)||(end>>>=0,start>>>=0,end<=start))return"";for(encoding||(encoding="utf8");;)switch(encoding){case"hex":return hexSlice(this,start,end);case"utf8":case"utf-8":return utf8Slice(this,start,end);case"ascii":return asciiSlice(this,start,end);case"latin1":case"binary":return latin1Slice(this,start,end);case"base64":return base64Slice(this,start,end);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return utf16leSlice(this,start,end);default:if(loweredCase)throw new TypeError("Unknown encoding: "+encoding);encoding=(encoding+"").toLowerCase(),loweredCase=!0}}Buffer3.prototype._isBuffer=!0;function swap(b,n,m){var i=b[n];b[n]=b[m],b[m]=i}Buffer3.prototype.swap16=function(){var len=this.length;if(len%2!==0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(var i=0;i<len;i+=2)swap(this,i,i+1);return this};Buffer3.prototype.swap32=function(){var len=this.length;if(len%4!==0)throw new RangeError("Buffer size must be a multiple of 32-bits");for(var i=0;i<len;i+=4)swap(this,i,i+3),swap(this,i+1,i+2);return this};Buffer3.prototype.swap64=function(){var len=this.length;if(len%8!==0)throw new RangeError("Buffer size must be a multiple of 64-bits");for(var i=0;i<len;i+=8)swap(this,i,i+7),swap(this,i+1,i+6),swap(this,i+2,i+5),swap(this,i+3,i+4);return this};Buffer3.prototype.toString=function(){var length=this.length;return length===0?"":arguments.length===0?utf8Slice(this,0,length):slowToString.apply(this,arguments)};Buffer3.prototype.toLocaleString=Buffer3.prototype.toString;Buffer3.prototype.equals=function(b){if(!Buffer3.isBuffer(b))throw new TypeError("Argument must be a Buffer");return this===b?!0:Buffer3.compare(this,b)===0};Buffer3.prototype.inspect=function(){var str="",max=exports.INSPECT_MAX_BYTES;return str=this.toString("hex",0,max).replace(/(.{2})/g,"$1 ").trim(),this.length>max&&(str+=" ... "),"<Buffer "+str+">"};customInspectSymbol&&(Buffer3.prototype[customInspectSymbol]=Buffer3.prototype.inspect);Buffer3.prototype.compare=function(target,start,end,thisStart,thisEnd){if(isInstance(target,Uint8Array)&&(target=Buffer3.from(target,target.offset,target.byteLength)),!Buffer3.isBuffer(target))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof target);if(start===void 0&&(start=0),end===void 0&&(end=target?target.length:0),thisStart===void 0&&(thisStart=0),thisEnd===void 0&&(thisEnd=this.length),start<0||end>target.length||thisStart<0||thisEnd>this.length)throw new RangeError("out of range index");if(thisStart>=thisEnd&&start>=end)return 0;if(thisStart>=thisEnd)return-1;if(start>=end)return 1;if(start>>>=0,end>>>=0,thisStart>>>=0,thisEnd>>>=0,this===target)return 0;for(var x=thisEnd-thisStart,y=end-start,len=Math.min(x,y),thisCopy=this.slice(thisStart,thisEnd),targetCopy=target.slice(start,end),i=0;i<len;++i)if(thisCopy[i]!==targetCopy[i]){x=thisCopy[i],y=targetCopy[i];break}return x<y?-1:y<x?1:0};function bidirectionalIndexOf(buffer,val,byteOffset,encoding,dir){if(buffer.length===0)return-1;if(typeof byteOffset=="string"?(encoding=byteOffset,byteOffset=0):byteOffset>2147483647?byteOffset=2147483647:byteOffset<-2147483648&&(byteOffset=-2147483648),byteOffset=+byteOffset,numberIsNaN(byteOffset)&&(byteOffset=dir?0:buffer.length-1),byteOffset<0&&(byteOffset=buffer.length+byteOffset),byteOffset>=buffer.length){if(dir)return-1;byteOffset=buffer.length-1}else if(byteOffset<0)if(dir)byteOffset=0;else return-1;if(typeof val=="string"&&(val=Buffer3.from(val,encoding)),Buffer3.isBuffer(val))return val.length===0?-1:arrayIndexOf(buffer,val,byteOffset,encoding,dir);if(typeof val=="number")return val=val&255,typeof Uint8Array.prototype.indexOf=="function"?dir?Uint8Array.prototype.indexOf.call(buffer,val,byteOffset):Uint8Array.prototype.lastIndexOf.call(buffer,val,byteOffset):arrayIndexOf(buffer,[val],byteOffset,encoding,dir);throw new TypeError("val must be string, number or Buffer")}function arrayIndexOf(arr,val,byteOffset,encoding,dir){var indexSize=1,arrLength=arr.length,valLength=val.length;if(encoding!==void 0&&(encoding=String(encoding).toLowerCase(),encoding==="ucs2"||encoding==="ucs-2"||encoding==="utf16le"||encoding==="utf-16le")){if(arr.length<2||val.length<2)return-1;indexSize=2,arrLength/=2,valLength/=2,byteOffset/=2}function read(buf,i2){return indexSize===1?buf[i2]:buf.readUInt16BE(i2*indexSize)}var i;if(dir){var foundIndex=-1;for(i=byteOffset;i<arrLength;i++)if(read(arr,i)===read(val,foundIndex===-1?0:i-foundIndex)){if(foundIndex===-1&&(foundIndex=i),i-foundIndex+1===valLength)return foundIndex*indexSize}else foundIndex!==-1&&(i-=i-foundIndex),foundIndex=-1}else for(byteOffset+valLength>arrLength&&(byteOffset=arrLength-valLength),i=byteOffset;i>=0;i--){for(var found=!0,j=0;j<valLength;j++)if(read(arr,i+j)!==read(val,j)){found=!1;break}if(found)return i}return-1}Buffer3.prototype.includes=function(val,byteOffset,encoding){return this.indexOf(val,byteOffset,encoding)!==-1};Buffer3.prototype.indexOf=function(val,byteOffset,encoding){return bidirectionalIndexOf(this,val,byteOffset,encoding,!0)};Buffer3.prototype.lastIndexOf=function(val,byteOffset,encoding){return bidirectionalIndexOf(this,val,byteOffset,encoding,!1)};function hexWrite(buf,string,offset,length){offset=Number(offset)||0;var remaining=buf.length-offset;length?(length=Number(length),length>remaining&&(length=remaining)):length=remaining;var strLen=string.length;length>strLen/2&&(length=strLen/2);for(var i=0;i<length;++i){var parsed=parseInt(string.substr(i*2,2),16);if(numberIsNaN(parsed))return i;buf[offset+i]=parsed}return i}function utf8Write(buf,string,offset,length){return blitBuffer(utf8ToBytes(string,buf.length-offset),buf,offset,length)}function asciiWrite(buf,string,offset,length){return blitBuffer(asciiToBytes(string),buf,offset,length)}function base64Write(buf,string,offset,length){return blitBuffer(base64ToBytes(string),buf,offset,length)}function ucs2Write(buf,string,offset,length){return blitBuffer(utf16leToBytes(string,buf.length-offset),buf,offset,length)}Buffer3.prototype.write=function(string,offset,length,encoding){if(offset===void 0)encoding="utf8",length=this.length,offset=0;else if(length===void 0&&typeof offset=="string")encoding=offset,length=this.length,offset=0;else if(isFinite(offset))offset=offset>>>0,isFinite(length)?(length=length>>>0,encoding===void 0&&(encoding="utf8")):(encoding=length,length=void 0);else throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");var remaining=this.length-offset;if((length===void 0||length>remaining)&&(length=remaining),string.length>0&&(length<0||offset<0)||offset>this.length)throw new RangeError("Attempt to write outside buffer bounds");encoding||(encoding="utf8");for(var loweredCase=!1;;)switch(encoding){case"hex":return hexWrite(this,string,offset,length);case"utf8":case"utf-8":return utf8Write(this,string,offset,length);case"ascii":case"latin1":case"binary":return asciiWrite(this,string,offset,length);case"base64":return base64Write(this,string,offset,length);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return ucs2Write(this,string,offset,length);default:if(loweredCase)throw new TypeError("Unknown encoding: "+encoding);encoding=(""+encoding).toLowerCase(),loweredCase=!0}};Buffer3.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function base64Slice(buf,start,end){return start===0&&end===buf.length?base64.fromByteArray(buf):base64.fromByteArray(buf.slice(start,end))}function utf8Slice(buf,start,end){end=Math.min(buf.length,end);for(var res=[],i=start;i<end;){var firstByte=buf[i],codePoint=null,bytesPerSequence=firstByte>239?4:firstByte>223?3:firstByte>191?2:1;if(i+bytesPerSequence<=end){var secondByte,thirdByte,fourthByte,tempCodePoint;switch(bytesPerSequence){case 1:firstByte<128&&(codePoint=firstByte);break;case 2:secondByte=buf[i+1],(secondByte&192)===128&&(tempCodePoint=(firstByte&31)<<6|secondByte&63,tempCodePoint>127&&(codePoint=tempCodePoint));break;case 3:secondByte=buf[i+1],thirdByte=buf[i+2],(secondByte&192)===128&&(thirdByte&192)===128&&(tempCodePoint=(firstByte&15)<<12|(secondByte&63)<<6|thirdByte&63,tempCodePoint>2047&&(tempCodePoint<55296||tempCodePoint>57343)&&(codePoint=tempCodePoint));break;case 4:secondByte=buf[i+1],thirdByte=buf[i+2],fourthByte=buf[i+3],(secondByte&192)===128&&(thirdByte&192)===128&&(fourthByte&192)===128&&(tempCodePoint=(firstByte&15)<<18|(secondByte&63)<<12|(thirdByte&63)<<6|fourthByte&63,tempCodePoint>65535&&tempCodePoint<1114112&&(codePoint=tempCodePoint))}}codePoint===null?(codePoint=65533,bytesPerSequence=1):codePoint>65535&&(codePoint-=65536,res.push(codePoint>>>10&1023|55296),codePoint=56320|codePoint&1023),res.push(codePoint),i+=bytesPerSequence}return decodeCodePointsArray(res)}var MAX_ARGUMENTS_LENGTH=4096;function decodeCodePointsArray(codePoints){var len=codePoints.length;if(len<=MAX_ARGUMENTS_LENGTH)return String.fromCharCode.apply(String,codePoints);for(var res="",i=0;i<len;)res+=String.fromCharCode.apply(String,codePoints.slice(i,i+=MAX_ARGUMENTS_LENGTH));return res}function asciiSlice(buf,start,end){var ret="";end=Math.min(buf.length,end);for(var i=start;i<end;++i)ret+=String.fromCharCode(buf[i]&127);return ret}function latin1Slice(buf,start,end){var ret="";end=Math.min(buf.length,end);for(var i=start;i<end;++i)ret+=String.fromCharCode(buf[i]);return ret}function hexSlice(buf,start,end){var len=buf.length;(!start||start<0)&&(start=0),(!end||end<0||end>len)&&(end=len);for(var out="",i=start;i<end;++i)out+=hexSliceLookupTable[buf[i]];return out}function utf16leSlice(buf,start,end){for(var bytes=buf.slice(start,end),res="",i=0;i<bytes.length-1;i+=2)res+=String.fromCharCode(bytes[i]+bytes[i+1]*256);return res}Buffer3.prototype.slice=function(start,end){var len=this.length;start=~~start,end=end===void 0?len:~~end,start<0?(start+=len,start<0&&(start=0)):start>len&&(start=len),end<0?(end+=len,end<0&&(end=0)):end>len&&(end=len),end<start&&(end=start);var newBuf=this.subarray(start,end);return Object.setPrototypeOf(newBuf,Buffer3.prototype),newBuf};function checkOffset(offset,ext,length){if(offset%1!==0||offset<0)throw new RangeError("offset is not uint");if(offset+ext>length)throw new RangeError("Trying to access beyond buffer length")}Buffer3.prototype.readUintLE=Buffer3.prototype.readUIntLE=function(offset,byteLength2,noAssert){offset=offset>>>0,byteLength2=byteLength2>>>0,noAssert||checkOffset(offset,byteLength2,this.length);for(var val=this[offset],mul=1,i=0;++i<byteLength2&&(mul*=256);)val+=this[offset+i]*mul;return val};Buffer3.prototype.readUintBE=Buffer3.prototype.readUIntBE=function(offset,byteLength2,noAssert){offset=offset>>>0,byteLength2=byteLength2>>>0,noAssert||checkOffset(offset,byteLength2,this.length);for(var val=this[offset+--byteLength2],mul=1;byteLength2>0&&(mul*=256);)val+=this[offset+--byteLength2]*mul;return val};Buffer3.prototype.readUint8=Buffer3.prototype.readUInt8=function(offset,noAssert){return offset=offset>>>0,noAssert||checkOffset(offset,1,this.length),this[offset]};Buffer3.prototype.readUint16LE=Buffer3.prototype.readUInt16LE=function(offset,noAssert){return offset=offset>>>0,noAssert||checkOffset(offset,2,this.length),this[offset]|this[offset+1]<<8};Buffer3.prototype.readUint16BE=Buffer3.prototype.readUInt16BE=function(offset,noAssert){return offset=offset>>>0,noAssert||checkOffset(offset,2,this.length),this[offset]<<8|this[offset+1]};Buffer3.prototype.readUint32LE=Buffer3.prototype.readUInt32LE=function(offset,noAssert){return offset=offset>>>0,noAssert||checkOffset(offset,4,this.length),(this[offset]|this[offset+1]<<8|this[offset+2]<<16)+this[offset+3]*16777216};Buffer3.prototype.readUint32BE=Buffer3.prototype.readUInt32BE=function(offset,noAssert){return offset=offset>>>0,noAssert||checkOffset(offset,4,this.length),this[offset]*16777216+(this[offset+1]<<16|this[offset+2]<<8|this[offset+3])};Buffer3.prototype.readIntLE=function(offset,byteLength2,noAssert){offset=offset>>>0,byteLength2=byteLength2>>>0,noAssert||checkOffset(offset,byteLength2,this.length);for(var val=this[offset],mul=1,i=0;++i<byteLength2&&(mul*=256);)val+=this[offset+i]*mul;return mul*=128,val>=mul&&(val-=Math.pow(2,8*byteLength2)),val};Buffer3.prototype.readIntBE=function(offset,byteLength2,noAssert){offset=offset>>>0,byteLength2=byteLength2>>>0,noAssert||checkOffset(offset,byteLength2,this.length);for(var i=byteLength2,mul=1,val=this[offset+--i];i>0&&(mul*=256);)val+=this[offset+--i]*mul;return mul*=128,val>=mul&&(val-=Math.pow(2,8*byteLength2)),val};Buffer3.prototype.readInt8=function(offset,noAssert){return offset=offset>>>0,noAssert||checkOffset(offset,1,this.length),this[offset]&128?(255-this[offset]+1)*-1:this[offset]};Buffer3.prototype.readInt16LE=function(offset,noAssert){offset=offset>>>0,noAssert||checkOffset(offset,2,this.length);var val=this[offset]|this[offset+1]<<8;return val&32768?val|4294901760:val};Buffer3.prototype.readInt16BE=function(offset,noAssert){offset=offset>>>0,noAssert||checkOffset(offset,2,this.length);var val=this[offset+1]|this[offset]<<8;return val&32768?val|4294901760:val};Buffer3.prototype.readInt32LE=function(offset,noAssert){return offset=offset>>>0,noAssert||checkOffset(offset,4,this.length),this[offset]|this[offset+1]<<8|this[offset+2]<<16|this[offset+3]<<24};Buffer3.prototype.readInt32BE=function(offset,noAssert){return offset=offset>>>0,noAssert||checkOffset(offset,4,this.length),this[offset]<<24|this[offset+1]<<16|this[offset+2]<<8|this[offset+3]};Buffer3.prototype.readFloatLE=function(offset,noAssert){return offset=offset>>>0,noAssert||checkOffset(offset,4,this.length),ieee754.read(this,offset,!0,23,4)};Buffer3.prototype.readFloatBE=function(offset,noAssert){return offset=offset>>>0,noAssert||checkOffset(offset,4,this.length),ieee754.read(this,offset,!1,23,4)};Buffer3.prototype.readDoubleLE=function(offset,noAssert){return offset=offset>>>0,noAssert||checkOffset(offset,8,this.length),ieee754.read(this,offset,!0,52,8)};Buffer3.prototype.readDoubleBE=function(offset,noAssert){return offset=offset>>>0,noAssert||checkOffset(offset,8,this.length),ieee754.read(this,offset,!1,52,8)};function checkInt(buf,value,offset,ext,max,min){if(!Buffer3.isBuffer(buf))throw new TypeError('"buffer" argument must be a Buffer instance');if(value>max||value<min)throw new RangeError('"value" argument is out of bounds');if(offset+ext>buf.length)throw new RangeError("Index out of range")}Buffer3.prototype.writeUintLE=Buffer3.prototype.writeUIntLE=function(value,offset,byteLength2,noAssert){if(value=+value,offset=offset>>>0,byteLength2=byteLength2>>>0,!noAssert){var maxBytes=Math.pow(2,8*byteLength2)-1;checkInt(this,value,offset,byteLength2,maxBytes,0)}var mul=1,i=0;for(this[offset]=value&255;++i<byteLength2&&(mul*=256);)this[offset+i]=value/mul&255;return offset+byteLength2};Buffer3.prototype.writeUintBE=Buffer3.prototype.writeUIntBE=function(value,offset,byteLength2,noAssert){if(value=+value,offset=offset>>>0,byteLength2=byteLength2>>>0,!noAssert){var maxBytes=Math.pow(2,8*byteLength2)-1;checkInt(this,value,offset,byteLength2,maxBytes,0)}var i=byteLength2-1,mul=1;for(this[offset+i]=value&255;--i>=0&&(mul*=256);)this[offset+i]=value/mul&255;return offset+byteLength2};Buffer3.prototype.writeUint8=Buffer3.prototype.writeUInt8=function(value,offset,noAssert){return value=+value,offset=offset>>>0,noAssert||checkInt(this,value,offset,1,255,0),this[offset]=value&255,offset+1};Buffer3.prototype.writeUint16LE=Buffer3.prototype.writeUInt16LE=function(value,offset,noAssert){return value=+value,offset=offset>>>0,noAssert||checkInt(this,value,offset,2,65535,0),this[offset]=value&255,this[offset+1]=value>>>8,offset+2};Buffer3.prototype.writeUint16BE=Buffer3.prototype.writeUInt16BE=function(value,offset,noAssert){return value=+value,offset=offset>>>0,noAssert||checkInt(this,value,offset,2,65535,0),this[offset]=value>>>8,this[offset+1]=value&255,offset+2};Buffer3.prototype.writeUint32LE=Buffer3.prototype.writeUInt32LE=function(value,offset,noAssert){return value=+value,offset=offset>>>0,noAssert||checkInt(this,value,offset,4,4294967295,0),this[offset+3]=value>>>24,this[offset+2]=value>>>16,this[offset+1]=value>>>8,this[offset]=value&255,offset+4};Buffer3.prototype.writeUint32BE=Buffer3.prototype.writeUInt32BE=function(value,offset,noAssert){return value=+value,offset=offset>>>0,noAssert||checkInt(this,value,offset,4,4294967295,0),this[offset]=value>>>24,this[offset+1]=value>>>16,this[offset+2]=value>>>8,this[offset+3]=value&255,offset+4};Buffer3.prototype.writeIntLE=function(value,offset,byteLength2,noAssert){if(value=+value,offset=offset>>>0,!noAssert){var limit=Math.pow(2,8*byteLength2-1);checkInt(this,value,offset,byteLength2,limit-1,-limit)}var i=0,mul=1,sub=0;for(this[offset]=value&255;++i<byteLength2&&(mul*=256);)value<0&&sub===0&&this[offset+i-1]!==0&&(sub=1),this[offset+i]=(value/mul>>0)-sub&255;return offset+byteLength2};Buffer3.prototype.writeIntBE=function(value,offset,byteLength2,noAssert){if(value=+value,offset=offset>>>0,!noAssert){var limit=Math.pow(2,8*byteLength2-1);checkInt(this,value,offset,byteLength2,limit-1,-limit)}var i=byteLength2-1,mul=1,sub=0;for(this[offset+i]=value&255;--i>=0&&(mul*=256);)value<0&&sub===0&&this[offset+i+1]!==0&&(sub=1),this[offset+i]=(value/mul>>0)-sub&255;return offset+byteLength2};Buffer3.prototype.writeInt8=function(value,offset,noAssert){return value=+value,offset=offset>>>0,noAssert||checkInt(this,value,offset,1,127,-128),value<0&&(value=255+value+1),this[offset]=value&255,offset+1};Buffer3.prototype.writeInt16LE=function(value,offset,noAssert){return value=+value,offset=offset>>>0,noAssert||checkInt(this,value,offset,2,32767,-32768),this[offset]=value&255,this[offset+1]=value>>>8,offset+2};Buffer3.prototype.writeInt16BE=function(value,offset,noAssert){return value=+value,offset=offset>>>0,noAssert||checkInt(this,value,offset,2,32767,-32768),this[offset]=value>>>8,this[offset+1]=value&255,offset+2};Buffer3.prototype.writeInt32LE=function(value,offset,noAssert){return value=+value,offset=offset>>>0,noAssert||checkInt(this,value,offset,4,2147483647,-2147483648),this[offset]=value&255,this[offset+1]=value>>>8,this[offset+2]=value>>>16,this[offset+3]=value>>>24,offset+4};Buffer3.prototype.writeInt32BE=function(value,offset,noAssert){return value=+value,offset=offset>>>0,noAssert||checkInt(this,value,offset,4,2147483647,-2147483648),value<0&&(value=4294967295+value+1),this[offset]=value>>>24,this[offset+1]=value>>>16,this[offset+2]=value>>>8,this[offset+3]=value&255,offset+4};function checkIEEE754(buf,value,offset,ext,max,min){if(offset+ext>buf.length)throw new RangeError("Index out of range");if(offset<0)throw new RangeError("Index out of range")}function writeFloat(buf,value,offset,littleEndian,noAssert){return value=+value,offset=offset>>>0,noAssert||checkIEEE754(buf,value,offset,4,34028234663852886e22,-34028234663852886e22),ieee754.write(buf,value,offset,littleEndian,23,4),offset+4}Buffer3.prototype.writeFloatLE=function(value,offset,noAssert){return writeFloat(this,value,offset,!0,noAssert)};Buffer3.prototype.writeFloatBE=function(value,offset,noAssert){return writeFloat(this,value,offset,!1,noAssert)};function writeDouble(buf,value,offset,littleEndian,noAssert){return value=+value,offset=offset>>>0,noAssert||checkIEEE754(buf,value,offset,8,17976931348623157e292,-17976931348623157e292),ieee754.write(buf,value,offset,littleEndian,52,8),offset+8}Buffer3.prototype.writeDoubleLE=function(value,offset,noAssert){return writeDouble(this,value,offset,!0,noAssert)};Buffer3.prototype.writeDoubleBE=function(value,offset,noAssert){return writeDouble(this,value,offset,!1,noAssert)};Buffer3.prototype.copy=function(target,targetStart,start,end){if(!Buffer3.isBuffer(target))throw new TypeError("argument should be a Buffer");if(start||(start=0),!end&&end!==0&&(end=this.length),targetStart>=target.length&&(targetStart=target.length),targetStart||(targetStart=0),end>0&&end<start&&(end=start),end===start||target.length===0||this.length===0)return 0;if(targetStart<0)throw new RangeError("targetStart out of bounds");if(start<0||start>=this.length)throw new RangeError("Index out of range");if(end<0)throw new RangeError("sourceEnd out of bounds");end>this.length&&(end=this.length),target.length-targetStart<end-start&&(end=target.length-targetStart+start);var len=end-start;return this===target&&typeof Uint8Array.prototype.copyWithin=="function"?this.copyWithin(targetStart,start,end):Uint8Array.prototype.set.call(target,this.subarray(start,end),targetStart),len};Buffer3.prototype.fill=function(val,start,end,encoding){if(typeof val=="string"){if(typeof start=="string"?(encoding=start,start=0,end=this.length):typeof end=="string"&&(encoding=end,end=this.length),encoding!==void 0&&typeof encoding!="string")throw new TypeError("encoding must be a string");if(typeof encoding=="string"&&!Buffer3.isEncoding(encoding))throw new TypeError("Unknown encoding: "+encoding);if(val.length===1){var code=val.charCodeAt(0);(encoding==="utf8"&&code<128||encoding==="latin1")&&(val=code)}}else typeof val=="number"?val=val&255:typeof val=="boolean"&&(val=Number(val));if(start<0||this.length<start||this.length<end)throw new RangeError("Out of range index");if(end<=start)return this;start=start>>>0,end=end===void 0?this.length:end>>>0,val||(val=0);var i;if(typeof val=="number")for(i=start;i<end;++i)this[i]=val;else{var bytes=Buffer3.isBuffer(val)?val:Buffer3.from(val,encoding),len=bytes.length;if(len===0)throw new TypeError('The value "'+val+'" is invalid for argument "value"');for(i=0;i<end-start;++i)this[i+start]=bytes[i%len]}return this};var INVALID_BASE64_RE=/[^+/0-9A-Za-z-_]/g;function base64clean(str){if(str=str.split("=")[0],str=str.trim().replace(INVALID_BASE64_RE,""),str.length<2)return"";for(;str.length%4!==0;)str=str+"=";return str}function utf8ToBytes(string,units){units=units||1/0;for(var codePoint,length=string.length,leadSurrogate=null,bytes=[],i=0;i<length;++i){if(codePoint=string.charCodeAt(i),codePoint>55295&&codePoint<57344){if(!leadSurrogate){if(codePoint>56319){(units-=3)>-1&&bytes.push(239,191,189);continue}else if(i+1===length){(units-=3)>-1&&bytes.push(239,191,189);continue}leadSurrogate=codePoint;continue}if(codePoint<56320){(units-=3)>-1&&bytes.push(239,191,189),leadSurrogate=codePoint;continue}codePoint=(leadSurrogate-55296<<10|codePoint-56320)+65536}else leadSurrogate&&(units-=3)>-1&&bytes.push(239,191,189);if(leadSurrogate=null,codePoint<128){if((units-=1)<0)break;bytes.push(codePoint)}else if(codePoint<2048){if((units-=2)<0)break;bytes.push(codePoint>>6|192,codePoint&63|128)}else if(codePoint<65536){if((units-=3)<0)break;bytes.push(codePoint>>12|224,codePoint>>6&63|128,codePoint&63|128)}else if(codePoint<1114112){if((units-=4)<0)break;bytes.push(codePoint>>18|240,codePoint>>12&63|128,codePoint>>6&63|128,codePoint&63|128)}else throw new Error("Invalid code point")}return bytes}function asciiToBytes(str){for(var byteArray=[],i=0;i<str.length;++i)byteArray.push(str.charCodeAt(i)&255);return byteArray}function utf16leToBytes(str,units){for(var c,hi,lo,byteArray=[],i=0;i<str.length&&!((units-=2)<0);++i)c=str.charCodeAt(i),hi=c>>8,lo=c%256,byteArray.push(lo),byteArray.push(hi);return byteArray}function base64ToBytes(str){return base64.toByteArray(base64clean(str))}function blitBuffer(src,dst,offset,length){for(var i=0;i<length&&!(i+offset>=dst.length||i>=src.length);++i)dst[i+offset]=src[i];return i}function isInstance(obj,type){return obj instanceof type||obj!=null&&obj.constructor!=null&&obj.constructor.name!=null&&obj.constructor.name===type.name}function numberIsNaN(obj){return obj!==obj}var hexSliceLookupTable=function(){for(var alphabet="0123456789abcdef",table=new Array(256),i=0;i<16;++i)for(var i16=i*16,j=0;j<16;++j)table[i16+j]=alphabet[i]+alphabet[j];return table}()}});var require_browser=__commonJS({"node_modules/process/browser.js"(exports,module){init_define_process_env();init_shim();var process2=module.exports={},cachedSetTimeout,cachedClearTimeout;function defaultSetTimout(){throw new Error("setTimeout has not been defined")}function defaultClearTimeout(){throw new Error("clearTimeout has not been defined")}(function(){try{typeof setTimeout=="function"?cachedSetTimeout=setTimeout:cachedSetTimeout=defaultSetTimout}catch(e){cachedSetTimeout=defaultSetTimout}try{typeof clearTimeout=="function"?cachedClearTimeout=clearTimeout:cachedClearTimeout=defaultClearTimeout}catch(e){cachedClearTimeout=defaultClearTimeout}})();function runTimeout(fun){if(cachedSetTimeout===setTimeout)return setTimeout(fun,0);if((cachedSetTimeout===defaultSetTimout||!cachedSetTimeout)&&setTimeout)return cachedSetTimeout=setTimeout,setTimeout(fun,0);try{return cachedSetTimeout(fun,0)}catch(e){try{return cachedSetTimeout.call(null,fun,0)}catch(e2){return cachedSetTimeout.call(this,fun,0)}}}function runClearTimeout(marker){if(cachedClearTimeout===clearTimeout)return clearTimeout(marker);if((cachedClearTimeout===defaultClearTimeout||!cachedClearTimeout)&&clearTimeout)return cachedClearTimeout=clearTimeout,clearTimeout(marker);try{return cachedClearTimeout(marker)}catch(e){try{return cachedClearTimeout.call(null,marker)}catch(e2){return cachedClearTimeout.call(this,marker)}}}var queue=[],draining=!1,currentQueue,queueIndex=-1;function cleanUpNextTick(){!draining||!currentQueue||(draining=!1,currentQueue.length?queue=currentQueue.concat(queue):queueIndex=-1,queue.length&&drainQueue())}function drainQueue(){if(!draining){var timeout=runTimeout(cleanUpNextTick);draining=!0;for(var len=queue.length;len;){for(currentQueue=queue,queue=[];++queueIndex<len;)currentQueue&&currentQueue[queueIndex].run();queueIndex=-1,len=queue.length}currentQueue=null,draining=!1,runClearTimeout(timeout)}}process2.nextTick=function(fun){var args=new Array(arguments.length-1);if(arguments.length>1)for(var i=1;i<arguments.length;i++)args[i-1]=arguments[i];queue.push(new Item(fun,args)),queue.length===1&&!draining&&runTimeout(drainQueue)};function Item(fun,array){this.fun=fun,this.array=array}Item.prototype.run=function(){this.fun.apply(null,this.array)};process2.title="browser";process2.browser=!0;process2.env={};process2.argv=[];process2.version="";process2.versions={};function noop(){}process2.on=noop;process2.addListener=noop;process2.once=noop;process2.off=noop;process2.removeListener=noop;process2.removeAllListeners=noop;process2.emit=noop;process2.prependListener=noop;process2.prependOnceListener=noop;process2.listeners=function(name){return[]};process2.binding=function(name){throw new Error("process.binding is not supported")};process2.cwd=function(){return"/"};process2.chdir=function(dir){throw new Error("process.chdir is not supported")};process2.umask=function(){return 0}}});var import_buffer,import_process,_globalThis,init_shim=__esm({"node_modules/node-stdlib-browser/helpers/esbuild/shim.js"(){import_buffer=__toESM(require_buffer()),import_process=__toESM(require_browser()),_globalThis=function(Object2){function get(){var _global3=this||self;return delete Object2.prototype.__magic__,_global3}if(typeof globalThis=="object")return globalThis;if(this)return get();Object2.defineProperty(Object2.prototype,"__magic__",{configurable:!0,get});var _global2=__magic__;return _global2}(Object)}});var require_global=__commonJS({"node_modules/core-js/internals/global.js"(exports,module){"use strict";init_define_process_env();init_shim();var check=function(it){return it&&it.Math===Math&&it};module.exports=check(typeof globalThis=="object"&&globalThis)||check(typeof window=="object"&&window)||check(typeof self=="object"&&self)||check(typeof window=="object"&&window)||check(typeof exports=="object"&&exports)||function(){return this}()||Function("return this")()}});var require_fails=__commonJS({"node_modules/core-js/internals/fails.js"(exports,module){"use strict";init_define_process_env();init_shim();module.exports=function(exec){try{return!!exec()}catch(error){return!0}}}});var require_descriptors=__commonJS({"node_modules/core-js/internals/descriptors.js"(exports,module){"use strict";init_define_process_env();init_shim();var fails=require_fails();module.exports=!fails(function(){return Object.defineProperty({},1,{get:function(){return 7}})[1]!==7})}});var require_function_bind_native=__commonJS({"node_modules/core-js/internals/function-bind-native.js"(exports,module){"use strict";init_define_process_env();init_shim();var fails=require_fails();module.exports=!fails(function(){var test=(function(){}).bind();return typeof test!="function"||test.hasOwnProperty("prototype")})}});var require_function_call=__commonJS({"node_modules/core-js/internals/function-call.js"(exports,module){"use strict";init_define_process_env();init_shim();var NATIVE_BIND=require_function_bind_native(),call=Function.prototype.call;module.exports=NATIVE_BIND?call.bind(call):function(){return call.apply(call,arguments)}}});var require_object_property_is_enumerable=__commonJS({"node_modules/core-js/internals/object-property-is-enumerable.js"(exports){"use strict";init_define_process_env();init_shim();var $propertyIsEnumerable={}.propertyIsEnumerable,getOwnPropertyDescriptor=Object.getOwnPropertyDescriptor,NASHORN_BUG=getOwnPropertyDescriptor&&!$propertyIsEnumerable.call({1:2},1);exports.f=NASHORN_BUG?function(V){var descriptor=getOwnPropertyDescriptor(this,V);return!!descriptor&&descriptor.enumerable}:$propertyIsEnumerable}});var require_create_property_descriptor=__commonJS({"node_modules/core-js/internals/create-property-descriptor.js"(exports,module){"use strict";init_define_process_env();init_shim();module.exports=function(bitmap,value){return{enumerable:!(bitmap&1),configurable:!(bitmap&2),writable:!(bitmap&4),value}}}});var require_function_uncurry_this=__commonJS({"node_modules/core-js/internals/function-uncurry-this.js"(exports,module){"use strict";init_define_process_env();init_shim();var NATIVE_BIND=require_function_bind_native(),FunctionPrototype=Function.prototype,call=FunctionPrototype.call,uncurryThisWithBind=NATIVE_BIND&&FunctionPrototype.bind.bind(call,call);module.exports=NATIVE_BIND?uncurryThisWithBind:function(fn){return function(){return call.apply(fn,arguments)}}}});var require_classof_raw=__commonJS({"node_modules/core-js/internals/classof-raw.js"(exports,module){"use strict";init_define_process_env();init_shim();var uncurryThis=require_function_uncurry_this(),toString=uncurryThis({}.toString),stringSlice=uncurryThis("".slice);module.exports=function(it){return stringSlice(toString(it),8,-1)}}});var require_indexed_object=__commonJS({"node_modules/core-js/internals/indexed-object.js"(exports,module){"use strict";init_define_process_env();init_shim();var uncurryThis=require_function_uncurry_this(),fails=require_fails(),classof=require_classof_raw(),$Object=Object,split=uncurryThis("".split);module.exports=fails(function(){return!$Object("z").propertyIsEnumerable(0)})?function(it){return classof(it)==="String"?split(it,""):$Object(it)}:$Object}});var require_is_null_or_undefined=__commonJS({"node_modules/core-js/internals/is-null-or-undefined.js"(exports,module){"use strict";init_define_process_env();init_shim();module.exports=function(it){return it==null}}});var require_require_object_coercible=__commonJS({"node_modules/core-js/internals/require-object-coercible.js"(exports,module){"use strict";init_define_process_env();init_shim();var isNullOrUndefined=require_is_null_or_undefined(),$TypeError=TypeError;module.exports=function(it){if(isNullOrUndefined(it))throw new $TypeError("Can't call method on "+it);return it}}});var require_to_indexed_object=__commonJS({"node_modules/core-js/internals/to-indexed-object.js"(exports,module){"use strict";init_define_process_env();init_shim();var IndexedObject=require_indexed_object(),requireObjectCoercible=require_require_object_coercible();module.exports=function(it){return IndexedObject(requireObjectCoercible(it))}}});var require_is_callable=__commonJS({"node_modules/core-js/internals/is-callable.js"(exports,module){"use strict";init_define_process_env();init_shim();var documentAll=typeof document=="object"&&document.all;module.exports=typeof documentAll>"u"&&documentAll!==void 0?function(argument){return typeof argument=="function"||argument===documentAll}:function(argument){return typeof argument=="function"}}});var require_is_object=__commonJS({"node_modules/core-js/internals/is-object.js"(exports,module){"use strict";init_define_process_env();init_shim();var isCallable=require_is_callable();module.exports=function(it){return typeof it=="object"?it!==null:isCallable(it)}}});var require_get_built_in=__commonJS({"node_modules/core-js/internals/get-built-in.js"(exports,module){"use strict";init_define_process_env();init_shim();var global=require_global(),isCallable=require_is_callable(),aFunction=function(argument){return isCallable(argument)?argument:void 0};module.exports=function(namespace,method){return arguments.length<2?aFunction(global[namespace]):global[namespace]&&global[namespace][method]}}});var require_object_is_prototype_of=__commonJS({"node_modules/core-js/internals/object-is-prototype-of.js"(exports,module){"use strict";init_define_process_env();init_shim();var uncurryThis=require_function_uncurry_this();module.exports=uncurryThis({}.isPrototypeOf)}});var require_engine_user_agent=__commonJS({"node_modules/core-js/internals/engine-user-agent.js"(exports,module){"use strict";init_define_process_env();init_shim();module.exports=typeof navigator<"u"&&String(navigator.userAgent)||""}});var require_engine_v8_version=__commonJS({"node_modules/core-js/internals/engine-v8-version.js"(exports,module){"use strict";init_define_process_env();init_shim();var global=require_global(),userAgent=require_engine_user_agent(),process2=global.process,Deno=global.Deno,versions=process2&&process2.versions||Deno&&Deno.version,v8=versions&&versions.v8,match,version;v8&&(match=v8.split("."),version=match[0]>0&&match[0]<4?1:+(match[0]+match[1]));!version&&userAgent&&(match=userAgent.match(/Edge\/(\d+)/),(!match||match[1]>=74)&&(match=userAgent.match(/Chrome\/(\d+)/),match&&(version=+match[1])));module.exports=version}});var require_symbol_constructor_detection=__commonJS({"node_modules/core-js/internals/symbol-constructor-detection.js"(exports,module){"use strict";init_define_process_env();init_shim();var V8_VERSION=require_engine_v8_version(),fails=require_fails(),global=require_global(),$String=global.String;module.exports=!!Object.getOwnPropertySymbols&&!fails(function(){var symbol=Symbol("symbol detection");return!$String(symbol)||!(Object(symbol)instanceof Symbol)||!Symbol.sham&&V8_VERSION&&V8_VERSION<41})}});var require_use_symbol_as_uid=__commonJS({"node_modules/core-js/internals/use-symbol-as-uid.js"(exports,module){"use strict";init_define_process_env();init_shim();var NATIVE_SYMBOL=require_symbol_constructor_detection();module.exports=NATIVE_SYMBOL&&!Symbol.sham&&typeof Symbol.iterator=="symbol"}});var require_is_symbol=__commonJS({"node_modules/core-js/internals/is-symbol.js"(exports,module){"use strict";init_define_process_env();init_shim();var getBuiltIn=require_get_built_in(),isCallable=require_is_callable(),isPrototypeOf=require_object_is_prototype_of(),USE_SYMBOL_AS_UID=require_use_symbol_as_uid(),$Object=Object;module.exports=USE_SYMBOL_AS_UID?function(it){return typeof it=="symbol"}:function(it){var $Symbol=getBuiltIn("Symbol");return isCallable($Symbol)&&isPrototypeOf($Symbol.prototype,$Object(it))}}});var require_try_to_string=__commonJS({"node_modules/core-js/internals/try-to-string.js"(exports,module){"use strict";init_define_process_env();init_shim();var $String=String;module.exports=function(argument){try{return $String(argument)}catch(error){return"Object"}}}});var require_a_callable=__commonJS({"node_modules/core-js/internals/a-callable.js"(exports,module){"use strict";init_define_process_env();init_shim();var isCallable=require_is_callable(),tryToString=require_try_to_string(),$TypeError=TypeError;module.exports=function(argument){if(isCallable(argument))return argument;throw new $TypeError(tryToString(argument)+" is not a function")}}});var require_get_method=__commonJS({"node_modules/core-js/internals/get-method.js"(exports,module){"use strict";init_define_process_env();init_shim();var aCallable=require_a_callable(),isNullOrUndefined=require_is_null_or_undefined();module.exports=function(V,P){var func=V[P];return isNullOrUndefined(func)?void 0:aCallable(func)}}});var require_ordinary_to_primitive=__commonJS({"node_modules/core-js/internals/ordinary-to-primitive.js"(exports,module){"use strict";init_define_process_env();init_shim();var call=require_function_call(),isCallable=require_is_callable(),isObject=require_is_object(),$TypeError=TypeError;module.exports=function(input,pref){var fn,val;if(pref==="string"&&isCallable(fn=input.toString)&&!isObject(val=call(fn,input))||isCallable(fn=input.valueOf)&&!isObject(val=call(fn,input))||pref!=="string"&&isCallable(fn=input.toString)&&!isObject(val=call(fn,input)))return val;throw new $TypeError("Can't convert object to primitive value")}}});var require_is_pure=__commonJS({"node_modules/core-js/internals/is-pure.js"(exports,module){"use strict";init_define_process_env();init_shim();module.exports=!1}});var require_define_global_property=__commonJS({"node_modules/core-js/internals/define-global-property.js"(exports,module){"use strict";init_define_process_env();init_shim();var global=require_global(),defineProperty=Object.defineProperty;module.exports=function(key,value){try{defineProperty(global,key,{value,configurable:!0,writable:!0})}catch(error){global[key]=value}return value}}});var require_shared_store=__commonJS({"node_modules/core-js/internals/shared-store.js"(exports,module){"use strict";init_define_process_env();init_shim();var global=require_global(),defineGlobalProperty=require_define_global_property(),SHARED="__core-js_shared__",store=global[SHARED]||defineGlobalProperty(SHARED,{});module.exports=store}});var require_shared=__commonJS({"node_modules/core-js/internals/shared.js"(exports,module){"use strict";init_define_process_env();init_shim();var IS_PURE=require_is_pure(),store=require_shared_store();(module.exports=function(key,value){return store[key]||(store[key]=value!==void 0?value:{})})("versions",[]).push({version:"3.35.1",mode:IS_PURE?"pure":"global",copyright:"\xA9 2014-2024 Denis Pushkarev (zloirock.ru)",license:"https://github.com/zloirock/core-js/blob/v3.35.1/LICENSE",source:"https://github.com/zloirock/core-js"})}});var require_to_object=__commonJS({"node_modules/core-js/internals/to-object.js"(exports,module){"use strict";init_define_process_env();init_shim();var requireObjectCoercible=require_require_object_coercible(),$Object=Object;module.exports=function(argument){return $Object(requireObjectCoercible(argument))}}});var require_has_own_property=__commonJS({"node_modules/core-js/internals/has-own-property.js"(exports,module){"use strict";init_define_process_env();init_shim();var uncurryThis=require_function_uncurry_this(),toObject=require_to_object(),hasOwnProperty=uncurryThis({}.hasOwnProperty);module.exports=Object.hasOwn||function(it,key){return hasOwnProperty(toObject(it),key)}}});var require_uid=__commonJS({"node_modules/core-js/internals/uid.js"(exports,module){"use strict";init_define_process_env();init_shim();var uncurryThis=require_function_uncurry_this(),id=0,postfix=Math.random(),toString=uncurryThis(1 .toString);module.exports=function(key){return"Symbol("+(key===void 0?"":key)+")_"+toString(++id+postfix,36)}}});var require_well_known_symbol=__commonJS({"node_modules/core-js/internals/well-known-symbol.js"(exports,module){"use strict";init_define_process_env();init_shim();var global=require_global(),shared=require_shared(),hasOwn=require_has_own_property(),uid=require_uid(),NATIVE_SYMBOL=require_symbol_constructor_detection(),USE_SYMBOL_AS_UID=require_use_symbol_as_uid(),Symbol2=global.Symbol,WellKnownSymbolsStore=shared("wks"),createWellKnownSymbol=USE_SYMBOL_AS_UID?Symbol2.for||Symbol2:Symbol2&&Symbol2.withoutSetter||uid;module.exports=function(name){return hasOwn(WellKnownSymbolsStore,name)||(WellKnownSymbolsStore[name]=NATIVE_SYMBOL&&hasOwn(Symbol2,name)?Symbol2[name]:createWellKnownSymbol("Symbol."+name)),WellKnownSymbolsStore[name]}}});var require_to_primitive=__commonJS({"node_modules/core-js/internals/to-primitive.js"(exports,module){"use strict";init_define_process_env();init_shim();var call=require_function_call(),isObject=require_is_object(),isSymbol=require_is_symbol(),getMethod=require_get_method(),ordinaryToPrimitive=require_ordinary_to_primitive(),wellKnownSymbol=require_well_known_symbol(),$TypeError=TypeError,TO_PRIMITIVE=wellKnownSymbol("toPrimitive");module.exports=function(input,pref){if(!isObject(input)||isSymbol(input))return input;var exoticToPrim=getMethod(input,TO_PRIMITIVE),result;if(exoticToPrim){if(pref===void 0&&(pref="default"),result=call(exoticToPrim,input,pref),!isObject(result)||isSymbol(result))return result;throw new $TypeError("Can't convert object to primitive value")}return pref===void 0&&(pref="number"),ordinaryToPrimitive(input,pref)}}});var require_to_property_key=__commonJS({"node_modules/core-js/internals/to-property-key.js"(exports,module){"use strict";init_define_process_env();init_shim();var toPrimitive=require_to_primitive(),isSymbol=require_is_symbol();module.exports=function(argument){var key=toPrimitive(argument,"string");return isSymbol(key)?key:key+""}}});var require_document_create_element=__commonJS({"node_modules/core-js/internals/document-create-element.js"(exports,module){"use strict";init_define_process_env();init_shim();var global=require_global(),isObject=require_is_object(),document2=global.document,EXISTS=isObject(document2)&&isObject(document2.createElement);module.exports=function(it){return EXISTS?document2.createElement(it):{}}}});var require_ie8_dom_define=__commonJS({"node_modules/core-js/internals/ie8-dom-define.js"(exports,module){"use strict";init_define_process_env();init_shim();var DESCRIPTORS=require_descriptors(),fails=require_fails(),createElement=require_document_create_element();module.exports=!DESCRIPTORS&&!fails(function(){return Object.defineProperty(createElement("div"),"a",{get:function(){return 7}}).a!==7})}});var require_object_get_own_property_descriptor=__commonJS({"node_modules/core-js/internals/object-get-own-property-descriptor.js"(exports){"use strict";init_define_process_env();init_shim();var DESCRIPTORS=require_descriptors(),call=require_function_call(),propertyIsEnumerableModule=require_object_property_is_enumerable(),createPropertyDescriptor=require_create_property_descriptor(),toIndexedObject=require_to_indexed_object(),toPropertyKey=require_to_property_key(),hasOwn=require_has_own_property(),IE8_DOM_DEFINE=require_ie8_dom_define(),$getOwnPropertyDescriptor=Object.getOwnPropertyDescriptor;exports.f=DESCRIPTORS?$getOwnPropertyDescriptor:function(O,P){if(O=toIndexedObject(O),P=toPropertyKey(P),IE8_DOM_DEFINE)try{return $getOwnPropertyDescriptor(O,P)}catch(error){}if(hasOwn(O,P))return createPropertyDescriptor(!call(propertyIsEnumerableModule.f,O,P),O[P])}}});var require_v8_prototype_define_bug=__commonJS({"node_modules/core-js/internals/v8-prototype-define-bug.js"(exports,module){"use strict";init_define_process_env();init_shim();var DESCRIPTORS=require_descriptors(),fails=require_fails();module.exports=DESCRIPTORS&&fails(function(){return Object.defineProperty(function(){},"prototype",{value:42,writable:!1}).prototype!==42})}});var require_an_object=__commonJS({"node_modules/core-js/internals/an-object.js"(exports,module){"use strict";init_define_process_env();init_shim();var isObject=require_is_object(),$String=String,$TypeError=TypeError;module.exports=function(argument){if(isObject(argument))return argument;throw new $TypeError($String(argument)+" is not an object")}}});var require_object_define_property=__commonJS({"node_modules/core-js/internals/object-define-property.js"(exports){"use strict";init_define_process_env();init_shim();var DESCRIPTORS=require_descriptors(),IE8_DOM_DEFINE=require_ie8_dom_define(),V8_PROTOTYPE_DEFINE_BUG=require_v8_prototype_define_bug(),anObject=require_an_object(),toPropertyKey=require_to_property_key(),$TypeError=TypeError,$defineProperty=Object.defineProperty,$getOwnPropertyDescriptor=Object.getOwnPropertyDescriptor,ENUMERABLE="enumerable",CONFIGURABLE="configurable",WRITABLE="writable";exports.f=DESCRIPTORS?V8_PROTOTYPE_DEFINE_BUG?function(O,P,Attributes){if(anObject(O),P=toPropertyKey(P),anObject(Attributes),typeof O=="function"&&P==="prototype"&&"value"in Attributes&&WRITABLE in Attributes&&!Attributes[WRITABLE]){var current=$getOwnPropertyDescriptor(O,P);current&&current[WRITABLE]&&(O[P]=Attributes.value,Attributes={configurable:CONFIGURABLE in Attributes?Attributes[CONFIGURABLE]:current[CONFIGURABLE],enumerable:ENUMERABLE in Attributes?Attributes[ENUMERABLE]:current[ENUMERABLE],writable:!1})}return $defineProperty(O,P,Attributes)}:$defineProperty:function(O,P,Attributes){if(anObject(O),P=toPropertyKey(P),anObject(Attributes),IE8_DOM_DEFINE)try{return $defineProperty(O,P,Attributes)}catch(error){}if("get"in Attributes||"set"in Attributes)throw new $TypeError("Accessors not supported");return"value"in Attributes&&(O[P]=Attributes.value),O}}});var require_create_non_enumerable_property=__commonJS({"node_modules/core-js/internals/create-non-enumerable-property.js"(exports,module){"use strict";init_define_process_env();init_shim();var DESCRIPTORS=require_descriptors(),definePropertyModule=require_object_define_property(),createPropertyDescriptor=require_create_property_descriptor();module.exports=DESCRIPTORS?function(object,key,value){return definePropertyModule.f(object,key,createPropertyDescriptor(1,value))}:function(object,key,value){return object[key]=value,object}}});var require_function_name=__commonJS({"node_modules/core-js/internals/function-name.js"(exports,module){"use strict";init_define_process_env();init_shim();var DESCRIPTORS=require_descriptors(),hasOwn=require_has_own_property(),FunctionPrototype=Function.prototype,getDescriptor=DESCRIPTORS&&Object.getOwnPropertyDescriptor,EXISTS=hasOwn(FunctionPrototype,"name"),PROPER=EXISTS&&(function(){}).name==="something",CONFIGURABLE=EXISTS&&(!DESCRIPTORS||DESCRIPTORS&&getDescriptor(FunctionPrototype,"name").configurable);module.exports={EXISTS,PROPER,CONFIGURABLE}}});var require_inspect_source=__commonJS({"node_modules/core-js/internals/inspect-source.js"(exports,module){"use strict";init_define_process_env();init_shim();var uncurryThis=require_function_uncurry_this(),isCallable=require_is_callable(),store=require_shared_store(),functionToString=uncurryThis(Function.toString);isCallable(store.inspectSource)||(store.inspectSource=function(it){return functionToString(it)});module.exports=store.inspectSource}});var require_weak_map_basic_detection=__commonJS({"node_modules/core-js/internals/weak-map-basic-detection.js"(exports,module){"use strict";init_define_process_env();init_shim();var global=require_global(),isCallable=require_is_callable(),WeakMap=global.WeakMap;module.exports=isCallable(WeakMap)&&/native code/.test(String(WeakMap))}});var require_shared_key=__commonJS({"node_modules/core-js/internals/shared-key.js"(exports,module){"use strict";init_define_process_env();init_shim();var shared=require_shared(),uid=require_uid(),keys=shared("keys");module.exports=function(key){return keys[key]||(keys[key]=uid(key))}}});var require_hidden_keys=__commonJS({"node_modules/core-js/internals/hidden-keys.js"(exports,module){"use strict";init_define_process_env();init_shim();module.exports={}}});var require_internal_state=__commonJS({"node_modules/core-js/internals/internal-state.js"(exports,module){"use strict";init_define_process_env();init_shim();var NATIVE_WEAK_MAP=require_weak_map_basic_detection(),global=require_global(),isObject=require_is_object(),createNonEnumerableProperty=require_create_non_enumerable_property(),hasOwn=require_has_own_property(),shared=require_shared_store(),sharedKey=require_shared_key(),hiddenKeys=require_hidden_keys(),OBJECT_ALREADY_INITIALIZED="Object already initialized",TypeError2=global.TypeError,WeakMap=global.WeakMap,set,get,has,enforce=function(it){return has(it)?get(it):set(it,{})},getterFor=function(TYPE){return function(it){var state;if(!isObject(it)||(state=get(it)).type!==TYPE)throw new TypeError2("Incompatible receiver, "+TYPE+" required");return state}};NATIVE_WEAK_MAP||shared.state?(store=shared.state||(shared.state=new WeakMap),store.get=store.get,store.has=store.has,store.set=store.set,set=function(it,metadata){if(store.has(it))throw new TypeError2(OBJECT_ALREADY_INITIALIZED);return metadata.facade=it,store.set(it,metadata),metadata},get=function(it){return store.get(it)||{}},has=function(it){return store.has(it)}):(STATE=sharedKey("state"),hiddenKeys[STATE]=!0,set=function(it,metadata){if(hasOwn(it,STATE))throw new TypeError2(OBJECT_ALREADY_INITIALIZED);return metadata.facade=it,createNonEnumerableProperty(it,STATE,metadata),metadata},get=function(it){return hasOwn(it,STATE)?it[STATE]:{}},has=function(it){return hasOwn(it,STATE)});var store,STATE;module.exports={set,get,has,enforce,getterFor}}});var require_make_built_in=__commonJS({"node_modules/core-js/internals/make-built-in.js"(exports,module){"use strict";init_define_process_env();init_shim();var uncurryThis=require_function_uncurry_this(),fails=require_fails(),isCallable=require_is_callable(),hasOwn=require_has_own_property(),DESCRIPTORS=require_descriptors(),CONFIGURABLE_FUNCTION_NAME=require_function_name().CONFIGURABLE,inspectSource=require_inspect_source(),InternalStateModule=require_internal_state(),enforceInternalState=InternalStateModule.enforce,getInternalState=InternalStateModule.get,$String=String,defineProperty=Object.defineProperty,stringSlice=uncurryThis("".slice),replace=uncurryThis("".replace),join=uncurryThis([].join),CONFIGURABLE_LENGTH=DESCRIPTORS&&!fails(function(){return defineProperty(function(){},"length",{value:8}).length!==8}),TEMPLATE=String(String).split("String"),makeBuiltIn=module.exports=function(value,name,options){stringSlice($String(name),0,7)==="Symbol("&&(name="["+replace($String(name),/^Symbol\(([^)]*)\).*$/,"$1")+"]"),options&&options.getter&&(name="get "+name),options&&options.setter&&(name="set "+name),(!hasOwn(value,"name")||CONFIGURABLE_FUNCTION_NAME&&value.name!==name)&&(DESCRIPTORS?defineProperty(value,"name",{value:name,configurable:!0}):value.name=name),CONFIGURABLE_LENGTH&&options&&hasOwn(options,"arity")&&value.length!==options.arity&&defineProperty(value,"length",{value:options.arity});try{options&&hasOwn(options,"constructor")&&options.constructor?DESCRIPTORS&&defineProperty(value,"prototype",{writable:!1}):value.prototype&&(value.prototype=void 0)}catch(error){}var state=enforceInternalState(value);return hasOwn(state,"source")||(state.source=join(TEMPLATE,typeof name=="string"?name:"")),value};Function.prototype.toString=makeBuiltIn(function(){return isCallable(this)&&getInternalState(this).source||inspectSource(this)},"toString")}});var require_define_built_in=__commonJS({"node_modules/core-js/internals/define-built-in.js"(exports,module){"use strict";init_define_process_env();init_shim();var isCallable=require_is_callable(),definePropertyModule=require_object_define_property(),makeBuiltIn=require_make_built_in(),defineGlobalProperty=require_define_global_property();module.exports=function(O,key,value,options){options||(options={});var simple=options.enumerable,name=options.name!==void 0?options.name:key;if(isCallable(value)&&makeBuiltIn(value,name,options),options.global)simple?O[key]=value:defineGlobalProperty(key,value);else{try{options.unsafe?O[key]&&(simple=!0):delete O[key]}catch(error){}simple?O[key]=value:definePropertyModule.f(O,key,{value,enumerable:!1,configurable:!options.nonConfigurable,writable:!options.nonWritable})}return O}}});var require_math_trunc=__commonJS({"node_modules/core-js/internals/math-trunc.js"(exports,module){"use strict";init_define_process_env();init_shim();var ceil=Math.ceil,floor=Math.floor;module.exports=Math.trunc||function(x){var n=+x;return(n>0?floor:ceil)(n)}}});var require_to_integer_or_infinity=__commonJS({"node_modules/core-js/internals/to-integer-or-infinity.js"(exports,module){"use strict";init_define_process_env();init_shim();var trunc=require_math_trunc();module.exports=function(argument){var number=+argument;return number!==number||number===0?0:trunc(number)}}});var require_to_absolute_index=__commonJS({"node_modules/core-js/internals/to-absolute-index.js"(exports,module){"use strict";init_define_process_env();init_shim();var toIntegerOrInfinity=require_to_integer_or_infinity(),max=Math.max,min=Math.min;module.exports=function(index,length){var integer=toIntegerOrInfinity(index);return integer<0?max(integer+length,0):min(integer,length)}}});var require_to_length=__commonJS({"node_modules/core-js/internals/to-length.js"(exports,module){"use strict";init_define_process_env();init_shim();var toIntegerOrInfinity=require_to_integer_or_infinity(),min=Math.min;module.exports=function(argument){var len=toIntegerOrInfinity(argument);return len>0?min(len,9007199254740991):0}}});var require_length_of_array_like=__commonJS({"node_modules/core-js/internals/length-of-array-like.js"(exports,module){"use strict";init_define_process_env();init_shim();var toLength=require_to_length();module.exports=function(obj){return toLength(obj.length)}}});var require_array_includes=__commonJS({"node_modules/core-js/internals/array-includes.js"(exports,module){"use strict";init_define_process_env();init_shim();var toIndexedObject=require_to_indexed_object(),toAbsoluteIndex=require_to_absolute_index(),lengthOfArrayLike=require_length_of_array_like(),createMethod=function(IS_INCLUDES){return function($this,el,fromIndex){var O=toIndexedObject($this),length=lengthOfArrayLike(O),index=toAbsoluteIndex(fromIndex,length),value;if(IS_INCLUDES&&el!==el){for(;length>index;)if(value=O[index++],value!==value)return!0}else for(;length>index;index++)if((IS_INCLUDES||index in O)&&O[index]===el)return IS_INCLUDES||index||0;return!IS_INCLUDES&&-1}};module.exports={includes:createMethod(!0),indexOf:createMethod(!1)}}});var require_object_keys_internal=__commonJS({"node_modules/core-js/internals/object-keys-internal.js"(exports,module){"use strict";init_define_process_env();init_shim();var uncurryThis=require_function_uncurry_this(),hasOwn=require_has_own_property(),toIndexedObject=require_to_indexed_object(),indexOf=require_array_includes().indexOf,hiddenKeys=require_hidden_keys(),push=uncurryThis([].push);module.exports=function(object,names){var O=toIndexedObject(object),i=0,result=[],key;for(key in O)!hasOwn(hiddenKeys,key)&&hasOwn(O,key)&&push(result,key);for(;names.length>i;)hasOwn(O,key=names[i++])&&(~indexOf(result,key)||push(result,key));return result}}});var require_enum_bug_keys=__commonJS({"node_modules/core-js/internals/enum-bug-keys.js"(exports,module){"use strict";init_define_process_env();init_shim();module.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]}});var require_object_get_own_property_names=__commonJS({"node_modules/core-js/internals/object-get-own-property-names.js"(exports){"use strict";init_define_process_env();init_shim();var internalObjectKeys=require_object_keys_internal(),enumBugKeys=require_enum_bug_keys(),hiddenKeys=enumBugKeys.concat("length","prototype");exports.f=Object.getOwnPropertyNames||function(O){return internalObjectKeys(O,hiddenKeys)}}});var require_object_get_own_property_symbols=__commonJS({"node_modules/core-js/internals/object-get-own-property-symbols.js"(exports){"use strict";init_define_process_env();init_shim();exports.f=Object.getOwnPropertySymbols}});var require_own_keys=__commonJS({"node_modules/core-js/internals/own-keys.js"(exports,module){"use strict";init_define_process_env();init_shim();var getBuiltIn=require_get_built_in(),uncurryThis=require_function_uncurry_this(),getOwnPropertyNamesModule=require_object_get_own_property_names(),getOwnPropertySymbolsModule=require_object_get_own_property_symbols(),anObject=require_an_object(),concat=uncurryThis([].concat);module.exports=getBuiltIn("Reflect","ownKeys")||function(it){var keys=getOwnPropertyNamesModule.f(anObject(it)),getOwnPropertySymbols=getOwnPropertySymbolsModule.f;return getOwnPropertySymbols?concat(keys,getOwnPropertySymbols(it)):keys}}});var require_copy_constructor_properties=__commonJS({"node_modules/core-js/internals/copy-constructor-properties.js"(exports,module){"use strict";init_define_process_env();init_shim();var hasOwn=require_has_own_property(),ownKeys=require_own_keys(),getOwnPropertyDescriptorModule=require_object_get_own_property_descriptor(),definePropertyModule=require_object_define_property();module.exports=function(target,source,exceptions){for(var keys=ownKeys(source),defineProperty=definePropertyModule.f,getOwnPropertyDescriptor=getOwnPropertyDescriptorModule.f,i=0;i<keys.length;i++){var key=keys[i];!hasOwn(target,key)&&!(exceptions&&hasOwn(exceptions,key))&&defineProperty(target,key,getOwnPropertyDescriptor(source,key))}}}});var require_is_forced=__commonJS({"node_modules/core-js/internals/is-forced.js"(exports,module){"use strict";init_define_process_env();init_shim();var fails=require_fails(),isCallable=require_is_callable(),replacement=/#|\.prototype\./,isForced=function(feature,detection){var value=data[normalize(feature)];return value===POLYFILL?!0:value===NATIVE?!1:isCallable(detection)?fails(detection):!!detection},normalize=isForced.normalize=function(string){return String(string).replace(replacement,".").toLowerCase()},data=isForced.data={},NATIVE=isForced.NATIVE="N",POLYFILL=isForced.POLYFILL="P";module.exports=isForced}});var require_export=__commonJS({"node_modules/core-js/internals/export.js"(exports,module){"use strict";init_define_process_env();init_shim();var global=require_global(),getOwnPropertyDescriptor=require_object_get_own_property_descriptor().f,createNonEnumerableProperty=require_create_non_enumerable_property(),defineBuiltIn=require_define_built_in(),defineGlobalProperty=require_define_global_property(),copyConstructorProperties=require_copy_constructor_properties(),isForced=require_is_forced();module.exports=function(options,source){var TARGET=options.target,GLOBAL=options.global,STATIC=options.stat,FORCED,target,key,targetProperty,sourceProperty,descriptor;if(GLOBAL?target=global:STATIC?target=global[TARGET]||defineGlobalProperty(TARGET,{}):target=global[TARGET]&&global[TARGET].prototype,target)for(key in source){if(sourceProperty=source[key],options.dontCallGetSet?(descriptor=getOwnPropertyDescriptor(target,key),targetProperty=descriptor&&descriptor.value):targetProperty=target[key],FORCED=isForced(GLOBAL?key:TARGET+(STATIC?".":"#")+key,options.forced),!FORCED&&targetProperty!==void 0){if(typeof sourceProperty==typeof targetProperty)continue;copyConstructorProperties(sourceProperty,targetProperty)}(options.sham||targetProperty&&targetProperty.sham)&&createNonEnumerableProperty(sourceProperty,"sham",!0),defineBuiltIn(target,key,sourceProperty,options)}}}});var require_object_keys=__commonJS({"node_modules/core-js/internals/object-keys.js"(exports,module){"use strict";init_define_process_env();init_shim();var internalObjectKeys=require_object_keys_internal(),enumBugKeys=require_enum_bug_keys();module.exports=Object.keys||function(O){return internalObjectKeys(O,enumBugKeys)}}});var require_object_define_properties=__commonJS({"node_modules/core-js/internals/object-define-properties.js"(exports){"use strict";init_define_process_env();init_shim();var DESCRIPTORS=require_descriptors(),V8_PROTOTYPE_DEFINE_BUG=require_v8_prototype_define_bug(),definePropertyModule=require_object_define_property(),anObject=require_an_object(),toIndexedObject=require_to_indexed_object(),objectKeys=require_object_keys();exports.f=DESCRIPTORS&&!V8_PROTOTYPE_DEFINE_BUG?Object.defineProperties:function(O,Properties){anObject(O);for(var props=toIndexedObject(Properties),keys=objectKeys(Properties),length=keys.length,index=0,key;length>index;)definePropertyModule.f(O,key=keys[index++],props[key]);return O}}});var require_html=__commonJS({"node_modules/core-js/internals/html.js"(exports,module){"use strict";init_define_process_env();init_shim();var getBuiltIn=require_get_built_in();module.exports=getBuiltIn("document","documentElement")}});var require_object_create=__commonJS({"node_modules/core-js/internals/object-create.js"(exports,module){"use strict";init_define_process_env();init_shim();var anObject=require_an_object(),definePropertiesModule=require_object_define_properties(),enumBugKeys=require_enum_bug_keys(),hiddenKeys=require_hidden_keys(),html=require_html(),documentCreateElement=require_document_create_element(),sharedKey=require_shared_key(),GT=">",LT="<",PROTOTYPE="prototype",SCRIPT="script",IE_PROTO=sharedKey("IE_PROTO"),EmptyConstructor=function(){},scriptTag=function(content){return LT+SCRIPT+GT+content+LT+"/"+SCRIPT+GT},NullProtoObjectViaActiveX=function(activeXDocument2){activeXDocument2.write(scriptTag("")),activeXDocument2.close();var temp=activeXDocument2.parentWindow.Object;return activeXDocument2=null,temp},NullProtoObjectViaIFrame=function(){var iframe=documentCreateElement("iframe"),JS="java"+SCRIPT+":",iframeDocument;return iframe.style.display="none",html.appendChild(iframe),iframe.src=String(JS),iframeDocument=iframe.contentWindow.document,iframeDocument.open(),iframeDocument.write(scriptTag("document.F=Object")),iframeDocument.close(),iframeDocument.F},activeXDocument,NullProtoObject=function(){try{activeXDocument=new ActiveXObject("htmlfile")}catch(error){}NullProtoObject=typeof document<"u"?document.domain&&activeXDocument?NullProtoObjectViaActiveX(activeXDocument):NullProtoObjectViaIFrame():NullProtoObjectViaActiveX(activeXDocument);for(var length=enumBugKeys.length;length--;)delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];return NullProtoObject()};hiddenKeys[IE_PROTO]=!0;module.exports=Object.create||function(O,Properties){var result;return O!==null?(EmptyConstructor[PROTOTYPE]=anObject(O),result=new EmptyConstructor,EmptyConstructor[PROTOTYPE]=null,result[IE_PROTO]=O):result=NullProtoObject(),Properties===void 0?result:definePropertiesModule.f(result,Properties)}}});var require_add_to_unscopables=__commonJS({"node_modules/core-js/internals/add-to-unscopables.js"(exports,module){"use strict";init_define_process_env();init_shim();var wellKnownSymbol=require_well_known_symbol(),create=require_object_create(),defineProperty=require_object_define_property().f,UNSCOPABLES=wellKnownSymbol("unscopables"),ArrayPrototype=Array.prototype;ArrayPrototype[UNSCOPABLES]===void 0&&defineProperty(ArrayPrototype,UNSCOPABLES,{configurable:!0,value:create(null)});module.exports=function(key){ArrayPrototype[UNSCOPABLES][key]=!0}}});var require_es_array_includes=__commonJS({"node_modules/core-js/modules/es.array.includes.js"(){"use strict";init_define_process_env();init_shim();var $2=require_export(),$includes=require_array_includes().includes,fails=require_fails(),addToUnscopables=require_add_to_unscopables(),BROKEN_ON_SPARSE=fails(function(){return!Array(1).includes()});$2({target:"Array",proto:!0,forced:BROKEN_ON_SPARSE},{includes:function(el){return $includes(this,el,arguments.length>1?arguments[1]:void 0)}});addToUnscopables("includes")}});var require_is_regexp=__commonJS({"node_modules/core-js/internals/is-regexp.js"(exports,module){"use strict";init_define_process_env();init_shim();var isObject=require_is_object(),classof=require_classof_raw(),wellKnownSymbol=require_well_known_symbol(),MATCH=wellKnownSymbol("match");module.exports=function(it){var isRegExp;return isObject(it)&&((isRegExp=it[MATCH])!==void 0?!!isRegExp:classof(it)==="RegExp")}}});var require_not_a_regexp=__commonJS({"node_modules/core-js/internals/not-a-regexp.js"(exports,module){"use strict";init_define_process_env();init_shim();var isRegExp=require_is_regexp(),$TypeError=TypeError;module.exports=function(it){if(isRegExp(it))throw new $TypeError("The method doesn't accept regular expressions");return it}}});var require_to_string_tag_support=__commonJS({"node_modules/core-js/internals/to-string-tag-support.js"(exports,module){"use strict";init_define_process_env();init_shim();var wellKnownSymbol=require_well_known_symbol(),TO_STRING_TAG=wellKnownSymbol("toStringTag"),test={};test[TO_STRING_TAG]="z";module.exports=String(test)==="[object z]"}});var require_classof=__commonJS({"node_modules/core-js/internals/classof.js"(exports,module){"use strict";init_define_process_env();init_shim();var TO_STRING_TAG_SUPPORT=require_to_string_tag_support(),isCallable=require_is_callable(),classofRaw=require_classof_raw(),wellKnownSymbol=require_well_known_symbol(),TO_STRING_TAG=wellKnownSymbol("toStringTag"),$Object=Object,CORRECT_ARGUMENTS=classofRaw(function(){return arguments}())==="Arguments",tryGet=function(it,key){try{return it[key]}catch(error){}};module.exports=TO_STRING_TAG_SUPPORT?classofRaw:function(it){var O,tag,result;return it===void 0?"Undefined":it===null?"Null":typeof(tag=tryGet(O=$Object(it),TO_STRING_TAG))=="string"?tag:CORRECT_ARGUMENTS?classofRaw(O):(result=classofRaw(O))==="Object"&&isCallable(O.callee)?"Arguments":result}}});var require_to_string=__commonJS({"node_modules/core-js/internals/to-string.js"(exports,module){"use strict";init_define_process_env();init_shim();var classof=require_classof(),$String=String;module.exports=function(argument){if(classof(argument)==="Symbol")throw new TypeError("Cannot convert a Symbol value to a string");return $String(argument)}}});var require_correct_is_regexp_logic=__commonJS({"node_modules/core-js/internals/correct-is-regexp-logic.js"(exports,module){"use strict";init_define_process_env();init_shim();var wellKnownSymbol=require_well_known_symbol(),MATCH=wellKnownSymbol("match");module.exports=function(METHOD_NAME){var regexp=/./;try{"/./"[METHOD_NAME](regexp)}catch(error1){try{return regexp[MATCH]=!1,"/./"[METHOD_NAME](regexp)}catch(error2){}}return!1}}});var require_es_string_includes=__commonJS({"node_modules/core-js/modules/es.string.includes.js"(){"use strict";init_define_process_env();init_shim();var $2=require_export(),uncurryThis=require_function_uncurry_this(),notARegExp=require_not_a_regexp(),requireObjectCoercible=require_require_object_coercible(),toString=require_to_string(),correctIsRegExpLogic=require_correct_is_regexp_logic(),stringIndexOf=uncurryThis("".indexOf);$2({target:"String",proto:!0,forced:!correctIsRegExpLogic("includes")},{includes:function(searchString){return!!~stringIndexOf(toString(requireObjectCoercible(this)),toString(notARegExp(searchString)),arguments.length>1?arguments[1]:void 0)}})}});var require_regexp_flags=__commonJS({"node_modules/core-js/internals/regexp-flags.js"(exports,module){"use strict";init_define_process_env();init_shim();var anObject=require_an_object();module.exports=function(){var that=anObject(this),result="";return that.hasIndices&&(result+="d"),that.global&&(result+="g"),that.ignoreCase&&(result+="i"),that.multiline&&(result+="m"),that.dotAll&&(result+="s"),that.unicode&&(result+="u"),that.unicodeSets&&(result+="v"),that.sticky&&(result+="y"),result}}});var require_regexp_sticky_helpers=__commonJS({"node_modules/core-js/internals/regexp-sticky-helpers.js"(exports,module){"use strict";init_define_process_env();init_shim();var fails=require_fails(),global=require_global(),$RegExp=global.RegExp,UNSUPPORTED_Y=fails(function(){var re=$RegExp("a","y");return re.lastIndex=2,re.exec("abcd")!==null}),MISSED_STICKY=UNSUPPORTED_Y||fails(function(){return!$RegExp("a","y").sticky}),BROKEN_CARET=UNSUPPORTED_Y||fails(function(){var re=$RegExp("^r","gy");return re.lastIndex=2,re.exec("str")!==null});module.exports={BROKEN_CARET,MISSED_STICKY,UNSUPPORTED_Y}}});var require_regexp_unsupported_dot_all=__commonJS({"node_modules/core-js/internals/regexp-unsupported-dot-all.js"(exports,module){"use strict";init_define_process_env();init_shim();var fails=require_fails(),global=require_global(),$RegExp=global.RegExp;module.exports=fails(function(){var re=$RegExp(".","s");return!(re.dotAll&&re.test("\n")&&re.flags==="s")})}});var require_regexp_unsupported_ncg=__commonJS({"node_modules/core-js/internals/regexp-unsupported-ncg.js"(exports,module){"use strict";init_define_process_env();init_shim();var fails=require_fails(),global=require_global(),$RegExp=global.RegExp;module.exports=fails(function(){var re=$RegExp("(?<a>b)","g");return re.exec("b").groups.a!=="b"||"b".replace(re,"$<a>c")!=="bc"})}});var require_regexp_exec=__commonJS({"node_modules/core-js/internals/regexp-exec.js"(exports,module){"use strict";init_define_process_env();init_shim();var call=require_function_call(),uncurryThis=require_function_uncurry_this(),toString=require_to_string(),regexpFlags=require_regexp_flags(),stickyHelpers=require_regexp_sticky_helpers(),shared=require_shared(),create=require_object_create(),getInternalState=require_internal_state().get,UNSUPPORTED_DOT_ALL=require_regexp_unsupported_dot_all(),UNSUPPORTED_NCG=require_regexp_unsupported_ncg(),nativeReplace=shared("native-string-replace",String.prototype.replace),nativeExec=RegExp.prototype.exec,patchedExec=nativeExec,charAt=uncurryThis("".charAt),indexOf=uncurryThis("".indexOf),replace=uncurryThis("".replace),stringSlice=uncurryThis("".slice),UPDATES_LAST_INDEX_WRONG=function(){var re1=/a/,re2=/b*/g;return call(nativeExec,re1,"a"),call(nativeExec,re2,"a"),re1.lastIndex!==0||re2.lastIndex!==0}(),UNSUPPORTED_Y=stickyHelpers.BROKEN_CARET,NPCG_INCLUDED=/()??/.exec("")[1]!==void 0,PATCH=UPDATES_LAST_INDEX_WRONG||NPCG_INCLUDED||UNSUPPORTED_Y||UNSUPPORTED_DOT_ALL||UNSUPPORTED_NCG;PATCH&&(patchedExec=function(string){var re=this,state=getInternalState(re),str=toString(string),raw=state.raw,result,reCopy,lastIndex,match,i,object,group;if(raw)return raw.lastIndex=re.lastIndex,result=call(patchedExec,raw,str),re.lastIndex=raw.lastIndex,result;var groups=state.groups,sticky=UNSUPPORTED_Y&&re.sticky,flags=call(regexpFlags,re),source=re.source,charsAdded=0,strCopy=str;if(sticky&&(flags=replace(flags,"y",""),indexOf(flags,"g")===-1&&(flags+="g"),strCopy=stringSlice(str,re.lastIndex),re.lastIndex>0&&(!re.multiline||re.multiline&&charAt(str,re.lastIndex-1)!=="\n")&&(source="(?: "+source+")",strCopy=" "+strCopy,charsAdded++),reCopy=new RegExp("^(?:"+source+")",flags)),NPCG_INCLUDED&&(reCopy=new RegExp("^"+source+"$(?!\\s)",flags)),UPDATES_LAST_INDEX_WRONG&&(lastIndex=re.lastIndex),match=call(nativeExec,sticky?reCopy:re,strCopy),sticky?match?(match.input=stringSlice(match.input,charsAdded),match[0]=stringSlice(match[0],charsAdded),match.index=re.lastIndex,re.lastIndex+=match[0].length):re.lastIndex=0:UPDATES_LAST_INDEX_WRONG&&match&&(re.lastIndex=re.global?match.index+match[0].length:lastIndex),NPCG_INCLUDED&&match&&match.length>1&&call(nativeReplace,match[0],reCopy,function(){for(i=1;i<arguments.length-2;i++)arguments[i]===void 0&&(match[i]=void 0)}),match&&groups)for(match.groups=object=create(null),i=0;i<groups.length;i++)group=groups[i],object[group[0]]=match[group[1]];return match});module.exports=patchedExec}});var require_es_regexp_exec=__commonJS({"node_modules/core-js/modules/es.regexp.exec.js"(){"use strict";init_define_process_env();init_shim();var $2=require_export(),exec=require_regexp_exec();$2({target:"RegExp",proto:!0,forced:/./.exec!==exec},{exec})}});var require_function_apply=__commonJS({"node_modules/core-js/internals/function-apply.js"(exports,module){"use strict";init_define_process_env();init_shim();var NATIVE_BIND=require_function_bind_native(),FunctionPrototype=Function.prototype,apply=FunctionPrototype.apply,call=FunctionPrototype.call;module.exports=typeof Reflect=="object"&&Reflect.apply||(NATIVE_BIND?call.bind(apply):function(){return call.apply(apply,arguments)})}});var require_fix_regexp_well_known_symbol_logic=__commonJS({"node_modules/core-js/internals/fix-regexp-well-known-symbol-logic.js"(exports,module){"use strict";init_define_process_env();init_shim();require_es_regexp_exec();var call=require_function_call(),defineBuiltIn=require_define_built_in(),regexpExec=require_regexp_exec(),fails=require_fails(),wellKnownSymbol=require_well_known_symbol(),createNonEnumerableProperty=require_create_non_enumerable_property(),SPECIES=wellKnownSymbol("species"),RegExpPrototype=RegExp.prototype;module.exports=function(KEY,exec,FORCED,SHAM){var SYMBOL=wellKnownSymbol(KEY),DELEGATES_TO_SYMBOL=!fails(function(){var O={};return O[SYMBOL]=function(){return 7},""[KEY](O)!==7}),DELEGATES_TO_EXEC=DELEGATES_TO_SYMBOL&&!fails(function(){var execCalled=!1,re=/a/;return KEY==="split"&&(re={},re.constructor={},re.constructor[SPECIES]=function(){return re},re.flags="",re[SYMBOL]=/./[SYMBOL]),re.exec=function(){return execCalled=!0,null},re[SYMBOL](""),!execCalled});if(!DELEGATES_TO_SYMBOL||!DELEGATES_TO_EXEC||FORCED){var nativeRegExpMethod=/./[SYMBOL],methods=exec(SYMBOL,""[KEY],function(nativeMethod,regexp,str,arg2,forceStringMethod){var $exec=regexp.exec;return $exec===regexpExec||$exec===RegExpPrototype.exec?DELEGATES_TO_SYMBOL&&!forceStringMethod?{done:!0,value:call(nativeRegExpMethod,regexp,str,arg2)}:{done:!0,value:call(nativeMethod,str,regexp,arg2)}:{done:!1}});defineBuiltIn(String.prototype,KEY,methods[0]),defineBuiltIn(RegExpPrototype,SYMBOL,methods[1])}SHAM&&createNonEnumerableProperty(RegExpPrototype[SYMBOL],"sham",!0)}}});var require_string_multibyte=__commonJS({"node_modules/core-js/internals/string-multibyte.js"(exports,module){"use strict";init_define_process_env();init_shim();var uncurryThis=require_function_uncurry_this(),toIntegerOrInfinity=require_to_integer_or_infinity(),toString=require_to_string(),requireObjectCoercible=require_require_object_coercible(),charAt=uncurryThis("".charAt),charCodeAt=uncurryThis("".charCodeAt),stringSlice=uncurryThis("".slice),createMethod=function(CONVERT_TO_STRING){return function($this,pos){var S=toString(requireObjectCoercible($this)),position=toIntegerOrInfinity(pos),size=S.length,first,second;return position<0||position>=size?CONVERT_TO_STRING?"":void 0:(first=charCodeAt(S,position),first<55296||first>56319||position+1===size||(second=charCodeAt(S,position+1))<56320||second>57343?CONVERT_TO_STRING?charAt(S,position):first:CONVERT_TO_STRING?stringSlice(S,position,position+2):(first-55296<<10)+(second-56320)+65536)}};module.exports={codeAt:createMethod(!1),charAt:createMethod(!0)}}});var require_advance_string_index=__commonJS({"node_modules/core-js/internals/advance-string-index.js"(exports,module){"use strict";init_define_process_env();init_shim();var charAt=require_string_multibyte().charAt;module.exports=function(S,index,unicode){return index+(unicode?charAt(S,index).length:1)}}});var require_get_substitution=__commonJS({"node_modules/core-js/internals/get-substitution.js"(exports,module){"use strict";init_define_process_env();init_shim();var uncurryThis=require_function_uncurry_this(),toObject=require_to_object(),floor=Math.floor,charAt=uncurryThis("".charAt),replace=uncurryThis("".replace),stringSlice=uncurryThis("".slice),SUBSTITUTION_SYMBOLS=/\$([$&'`]|\d{1,2}|<[^>]*>)/g,SUBSTITUTION_SYMBOLS_NO_NAMED=/\$([$&'`]|\d{1,2})/g;module.exports=function(matched,str,position,captures,namedCaptures,replacement){var tailPos=position+matched.length,m=captures.length,symbols=SUBSTITUTION_SYMBOLS_NO_NAMED;return namedCaptures!==void 0&&(namedCaptures=toObject(namedCaptures),symbols=SUBSTITUTION_SYMBOLS),replace(replacement,symbols,function(match,ch){var capture;switch(charAt(ch,0)){case"$":return"$";case"&":return matched;case"`":return stringSlice(str,0,position);case"'":return stringSlice(str,tailPos);case"<":capture=namedCaptures[stringSlice(ch,1,-1)];break;default:var n=+ch;if(n===0)return match;if(n>m){var f=floor(n/10);return f===0?match:f<=m?captures[f-1]===void 0?charAt(ch,1):captures[f-1]+charAt(ch,1):match}capture=captures[n-1]}return capture===void 0?"":capture})}}});var require_regexp_exec_abstract=__commonJS({"node_modules/core-js/internals/regexp-exec-abstract.js"(exports,module){"use strict";init_define_process_env();init_shim();var call=require_function_call(),anObject=require_an_object(),isCallable=require_is_callable(),classof=require_classof_raw(),regexpExec=require_regexp_exec(),$TypeError=TypeError;module.exports=function(R,S){var exec=R.exec;if(isCallable(exec)){var result=call(exec,R,S);return result!==null&&anObject(result),result}if(classof(R)==="RegExp")return call(regexpExec,R,S);throw new $TypeError("RegExp#exec called on incompatible receiver")}}});var require_es_string_replace=__commonJS({"node_modules/core-js/modules/es.string.replace.js"(){"use strict";init_define_process_env();init_shim();var apply=require_function_apply(),call=require_function_call(),uncurryThis=require_function_uncurry_this(),fixRegExpWellKnownSymbolLogic=require_fix_regexp_well_known_symbol_logic(),fails=require_fails(),anObject=require_an_object(),isCallable=require_is_callable(),isNullOrUndefined=require_is_null_or_undefined(),toIntegerOrInfinity=require_to_integer_or_infinity(),toLength=require_to_length(),toString=require_to_string(),requireObjectCoercible=require_require_object_coercible(),advanceStringIndex=require_advance_string_index(),getMethod=require_get_method(),getSubstitution=require_get_substitution(),regExpExec=require_regexp_exec_abstract(),wellKnownSymbol=require_well_known_symbol(),REPLACE=wellKnownSymbol("replace"),max=Math.max,min=Math.min,concat=uncurryThis([].concat),push=uncurryThis([].push),stringIndexOf=uncurryThis("".indexOf),stringSlice=uncurryThis("".slice),maybeToString=function(it){return it===void 0?it:String(it)},REPLACE_KEEPS_$0=function(){return"a".replace(/./,"$0")==="$0"}(),REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE=function(){return/./[REPLACE]?/./[REPLACE]("a","$0")==="":!1}(),REPLACE_SUPPORTS_NAMED_GROUPS=!fails(function(){var re=/./;return re.exec=function(){var result=[];return result.groups={a:"7"},result},"".replace(re,"$<a>")!=="7"});fixRegExpWellKnownSymbolLogic("replace",function(_,nativeReplace,maybeCallNative){var UNSAFE_SUBSTITUTE=REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE?"$":"$0";return[function(searchValue,replaceValue){var O=requireObjectCoercible(this),replacer=isNullOrUndefined(searchValue)?void 0:getMethod(searchValue,REPLACE);return replacer?call(replacer,searchValue,O,replaceValue):call(nativeReplace,toString(O),searchValue,replaceValue)},function(string,replaceValue){var rx=anObject(this),S=toString(string);if(typeof replaceValue=="string"&&stringIndexOf(replaceValue,UNSAFE_SUBSTITUTE)===-1&&stringIndexOf(replaceValue,"$<")===-1){var res=maybeCallNative(nativeReplace,rx,S,replaceValue);if(res.done)return res.value}var functionalReplace=isCallable(replaceValue);functionalReplace||(replaceValue=toString(replaceValue));var global=rx.global,fullUnicode;global&&(fullUnicode=rx.unicode,rx.lastIndex=0);for(var results=[],result;result=regExpExec(rx,S),!(result===null||(push(results,result),!global));){var matchStr=toString(result[0]);matchStr===""&&(rx.lastIndex=advanceStringIndex(S,toLength(rx.lastIndex),fullUnicode))}for(var accumulatedResult="",nextSourcePosition=0,i=0;i<results.length;i++){result=results[i];for(var matched=toString(result[0]),position=max(min(toIntegerOrInfinity(result.index),S.length),0),captures=[],replacement,j=1;j<result.length;j++)push(captures,maybeToString(result[j]));var namedCaptures=result.groups;if(functionalReplace){var replacerArgs=concat([matched],captures,position,S);namedCaptures!==void 0&&push(replacerArgs,namedCaptures),replacement=toString(apply(replaceValue,void 0,replacerArgs))}else replacement=getSubstitution(matched,S,position,captures,namedCaptures,replaceValue);position>=nextSourcePosition&&(accumulatedResult+=stringSlice(S,nextSourcePosition,position)+replacement,nextSourcePosition=position+matched.length)}return accumulatedResult+stringSlice(S,nextSourcePosition)}]},!REPLACE_SUPPORTS_NAMED_GROUPS||!REPLACE_KEEPS_$0||REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE)}});var _window$u,_window,_window$safe_require,_window2,u,safe_require,init_window_register=__esm({"lib-browser-old/window_register.js"(){"use strict";init_define_process_env();init_shim();u=(_window$u=(_window=window)==null?void 0:_window.u)!=null?_window$u:_u,safe_require=(_window$safe_require=(_window2=window)==null?void 0:_window2.safe_require)!=null?_window$safe_require:_safe_require}});var materialicons_Materialicon_exports={};__export(materialicons_Materialicon_exports,{additional_data:()=>additional_data,initialize:()=>initialize,property_applications:()=>property_applications_internal});function initialize(instance){return services.log_plugin_element_init({name:this.plugin_name,plugin:PLUGIN_FILE}),instance.wait_for_visible_lite(()=>{let canvas=instance.get_canvas();return property_applications.patch_user_agent_styles(canvas),canvas.addClass("inner-element bubble-element material-icons"),element_eval.on_property_change(instance,"icon",icon=>{icon.includes(".outline")?(canvas.removeClass("material-icons"),canvas.addClass("material-icons-outline")):(canvas.removeClass("material-icons-outline"),canvas.addClass("material-icons")),canvas.text(icon.replace(".outline",""))}),element_eval.on_property_change(instance,"icon_color",icon_color=>canvas.css("color",icon_color)),icons_legacy.calculate_font_size_for_fontawesome(instance)})}var import_es_array_includes,import_es_string_includes,import_es_regexp_exec,import_es_string_replace,services,property_applications,icons_legacy,element_eval,PLUGIN_FILE,property_applications_internal,additional_data,init_materialicons_Materialicon=__esm({"lib-browser-old/optional/services/legacy/responsive_v0/materialicons_Materialicon.js"(){"use strict";init_define_process_env();init_shim();import_es_array_includes=__toESM(require_es_array_includes()),import_es_string_includes=__toESM(require_es_string_includes()),import_es_regexp_exec=__toESM(require_es_regexp_exec()),import_es_string_replace=__toESM(require_es_string_replace());init_window_register();services=safe_require.safe_require("./services"),property_applications=safe_require.safe_require("./core/property_applications"),icons_legacy=safe_require.safe_require("./core/core_elements/legacy/responsive_v0/shared/icons"),element_eval=safe_require.safe_require("./lang/evaluation/element_eval"),PLUGIN_FILE="materialicons",property_applications_internal=[new property_applications.MinWidth];additional_data={notify_width(instance,width){return instance.state("notify_width",width)}}}});init_define_process_env();init_shim();var import_es_array_includes2=__toESM(require_es_array_includes()),import_es_string_includes2=__toESM(require_es_string_includes()),import_es_regexp_exec2=__toESM(require_es_regexp_exec()),import_es_string_replace2=__toESM(require_es_string_replace());init_window_register();var element_eval2=safe_require.safe_require("./lang/evaluation/element_eval"),external=safe_require.safe_require("./external"),services2=safe_require.safe_require("./services"),Lib=safe_require.safe_require("./lib"),appquery=safe_require.safe_require("./lang/appquery"),property_applications2=safe_require.safe_require("./core/property_applications"),element_workflows=safe_require.safe_require("./core/core_elements/core_elements_utilities/element_workflows"),icons=safe_require.safe_require("./core/core_elements/shared/icons"),element_modifications=safe_require.safe_require("./core/core_elements/legacy/responsive_v0/element_modifications");element_modifications.set_legacy_element_modifications("materialicons-Materialicon",(init_materialicons_Materialicon(),__toCommonJS(materialicons_Materialicon_exports)));var goToElementEvent;u.is_edit_mode()&&!u.is_plugin_edit_mode()&&({goToElementEvent}=safe_require.safe_require("./editor/workflow_tab/logic/events"));var PLUGIN_FILE2="materialicons";function plugin_version(){if(Lib()){var _appquery$get_public_;return(_appquery$get_public_=appquery.get_public_setting("materialicons_installed_version"))!=null?_appquery$get_public_:0}else return 1}function uses_css_responsive(){return Lib()?plugin_version()>=1||appquery.get_public_setting("materialicons_css_responsive")===!0:!0}var cls=class extends external.Service{constructor(){super(),this.authenticator=new external.NoAuth,this.elements=this._get_initial_elements()}_get_initial_elements(){return{Materialicon:{display:"Material Icon",category:"visual elements",icon:"ion-social-google",condition(root){var _root$is_mobile;return!(root!=null&&(_root$is_mobile=root.is_mobile)!=null&&_root$is_mobile.call(root))},defaults:{font_alignment:"center",background_style:"none",border_style:"none",border_roundness:4,border_width:2,border_color:"#6B6B6B",boxshadow_style:"none",width:80,height:80},field_names:u.extend({icon:{default:"insert_emoticon"},icon_color:{default:"#373737",in_style:!0}},element_workflows.start_workflow_field_names),property_applications:[new property_applications2.Dimensions,new property_applications2.FontShadow,new property_applications2.Border,new property_applications2.BoxShadow,new property_applications2.Background,new property_applications2.ToolTip,new property_applications2.ResponsiveElement],get uses_css_responsive(){return uses_css_responsive()},get_html(instance){return"<button></button>"},get_min_width(element){return 0},transition_properties:{icon_color:"color"},change_cursor_style_if_clickable:!0,initialize(instance){return services2.log_plugin_element_init({name:this.plugin_name,plugin:PLUGIN_FILE2}),instance.wait_for_visible_lite(()=>{let canvas=instance.get_canvas();property_applications2.patch_user_agent_styles(canvas),$(document).ready(()=>{instance.autorun(()=>{canvas.empty();let icon=element_eval2.evaluate_property(instance,"icon"),icon_name=icon;icon!=null&&icon.includes(".outline")?(icon_name=icon.replace(".outline",""),canvas.append(icons.get_svg_canvas("material-icons-outline",icon_name,icons.ICON_SIZE/2,-icons.ICON_SIZE/2,"start"))):canvas.append(icons.get_svg_canvas("material-icons",icon_name,icons.ICON_SIZE/2,-icons.ICON_SIZE/2,"start")),element_eval2.evaluate_property(instance,"button_disabled")&&canvas.attr("tabindex","-1")})}),element_eval2.on_property_change(instance,"icon_color",icon_color=>canvas.css("color",icon_color))})},is_input:!1,contains_group_data:!1,events:["ButtonClicked","ElementPressed"],add_an_invisible_div_on_the_top:!1,css_files:["css/optional/material-icons.css"]}}}keys(){return plugin_version()>=1?{}:{css_responsive:{caption:"Use new responsive properties for this plugin's elements",type:"client_safe",editor:"Checkbox"}}}},materialicons={cls};typeof window<"u"&&window!==null&&((_window$optional_modu=(_window3=window).optional_modules)!=null||(_window3.optional_modules={}),window.optional_modules.materialicons=materialicons);var _window3,_window$optional_modu,plugin_registry=safe_require.safe_require("./services/shared/plugin_registry");plugin_registry.register_plugin("materialicons",materialicons);})();
/*! Bundled license information:

buffer/index.js:
  (*!
   * The buffer module from node.js, for the browser.
   *
   * @author   Feross Aboukhadijeh <https://feross.org>
   * @license  MIT
   *)
*/

}


window.preloaded['plugin/first_party:materialicons'] = true;
window.plugins = window.plugins || {};
window._bubble_page_load_data.plugins_size = window._bubble_page_load_data.plugins_size || {};
window.plugins["1484327506287x474510747987607550"] = {"human":"SendGrid","dependencies":{"use_jquery":true},"plugin_api":{"human":"SendGrid API","calls":{"Asu":{"name":"List all lists","method":"get","publish_as":"action","url":"https://api.sendgrid.com/v3/contactdb/lists","body":"{\n  \"name\": \"<List Name>\"\n}","body_params":{"Asv":{"key":"List Name","value":"List","private":true}},"initialized":true,"types":"{\"plugin_api.Asu\":{\"caption\":\"List all list\",\"fields\":{\"_p_lists\":{\"ret_value\":\"list.api.1484327506287x474510747987607550.plugin_api.Asu.lists\",\"caption\":\"lists\"}}},\"plugin_api.Asu.lists\":{\"caption\":\"List all lists list\",\"fields\":{\"_p_id\":{\"ret_value\":\"text\",\"caption\":\"id\"},\"_p_name\":{\"ret_value\":\"text\",\"caption\":\"name\"},\"_p_recipient_count\":{\"ret_value\":\"number\",\"caption\":\"recipient_count\"}}}}","ret_value":"api.1484327506287x474510747987607550.plugin_api.Asu","should_reinitialize":false},"AtA":{"0":"A","1":"s","2":"z","name":"Create list","method":"post","publish_as":"action","url":"https://api.sendgrid.com/v3/contactdb/lists","body":"{\n  \"name\": \"<List Name>\"\n}","body_params":{"Asv":{"key":"List Name","value":"List Name","private":true}},"initialized":true,"types":"{\"plugin_api.AtA\":{\"caption\":\"Create list\",\"fields\":{\"_p_id\":{\"ret_value\":\"text\",\"caption\":\"id\"},\"_p_name\":{\"ret_value\":\"text\",\"caption\":\"name\"},\"_p_recipient_count\":{\"ret_value\":\"number\",\"caption\":\"recipient_count\"}}}}","ret_value":"api.1484327506287x474510747987607550.plugin_api.AtA","should_reinitialize":false},"AtC":{"0":"A","1":"t","2":"B","name":"Create recipient","method":"post","publish_as":"action","url":"https://api.sendgrid.com/v3/contactdb/recipients","body":"[\n  {\n    \"first_name\": \"<First Name>\",\n    \"last_name\": \"<Last Name>\",\n    \"email\": \"<Email Address>\"\n  }\n]","initialized":true,"types":"{\"plugin_api.AtC\":{\"caption\":\"Create recipient\",\"fields\":{\"_p_new_count\":{\"ret_value\":\"number\",\"caption\":\"new_count\"},\"_p_updated_count\":{\"ret_value\":\"number\",\"caption\":\"updated_count\"},\"_p_error_count\":{\"ret_value\":\"number\",\"caption\":\"error_count\"},\"_p_persisted_recipients\":{\"ret_value\":\"list.text\",\"caption\":\"persisted_recipients\"}}}}","ret_value":"api.1484327506287x474510747987607550.plugin_api.AtC","body_params":{"AtL":{"key":"Email Address","value":"jane@email.com","private":true},"AtR":{"key":"First Name","value":"Jane","private":true},"AtV":{"key":"Last Name","value":"Doe","private":true}},"should_reinitialize":false},"Atb":{"0":"A","1":"t","2":"a","name":"Remove recipient from list","method":"delete_method","publish_as":"action","url":"https://api.sendgrid.com/v3/contactdb/lists/[List ID]/recipients/[Recipient ID]","body":"","initialized":true,"types":"{\"plugin_api.AtB\":{\"caption\":\"Create contact\",\"fields\":{\"_p_new_count\":{\"ret_value\":\"number\",\"caption\":\"new_count\"},\"_p_updated_count\":{\"ret_value\":\"number\",\"caption\":\"updated_count\"},\"_p_error_count\":{\"ret_value\":\"number\",\"caption\":\"error_count\"},\"_p_persisted_recipients\":{\"ret_value\":\"list.text\",\"caption\":\"persisted_recipients\"}}}}","ret_value":"api.1484327506287x474510747987607550.plugin_api.AtW","url_params":{"AtY":{"key":"List ID","value":"11986007","private":true},"AtZ":{"key":"Recipient ID","value":"YWd1c3RhZnNvbkBleHByZXNzb2lsLmNvbQ==","private":true}},"data_type":"empty","should_reinitialize":true},"Atd":{"0":"A","1":"t","2":"c","name":"Retrieve recipient","method":"get","publish_as":"action","url":"https://api.sendgrid.com/v3/contactdb/recipients/[Recipient ID]","body":"[\n  {\n    \"first_name\": \"<First Name>\",\n    \"last_name\": \"<Last Name>\",\n    \"email\": \"<Email Address>\"\n  }\n]","initialized":true,"types":"{\"plugin_api.Atc\":{\"caption\":\"Retrieve contact\",\"fields\":{\"_p_id\":{\"ret_value\":\"text\",\"caption\":\"id\"},\"_p_email\":{\"ret_value\":\"text\",\"caption\":\"email\"},\"_p_created_at\":{\"ret_value\":\"number\",\"caption\":\"created_at\"},\"_p_updated_at\":{\"ret_value\":\"number\",\"caption\":\"updated_at\"},\"_p_last_emailed\":{\"ret_value\":\"text\",\"caption\":\"last_emailed\"},\"_p_last_clicked\":{\"ret_value\":\"text\",\"caption\":\"last_clicked\"},\"_p_last_opened\":{\"ret_value\":\"text\",\"caption\":\"last_opened\"},\"_p_first_name\":{\"ret_value\":\"text\",\"caption\":\"first_name\"},\"_p_last_name\":{\"ret_value\":\"text\",\"caption\":\"last_name\"},\"_p_custom_fields\":{\"ret_value\":\"list.api.1484327506287x474510747987607550.plugin_api.Atd.custom_fields\",\"caption\":\"custom_fields\"}}},\"plugin_api.Atd.custom_fields\":{\"caption\":\"Retrieve contact custom_field\",\"fields\":{\"_p_id\":{\"ret_value\":\"text\",\"caption\":\"id\"},\"_p_name\":{\"ret_value\":\"text\",\"caption\":\"name\"},\"_p_type\":{\"ret_value\":\"text\",\"caption\":\"type\"},\"_p_value\":{\"ret_value\":\"text\",\"caption\":\"value\"}}}}","ret_value":"api.1484327506287x474510747987607550.plugin_api.Atd","body_params":{"AtL":{"key":"Email Address","value":"john@email.com","private":true},"AtR":{"key":"First Name","value":"John","private":true},"AtV":{"key":"Last Name","value":"Smith","private":true}},"url_params":{"Ate":{"key":"Recipient ID","value":"am9obkBlbWFpbC5jb20=","private":true}},"should_reinitialize":true},"Atg":{"0":"A","1":"t","2":"f","name":"Delete recipient","method":"delete_method","publish_as":"action","url":"https://api.sendgrid.com/v3/contactdb/recipients/[Recipient ID]","body":"","initialized":true,"types":"{\"plugin_api.Atc\":{\"caption\":\"Retrieve contact\",\"fields\":{\"_p_id\":{\"ret_value\":\"text\",\"caption\":\"id\"},\"_p_email\":{\"ret_value\":\"text\",\"caption\":\"email\"},\"_p_created_at\":{\"ret_value\":\"number\",\"caption\":\"created_at\"},\"_p_updated_at\":{\"ret_value\":\"number\",\"caption\":\"updated_at\"},\"_p_last_emailed\":{\"ret_value\":\"text\",\"caption\":\"last_emailed\"},\"_p_last_clicked\":{\"ret_value\":\"text\",\"caption\":\"last_clicked\"},\"_p_last_opened\":{\"ret_value\":\"text\",\"caption\":\"last_opened\"},\"_p_first_name\":{\"ret_value\":\"text\",\"caption\":\"first_name\"},\"_p_last_name\":{\"ret_value\":\"text\",\"caption\":\"last_name\"},\"_p_custom_fields\":{\"ret_value\":\"list.api.1484327506287x474510747987607550.plugin_api.Atf.custom_fields\",\"caption\":\"custom_fields\"}}},\"plugin_api.Atf.custom_fields\":{\"caption\":\"Retrieve contact custom_field\",\"fields\":{\"_p_id\":{\"ret_value\":\"text\",\"caption\":\"id\"},\"_p_name\":{\"ret_value\":\"text\",\"caption\":\"name\"},\"_p_type\":{\"ret_value\":\"text\",\"caption\":\"type\"},\"_p_value\":{\"ret_value\":\"text\",\"caption\":\"value\"}}}}","ret_value":"api.1484327506287x474510747987607550.plugin_api.Atf","url_params":{"Ate":{"key":"Recipient ID","value":"YWd1c3RhZnNvbkBleHByZXNzb2lsLmNvbQ==","private":true}},"data_type":"empty","should_reinitialize":true},"Atl":{"0":"A","1":"t","2":"k","name":"List all recipients","method":"get","publish_as":"action","url":"https://api.sendgrid.com/v3/contactdb/recipients","body":"{\n  \"name\": \"<List Name>\"\n}","body_params":{"Asv":{"key":"List Name","value":"List","private":true}},"initialized":true,"types":"{\"plugin_api.Atk\":{\"caption\":\"List all recipient\",\"fields\":{\"_p_recipient_count\":{\"ret_value\":\"number\",\"caption\":\"recipient_count\"},\"_p_recipients\":{\"ret_value\":\"list.api.1484327506287x474510747987607550.plugin_api.Atl.recipients\",\"caption\":\"recipients\"}}},\"plugin_api.Atl.recipients\":{\"caption\":\"List all recipients recipient\",\"fields\":{\"_p_id\":{\"ret_value\":\"text\",\"caption\":\"id\"},\"_p_email\":{\"ret_value\":\"text\",\"caption\":\"email\"},\"_p_created_at\":{\"ret_value\":\"date_unix\",\"caption\":\"created_at\"},\"_p_updated_at\":{\"ret_value\":\"date_unix\",\"caption\":\"updated_at\"},\"_p_last_emailed\":{\"ret_value\":\"date_unix\",\"caption\":\"last_emailed\"},\"_p_last_clicked\":{\"ret_value\":\"date_unix\",\"caption\":\"last_clicked\"},\"_p_last_opened\":{\"ret_value\":\"date_unix\",\"caption\":\"last_opened\"},\"_p_first_name\":{\"ret_value\":\"text\",\"caption\":\"first_name\"},\"_p_last_name\":{\"ret_value\":\"text\",\"caption\":\"last_name\"},\"_p_custom_fields\":{\"ret_value\":\"list.api.1484327506287x474510747987607550.plugin_api.Atl.custom_fields\",\"caption\":\"custom_fields\"}}},\"plugin_api.Atl.custom_fields\":{\"caption\":\"List all recipients custom_field\",\"fields\":{\"_p_id\":{\"ret_value\":\"text\",\"caption\":\"id\"},\"_p_name\":{\"ret_value\":\"text\",\"caption\":\"name\"},\"_p_type\":{\"ret_value\":\"text\",\"caption\":\"type\"},\"_p_value\":{\"ret_value\":\"text\",\"caption\":\"value\"}}}}","ret_value":"api.1484327506287x474510747987607550.plugin_api.Atl","should_reinitialize":false},"Atn":{"0":"A","1":"t","2":"m","name":"List a list's recipients","method":"get","publish_as":"action","url":"https://api.sendgrid.com/v3/contactdb/lists/[List ID]/recipients","body":"{\n  \"name\": \"<List Name>\"\n}","body_params":{"Asv":{"key":"List Name","value":"List","private":true}},"initialized":true,"types":"{\"plugin_api.Atn\":{\"caption\":\"List a list's recipient\",\"fields\":{\"_p_recipient_count\":{\"ret_value\":\"number\",\"caption\":\"recipient_count\"},\"_p_recipients\":{\"ret_value\":\"list.api.1484327506287x474510747987607550.plugin_api.Atn.recipients\",\"caption\":\"recipients\"}}},\"plugin_api.Atn.recipients\":{\"caption\":\"List a list's recipients recipient\",\"fields\":{\"_p_id\":{\"ret_value\":\"text\",\"caption\":\"id\"},\"_p_email\":{\"ret_value\":\"text\",\"caption\":\"email\"},\"_p_created_at\":{\"ret_value\":\"date_unix\",\"caption\":\"created_at\"},\"_p_updated_at\":{\"ret_value\":\"date_unix\",\"caption\":\"updated_at\"},\"_p_last_emailed\":{\"ret_value\":\"date_unix\",\"caption\":\"last_emailed\"},\"_p_last_clicked\":{\"ret_value\":\"date_unix\",\"caption\":\"last_clicked\"},\"_p_last_opened\":{\"ret_value\":\"date_unix\",\"caption\":\"last_opened\"},\"_p_first_name\":{\"ret_value\":\"text\",\"caption\":\"first_name\"},\"_p_last_name\":{\"ret_value\":\"text\",\"caption\":\"last_name\"}}}}","ret_value":"api.1484327506287x474510747987607550.plugin_api.Atn","should_reinitialize":false,"url_params":{"Ato":{"key":"List ID","value":"4200658","private":true}}}},"shared_headers":{"Asx":{"key":"Content-Type","value":"application/json","private":true,"visibility":"hidden"},"Asy":{"key":"Authorization","private":true,"visibility":"secret"}},"auth":"none"},"shared_keys":{"ArF":{"caption":"API Key","type":"secure"}},"plugin_actions":{"AjR":{"display":"SendGrid - Send email","type":"server_side","return_value":{"ArB":{"caption":"Success","name":"Success","rank":1,"value":"boolean"},"Ari":{"caption":"Errors","name":"Errors","rank":2,"value":"text","is_list":true},"Ath":{"caption":"Message ID","name":"message_id","rank":0,"value":"text"}},"fields":{"Aqv":{"caption":"To Email Addresses (minimum 1 recipient)","name":"to_email_address","rank":7,"editor":"DynamicValue","value":"text","is_list":false},"Aqw":{"caption":"CC Email Addresses","name":"cc_email_address","rank":8,"editor":"DynamicValue","value":"text","optional":true},"Aqx":{"caption":"BCC Email Addresses","name":"bcc_email_address","rank":9,"editor":"DynamicValue","value":"text","optional":true},"Aqy":{"caption":"From Name","name":"from_name","rank":5,"editor":"DynamicValue","value":"text"},"Aqz":{"caption":"From Email Address","name":"from_email_address","rank":6,"editor":"DynamicValue","value":"text"},"ArA":{"caption":"Template ID","name":"template_id","rank":2,"editor":"DynamicValue","value":"text"},"ArG":{"caption":"Subject","name":"subject","rank":4,"editor":"DynamicValue","value":"text"},"ArI":{"caption":"Enable Click Tracking","name":"clicktracking","rank":23,"editor":"Checkbox","default_val":true},"ArJ":{"caption":"Enable Open Tracking","name":"opentracking","rank":22,"editor":"Checkbox","default_val":true},"ArL":{"caption":"Unsubscribe Group ID","name":"unsubscribe_group_id","rank":26,"editor":"DynamicValue","value":"text","optional":true},"Arg":{"caption":"Type","name":"template_type","rank":1,"editor":"Dropdown","default_val":"Dynamic"},"Asa":{"caption":"Attachment 1 Data (optional)","name":"attachment1_data","rank":14,"editor":"DynamicValue","value":"text","optional":true},"Asb":{"caption":"Attachment 1 Filename (optional)","name":"attachment1_filename","rank":13,"editor":"DynamicValue","value":"text","optional":true},"Asc":{"caption":"Attachment 2 Filename (optional)","name":"attachment2_filename","rank":15,"editor":"DynamicValue","value":"text","optional":true},"Asd":{"caption":"Attachment 2 Data (optional)","name":"attachment2_data","rank":16,"editor":"DynamicValue","value":"text","optional":true},"Ase":{"caption":"Attachment 3 Filename (optional)","name":"attachment3_filename","rank":17,"editor":"DynamicValue","value":"text","optional":true},"Asf":{"caption":"Attachment 3 Data","name":"attachment3_data","rank":18,"editor":"DynamicValue","value":"text","optional":true},"Asg":{"caption":"Substitution Tags","name":"sub_tags","rank":11,"editor":"key_value_list","value":"text"},"Asi":{"caption":"𝗢𝗣𝗧𝗜𝗢𝗡𝗦","name":"𝗢𝗣𝗧𝗜𝗢𝗡𝗦","rank":21,"editor":"Label"},"Asj":{"caption":"𝗔𝗧𝗧𝗔𝗖𝗛𝗠𝗘𝗡𝗧𝗦","name":"𝗔𝗧𝗧𝗔𝗖𝗛𝗠𝗘𝗡𝗧𝗦","rank":12,"editor":"Label"},"Ask":{"caption":"𝗧𝗘𝗠𝗣𝗟𝗔𝗧𝗘","name":"𝗧𝗘𝗠𝗣𝗟𝗔𝗧𝗘","rank":0,"editor":"Label"},"Asl":{"caption":"𝗖𝗢𝗡𝗧𝗘𝗡𝗧","name":"𝗖𝗢𝗡𝗧𝗘𝗡𝗧","rank":3,"editor":"Label"},"Asm":{"caption":"Reply-To Email Addresses","name":"reply_to_email_addresses","rank":10,"editor":"DynamicValue","value":"text","optional":true},"Asn":{"caption":"Scheduled Date","name":"send_at","rank":24,"editor":"DynamicValue","value":"date","optional":true},"Atr":{"caption":"On Behalf Of","name":"onBehalfOf","rank":27,"editor":"DynamicValue","value":"text","optional":true},"Atu":{"caption":"𝗠𝗘𝗧𝗔𝗗𝗔𝗧𝗔","name":"𝗠𝗘𝗧𝗔𝗗𝗔𝗧𝗔","rank":19,"editor":"Label"},"Atv":{"caption":"Custom Arguments","name":"customArgs","rank":20,"editor":"key_value_list","value":"text"},"Atw":{"caption":"Batch ID","name":"batchId","rank":25,"editor":"DynamicValue","value":"text","optional":true}}},"Aso":{"display":"SendGrid - Send email (custom)","type":"server_side","return_value":{"ArB":{"caption":"Success","name":"Success","rank":1,"value":"boolean"},"Ari":{"caption":"Errors","name":"Errors","rank":2,"value":"text","is_list":true},"Ati":{"caption":"Message ID","name":"message_id","rank":0,"value":"text"}},"fields":{"Aqv":{"caption":"To Email Addresses (minimum 1 recipient)","name":"to_email_address","rank":7,"editor":"DynamicValue","value":"text","is_list":false},"Aqw":{"caption":"CC Email Addresses (optional)","name":"cc_email_address","rank":8,"editor":"DynamicValue","value":"text","optional":true},"Aqx":{"caption":"BCC Email Addresses (optional)","name":"bcc_email_address","rank":9,"editor":"DynamicValue","value":"text","optional":true},"Aqy":{"caption":"From Name","name":"from_name","rank":5,"editor":"DynamicValue","value":"text"},"Aqz":{"caption":"From Email Address","name":"from_email_address","rank":6,"editor":"DynamicValue","value":"text"},"ArA":{"caption":"Template ID","name":"template_id","rank":2,"editor":"DynamicValue","value":"text"},"ArG":{"caption":"Subject","name":"subject","rank":4,"editor":"DynamicValue","value":"text"},"ArI":{"caption":"Enable Click Tracking","name":"clicktracking","rank":21,"editor":"Checkbox","default_val":true},"ArJ":{"caption":"Enable Open Tracking","name":"opentracking","rank":20,"editor":"Checkbox","default_val":true},"ArL":{"caption":"Unsubscribe Group ID","name":"unsubscribe_group_id","rank":23,"editor":"DynamicValue","value":"text","optional":true},"Arg":{"caption":"Type","name":"template_type","rank":1,"editor":"Dropdown","default_val":"Dynamic"},"Asa":{"caption":"Attachment 1 Data (optional)","name":"attachment1_data","rank":14,"editor":"DynamicValue","value":"text","optional":true},"Asb":{"caption":"Attachment 1 Filename (optional)","name":"attachment1_filename","rank":13,"editor":"DynamicValue","value":"text","optional":true},"Asc":{"caption":"Attachment 2 Filename (optional)","name":"attachment2_filename","rank":15,"editor":"DynamicValue","value":"text","optional":true},"Asd":{"caption":"Attachment 2 Data (optional)","name":"attachment2_data","rank":16,"editor":"DynamicValue","value":"text","optional":true},"Ase":{"caption":"Attachment 3 Filename (optional)","name":"attachment3_filename","rank":17,"editor":"DynamicValue","value":"text","optional":true},"Asf":{"caption":"Attachment 3 Data","name":"attachment3_data","rank":18,"editor":"DynamicValue","value":"text","optional":true},"Asi":{"caption":"𝗢𝗣𝗧𝗜𝗢𝗡𝗦","name":"𝗢𝗣𝗧𝗜𝗢𝗡𝗦","rank":19,"editor":"Label"},"Asj":{"caption":"𝗔𝗧𝗧𝗔𝗖𝗛𝗠𝗘𝗡𝗧𝗦","name":"𝗔𝗧𝗧𝗔𝗖𝗛𝗠𝗘𝗡𝗧𝗦","rank":12,"editor":"Label"},"Ask":{"caption":"𝗧𝗘𝗠𝗣𝗟𝗔𝗧𝗘","name":"𝗧𝗘𝗠𝗣𝗟𝗔𝗧𝗘","rank":0,"editor":"Label"},"Asl":{"caption":"𝗖𝗢𝗡𝗧𝗘𝗡𝗧","name":"𝗖𝗢𝗡𝗧𝗘𝗡𝗧","rank":3,"editor":"Label"},"Asm":{"caption":"Reply-To Email Address (optional)","name":"reply_to_email_address","rank":10,"editor":"DynamicValue","value":"text","optional":true},"Asn":{"caption":"Scheduled Date","name":"send_at","rank":22,"editor":"DynamicValue","value":"date","optional":true},"Asp":{"caption":"Custom Data","name":"custom_data","rank":11,"editor":"DynamicValue","value":"text","default_val":"{ \"items\": [{ \"name\": \"shirt\" }] }"},"Ats":{"caption":"On Behalf Of","name":"onBehalfOf","rank":24,"editor":"DynamicValue","optional":true,"value":"text"}}},"Asr":{"display":"SendGrid - Send plain-text email","type":"server_side","return_value":{"ArB":{"caption":"Sent","name":"Success","rank":1,"value":"boolean"},"Ari":{"caption":"Errors","name":"Errors","rank":2,"value":"text","is_list":true},"Atj":{"caption":"Message ID","name":"message_id","rank":0,"value":"text"}},"fields":{"Aqv":{"caption":"To Email Addresses (minimum 1 recipient)","name":"to_email_address","rank":4,"editor":"DynamicValue","value":"text","is_list":false},"Aqw":{"caption":"CC Email Addresses (optional)","name":"cc_email_address","rank":5,"editor":"DynamicValue","value":"text","optional":true},"Aqx":{"caption":"BCC Email Addresses (optional)","name":"bcc_email_address","rank":6,"editor":"DynamicValue","value":"text","optional":true},"Aqy":{"caption":"From Name","name":"from_name","rank":2,"editor":"DynamicValue","value":"text"},"Aqz":{"caption":"From Email Address","name":"from_email_address","rank":3,"editor":"DynamicValue","value":"text"},"ArG":{"caption":"Subject","name":"subject","rank":1,"editor":"DynamicValue","value":"text"},"ArI":{"caption":"Enable Click Tracking","name":"clicktracking","rank":18,"editor":"Checkbox","default_val":true},"ArJ":{"caption":"Enable Open Tracking","name":"opentracking","rank":17,"editor":"Checkbox","default_val":true},"ArL":{"caption":"Unsubscribe Group ID","name":"unsubscribe_group_id","rank":20,"editor":"DynamicValue","value":"text","optional":true},"Asa":{"caption":"Attachment 1 Data (optional)","name":"attachment1_data","rank":11,"editor":"DynamicValue","value":"text","optional":true},"Asb":{"caption":"Attachment 1 Filename (optional)","name":"attachment1_filename","rank":10,"editor":"DynamicValue","value":"text","optional":true},"Asc":{"caption":"Attachment 2 Filename (optional)","name":"attachment2_filename","rank":12,"editor":"DynamicValue","value":"text","optional":true},"Asd":{"caption":"Attachment 2 Data (optional)","name":"attachment2_data","rank":13,"editor":"DynamicValue","value":"text","optional":true},"Ase":{"caption":"Attachment 3 Filename (optional)","name":"attachment3_filename","rank":14,"editor":"DynamicValue","value":"text","optional":true},"Asf":{"caption":"Attachment 3 Data","name":"attachment3_data","rank":15,"editor":"DynamicValue","value":"text","optional":true},"Asi":{"caption":"𝗢𝗣𝗧𝗜𝗢𝗡𝗦","name":"𝗢𝗣𝗧𝗜𝗢𝗡𝗦","rank":16,"editor":"Label"},"Asj":{"caption":"𝗔𝗧𝗧𝗔𝗖𝗛𝗠𝗘𝗡𝗧𝗦","name":"𝗔𝗧𝗧𝗔𝗖𝗛𝗠𝗘𝗡𝗧𝗦","rank":9,"editor":"Label"},"Asl":{"caption":"𝗖𝗢𝗡𝗧𝗘𝗡𝗧","name":"𝗖𝗢𝗡𝗧𝗘𝗡𝗧","rank":0,"editor":"Label"},"Asm":{"caption":"Reply-To Email Address (optional)","name":"reply_to_email_address","rank":7,"editor":"DynamicValue","value":"text","optional":true},"Asn":{"caption":"Scheduled Date","name":"send_at","rank":19,"editor":"DynamicValue","value":"date","optional":true},"Ass":{"caption":"Body","name":"body","rank":8,"editor":"DynamicValue","value":"text"},"Att":{"caption":"On Behalf Of","name":"onBehalfOf","rank":21,"editor":"DynamicValue","value":"text","optional":true}}},"Atq":{"display":"SendGrid - Add Contact to List(s)","type":"server_side","return_value":{"ArB":{"caption":"Success","name":"Success","rank":1,"value":"boolean"},"Ari":{"caption":"Errors","name":"Errors","rank":2,"value":"text","is_list":true},"Ath":{"caption":"Message ID","name":"message_id","rank":0,"value":"text"}},"fields":{"Aqv":{"caption":"To Email Addresses (minimum 1 recipient)","name":"to_email_address","rank":7,"editor":"DynamicValue","value":"text","is_list":false},"Aqw":{"caption":"CC Email Addresses (optional)","name":"cc_email_address","rank":8,"editor":"DynamicValue","value":"text","optional":true},"Aqx":{"caption":"BCC Email Addresses (optional)","name":"bcc_email_address","rank":9,"editor":"DynamicValue","value":"text","optional":true},"Aqy":{"caption":"From Name","name":"from_name","rank":5,"editor":"DynamicValue","value":"text"},"Aqz":{"caption":"From Email Address","name":"from_email_address","rank":6,"editor":"DynamicValue","value":"text"},"ArA":{"caption":"Template ID","name":"email","rank":2,"editor":"DynamicValue","value":"text"},"ArG":{"caption":"Subject","name":"subject","rank":4,"editor":"DynamicValue","value":"text"},"ArI":{"caption":"Enable Click Tracking","name":"clicktracking","rank":21,"editor":"Checkbox","default_val":true},"ArJ":{"caption":"Enable Open Tracking","name":"opentracking","rank":20,"editor":"Checkbox","default_val":true},"ArL":{"caption":"Unsubscribe Group ID","name":"unsubscribe_group_id","rank":23,"editor":"DynamicValue","value":"text","optional":true},"Arg":{"caption":"List ID","name":"list_id","rank":1,"editor":"DynamicValue","value":"text"},"Asa":{"caption":"Attachment 1 Data (optional)","name":"attachment1_data","rank":14,"editor":"DynamicValue","value":"text","optional":true},"Asb":{"caption":"Attachment 1 Filename (optional)","name":"attachment1_filename","rank":13,"editor":"DynamicValue","value":"text","optional":true},"Asc":{"caption":"Attachment 2 Filename (optional)","name":"attachment2_filename","rank":15,"editor":"DynamicValue","value":"text","optional":true},"Asd":{"caption":"Attachment 2 Data (optional)","name":"attachment2_data","rank":16,"editor":"DynamicValue","value":"text","optional":true},"Ase":{"caption":"Attachment 3 Filename (optional)","name":"attachment3_filename","rank":17,"editor":"DynamicValue","value":"text","optional":true},"Asf":{"caption":"Attachment 3 Data","name":"attachment3_data","rank":18,"editor":"DynamicValue","value":"text","optional":true},"Asg":{"caption":"Substitution Tags","name":"sub_tags","rank":11,"editor":"key_value_list","value":"text"},"Ash":{"caption":"Subscribe for updates and bugs at https://withcopilot.com/plugins/sendgrid","name":"info2","rank":0,"editor":"Label"},"Asi":{"caption":"𝗢𝗣𝗧𝗜𝗢𝗡𝗦","name":"𝗢𝗣𝗧𝗜𝗢𝗡𝗦","rank":19,"editor":"Label"},"Asj":{"caption":"Attachments ================================","name":"info4","rank":12,"editor":"Label"},"Asl":{"caption":"Content ====================================","name":"info7","rank":3,"editor":"Label"},"Asm":{"caption":"Reply-To Email Address (optional)","name":"reply_to_email_address","rank":10,"editor":"DynamicValue","value":"text","optional":true},"Asn":{"caption":"Scheduled Date","name":"send_at","rank":22,"editor":"DynamicValue","value":"date","optional":true}}}}};
window._bubble_page_load_data.plugins_size['1484327506287x474510747987607550'] = 23880;
window.preloaded['plugin/third_party:1484327506287x474510747987607550:6.2.13'] = true;
window.plugins["1488796042609x768734193128308700"] = {"human":"Toolbox","dependencies":{"use_jquery":true},"plugin_elements":{"AAC":{"display":"List of Numbers","property_applications":{"resizable":true},"add_is_visible":true,"fields":{"AAE":{"caption":"Start number","name":"number_start","editor":"DynamicValue","value":"number","rank":0},"AAF":{"caption":"Length of list","name":"list_length","editor":"DynamicValue","value":"number","is_list":false,"rank":1},"AAG":{"caption":"Increment","name":"increment","editor":"DynamicValue","value":"number","rank":2}},"states":{"AAD":{"caption":"list","name":"list","value":"number","is_list":true,"initialization_code":{"fn":"function(properties, context) {\n\n}\n"}}},"code":{"initialize":{"fn":"function(instance, context) {\n\n}"},"update":{"fn":"function(e,a,b){a.number_start;a.list_length;a.increment;b=[];if(null!==a.number_start&&null!==a.list_length&&null!==a.increment)for(var c=a.number_start,d=0;d<a.list_length;d++)b.push(c),c+=a.increment;e.publishState(\"list\",b)};"}}},"AAI":{"display":"Expression","property_applications":{"resizable":true},"add_is_visible":true,"fields":{"AAJ":{"caption":"Expression","name":"expression","editor":"DynamicValue","value":"text","rank":1},"AAL":{"caption":"Result type","name":"result_type","editor":"custom_type","rank":3},"AAM":{"caption":"Result is a list","name":"result_is_list","editor":"Checkbox","default_val":false,"rank":4},"AAj":{"caption":"Ensure that data from untrusted sources has been sanitized to ensure no executable code.","name":"infodatasanitize","rank":0,"editor":"Label"},"AAk":{"caption":"Result types can be: text, number, boolean, date, number range, date range, date interval, geographic address.","name":"inforesulttype","rank":2,"editor":"Label"}},"states":{"AAN":{"caption":"value","name":"value","value":"custom_data_AAL","initialization_code":{"fn":"function(properties, context) {\n\n}"}},"AAO":{"caption":"value list","name":"value_list","value":"custom_data_AAL","is_list":true,"initialization_code":{"fn":"function(properties, context) {\n\n}"}}},"code":{"initialize":{"fn":"function(instance, context) {\n\n\n\n}"},"update":{"fn":"function(c,a,b){a.expression;a.result_type;a.result_is_list;b=null!=a.expression?eval(a.expression):null;a.result_is_list?c.publishState(\"value_list\",b):c.publishState(\"value\",b)};","add_debugger":false}}},"AAP":{"display":"Javascript to Bubble","property_applications":{"resizable":true},"add_is_visible":true,"fields":{"AAQ":{"caption":"bubble_fn_<strong><i>suffix</i></strong>","name":"fn_name_suffix","editor":"DynamicValue","value":"text","rank":0},"AAR":{"caption":"Trigger event","name":"trigger_event","editor":"Checkbox","default_val":false,"rank":1},"AAS":{"caption":"Publish value","name":"publish_value","editor":"Checkbox","default_val":false,"rank":2},"AAT":{"caption":"Value type","name":"value_type","editor":"custom_type","optional":true,"rank":3},"AAU":{"caption":"Value is a list","name":"value_is_list","editor":"Checkbox","default_val":false,"rank":4}},"states":{"AAV":{"caption":"value","name":"value","value":"custom_data_AAT","initialization_code":{"fn":"function(properties, context) {\n\n}"}},"AAW":{"caption":"value list","name":"value_list","value":"custom_data_AAT","is_list":true,"initialization_code":{"fn":"function(properties, context) {\n\n}"}}},"events":{"AAX":{"caption":"event","name":"event"}},"code":{"initialize":{"fn":"function(instance, context) {\n\n\n\n}"},"update":{"fn":"function(b,a,c){c=a.fn_name_suffix;var d=a.trigger_event,e=a.publish_value,f=a.value_is_list;c&&(window[\"bubble_fn_\"+c]=function(a){e&&(f?b.publishState(\"value_list\",a):b.publishState(\"value\",a));d&&b.triggerEvent(\"event\")})};"}}},"AAY":{"display":"List Item Expression","property_applications":{"resizable":true},"add_is_visible":true,"fields":{"AAZ":{"caption":"Source item type","name":"sourcetype","editor":"custom_type","rank":0},"AAa":{"caption":"Data source (list)","name":"sourcelist","editor":"DynamicValue","optional":true,"value":"custom_data_AAZ","is_list":true,"rank":1},"AAb":{"caption":"Item expression","name":"itemexpression","editor":"DynamicValue","value":"text","default_val":"","rank":3},"AAc":{"caption":"Result type","name":"resultlisttype","editor":"custom_type","rank":4},"AAl":{"caption":"Lookup values with value() or field(\"field_name\") or field(\"other_data_type\", \"field_name\"). Alternatively, use chained functions item() and lookup() ...  item().lookup(\"Product\").lookup(\"Name\")","name":"infoexpression","rank":2,"editor":"Label"}},"states":{"AAd":{"caption":"list","name":"resultlist","value":"custom_data_AAc","is_list":true,"initialization_code":{"fn":"function(properties, context) {\n\n}"}}},"actions":{"AAe":{"caption":"Set data source","code":{"fn":"function(a,b,d){var c;d=[];var e=0;b.sourcelist&&b.sourcelist.length&&(e=b.sourcelist.length());if(0<e)for(c=0;c<e;c++){var g=b.sourcelist.get(c,1);a.data.item=g[0];try{d.push(window.toolboxEval({value:a.data.value,field:a.data.field,item:a.data.createItem,lookup:a.data.lookup,expression:a.data.itemexpression}))}catch(f){throw\"not ready\"!==f.message&&console.error(f),f;}}a.publishState(\"resultlist\",d)};"},"fields":{"AAf":{"caption":"Data source (list)","name":"sourcelist","editor":"DynamicValue","value":"custom_data_element_AAZ","is_list":true,"optional":true,"rank":0}}}},"code":{"initialize":{"fn":"function(b,k){b.data.value=function(){return null==b.data.item||b.data.item.listProperties?null:b.data.item};b.data.field=function(){if(b.data.item&&b.data.item.listProperties){for(var c=b.data.item,e=b.data.sourcetype,a=0;a<arguments.length;a++){var d=arguments[a],h=e.replace(\"custom.\",\"\");app.user_types[h];var f=app.user_types[h][\"%f3\"];Object.keys(f).forEach(function(a){f[a][\"%d\"]==d&&(d=a,e=f[a][\"%v\"])});if(null===c)break;c=c.get(d)}return c}return null};b.data.createItem=function(c,\ne){return{fieldType:e?e:b.data.sourcetype,bubbleItem:c?c:b.data.item,lookup:function(a){return b.data.lookup(this,a)}}};b.data.lookup=function(c,e){if(!(\"object\"===typeof c&&\"fieldType\"in c&&\"bubbleItem\"in c))return console.error(\"List Item Expression - lookup() cannot retrieve from a non-item.\"),null;var a=c.bubbleItem,d=c.fieldType;if(!(\"object\"===typeof a&&\"listProperties\"in a&&\"get\"in a))return console.error(\"List Item Expression - lookup() cannot retrieve from a non-item.\"),null;d=d.replace(\"custom.\",\n\"\");app.user_types[d];var h=app.user_types[d][\"%f3\"],f=null;Object.keys(h).forEach(function(a){h[a][\"%d\"]==e&&(e=a,f=h[a][\"%v\"])});if((a=a.get(e))&&\"object\"===typeof a&&\"length\"in a&&\"get\"in a){newresult=[];f=f.replace(\"list.\",\"\");for(d=0;d<a.length();d++){var g=a.get(d,1)[0];\"object\"===typeof g&&\"listProperties\"in g&&\"get\"in g?(g=b.data.createItem(g,f),newresult.push(g)):newresult.push(g)}return newresult}return a&&\"object\"===typeof a&&\"listProperties\"in a&&\"get\"in a?g=b.data.createItem(a,f):a}};"},"update":{"fn":"function(a,b,d){var c;a.data.sourcetype=b.sourcetype;a.data.itemexpression=b.itemexpression;d=[];var e=0;b.sourcelist&&b.sourcelist.length&&(e=b.sourcelist.length());if(0<e)for(c=0;c<e;c++){var g=b.sourcelist.get(c,1);a.data.item=g[0];try{d.push(window.toolboxEval({value:a.data.value,field:a.data.field,item:a.data.createItem,lookup:a.data.lookup,expression:a.data.itemexpression}))}catch(f){throw\"not ready\"!==f.message&&console.error(f),f;}}a.publishState(\"resultlist\",d)};"}}}},"plugin_actions":{"AAg":{"display":"Run javascript","type":"client_side","fields":{"AAh":{"caption":"Script. To use a return value, use in conjuction with element Javascript to Bubble.","name":"script","editor":"DynamicValue","value":"text","rank":0},"AAi":{"caption":"Asynchronous","name":"async","editor":"Checkbox","default_val":true,"rank":1}},"code":{"client":{"fn":"function(a,c){var b=a.script;a.async?setTimeout(function(){eval(b)},1):eval(b)};"}}},"AAn":{"display":"Server script","type":"server_side","return_value":{"AAz":{"caption":"result","name":"result","rank":0,"value":"custom_data_AAp"},"ABA":{"caption":"result list","name":"resultlist","rank":1,"is_list":true,"value":"custom_data_AAp"}},"fields":{"AAo":{"caption":"Node script","name":"script","rank":0,"editor":"DynamicValue","value":"text","optional":true},"AAp":{"caption":"Return type","name":"returntype","rank":1,"editor":"custom_type","optional":false},"AAq":{"caption":"Returns a list","name":"returnslist","rank":2,"editor":"Checkbox","default_val":false},"AAr":{"caption":"Data","name":"data","rank":3,"editor":"DynamicValue","value":"text","optional":true},"AAs":{"caption":"Keys and values","name":"keyvalues","rank":4,"editor":"key_value_list","value":"text"},"AAt":{"caption":"Thing 1","name":"thing1","rank":5,"editor":"DynamicValue","value":"_any_thing","optional":true},"AAu":{"caption":"Thing 2","name":"thing2","rank":6,"editor":"DynamicValue","value":"_any_thing","optional":true},"AAv":{"caption":"Thing 3","name":"thing3","rank":7,"editor":"DynamicValue","optional":true,"value":"_any_thing"},"AAw":{"caption":"Thing list 1","name":"thinglist1","rank":8,"optional":true,"editor":"DynamicValue","is_list":true,"value":"_any_thing"},"AAx":{"caption":"Thing list 2","name":"thinglist2","rank":9,"editor":"DynamicValue","is_list":true,"optional":true,"value":"_any_thing"},"AAy":{"caption":"Thing list 3","name":"thinglist3","rank":10,"editor":"DynamicValue","optional":true,"is_list":true,"value":"_any_thing"}}}}};
window._bubble_page_load_data.plugins_size['1488796042609x768734193128308700'] = 9426;
window.preloaded['plugin/third_party:1488796042609x768734193128308700:1.1.4'] = true;
window.plugins["1491335652216x244791287519117300"] = {"human":"Typewriter Text","dependencies":{"use_jquery":true},"plugin_elements":{"AAC":{"display":"Typewriter Text","property_applications":{"resizable":true,"MinWidth":true,"Background":true,"Border":true,"Padding":true,"Font":true},"add_hover_pressed":true,"add_is_visible":true,"fields":{"AAD":{"caption":"Pause at start (ms)","name":"startDelay","editor":"StaticNumber","optional":true,"rank":0,"default_val":200},"AAE":{"caption":"Pause at end (ms)","name":"backDelay","editor":"StaticNumber","optional":true,"rank":1,"default_val":300},"AAF":{"caption":"Typing speed","name":"typeSpeed","editor":"StaticNumber","optional":true,"rank":2,"default_val":25},"AAG":{"caption":"Deleting speed","name":"backSpeed","editor":"StaticNumber","optional":true,"rank":3,"default_val":-20},"AAH":{"caption":"Cursor character","name":"cursorChar","editor":"StaticText","default_val":"|","optional":true,"rank":4},"AAL":{"caption":"Typed statement 1","name":"typed_statement_1","editor":"DynamicValue","optional":true,"rank":5,"value":"text"},"AAM":{"caption":"Typed statement 2","name":"typed_statement_2","editor":"DynamicValue","optional":true,"rank":6,"value":"text"},"AAN":{"caption":"Typed statement 3","name":"typed_statement_3","editor":"DynamicValue","optional":true,"rank":7,"value":"text"},"AAO":{"caption":"Typed statement 4","name":"typed_statement_4","editor":"DynamicValue","optional":true,"rank":8,"value":"text"},"AAP":{"caption":"Typed statement 5","name":"typed_statement_5","editor":"DynamicValue","optional":true,"rank":9,"value":"text"},"AAf":{"caption":"Typed statement 6","name":"typed_statement_6","rank":10,"editor":"DynamicValue","value":"text","optional":true},"AAg":{"caption":"Typed statement 7","name":"typed_statement_7","rank":11,"editor":"DynamicValue","value":"text","optional":true}},"actions":{"AAQ":{"caption":"Update text","code":{"fn":"function(b,a,c){b=[];settings[0]=Number(a.a_startDelay);settings[1]=Number(a.a_backDelay);settings[2]=a.a_typeSpeed;settings[3]=Number(a.a_backSpeed);settings[4]=a.a_cursorChar;b[0]=a.a_typed_statement_1;b[1]=a.a_typed_statement_2;b[2]=a.a_typed_statement_3;b[3]=a.a_typed_statement_4;b[4]=a.a_typed_statement_5;for(a=b.length-1;0<=a;a--)null==b[a]&&b.splice(a,1);a=b.length;console.log(b);console.log(b);1==a&&window.doType1(settings,b);2==a&&window.doType2(settings,b);3==a&&window.doType3(settings,\nb);4==a&&window.doType4(settings,b);5==a&&window.doType5(settings,b)};"},"fields":{"AAS":{"caption":"Typed statement 1","name":"a_typed_statement_1","editor":"DynamicValue","optional":true,"value":"text","rank":0},"AAT":{"caption":"Typed statement 2","name":"a_typed_statement_2","editor":"DynamicValue","optional":true,"value":"text","rank":1},"AAU":{"caption":"Typed statement 3","name":"a_typed_statement_3","editor":"DynamicValue","optional":true,"value":"text","rank":2},"AAV":{"caption":"Typed statement 4","name":"a_typed_statement_4","editor":"DynamicValue","optional":true,"value":"text","rank":3},"AAW":{"caption":"Typed statement 5","name":"a_typed_statement_5","editor":"DynamicValue","optional":true,"value":"text","rank":4},"AAY":{"caption":"Pause at start (ms)","name":"a_startDelay","editor":"DynamicValue","optional":true,"value":"number","rank":5},"AAZ":{"caption":"Pause at end (ms)","name":"a_backDelay","editor":"DynamicValue","optional":true,"value":"number","rank":6},"AAa":{"caption":"Typing speed","name":"a_typeSpeed","editor":"DynamicValue","optional":true,"value":"number","rank":7},"AAb":{"caption":"Deleting speed","name":"a_backSpeed","editor":"DynamicValue","optional":true,"value":"number","rank":8},"AAc":{"caption":"Cursor character","name":"a_cursorChar","editor":"DynamicValue","optional":true,"value":"text","rank":9}}}},"code":{"initialize":{"fn":"function(a,b){a.data.spanId=\"span\"+Math.round(1E6*Math.random())+1;a.data.el=$('<span class=\"element\" class=\"'+a.data.spanId+'\"></span>');a.data.el.css(\"width\",\"100%\");a.data.el.css(\"height\",\"100%\");a.canvas.append(a.data.el)};","add_debugger":false},"update":{"fn":"function(e,a,b){b=[];for(var c=1;8>c;c++){var d=String(\"typed_statement_\"+c);if(null===a[d])break;else b.push(a[d])}e.data.el.typed({strings:b,startDelay:Number(a.startDelay),typeSpeed:a.typeSpeed,cursorChar:a.cursorChar,backSpeed:Number(a.backSpeed),backDelay:Number(a.backDelay),loop:!0,loopCount:!1})};"}}}}};
window._bubble_page_load_data.plugins_size['1491335652216x244791287519117300'] = 4349;
window.preloaded['plugin/third_party:1491335652216x244791287519117300:2.1.2'] = true;
window.plugins["1492117803371x414476256717570050"] = {"human":"Relative Time with Moment.js","dependencies":{"use_jquery":true},"plugin_elements":{"AAC":{"display":"Relative Time","property_applications":{"Font":false,"Padding":false,"Border":false,"Background":false,"resizable":true,"MinWidth":true,"BoxShadow":false},"add_hover_pressed":false,"add_is_visible":true,"fields":{"AAK":{"caption":"Date","name":"date_from","editor":"DynamicValue","value":"date","optional":false,"rank":0},"AAZ":{"caption":"Refresh Interval (milliseconds)","name":"interval","editor":"StaticNumber","rank":1,"optional":true},"AAc":{"caption":"Baseline Date (optional)","name":"base_date","rank":2,"editor":"DynamicValue","value":"date","optional":true},"AAd":{"caption":"Hide Suffix","name":"hide_suffix","rank":3,"editor":"Checkbox","default_val":false}},"states":{"AAJ":{"caption":"current value","name":"current_value","value":"text"}},"code":{"initialize":{"fn":"function(b,e){b.data.date_from=null;b.data.base_date=null;b.data.interval=null;b.publishState(\"current_value\",null);b.data.get_relative_time=null;b.data.update_me=null;b.data.hide_suffix=null;b.data.get_relative_time=function(a,c,d){return null!==a?(null==c?a=moment.utc(a,\"YYYY-MM-DD HH:mm:ss\").subtract(1,\"s\").fromNow(d):(c=moment.utc(c,\"YYYY-MM-DD HH:mm:ss\"),a=moment.utc(a,\"YYYY-MM-DD HH:mm:ss\").subtract(1,\"s\").to(c,d)),b.publishState(\"current_value\",a)):b.publishState(\"current_value\",\n\"loading ...\")};b.data.update_me=function(a,c,d){if(null!==a)return null==c?a=moment.utc(a,\"YYYY-MM-DD HH:mm:ss\").subtract(1,\"s\").fromNow(d):(c=moment.utc(c,\"YYYY-MM-DD HH:mm:ss\"),a=moment.utc(a,\"YYYY-MM-DD HH:mm:ss\").subtract(1,\"s\").to(c,d)),b.publishState(\"current_value\",a)}};"},"update":{"fn":"function(a,b,c){var d=b.date_from,e=b.base_date;c=b.interval;var f=b.hide_suffix,g=a.data.update_me;a.data.get_relative_time(d,e,f);null!==c&&(null!=a.data.timer&&(clearInterval(a.data.timer),a.data.timer=null),a.data.timer=setInterval(function(){g(d,e,f)},c))};"}}}}};
window._bubble_page_load_data.plugins_size['1492117803371x414476256717570050'] = 1984;
window.preloaded['plugin/third_party:1492117803371x414476256717570050:2.2.0'] = true;
window.plugins["1495642567089x595986733356023800"] = {"human":"Air Date/Time Picker","dependencies":{"use_jquery":true,"plugin_api_version":"3"},"plugin_elements":{"AAC":{"display":"Air Date/Time Picker(DEPRECATED)","property_applications":{"resizable":true,"MinWidth":true,"Background":true,"Border":true,"Font":true,"BoxShadow":true,"Padding":true},"add_hover_pressed":true,"add_is_visible":true,"support_autobinding":true,"autobinding_value":"date","has_reset_fn":true,"fields":{"AAD":{"caption":"Show time (disabled for inline mode)","name":"showtime","editor":"Checkbox","rank":3,"in_style":false,"optional":false,"default_val":false},"AAF":{"caption":"Vertical position","name":"verticalposition","editor":"Dropdown","rank":7,"optional":false,"default_val":"bottom"},"AAG":{"caption":"Horizontal position","name":"horizontalposition","editor":"Dropdown","rank":8,"default_val":"left"},"AAI":{"caption":"Initial date","name":"startdate","editor":"DynamicValue","rank":5,"value":"date","optional":true},"AAJ":{"caption":"Show Today button","name":"todaybutton","editor":"Checkbox","rank":11,"default_val":true},"AAK":{"caption":"Auto close","name":"autoclose","editor":"Checkbox","rank":10,"default_val":true},"AAL":{"caption":"Show Clear button","name":"clearbutton","editor":"Checkbox","rank":12,"default_val":false},"AAS":{"caption":"Date format","name":"dateformat","editor":"Dropdown","rank":6,"default_val":"22/6/1983"},"AAT":{"caption":"Language","name":"language","editor":"Dropdown","rank":51,"default_val":"English"},"AAU":{"caption":"Only Timepicker (some date options below will not be applicable as expected)","name":"onlytimepicker","editor":"Checkbox","rank":4,"default_val":false},"AAV":{"caption":"Automatically position date/time picker","name":"autoposition","editor":"Checkbox","rank":9,"default_val":false},"AAW":{"caption":"Minimum date","name":"mindate","editor":"DynamicValue","rank":31,"value":"date","optional":true},"undefined":{"rank":32,"name":"maxdate","caption":"Maximum date","editor":"DynamicValue","value":"date","optional":true},"AAY":{"caption":"First day of week (if nothing is selected value is taken from current localization)","name":"firstday","editor":"Dropdown","rank":13,"optional":true},"AAc":{"caption":"Block Sundays","name":"blocksundays","editor":"Checkbox","rank":14,"default_val":false},"AAd":{"caption":"Block Mondays","name":"blockmondays","editor":"Checkbox","rank":15,"default_val":false},"AAe":{"caption":"Block Tuesdays","name":"blocktuesdays","editor":"Checkbox","rank":16,"default_val":false},"AAf":{"caption":"Block Wednesdays","name":"blockwednesdays","editor":"Checkbox","rank":17,"default_val":false},"AAg":{"caption":"Block Thursdays","name":"blockthursdays","editor":"Checkbox","rank":18,"default_val":false},"AAh":{"caption":"Block Fridays","name":"blockfridays","editor":"Checkbox","rank":19,"default_val":false},"AAi":{"caption":"Block Saturdays","name":"blocksaturdays","editor":"Checkbox","rank":20,"default_val":false},"AAk":{"caption":"Enable keyboard navigation","name":"enablekeyboardnav","editor":"Checkbox","rank":40,"default_val":false},"AAl":{"caption":"Multiple dates (unlimited)","name":"multipledates","editor":"Checkbox","rank":23,"default_val":false},"AAm":{"caption":"Multiple dates (max number) - overrides Multiple dates (unlimited)","name":"multipledatesmax","editor":"StaticNumber","rank":25,"optional":true},"AAq":{"caption":"Enable date range? - overrides Multiple dates properties above","name":"enable_range","editor":"Checkbox","rank":26,"value":"date_range","default_val":false},"AAs":{"caption":"Multiple Dates Separator","name":"dateseparator","editor":"StaticText","rank":29,"default_val":" , ","optional":true},"AAu":{"caption":"Initial range start date","name":"rangestart","editor":"DynamicValue","rank":27,"value":"date","optional":true},"AAv":{"caption":"Initial range end date","name":"rangeend","editor":"DynamicValue","rank":28,"value":"date","optional":true},"ABA":{"caption":"Minimum minutes (0 to 59)","name":"minminutes","editor":"DynamicValue","rank":36,"optional":false,"value":"number","default_val":0},"ABB":{"caption":"Maximum minute  (0 to 59)","name":"maxminutes","editor":"DynamicValue","rank":37,"optional":false,"value":"number","default_val":59},"ABC":{"caption":"Hours step","name":"hoursstep","editor":"DynamicValue","rank":35,"optional":false,"value":"number","default_val":1},"ABD":{"caption":"Minutes step","name":"minutesstep","editor":"DynamicValue","rank":38,"optional":false,"value":"number","default_val":1},"ABE":{"caption":"Time format","name":"timeformat","editor":"Dropdown","rank":30,"optional":false,"default_val":"12 hour"},"ABG":{"caption":"Maximum hours (0 to 23)","name":"maxhrs","editor":"DynamicValue","rank":34,"value":"number","default_val":23},"ABH":{"caption":"Minimum hours value (0 to 23)","name":"minhrs","editor":"DynamicValue","rank":33,"value":"number","default_val":0},"ABI":{"caption":"Start view","name":"view","editor":"Dropdown","rank":39,"default_val":"days"},"ABM":{"caption":"Block week days","name":"blockeddays","editor":"DynamicValue","rank":21,"value":"number","is_list":true,"optional":true},"ABN":{"caption":"Block dates","name":"blockeddates","editor":"DynamicValue","rank":22,"value":"date","is_list":true,"optional":true},"ABU":{"caption":"Use custom date format","name":"use_custom","editor":"Checkbox","rank":41,"default_val":false},"ABV":{"caption":"Custom date format (e.g. D. M d, yyyy for Wed. Jun 22, 1983) See docs for formats","name":"custom_format","editor":"StaticText","rank":42,"optional":true,"default_val":"D. M d, yyyy"},"ABX":{"caption":"Disable picker","name":"disable","editor":"Checkbox","rank":45,"default_val":false},"ABa":{"caption":"Day name color","name":"daycolor","editor":"Color","rank":43,"default_val":"rgba(255, 154, 25, 1)"},"ABb":{"caption":"Highlight color","name":"highlight","editor":"Color","rank":44,"default_val":"rgba(92, 196, 239, 1)"},"ABc":{"caption":"Initial multiple dates","name":"initialdates","editor":"DynamicValue","rank":24,"value":"date","is_list":true,"optional":true},"ABe":{"caption":"Placeholder text","name":"placeholder","editor":"DynamicValue","rank":1,"optional":true,"value":"text"},"ABf":{"caption":"Use auto binding","name":"use_auto_binding","editor":"Checkbox","rank":0,"default_val":false},"ABg":{"caption":"Placeholder color","name":"placeholder_color","editor":"Color","rank":2,"default_val":"rgba(0, 0, 0, 0.47)","optional":true},"ABi":{"caption":"Toggle selected","name":"toggle_selected","editor":"Checkbox","rank":46,"default_val":true},"ABn":{"caption":"Show cursor","name":"cursor","editor":"Checkbox","rank":47,"default_val":false},"ABs":{"caption":"Disabled cells style","name":"disabled_cells_style","rank":48,"editor":"Dropdown","default_val":"gray background"},"ABt":{"caption":"Inline (always visible)","name":"inline","rank":50,"editor":"Checkbox","default_val":false},"ABu":{"caption":"Use custom language","name":"use_custom_lang","rank":52,"editor":"Checkbox","default_val":false},"ABv":{"caption":"Language definition","name":"lang_definition","rank":54,"editor":"DynamicValue","optional":true,"value":"text","default_val":"{     \"days\": [\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"],     \"daysShort\": [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],     \"daysMin\": [\"Su\", \"Mo\", \"Tu\", \"We\", \"Th\", \"Fr\", \"Sa\"],     \"months\": [\"January\",\"February\",\"March\",\"April\",\"May\",\"June\", \"July\",\"August\",\"September\",\"October\",\"November\",\"December\"],     \"monthsShort\": [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"],     \"today\": \"Today\",     \"clear\": \"Clear\",     \"dateFormat\": \"mm/dd/yyyy\",     \"timeFormat\": \"hh:ii aa\",     \"firstDay\": 0 }"},"ABw":{"caption":"Ensure that your language definition is exactly as specified. Verify with a json checker for any syntax errors.","name":"lang_info","rank":53,"editor":"Label"},"ABx":{"caption":"If using inline note that \"value changed\" event triggers for single dates and range (after selecting start and end) but never triggers for multiple dates option. ","name":"inline_info","rank":49,"editor":"Label"},"ACG":{"caption":"Minimum view","name":"minview","rank":55,"editor":"Dropdown","default_val":"days","optional":true},"ACK":{"caption":"Show OK button (beta)","name":"okbutton","rank":56,"editor":"Checkbox","value":"boolean","default_val":false},"ACP":{"caption":"Inline update on click","name":"inline_updateonselect","rank":57,"editor":"Checkbox","default_val":true},"ACQ":{"caption":"Time thumb width","name":"toggle_width","rank":58,"editor":"StaticNumber","optional":true},"ACR":{"caption":"Time thumb height","name":"toggle_height","rank":59,"editor":"StaticNumber","optional":true}},"states":{"AAE":{"caption":"value","name":"value","value":"date","is_list":false,"initialization_code":{"fn":"function(properties, context) {\n    \n\treturn properties.startdate;   \n\n}"}},"AAp":{"caption":"value list","name":"valuelist","value":"date","is_list":true,"initialization_code":{"fn":"function(properties, context) {\n    if(properties.initialdates){\n        return properties.initialdates.get(0, 1000000);\n    }\n}"}},"AAt":{"caption":"range","name":"range","value":"date_range","is_list":false,"initialization_code":{"fn":"function(properties, context) {\n    if (properties.rangestart !== null && properties.rangeend !== null){\n      return [properties.rangestart,properties.rangeend];\t\n    }\n}"}},"ABz":{"caption":"current view","name":"view","value":"text","initialization_code":{"fn":"function(properties, context) {\n\treturn properties.view;\n}"}}},"events":{"ABW":{"caption":"value is changed","name":"date_selected"},"ABh":{"caption":"invalid range selected","name":"invalid_range"},"ABo":{"caption":"picker is shown","name":"on_show"},"ABp":{"caption":"picker is hidden","name":"on_hide"},"ABy":{"caption":"view changed","name":"view_changed"},"ACL":{"caption":"OK button is clicked (beta)","name":"on_ok"}},"actions":{"ABT":{"caption":"show datepicker","code":{"fn":"function(instance, properties, context) {\n   var datepicker =  instance.data.datepicker;\n   if(datepicker != null){\n        datepicker.show(); \n   }\n\n}"}},"ABY":{"caption":"set date","code":{"fn":"function(instance, properties, context) {\n var datepicker = instance.data.datepicker;\n \n    if(datepicker != null){\n     if(properties.thedate!=null){\n         if(properties.enable_range === true){\n     \tdatepicker.selectDate(properties.thedate);\n        instance.publishState('value',properties.thedate);\n        instance.publishState('valuelist',[properties.thedate]);\n     \tinstance.publishState('range',[c]);\n       } else {\n           datepicker.selectDate(properties.thedate);\n        instance.publishState('value',properties.thedate);\n        instance.publishState('valuelist',[properties.thedate]);\n           \n       }\n        \n     }\n     else{\n       datepicker.clear();\n       instance.publishState('range', null);\n  \t   instance.publishState('valuelist',null); \n       instance.publishState('value',null);  \n     }\n     \n }\n\n}","add_debugger":true},"fields":{"ABZ":{"caption":"Date to set picker to","name":"thedate","editor":"DynamicValue","rank":0,"value":"date","optional":true}}},"ABd":{"caption":"reset","code":{"fn":"function(instance, properties, context) {\n    var datepicker = instance.data.datepicker;\n    //only do reset if not using autobinding\n    if ((datepicker != null) && !instance.use_auto_binding ) {\n        //Load any data \n        var uniqueid = instance.data.uniqueid;\n        var startdate = new Date(instance.data.str_startdate);\n        var rangestart = new Date(instance.data.str_rangestart);\n        var rangeend = new Date(instance.data.str_rangeend);\n        //convert the string arrays to date array\n        var initialdates = [];\n        if ((instance.data.str_initialdates).length > 0) {\n            initialdates = instance.data.str_initialdates.map(function(str) {\n                return new Date(str);\n            });\n        }\n\n        datepicker.clear();\n//console.log('range value is',instance.data.enable_range)\n        if (instance.data.isrange) {\n            datepicker.selectDate([rangestart, rangeend]);\n            instance.publishState('value',rangestart); \n            instance.publishState('valuelist',[getDatesInRange(rangestart,rangeend)]); \n            instance.publishState('range', [rangestart, rangeend]);\n        } else if (instance.data.multipledates) {\n            datepicker.selectDate(initialdates);\n            instance.publishState('value',initialdates[0]); \n            instance.publishState('valuelist',initialdates);\n            \n            if (initialdates[0] !== null && initialdates[0] !== undefined){\n            \tinstance.publishState('range', [initialdates[0], initialdates[initialdates.length-1]]);\n            }\n            //console.log('reset multipledates')\n        } else if (instance.data.str_startdate !== null) {\n            datepicker.selectDate(startdate);\n            instance.publishState('value',startdate); \n            instance.publishState('valuelist',[startdate]);   \n            instance.publishState('range', [startdate,startdate]);\n            //console.log('reset reset single')\n        }\n    }\n}","add_debugger":true}},"ABr":{"caption":"clear picker","code":{"fn":"function(instance, properties, context) {\n var datepicker = instance.data.datepicker;\n if(datepicker != null){\n  datepicker.clear();\n  instance.publishState('range', null);\n  instance.publishState('valuelist',null); \n  instance.publishState('value',null);    \n }\n //instance.publishState('')\n}"}},"ACB":{"caption":"got to previous view","code":{"fn":"function(instance, properties, context) {\n\tvar datepicker = instance.data.datepicker;\n    if(datepicker != null){\n        datepicker.prev();\n    }\n   \n}"}},"ACC":{"caption":"go to next view","code":{"fn":"function(instance, properties, context) {\n\tvar datepicker = instance.data.datepicker;\n    if(datepicker != null){\n        datepicker.next();\n    }\n   \n}"}},"ACD":{"caption":"change view","code":{"fn":"function(instance, properties, context) {\n\n\tvar datepicker = instance.data.datepicker;\n    if(datepicker != null){\n        datepicker.view = properties.view_name;\n    }\n   \n\n}"},"fields":{"ACE":{"caption":"view","name":"view_name","rank":1,"editor":"DynamicValue","value":"text","default_val":"days"},"ACF":{"caption":"The options are days, months, years","name":"info","rank":0,"editor":"Label"}}}},"code":{"initialize":{"fn":"function(instance, context) {\n    instance.data.uniqueid = 'dp' + (Math.random() * Math.pow(2, 54)).toString(18);\n    instance.data.div = $('<div><input style=\"font-weight: inherit\" type=\"text\" id=\"' + instance.data.uniqueid + '\" placeholder=\"\"/></div>').css({\n            \"width\": \"100%\",\n            \"height\": \"100%\",\n            \"cursor\": \"pointer\",\n            \"transition\": \"border-color 200ms ease, box-shadow 200ms ease\",\n            \"padding\": \"1px 4px\",\n        \t\"font-weight\": \"inherit\"\n        });\n\n    instance.canvas.append(instance.data.div);\n    instance.data.first_time = true;\n    instance.data.prevDates = null;\n    instance.data.prev = [];\n\n    instance.publishState('value', null);\n    instance.publishState('valuelist', null);\n    instance.publishState('range', null);\n    \n    instance.data.isNewPicker = $.fn.airdatepicker !== undefined;\n    let pickerName = (instance.data.isNewPicker) ? 'airdatepicker' : 'datepicker';\n    $('head').append(\n        `<style>\n\t\t\tinput[type=text] {\n    border: none;\n  \tborder-color: transparent;\n\toutline: none !important;\n    background: none;\n    height: 100%;\n    cursor: pointer;\n    font-family: inherit;\n    font-size: inherit;\n  \ttext-align: inherit;\n    font-weight: inherit;\n    color: inherit;\n    box-shadow: none;\n \twidth: 100%;\n    z-index: inherit;\n}\n  \n.${pickerName}--cell.-disabled-:hover {\n    background: #f8f8f8 !important; \n}\n\n  \n::placeholder { \n    color: red;\n    opacity: 1; \n}\n\n:-ms-input-placeholder { \n    color: red;\n}\n\n::-ms-input-placeholder { \n    color: red;\n}\n\n  .${pickerName}-disabled-background{\n    border-radius: 0px;\n    background: #f8f8f8;  \n  }\n  \n  .${pickerName}-disabled-strikethrough{\n    text-decoration: line-through;\n  }\n    \n  #${pickerName}s-container{\n  \tfilter: unset!important;\n  }\n\t\t</style>`\n    );\n    \n    if (!instance.data.isNewPicker){\n        $.fn.airdatepicker = $.fn.datepicker;\n        console.log('Air Date/Time Picker: run datepicker library');\n    } else {\n        console.log('Air Date/Time Picker: run airdatepicker library');\n    }\n    \n    \n}","add_debugger":false},"update":{"fn":"function(instance, properties, context) {\n\n    \n    var pickerNameString = (instance.data.isNewPicker) ? 'airdatepicker' : 'datepicker';\n    \n    var uniqueid = instance.data.uniqueid;\n    var el = instance.canvas.find('#' + uniqueid)[0];\n    var picker = $(el);\n\n    if (properties.blockeddays !== null) {\n        instance.data.blockeddays = properties.blockeddays.get(0, 7);\n    } else instance.data.blockeddays = [];\n\n    if (properties.blockeddates !== null) {\n        instance.data.blockeddates = properties.blockeddates.get(0, properties.blockeddates.length());\n    } else {\n        instance.data.blockeddates = [];\n    }\n\n    if (properties.initialdates !== null) {\n        instance.data.initialdates = properties.initialdates.get(0, properties.initialdates.length());\n    } else instance.data.initialdates = [];\n\n    var initialdates = instance.data.initialdates;\n    var blockeddays = instance.data.blockeddays;\n    var blockeddates = instance.data.blockeddates;\n\n    instance.data.startdate = properties.startdate;\n    instance.data.rangestart = properties.rangestart;\n    instance.data.rangeend = properties.rangeend;\n    \n    instance.data.enable_range = properties.enable_range != null;\n    \n    var isrange = properties.enable_range != null;\n    \n    instance.use_auto_binding = properties.use_auto_binding;\n    var startDate;\n\n    if (properties.use_auto_binding) {\n        startDate = properties.autobinding;\n    } else {\n        startDate = instance.data.startdate;\n    }\n\n    var rangestart = instance.data.rangestart;\n    var rangeend = instance.data.rangeend;\n    var daycolor = properties.daycolor;\n    var highlight = properties.highlight;\n    var range_from_border = highlight.replace(/[\\d\\.]+\\)$/g, \".5)\");\n    var range_from_bg = highlight.replace(/[\\d\\.]+\\)$/g, \".1)\");\n    if (properties.inline) {\n        instance.data.div.css(\"cursor\", \"default\");\n    }\n\n\n    var style = '<style>';\n    /*\n        style += '#' + uniqueid + ' .datepicker--day-name { color: ' + daycolor + '; } ';\n        style += '#' + uniqueid + ' .datepicker--button { color: ' + highlight + '; } ';\n        style += '#' + uniqueid + ' .datepicker--cell.-selected-, .datepicker--cell.-selected-.-current-{ background: ' + highlight + ' !important; color: white !important} ';\n        style += '#' + uniqueid + ' .datepicker--cell.-selected-. -focus- { background: ' + highlight + '; } ';\n        style += '#' + uniqueid + ' .datepicker--cell.-current- { color: ' + highlight + '; }';\n        style += '#' + uniqueid + ' .datepicker--cell.-range-to- {border: 1px solid ' + range_from_border + ';background-color: ' + range_from_bg + ';}';\n        style += '#' + uniqueid + ' .datepicker--cell.-range-from- {border: 1px solid ' + range_from_border + ';background-color: ' + range_from_bg + ';}';\n        style += '#' + uniqueid + ' .datepicker--cell.-in-range- { background: ' + range_from_bg + ' !important}';\n        if (!properties.inline) {\n            style += 'input#' + uniqueid + '::placeholder { color: ' + properties.placeholder_color + '; opacity: 1;}';\n            style += 'input#' + uniqueid + ':-ms-input-placeholder { color: ' + properties.placeholder_color + '; }';\n            style += 'input#' + uniqueid + '::-ms-input-placeholder { color: ' + properties.placeholder_color + '; }';\n        }\n      */\n    \n    \n\tstyle += `.${uniqueid} nav.${pickerNameString}--nav{background-color:#FFFFFF!important;width:unset!important;color:#000!important;-webkit-box-shadow:unset; box-shadow:unset;height:34px;}`;\n    style += `.${uniqueid} nav i{font-size:14px!important;}`\n    style += '.' + uniqueid + ' .'+pickerNameString+'--day-name { color: ' + daycolor + '; } ';\n    style += '.' + uniqueid + ' .'+pickerNameString+'--button { color: ' + highlight + '; } ';\n    style += '.' + uniqueid + ' .'+pickerNameString+'--cell.-selected-,'+'.'+pickerNameString+'--cell.-selected-.-current-{ background: ' + highlight + ' !important; color: white !important} ';\n    style += '.' + uniqueid + ' .'+pickerNameString+'--cell.-selected-. -focus- { background: ' + highlight + '; } ';\n    style += '.' + uniqueid + ' .'+pickerNameString+'--cell.-current- { color: ' + highlight + '; }';\n    style += '.' + uniqueid + ' .'+pickerNameString+'--cell.-range-to- {border: 1px solid ' + range_from_border + ';background-color: ' + range_from_bg + ';}';\n    style += '.' + uniqueid + ' .'+pickerNameString+'--cell.-range-from- {border: 1px solid ' + range_from_border + ';background-color: ' + range_from_bg + ';}';\n    style += '.' + uniqueid + ' .'+pickerNameString+'--cell.-in-range- { background: ' + range_from_bg + ' !important}';\n    style += '.' + uniqueid + ' .'+pickerNameString+'--cell.-current-.-in-range- {color: ' + daycolor + ';}';\n\n    if (!properties.inline) {\n        style += 'input#' + uniqueid + '::placeholder { color: ' + properties.placeholder_color + '; opacity: 1;}';\n        style += 'input#' + uniqueid + ':-ms-input-placeholder { color: ' + properties.placeholder_color + '; }';\n        style += 'input#' + uniqueid + '::-ms-input-placeholder { color: ' + properties.placeholder_color + '; }';\n    }\n\n    style += '.' + uniqueid + ' .'+pickerNameString+'--time-row input[type=range]:focus::-webkit-slider-thumb {background: ' + highlight + '; border-color: ' + highlight + ' }';\n    style += '.' + uniqueid + ' .'+pickerNameString+'--time-row input[type=range]:focus::-moz-range-thumb {background: ' + highlight + '; border-color: ' + highlight + ' }';\n    style += '.' + uniqueid + ' .'+pickerNameString+'--time-row input[type=range]:focus::-ms-thumb {background: ' + highlight + '; border-color: ' + highlight + ' }';\n    style += '</style>';\n    $(style).appendTo('head');\n\n\n    //var disabledDays = blockedDays(); //static days blocking\n    var disabledDays = blockeddays.concat(blockedDays()); //in case both static and dynamic were inputed\n\n    function todayButton() {\n        if (properties.todaybutton) {\n            var today = new Date();\n            var day = today.getDay();\n            if (disabledDays.indexOf(day) != -1) {\n                return false;\n            } else return today;\n        } else return false;\n    }\n\n    //format for date and placeholder\n    var phformat;\n    var dateformat;\n    if (!properties.use_custom) {\n        if (properties.dateformat == '22/6/1983') {\n            phformat = 'D/M/YYYY';\n            dateformat = 'd/m/yyyy';\n        } else if (properties.dateformat == '6/22/1983') {\n            phformat = 'M/D/YYYY';\n            dateformat = 'm/d/yyyy';\n        } else if (properties.dateformat == '22 June 1983') {\n            phformat = 'D MMMM YYYY';\n            dateformat = 'd MM, yyyy';\n        } else if (properties.dateformat == 'Wednesday 22 June 1983') {\n            phformat = 'dddd D MMMM YYYY';\n            dateformat = 'DD, d MM, yyyy';\n        } else {\n            phformat = 'D-MMM-YYYY';\n            dateformat = 'd-M-yyyy';\n        }\n    } else {\n        phformat = 'D/M/YYYY';\n        dateformat = properties.custom_format;\n    }\n\n    //placeholder\n    var placeholder;\n    var today = new Date();\n\n    if (properties.placeholder !== \"\" && properties.placeholder !== null && properties.placeholder !== undefined) {\n        placeholder = properties.placeholder;\n    } else if (properties.onlytimepicker) {\n        placeholder = \"12:00 PM\";\n    } else if (!properties.showtime) {\n        placeholder = moment(today).format(phformat);\n    } else {\n        placeholder = moment(today).format(phformat) + ' 12:00 PM';\n    }\n\n    el.placeholder = placeholder;\n\n    //language selection\n    function language() {\n        if (!properties.use_custom_lang) {\n            if (properties.language === 'English') return 'en';\n            else if (properties.language === 'French') return 'fr';\n            else if (properties.language === 'Spanish') return 'es';\n            else if (properties.language === 'German') return 'de';\n            else if (properties.language === 'Russian') return 'ru';\n            else if (properties.language === 'Italian') return 'it';\n            else if (properties.language === 'Catalan') return 'ca';\n            else return 'en';\n        } else {\n            var lang = 'en';\n            try {\n                lang = JSON.parse(properties.lang_definition);\n            } catch (e) {\n                console.log(\"Error passing language defintion. Using English\");\n                console.log(e);\n            }\n            return lang;\n        }\n\n    }\n    //get default position\n    var dposition = properties.verticalposition + ' ' + properties.horizontalposition;\n\n\n    // A function to check whether the element fits inside the viewport. to be used for automatic positioning\n    function isElementInViewport(el) {\n        var rect = el.getBoundingClientRect();\n        var fitsLeft = (rect.left >= 0 && rect.left <= $(window).width());\n        var fitsTop = (rect.top >= 0 && rect.top <= $(window).height());\n        var fitsRight = (rect.right >= 0 && rect.right <= $(window).width());\n        var fitsBottom = (rect.bottom >= 0 && rect.bottom <= $(window).height());\n        return {\n            top: fitsTop,\n            left: fitsLeft,\n            right: fitsRight,\n            bottom: fitsBottom,\n            all: (fitsLeft && fitsTop && fitsRight && fitsBottom)\n        };\n    }\n\n    function showTime() {\n        if (properties.inline) {\n            return false;\n        } else {\n            if (properties.onlytimepicker) return true;\n            else return properties.showtime;\n        }\n    }\n\n    function firstDay() {\n        if (properties.firstday == 'Sunday') return 0;\n        else if (properties.firstday == 'Monday') return 1;\n        else if (properties.firstday == 'Tuesday') return 2;\n        else if (properties.firstday == 'Wednesday') return 3;\n        else if (properties.firstday == 'Thursday') return 4;\n        else if (properties.firstday == 'Friday') return 5;\n        else if (properties.firstday == 'Saturday') return 6;\n        else return \"\";\n    }\n\n    function blockedDays() {\n        var disabledDays = [];\n        if (properties.blocksundays) disabledDays.push(0);\n        if (properties.blockmondays) disabledDays.push(1);\n        if (properties.blocktuesdays) disabledDays.push(2);\n        if (properties.blockwednesdays) disabledDays.push(3);\n        if (properties.blockthursdays) disabledDays.push(4);\n        if (properties.blockfridays) disabledDays.push(5);\n        if (properties.blocksaturdays) disabledDays.push(6);\n        return disabledDays;\n    }\n\n\n    function multiDate() {\n        if (properties.multipledatesmax > 1) return properties.multipledatesmax;\n        else return properties.multipledates;\n    }\n\n    var multidate = multiDate();\n\n\n    function timeFormat() {\n\t\tswitch (properties.timeformat){\n                case '24 hour': {\n                \treturn \"hh:ii\";\n                }\n                case '8:03 AM': {\n                \treturn \"h:ii AA\";\n                }\n                case '08:03 AM': {\n                    return \"hh:ii AA\";\n                }\n                default:{\n                    return \"hh:ii AA\"\n                }\n                \n        }\n        \n        //if (properties.timeformat == \"12 hour\") return \"hh:ii AA\";\n        //else return \"hh:ii\";\n    }\n\n    if (properties.toggle_width !== null && properties.toggle_height !== null) {\n        let marginTop = (properties.toggle_height) / 2;\n        $('body').append(`<style>\n               .${pickerNameString}--time-row input[type=range]::-webkit-slider-thumb {\n                    height: ${properties.toggle_height}px!important;\n                    width: ${properties.toggle_width}px!important;\n\t\t\t\t\tmargin-top: -${marginTop}px!important;\n  \t\t\t\t\n\t\t\t\t\t\t}\n               .${pickerNameString}--time-row input[type=range]::-moz-range-thumb {\n                  height: ${properties.toggle_height}px;\n                  width: ${properties.toggle_width}px;\n\t\t\t\t\tmargin-top: -${marginTop}px!important;\n\n               \t\t\t}\n               .${pickerNameString}--time-row input[type=range]::-ms-thumb {\n                  height: ${properties.toggle_height}px;\n                  width: ${properties.toggle_width}px;\n\t\t\t\t\tmargin-top: -${marginTop}px!important;\n\n                   \t\t}\n                     </style>`);\n    }\n\n    $(document).ready(function () {\n        if (!instance.data.isInitialized) {\n            if (instance.data.first_time && properties.inline) {\n                var style = '<style>';\n                style += '#' + uniqueid + ` .${pickerNameString} { border-radius: 0px; } `;\n                style += '</style>';\n                $(style).appendTo('head');\n\n                $('#' + uniqueid).remove();\n                instance.data.div.attr('id', uniqueid);\n                el = instance.canvas.find('#' + uniqueid)[0];\n                picker = $(el)\n            }\n\n            instance.data.first_time = false;\n\t\t\t//debugger;\n            picker.airdatepicker({\n                classes: instance.data.uniqueid,\n                language: language(),\n                view: properties.view,\n                inline: false,\n                dateFormat: dateformat,\n                todayButton: todayButton(),\n                autoClose: properties.autoclose,\n                clearButton: properties.clearbutton,\n                okButton: properties.okbutton,\n                position: dposition, // Default position\n                minDate: properties.mindate,\n                maxDate: properties.maxdate,\n                firstDay: firstDay(),\n                keyboardNav: properties.enablekeyboardnav,\n                multipleDates: multidate,\n                multipleDatesSeparator: properties.dateseparator,\n                range: properties.enable_range != null,\n                toggleSelected: properties.toggle_selected,\n                //time options\n                timepicker: showTime(),\n                onlyTimepicker: properties.onlytimepicker,\n                timeFormat: timeFormat(),\n                minHours: properties.minhrs,\n                maxHours: properties.maxhrs,\n                hoursStep: properties.hoursstep,\n                minMinutes: properties.minminutes,\n                maxMinutes: properties.maxminutes,\n                minutesStep: properties.minutesstep,\n                minView: properties.minview,\n                onHide: function (inst, animationComplete) {\n                    var dates = inst.selectedDates; //will always be array of dates\n                    var dates_length = dates.length;\n                    instance.publishAutobinding(dates[0]);\n                    var curTimestamps = dates.map(function (date) {\n                        return date.getTime();\n                    });\n                    var curDates = curTimestamps.map(function (timestamp) {\n                        return new Date(timestamp);\n                    });\n\n                    //instance.publishState('value', getRange(dates)[0]);\n\n                    if (properties.enable_range && dates_length > 1) {\n                        if (rangeContainsBlockedDates(blockeddates, inst.minRange, inst.maxRange)) {\n                            inst.removeDate(dates[0]);\n                            inst.removeDate(dates[dates_length - 1]);\n                            instance.triggerEvent('invalid_range', function () {});\n                        } else {\n                            instance.publishState('valuelist', getDatesInRange(curDates[0], curDates[(curDates.length - 1)]));\n                        }\n                    } //else instance.publishState('valuelist', date);\n                    //debugger;\n                    if (curDates.length > 0) {\n                        instance.publishState('value', curDates[0]);\n                        instance.publishState('range', getRange(curDates));\n                        instance.publishState('valuelist', curDates.sort());\n                    } else {\n                        instance.publishState('range', null);\n                        instance.publishState('value', null);\n                        instance.publishState('valuelist', null);\n                    }\n                    /*\n                      if(!instance.data.first_time){\n                        if(!dateArraysEqual(instance.data.prevDates, dates)){\n                          instance.triggerEvent('date_selected', function() {});\n                          instance.data.prevDates = dates.slice(0);\n                       }\n                      }\n                    */\n                    inst.update('position', dposition); // Update the position to the default again\n                    /*\n                        if(animationComplete){\n                            instance.publishState('value', dates[dates.length - 1]); //return first date value\n                            instance.publishState('valuelist', dates);//return list of date values. Even if a single date\n                            if(dates.length > 0){\n                              instance.publishState('range',getRange(dates) );\n                            }\n                            else instance.publishState('range',null);\n                         }\n                          */\n\n                    if (animationComplete) {\n                        inst.view = properties.view; //set original view\n                        instance.triggerEvent('on_hide', function () {});\n                        if (!instance.data.first_time) {\n                            //console.log('cur',dates[0].getTime());\n                            //console.log('prev',instance.data.prev[0]);\n\n                            if (!timestampsEqual(instance.data.prev, curTimestamps)) {\n                                instance.triggerEvent('date_selected');\n                                //instance.data.prevDates = curDates;\n                                instance.data.prev = curTimestamps;\n                            }\n                        }\n\n                    }\n                },\n                onSelect: function (formattedDate, date, inst) {\n                    if (properties.inline_updateonselect) {\n                        if (properties.inline && inst.selectedDates && (inst.selectedDates[0] != null)) {\n                            var dates = inst.selectedDates; //will always be array of dates\n                            var dates_length = dates.length;\n                            instance.publishAutobinding(dates[0]);\n                            var curTimestamps = dates.map(function (date) {\n                                return date.getTime();\n                            });\n                            var curDates = curTimestamps.map(function (timestamp) {\n                                return new Date(timestamp);\n                            });\n\n                            //instance.publishState('value', getRange(dates)[0]);\n\n                            if (isrange && dates_length > 1) {\n                                if (rangeContainsBlockedDates(blockeddates, inst.minRange, inst.maxRange)) {\n                                    inst.removeDate(dates[0]);\n                                    inst.removeDate(dates[dates_length - 1]);\n                                    instance.triggerEvent('invalid_range', function () {});\n                                } else {\n                                    instance.publishState('valuelist', getDatesInRange(curDates[0], curDates[(curDates.length - 1)]));\n                                }\n                            } //else instance.publishState('valuelist', date);\n                            //debugger;\n                            if (curDates.length > 0) {\n                                instance.publishState('value', curDates[0]);\n                                instance.publishState('range', getRange(curDates));\n                                instance.publishState('valuelist', curDates.sort());\n                            } else {\n                                instance.publishState('range', null);\n                                instance.publishState('value', null);\n                                instance.publishState('valuelist', null);\n                            }\n\n\n                            if (!dateArraysEqual(instance.data.prev, dates)) {\n                                if (isrange && dates.length == 2) {\n                                    instance.triggerEvent('date_selected', function () {});\n                                } else if (!isrange && !properties.multipledates) {\n                                    instance.triggerEvent('date_selected');\n                                } else {\n                                    //don't trigger date_selected event for multipledates as we don't know when user will be done with selection.\n                                }\n\n                            }\n                        } //end of inline\n                    }\n                    \n                    if (!date) {\n                        //debugger;\n                        instance.publishState('range', null);\n                        instance.publishState('value', null);\n                        instance.publishState('valuelist', null);\n                    }\n                },\n                onShow: function (inst, animationComplete) {\n                    //if today is blocked don't show today button even if the user has selected show today button\n                    var day = (new Date()).getDay();\n                    if (disabledDays.indexOf(day) != -1) {\n                        inst.todayButton = false;\n                    }\n\n                    //console.log('Inst', inst);\n\n                    if (!animationComplete) {\n\n                        // Just before showing the datepicker\n                        if (properties.autoposition) {\n                            // Loop through a few possible position and see which one fits\n                            let iFits = false;\n                            $.each([dposition, 'bottom left', 'bottom center', 'bottom right', 'top left', 'top center', 'top right'],\n                                function (i, pos) {\n                                    if (!iFits) {\n                                        inst.update('position', pos);\n                                        var fits;\n                                        if (instance.data.isNewPicker){\n                                            fits = isElementInViewport(inst.$airdatepicker[0]);\n                                        } else {\n                                            fits = isElementInViewport(inst.$datepicker[0]);\n                                        }\n                                        \n                                        if (fits.all) {\n                                            iFits = true;\n                                            return;\n                                        }\n                                    }\n                                });\n                        } //end of properties.autoposition\n                    } //end of !animationComplete\n                    if (animationComplete) {\n                        instance.triggerEvent('on_show', function () {});\n                    }\n                },\n                onOk: function (inst) {\n                    if (properties.inline) {\n\n                    }\n                    //console.log('ok called',inst.selectedDates);\n                    instance.triggerEvent('on_ok');\n\n                },\n                onChangeView: function (view) {\n                    instance.publishState('view', view);\n                    instance.triggerEvent('view_changed');\n                },\n                onRenderCell: function (d, cellType) {\n                    if (disabledDays.length > 0 || blockeddates.length > 0) {\n                        if (cellType == 'day') {\n                            //disable blocked days\n                            var day = d.getDay(),\n                                disable_day = disabledDays.indexOf(day) != -1;\n\n                            //disable block dates\n                            var disable_date = false;\n                            if (blockeddates.length > 0) {\n                                var cellYear = d.getFullYear(),\n                                    cellMonth = d.getMonth(),\n                                    cellDate = d.getDate(),\n                                    year, month, date;\n\n                                blockeddates.forEach(function (myDate) {\n                                    year = myDate.getFullYear();\n                                    month = parseInt(myDate.getMonth());\n                                    date = parseInt(myDate.getDate());\n\n                                    if (cellYear == year && cellMonth == month && cellDate == date) {\n                                        disable_date = true;\n                                    }\n                                });\n                            }\n\n                            if (disable_day || disable_date) {\n                                var disableclass = '';\n                                var style = properties.disabled_cells_style;\n                                if (style == 'strike through') {\n                                    disableclass = pickerNameString+'-disabled-strikethrough'\n                                } else if (style == 'gray background') {\n                                    disableclass = pickerNameString+'-disabled-background'\n                                } else {\n                                    disableclass = ''\n                                }\n                                return {\n                                    classes: disableclass,\n                                    disabled: true\n                                }\n                            }\n\n                        } //end of (cellType == 'day')\n\n                    } //end of if(disabledDays.length>0\n\n                }\n            }); //end picker instantiation.\n\n            //set intial dates\n           // debugger;\n            var dp = picker.airdatepicker().data(pickerNameString);\n            instance.data.datepicker = dp;\n            if (isrange && rangestart !== null && rangestart !== undefined && rangeend !== null && rangestart !== undefined) {\n                instance.data.datepicker.selectDate([rangestart, rangeend]);\n                instance.publishState('range', [rangestart, rangeend]);\n                instance.publishState('valuelist', [rangestart, rangeend]);\n            } else if (properties.multipledates && initialdates !== null && initialdates !== undefined) {\n                instance.data.datepicker.selectDate(initialdates);\n\n                instance.publishState('valuelist', initialdates);\n\n            } else {\n                if (blockeddates.length > 1 && dateInList(startDate, blockeddates)) {\n                    instance.data.datepicker.removeDate(startDate);\n                } else if (startDate !== undefined && startDate !== null){\n                    instance.data.datepicker.selectDate(startDate);\n                    instance.publishState('value', startDate);\n                    instance.publishState('valuelist', [startDate]);\n\n                }\n            }\n            //console.log(dp.selectedDates)\n            if (dp.selectedDates != null) {\n                instance.data.prevDates = dp.selectedDates.slice(0)\n            }\n\n            //allow moving curser inside input but not editable. this is needed for when the input has a long list of dates\n            //NB: keyboardNav will override this\n            if (!properties.cursor) {\n                picker.prop(\"readonly\", true);\n            } else {\n                picker.on(\"input\", function () {\n                    var formattedDates = dp.selectedDates.map(function (date) {\n                        return dp.formatDate(dp.loc.dateFormat, date)\n                    }).join(dp.opts.multipleDatesSeparator);\n                    this.value = formattedDates;\n                });\n            }\n            if (properties.disable) {\n                el.disabled = true;\n            } else {\n                el.disabled = false;\n            }\n\n            //store these to be used in for the reset action\n            instance.data.multipledates = properties.multipledates;\n            instance.data.isrange = isrange;\n\n            //store initial dates as strings for resetting.\n            //we're doing this to avoid the issue where the time changes\n            instance.data.str_rangestart = (rangestart !== null) ? moment(rangestart).toString() : null;\n            instance.data.str_rangeend = (rangeend !== null) ? moment(rangeend).toString() : null;\n            instance.data.str_startdate = (startDate !== null) ? moment(startDate).toString() : null;\n            //initialdates is an array of dates so convert to array of strings\n            instance.data.str_initialdates = [];\n            if (initialdates !== null) {\n                instance.data.str_initialdates = initialdates.map(function (date) {\n                    return moment(date).toString();\n                });\n            }\n\n            //instance.data.isInitialized = true;\n        }\n    }); //end of document ready\n\n    if (instance.data.datepicker !== undefined && instance.data.datepicker !== null) {\n        if (isrange) {\n            instance.data.datepicker.selectDate([rangestart, rangeend]);\n        } else if (properties.multipledates) {\n            instance.data.datepicker.selectDate(initialdates);\n        } else {\n            if (blockeddates.length > 1 && dateInList(startDate, blockeddates)) {\n                instance.data.datepicker.removeDate(startDate);\n            } else if (startDate !== null && startDate !== undefined) {\n                instance.data.datepicker.selectDate(startDate);\n            } else {\n                instance.publishState('value', null);\n                instance.publishState('range', null);\n                instance.publishState('valuelist', null);\n                instance.data.datepicker.clear();\n            }\n        }\n    }\n\n\n    \n    //takes a list of dates and return a range\n    function getRange(vdates) {\n        //var sortedDates = dates.splice(0);\n        var sortedDates = [];\n        sortedDates = vdates.slice(0);\n        sortedDates.sort();\n        // console.log('sortedDates',sortedDates);\n        if (sortedDates.length > 0) {\n            return [sortedDates[0], sortedDates[vdates.length - 1]];\n        } else {\n            return [sortedDates[0], sortedDates[0]];\n        }\n\n    }\n\n    function getDatesInRange(startDate, stopDate) {\n        var dateArray = [];\n        var currentDate = moment(startDate);\n        var stopDate = moment(stopDate);\n        while (currentDate <= stopDate) {\n            dateArray.push(moment(currentDate).format('YYYY-MM-DD'))\n            currentDate = moment(currentDate).add(1, 'days');\n        }\n        return dateArray;\n    }\n\n\n    function dateInRange(date, minRange, maxRange) {\n        if (date >= minRange && date <= maxRange) {\n            return true;\n        } else {\n            return false;\n        }\n    }\n\n    function rangeContainsBlockedDates(blocked, minRange, maxRange) {\n        var hasValid = false;\n        for (i = 0; i < blocked.length; i++) {\n            if (dateInRange(blocked[i], minRange, maxRange)) {\n                hasValid = true;\n                break;\n            }\n        }\n        return hasValid;\n    }\n\n    function dateInList(date, datelist) {\n        var inlist = false;\n        for (var i = 0; i < datelist.length; i++) {\n            if (datelist[i].getTime() == date.getTime()) {\n                inlist = true;\n                break;\n            }\n        }\n        return inlist;\n    }\n\n    function dateArraysEqual(darray1, darray2) {\n        if (darray1 == null && darray2 == null) return true;\n        if (darray1 == null) return false;\n        if (darray2 == null) return false;\n        if (darray1.length != darray2.length) return false;\n        darray1.sort();\n        darray2.sort();\n        for (i = 0; i < darray1.length; i++) {\n            console.log(\"prev\", darray1[i].getTime());\n            console.log('current', darray2[i].getTime());\n            if (darray1[i].getTime() != darray2[i].getTime()) return false;\n        }\n        return true;\n    }\n\n    function timestampsEqual(darray1, darray2) {\n        if (darray1 == null && darray2 == null) return true;\n        if (darray1 == null) return false;\n        if (darray2 == null) return false;\n        if (darray1.length != darray2.length) return false;\n        darray1.sort();\n        darray2.sort();\n        for (i = 0; i < darray1.length; i++) {\n            if (darray1[i] != darray2[i]) return false;\n        }\n        return true;\n    }\n\n\n    /*function getDates(startDate, stopDate) {\n    var dateArray = [];\n    var currentDate = startDate;\n    while (currentDate <= stopDate) {\n        dateArray.push(new Date (currentDate));\n        currentDate = currentDate.addDays(1);\n    }\n    return dateArray;\n}*/\n\n}","add_debugger":false},"reset":{"fn":"function(instance, context) {\n    var datepicker = instance.data.datepicker;\n    //only do reset if not using autobinding\n    if ((datepicker != null) && !instance.use_auto_binding ) {\n        //Load any data \n        var uniqueid = instance.data.uniqueid;\n        var startdate = new Date(instance.data.str_startdate);\n        var rangestart = new Date(instance.data.str_rangestart);\n        var rangeend = new Date(instance.data.str_rangeend);\n        //convert the string arrays to date array\n        var initialdates = [];\n        if ((instance.data.str_initialdates).length > 0) {\n            initialdates = instance.data.str_initialdates.map(function(str) {\n                return new Date(str);\n            });\n        }\n\n        datepicker.clear();\n\n        if (instance.data.isrange) {\n            datepicker.selectDate([rangestart, rangeend]);\n        } else if (instance.data.multipledates) {\n            datepicker.selectDate(initialdates);\n        } else if (instance.data.str_startdate !== null) {\n            datepicker.selectDate(startdate);\n        } \n    }\n}"},"preview":{"fn":"function(instance, properties) {\n    let el = $('<div><img src = \"//01246d7e30dd8ee862a8dba3b426a683.cdn.bubble.io/f1566986379782x248699124458819260/pluginlogo.png\"></div>');\n    instance.canvas.append(el);\n    el.css('background-color','cyan');\n    el.css('opacity',0.5);\n    el.css('position','absolute');\n    el.css('height',properties.bubble.height);\n    el.css('width',properties.bubble.width);\n    \n   \n}"}}},"ACX":{"display":"Air Date/Time Picker v2","property_applications":{"resizable":true,"MinWidth":true,"Background":true,"Border":true,"Padding":true,"BoxShadow":true,"Font":true},"add_hover_pressed":true,"add_is_visible":true,"support_autobinding":true,"autobinding_value":"date","has_reset_fn":true,"fields":{"ACZ":{"caption":"Initial Date in \"Single Date\"","name":"initial_date","rank":2,"editor":"DynamicValue","value":"date","optional":true},"ACa":{"caption":"Type","name":"type","rank":1,"editor":"Dropdown","default_val":"Single Date"},"ACb":{"caption":"Initial Dates in \"Multiple Dates\"","name":"initial_multiple_dates","rank":3,"editor":"DynamicValue","value":"date","is_list":true,"optional":true},"ACc":{"caption":"Attention: Autobinding is supported only for \"Single Date\" type","name":"autobinding_is_supported_only_for_\"single_date\"_type","rank":0,"editor":"Label"},"ACe":{"caption":"Initial range end date","name":"rangeend","rank":6,"editor":"DynamicValue","value":"date","optional":true},"ACf":{"caption":"Minimum Date","name":"minimum_date","rank":8,"editor":"DynamicValue","value":"date","optional":true},"ACg":{"caption":"Maximum Date","name":"maximum_date","rank":9,"editor":"DynamicValue","value":"date","optional":true},"ACh":{"caption":"Locale","name":"locale","rank":10,"editor":"Dropdown","default_val":"English"},"ACi":{"caption":"Default View","name":"default_view","rank":13,"editor":"Dropdown","default_val":"Days"},"ACj":{"caption":"Auto Close","name":"autoclose","rank":15,"editor":"Checkbox","default_val":true},"ACk":{"caption":"Toggle Selected","name":"toggle_selected","rank":16,"editor":"Checkbox","default_val":true},"ACl":{"caption":"Keyboard Navigation","name":"keyboard_navigation","rank":17,"editor":"Checkbox","default_val":false},"ACm":{"caption":"Show Other Months","name":"show_other_months","rank":18,"editor":"Checkbox","default_val":true},"ACn":{"caption":"Select From Other Months","name":"select_from_other_months","rank":19,"editor":"Checkbox","default_val":true},"ACo":{"caption":"Move To Other Months","name":"move_to_other_months","rank":20,"editor":"Checkbox","default_val":true},"ACp":{"caption":"Vertical position","name":"vertical_position","rank":21,"editor":"Dropdown","default_val":"bottom"},"ACq":{"caption":"Horizontal Posiotion","name":"horizontal_posiotion","rank":22,"editor":"Dropdown","default_val":"left"},"ACr":{"caption":"Mobile Device Mode","name":"mobile_device_mode","rank":24,"editor":"Dropdown","default_val":"Auto"},"ACs":{"caption":"Display inline","name":"display_inline","rank":25,"editor":"Checkbox","default_val":false},"ACt":{"caption":"Enable Timepicker","name":"enable_timepicker","rank":26,"editor":"Checkbox","default_val":false},"ACu":{"caption":"Time Format","name":"time_format","rank":27,"editor":"Dropdown","default_val":"08:20"},"ACv":{"caption":"Date Time Separator","name":"date_time_separator","rank":28,"editor":"StaticText","optional":true},"ACw":{"caption":"Minimum Hours","name":"minimum_hours","rank":29,"editor":"StaticNumber","default_val":0},"ACx":{"caption":"Maximum Hours","name":"maximum_hours","rank":30,"editor":"StaticNumber","default_val":24},"ACy":{"caption":"Minimum Minutes","name":"minimum_minutes","rank":31,"editor":"StaticNumber","default_val":0},"ACz":{"caption":"Maximum Minutes","name":"maximum_minutes","rank":32,"editor":"StaticNumber","default_val":59},"ADB":{"caption":"Day format","name":"day_format","rank":37,"editor":"Dropdown","default_val":"08"},"ADC":{"caption":"Month format","name":"month_format","rank":38,"editor":"Dropdown","default_val":"01"},"ADD":{"caption":"Year format","name":"year_format","rank":39,"editor":"Dropdown","default_val":"2022"},"ADE":{"caption":"Date Order","name":"date_order","rank":35,"editor":"Dropdown","default_val":"Day/Month/Year"},"ADQ":{"caption":"Show buttons","name":"show_buttons","rank":40,"editor":"Checkbox","default_val":false},"ADR":{"caption":"Left button","name":"left_button","rank":48,"editor":"Dropdown","optional":true},"ADS":{"caption":"Right button","name":"right_button","rank":50,"editor":"Dropdown","optional":true},"ADT":{"caption":"Center Button","name":"center_button","rank":49,"editor":"Dropdown","in_style":false,"optional":true},"ADU":{"caption":"Blocked dates","name":"blocked_dates","rank":51,"editor":"DynamicValue","value":"date","is_list":true,"optional":true},"ADV":{"caption":"Disable Monday","name":"disable_monday","rank":52,"editor":"DynamicValue","value":"boolean","default_val":false},"ADW":{"caption":"Disable Tuesday","name":"disable_tuesday","rank":53,"editor":"DynamicValue","value":"boolean","optional":false,"default_val":false},"ADX":{"caption":"Disable Wednesday","name":"disable_wednesday","rank":54,"editor":"DynamicValue","value":"boolean","default_val":false},"ADY":{"caption":"Disable Thursday","name":"disable_thursday","rank":55,"editor":"DynamicValue","value":"boolean","default_val":false},"ADZ":{"caption":"Disable Friday","name":"disable_friday","rank":56,"editor":"DynamicValue","value":"boolean","default_val":false},"ADa":{"caption":"Disable Saturday","name":"disable_saturday","rank":57,"editor":"DynamicValue","value":"boolean","default_val":false},"ADb":{"caption":"Disable Sunday","name":"disable_sunday","rank":58,"editor":"DynamicValue","value":"boolean","default_val":false},"ADc":{"caption":"First day of week","name":"first_day_of_week","rank":59,"editor":"Dropdown","default_val":"Sunday"},"ADi":{"caption":"Day Name Color","name":"day_name_color","rank":60,"editor":"Color","default_val":"rgba(255, 154, 25, 1)"},"ADj":{"caption":"Highlight Color","name":"highlight_color","rank":61,"editor":"Color","default_val":"rgba(92, 196, 239, 1)"},"ADk":{"caption":"Placeholder","name":"placeholder","rank":7,"editor":"DynamicValue","value":"text","optional":true},"ADl":{"caption":"Minutes step","name":"minutes_step","rank":33,"editor":"DynamicValue","value":"number","default_val":1},"ADm":{"caption":"Hours step","name":"hours_step","rank":34,"editor":"DynamicValue","value":"number","default_val":1},"ADp":{"caption":"You can add up to 3 buttons","name":"you_can_add_up_to_3_buttons","rank":42,"editor":"Label"},"ADq":{"caption":"\"Clear\" - clicking on it will clear all selected dates","name":"\"clear\"_-_on_click_clears_all_selected_dates.","rank":44,"editor":"Label"},"ADr":{"caption":"When displaying the buttons, the order specified in the fields will be used.","name":"when_displaying_the_buttons,_the_order_specified_in_the_fields_will_be_used.","rank":43,"editor":"Label"},"ADs":{"caption":"\"Today\" - clicking on it will perform transition to today date","name":"\"today\"_-_clicking_on_it_will_perform_transition_to_today_date","rank":45,"editor":"Label"},"ADt":{"caption":"\"Ok\" - clicking on it will triger \"change\" event an return selected dates in states of plugin element","name":"\"ok\"_-_clicking_on_it_will_triger_\"change\"_event_an_return_selected_dates_in_states_of_plugin_element","rank":46,"editor":"Label"},"ADu":{"caption":"If \"OK\" button is used, the data will not be transferred to the states until the button is pressed","name":"if_\"ok\"_button_is_used,_the_data_will_not_be_transferred_to_the_states_until_the_button_is_pressed","rank":47,"editor":"Label"},"ADy":{"caption":"Placeholder Color","name":"placeholder_color","rank":62,"editor":"Color","default_val":"rgba(199, 199, 199, 1)"},"AEB":{"caption":"Automaticaly position picker","name":"autoposition","rank":23,"editor":"Checkbox","default_val":true},"AEC":{"caption":"Dates separator","name":"dates_separator","rank":36,"editor":"StaticText","default_val":" , "},"AED":{"caption":"Current Day Color","name":"current_day_color","rank":64,"editor":"Color","default_val":"rgba(78, 181, 230, 1)"},"AEE":{"caption":"Buttons Text Color","name":"buttons_text_color","rank":65,"editor":"Color","default_val":"rgba(78, 181, 230, 1)"},"AEG":{"caption":"Custom date format","name":"custom_date_format","rank":41,"editor":"StaticText","optional":true},"AEI":{"caption":"Custom language definition","name":"custom_language_definition","rank":12,"editor":"DynamicValue","value":"text","default_val":"{\"days\":[\"Sunday\",\"Monday\",\"Tuesday\",\"Wednesday\",\"Thursday\",\"Friday\",\"Saturday\"],\"daysShort\":[\"Sun\",\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\",\"Sat\"],\"daysMin\":[\"Su\",\"Mo\",\"Tu\",\"We\",\"Th\",\"Fr\",\"Sa\"],\"months\":[\"January\",\"February\",\"March\",\"April\",\"May\",\"June\",\"July\",\"August\",\"September\",\"October\",\"November\",\"December\"],\"monthsShort\":[\"Jan\",\"Feb\",\"Mar\",\"Apr\",\"May\",\"Jun\",\"Jul\",\"Aug\",\"Sep\",\"Oct\",\"Nov\",\"Dec\"],\"today\":\"Today\",\"clear\":\"Clear\",\"dateFormat\":\"MM/dd/yyyy\",\"timeFormat\":\"hh:mm aa\",\"firstDay\":0}","optional":true},"AEJ":{"caption":"Use custom language","name":"use_custom_language","rank":11,"editor":"Checkbox","default_val":false},"AEK":{"caption":"Multiple Dates Limit","name":"multiple_dates_limit","rank":4,"optional":true,"editor":"StaticNumber"},"AEL":{"caption":"Disabled cells style","name":"disabled_cells_style","rank":63,"editor":"Dropdown","default_val":"gray background"},"AEO":{"caption":"Initial range start date","name":"rangestart","rank":5,"editor":"DynamicValue","value":"date","optional":true},"AEY":{"caption":"Timezone","name":"timezone","rank":66,"editor":"Dropdown","optional":false,"default_val":"Current/User/Timezone"},"AEl":{"caption":"Minimum view","name":"min_view","rank":14,"editor":"Dropdown","default_val":"Days","optional":false}},"states":{"ADF":{"caption":"Selected date","name":"selected_date","value":"date","initialization_code":{"fn":"function(properties, context) {\n\n\tif (properties.initial_date){\n        return properties.initial_date;\n    } else {\n        return null;\n    }\n\n}"}},"ADG":{"caption":"Selected range","name":"selected_range","value":"date_range","initialization_code":{"fn":"function(properties, context) {\n\n    if (properties.initial_range_dates){\n        return properties.initial_range_dates;\n    } else {\n        return null;\n    }\n\n}"}},"ADH":{"caption":"Selected multiple dates","name":"selected_multiple_dates","value":"date","initialization_code":{"fn":"function(properties, context) {\n\n\tif (\n        properties.initial_multiple_dates && \n        properties.initial_multiple_dates.get(0,properties.initial_multiple_dates.length()) > 0 \n    ){\n        return properties.initial_multiple_dates.get(0,properties.initial_multiple_dates.length());\n    } else {\n        return null;\n    }\n\n}"},"is_list":true},"ADI":{"caption":"Current view","name":"current_view","value":"text","initialization_code":{"fn":"function(properties, context) {\n\n\treturn properties.default_view;\n\n}"}},"ADJ":{"caption":"Is Visible","name":"is_visible","value":"boolean","initialization_code":{"fn":"function(properties, context) {\n\n\treturn properties.display_inline;\n\n}"}},"AEF":{"caption":"Selected range as list","name":"selected_range_as_list","value":"date","initialization_code":{"fn":"function(properties, context) {\n\n\n\n}"},"is_list":true},"AEe":{"caption":"calculatedDate","name":"calculateddate","value":"date","initialization_code":{"fn":"function(properties, context) {\n\n\n\n}"}}},"events":{"ADK":{"caption":"Value change","name":"change"},"ADL":{"caption":"View change","name":"view_change"},"ADM":{"caption":"Show","name":"show"},"ADN":{"caption":"Hide","name":"hide"}},"actions":{"ADd":{"caption":"Show picker","code":{"fn":"function(instance, properties, context) {\n\n    try{\n    \tif (instance.data.airpicker && !instance.data.airpicker.visible){\n            instance.data.airpicker.show();\n        }    \n    }catch(e){\n        context.reportDebugger(e);\n    }\n    \n\n\n\n}"}},"ADe":{"caption":"Hide picker","code":{"fn":"function(instance, properties, context) {\n\n\n    try{\n        if ( instance.data.airpicker.visible ){\n        \tinstance.data.airpicker.hide();\n    \t}\n    } catch(e){\n        context.reportDebugger(e);\n    }\n    \n\n\n}"}},"ADf":{"caption":"Change view","code":{"fn":"function(instance, properties, context) {\n\n    \ttry{\n        \tinstance.data.airpicker.setCurrentView(properties.new_view);\n        } catch (e) {\n            context.reportDebugger(e);\n\t\t}\n\n}","add_debugger":false},"fields":{"ADg":{"caption":"New View","name":"new_view","rank":0,"editor":"Dropdown","default_val":"months"}}},"ADh":{"caption":"Clear selected dates","code":{"fn":"function(instance, properties, context) {\n    \n    \n\ttry{\n        instance.data.airpicker.clear();\n        instance.publishState(\"selected_date\", null);\n        instance.publishState(\"selected_range\", null);\n        instance.publishState(\"selected_multiple_dates\", null);\n        instance.publishState('selected_range_as_list', null);\n        instance.data.airpicker.unselectDate(instance.data.lastSelectedValue);\n        \n    }catch(e){\n\t\tcontext.reportDebugger(e);\n    }\n\n    \n}"}},"ADv":{"caption":"Next","code":{"fn":"function(instance, properties, context) {\n\n\n  try{\n      if (instance.data.airpicker){\n          instance.data.airpicker.next()\n\t  }\n  } catch(err){\n      \n  }\n\n\n}"}},"ADw":{"caption":"Prev","code":{"fn":"function(instance, properties, context) {\n\n\n  try{\n      if (instance.data.airpicker){\n          instance.data.airpicker.prev()\n\t  }\n  } catch(err){\n      \n  }\n\n\n}"}},"AEM":{"caption":"Set date","code":{"fn":"function(instance, properties, context) {\n    \n    const {thedate} = properties;\n    var datepicker = instance.data.airpicker;\n  \t\t\tlet opts = {\n\t\t\t\tsilent: true,\n\t\t\t\tupdateTime: true,\n\t\t\t};\n    if(datepicker != null){\n        if(thedate != null){\n            if(properties.enable_range === true){\n                datepicker.selectDate(thedate, opts);\n                instance.publishState('selected_date',thedate);\n                instance.publishState('selected_multiple_dates',[thedate]);\n                instance.publishState('selected_range', [thedate]);\n            }else{\n                datepicker.selectDate(thedate, opts);\n                instance.publishState('selected_date', instance.data.addMinutes(thedate));\n               // instance.publishState('selected_multiple_dates', dateArr); \n            }\n        } else {\n            datepicker.clear();\n            instance.publishState('selected_date',null); \n            instance.publishState('selected_multiple_dates',null);  \n            instance.publishState('selected_range',null);  \n        }\n\n    }\n\n}","add_debugger":false},"fields":{"AEN":{"caption":"Date to set picker to","name":"thedate","rank":0,"editor":"DynamicValue","value":"date","optional":true}}}},"code":{"preview":{"fn":"function(instance, properties) {\n    \n    //instance.data.defaultSettings.locale = window.pickerLanguages['Romanian']\n    \n    \n    //console.log(instance.data.defaultSettings.locale);\n    \n    \n    \n\tlet input = document.createElement('input');\n    let canvas = instance.canvas.get(0);\n    let id = `airpicker-${(Math.random() * Math.pow(2, 54)).toString(18)}`\n    input.id = id;\n    input.style.width = properties.bubble.width() + 'px';\n    input.style.height = properties.bubble.height() + 'px';\n    input.style.border = 'none';\n    input.style.padding = '0px';\n    input.placeholder = 'Air Date/Time Picker';\n    \n    \n    \n    let pickerLib = document.createElement('script');\n    pickerLib.src = \"https://cdn.jsdelivr.net/npm/air-datepicker@3.1.1/air-datepicker.min.js\";\n    canvas.appendChild(pickerLib);\n    \n    let pickerCSS = document.createElement('link');\n    pickerCSS.rel = 'stylesheet';\n    pickerCSS.href = 'https://01246d7e30dd8ee862a8dba3b426a683.cdn.bubble.io/f1648468483963x283276697705244100/air-datepicker.css';\n    document.getElementsByTagName('head')[0].appendChild(pickerCSS);\n    canvas.appendChild(pickerCSS);\n    \n    canvas.appendChild(input);\n    \n\tif (properties.display_inline){\n        \n        setTimeout(function(){\n            new AirDatepicker(`#${id}`, {\n                inline: true,\n                locale: {\n        days: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],\n        daysShort: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],\n        daysMin: ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'],\n        months: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'],\n        monthsShort: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\n        today: 'Today',\n        clear: 'Clear',\n        dateFormat: 'MM/dd/yyyy',\n        timeFormat: 'hh:mm aa',\n        firstDay: 0\n    }\n            });\n            input.style.display = 'none';\n        },1500);  \n        \n    }\n   \n\n}","add_debugger":false},"initialize":{"fn":"function(instance, context) {\n\n    instance.data.uid = `airpicker-${(Math.random() * Math.pow(2, 54)).toString(18)}`;\n    instance.data.style = document.createElement('style');\n    instance.canvas.get(0).appendChild(instance.data.style);\n        instance.publishState('is_visible', false);\n\n    instance.data.dateInArray = (arrayOfDates, blockedDates) => {\n        if (!arrayOfDates || !blockedDates || !blockedDates.length || !arrayOfDates.length){\n            return false;    \n        }\n\n        for(let i = 0; i < blockedDates.length; i++){\n            for(let f = 0; f < arrayOfDates.length; f++){\n                     if ( blockedDates[i].getFullYear() === arrayOfDates[f].getFullYear()){\n                         if(blockedDates[i].getMonth() === arrayOfDates[f].getMonth()){\n                             if(blockedDates[i].getDate() === arrayOfDates[f].getDate()){\n                                 return true;\n                             }\n                         }\n                   // return true;\n                }\n            }\n\n        }\n        return false;\n        };\n           \n    \n             /* get bubble page timezone*/\n             /*\n             instance.data.getTimeZone = () => {\n                const getFromObj = (object, key) => {\n                    var value;\n                    Object.keys(object).some(function(k) {\n                        if (k === key) {\n                            value = object[k];\n                            return true;\n                        }\n                        if (object[k] && typeof object[k] === 'object') {\n                            value = getFromObj(object[k], key);\n                            return value !== undefined;\n                        }\n                    });\n                    return value;\n                }\n\n                const type = getFromObj(window.app, 'tz_type');\n                if (type === 'static') return  getFromObj(window.app, 'tz_static');\n                return \"Current/User/Timezone\"\n\n            }*/\n             /*Calculate diference off timezone*/\n               instance.data.diferenceTimeZone = function(timeZone) {\n                          const now = new Date();\n                          const tzString = now.toLocaleString('en-US', { timeZone: timeZone });\n                          const localString = now.toLocaleString('en-US');\n                          const diff = (Date.parse(localString) - Date.parse(tzString)) / 3600000;\n                         // const offset = diff + now.getTimezoneOffset() / 60;\n                            return -diff*60\n                        }\n\n         \n                     /*change date to utc & timezone*/\n             instance.data.toUtc = function (unix) {\n                 \n               // let t = instance.data.timeZone;\n                 if (instance.data.timeZone === 'Current/User/Timezone') return unix\n                       if(unix.length > 1) {\n                               let multi = [];\n                            unix.forEach(d => {\n                           let a = new Date(new Date(d).toLocaleString(\"en-US\", {timeZone: instance.data.timeZone}));\n                                  multi.push(a)  \n                            });\n                               return multi\n                       } else {\n                   return new Date(new Date(unix).toLocaleString(\"en-US\", {timeZone: instance.data.timeZone}));\n                       }\n             }\n             \n             function addMinutes(date) {\n                 if (instance.data.timeZone === 'Current/User/Timezone') return date\n                return new Date(date.getTime() + (-instance.data.diferenceTimeZone(instance.data.timeZone)*60000));\n            }\n    \n    \tinstance.data.addMinutes = (date) => {\n                 if (instance.data.timeZone === 'Current/User/Timezone') return date\n                return new Date(date.getTime() + (-instance.data.diferenceTimeZone(instance.data.timeZone)*60000));\n            }\n    instance.data.getListOfDates = (startDate, endDate, steps = 1) => {\n        const dateArray = [];\n        let currentDate = new Date(startDate);\n        while (currentDate.toISOString().split('T')[0] <= new Date(endDate).toISOString().split('T')[0]) {\n            dateArray.push(new Date(currentDate));\n            // Use UTC date to prevent problems with time zones and DST\n            currentDate.setDate(currentDate.getDate() + steps);\n        }\n\n        return dateArray;\n    }\n\n    instance.data.defaultSettings = {\n        classes: \"\",\n        inline: !1,\n        locale: {\n            days: [\"Воскресенье\", \"Понедельник\", \"Вторник\", \"Среда\", \"Четверг\", \"Пятница\", \"Суббота\"],\n            daysShort: [\"Вос\", \"Пон\", \"Вто\", \"Сре\", \"Чет\", \"Пят\", \"Суб\"],\n            daysMin: [\"Вс\", \"Пн\", \"Вт\", \"Ср\", \"Чт\", \"Пт\", \"Сб\"],\n            months: [\"Январь\", \"Февраль\", \"Март\", \"Апрель\", \"Май\", \"Июнь\", \"Июль\", \"Август\", \"Сентябрь\", \"Октябрь\", \"Ноябрь\", \"Декабрь\"],\n            monthsShort: [\"Янв\", \"Фев\", \"Мар\", \"Апр\", \"Май\", \"Июн\", \"Июл\", \"Авг\", \"Сен\", \"Окт\", \"Ноя\", \"Дек\"],\n            today: \"Сегодня\",\n            clear: \"Очистить\",\n            dateFormat: \"dd.MM.yyyy\",\n            timeFormat: \"HH:mm\",\n            firstDay: 1\n        },\n        startDate: new Date(),\n        firstDay: \"\",\n        weekends: [6, 0],\n        dateFormat: \"\",\n        altField: \"\",\n        altFieldDateFormat: \"T\",\n        toggleSelected: !0,\n        keyboardNav: !0,\n        selectedDates: !1,\n        container: \"\",\n        isMobile: !1,\n        visible: !1,\n        position: \"bottom left\",\n        offset: 12,\n        view: \"days\",\n        minView: \"days\",\n        showOtherMonths: !0,\n        selectOtherMonths: !0,\n        moveToOtherMonthsOnSelect: !0,\n        showOtherYears: !0,\n        selectOtherYears: !0,\n        moveToOtherYearsOnSelect: !0,\n        minDate: \"\",\n        maxDate: \"\",\n        disableNavWhenOutOfRange: !0,\n        multipleDates: !1,\n        multipleDatesSeparator: \", \",\n        range: !1,\n        dynamicRange: !0,\n        buttons: !1,\n        monthsField: \"monthsShort\",\n        showEvent: \"focus\",\n        autoClose: !1,\n        prevHtml: '<svg><path d=\"M 17,12 l -5,5 l 5,5\"></path></svg>',\n        nextHtml: '<svg><path d=\"M 14,12 l 5,5 l -5,5\"></path></svg>',\n        navTitles: {\n            days: \"MMMM, <i>yyyy</i>\",\n            months: \"yyyy\",\n            years: \"yyyy1 - yyyy2\"\n        },\n        timepicker: !1,\n        onlyTimepicker: !1,\n        dateTimeSeparator: \" \",\n        timeFormat: \"\",\n        minHours: 0,\n        maxHours: 24,\n        minMinutes: 0,\n        maxMinutes: 59,\n        hoursStep: 1,\n        minutesStep: 1,\n        onSelect: !1,\n        onChangeViewDate: !1,\n        onChangeView: !1,\n        onRenderCell: !1,\n        onShow: !1,\n        onHide: !1\n    };\n\n    /* this function create an input and append it to plugin element\n     * id - string. This parameter is used as id of input\n     */\n    instance.data.createInput = (id) => {\n        let input = document.createElement('input');\n        input.id = id;\n        input.type = 'text';\n        input.readOnly = true;\n        input.style.width = '100%';\n        input.style.height = '100%';\n        input.style.cursor = \"pointer\";\n        input.style.transition = \"border-color 200ms ease, box-shadow 200ms ease\";\n        input.style.padding = \"1px 4px\";\n        input.style.fontWeight = 'inherit';\n        input.style.border = 'none';\n        input.style.backgroundColor = '#FFFFFF00';\n        instance.canvas.get(0).appendChild(input);\n    }\n    instance.data.createInput(instance.data.uid);\n\n\n    instance.data.isMobile = () => {\n        const toMatch = [\n            /Android/i,\n            /webOS/i,\n            /iPhone/i,\n            /iPad/i,\n            /iPod/i,\n            /BlackBerry/i,\n            /Windows Phone/i\n        ];\n\n        return toMatch.some((toMatchItem) => {\n            return navigator.userAgent.match(toMatchItem);\n        });\n    }\n\n    instance.data.dateFormat = (order, day, month, year) => {\n\n        let days = {\n            '8': 'd',\n            '08': 'dd'\n        }\n\n        let months = {\n            '1': 'M',\n            '01': 'MM',\n            'Jan': 'MMM',\n            'January': 'MMMM'\n        }\n\n        let years = {\n            '22': 'yy',\n            '2022': 'yyyy'\n        }\n\n        return order.replace('Day', days[day]).replace('Month', months[month]).replace('Year', years[year]);\n    }\n\n    instance.data.timeFormat = format => {\n        switch (format) {\n            case '08:20':\n                return 'HH:mm';\n            case '8:20':\n                return 'H:mm';\n            case '08:20 AM':\n                return 'hh:mm AA';\n            case '8:20 AM':\n                return 'h:mm AA';\n            case '08:20 am':\n                return 'hh:mm aa';\n            case '8:20 am':\n                return 'h:mm aa';\n            default:\n                return 'HH:mm';\n                      }\n    }\n\n            \n    /* function triggered then user made selection */\n    instance.data.onSelect = ({date,formattedDate,datepicker}) => {\n\n        /* Disable select if ok button is visible */\n                /*let date2 = []; \n                      date.forEach(d => {\n                     let r = addMinutes(d, -instance.data.diferenceTimeZone(instance.data.getTimeZone()));\n                     date2.push(r);\n                      });*/\n        \n        \n        if (!date) return;\n        if (!instance.data.okButtonUsed) {\n            switch (instance.data.type) {\n                case 'Single Date': {\n                  \n                    //let date2 = addMinutes(date, -instance.data.diferenceTimeZone(instance.data.getTimeZone()));\n                    instance.publishState('selected_date', addMinutes(date));\n                    instance.publishState('selected_range', null);\n                    instance.publishState('selected_multiple_dates', null);\n                    instance.publishState('selected_range_as_list', null);\n                    instance.data.lastSelectedValue = addMinutes(date);\n                    instance.publishAutobinding(addMinutes(date));\n                    instance.triggerEvent('change');\n\n                    //document.getElementById(instance.data.uid).blur();\n                    break;\n                }\n                case 'Multiple Dates': {\n                    \n                    let dateArr = date.map(addMinutes); \n                    \n                    instance.publishState('selected_date', null);\n                    instance.publishState('selected_range', null);\n                    instance.publishState('selected_multiple_dates', dateArr);\n                    instance.publishState('selected_range_as_list', null);\n                    instance.data.lastSelectedValue = dateArr;\n                    instance.triggerEvent('change');\n                    break;\n                }\n                case 'Range': {\n                    if (date.length === 2) {\n                       \n                        var listOfDates = instance.data.getListOfDates(date[0], date[1]);\n                        var blockedDateInRange = instance.data.dateInArray(listOfDates, instance.data.blockedDates)\n                        let listDate = listOfDates.map(addMinutes)\n                        \tlet range = [addMinutes(date[0]), addMinutes(date[1])];\n                                //addMinutes(date[0]), addMinutes(date[1])\n                        if (!blockedDateInRange){\n                            instance.publishState('selected_date', null);\n                            instance.publishState('selected_range', range);\n                            instance.publishState('selected_multiple_dates', null);\n                            instance.publishState('selected_range_as_list', listDate);\n                            instance.data.lastSelectedValue = date;\n                            instance.triggerEvent('change');\n                        } else {\n                            instance.publishState('selected_range', null);\n                            instance.publishState('selected_range_as_list', null);\n                            instance.data.airpicker.unselectDate(date)\n                        }\n\n                    } else {\n                        instance.publishState('selected_range', null);\n                        instance.publishState('selected_range_as_list', null);\n                    } \n                    break;\n                }\n                default: {\n                    instance.publishState('selected_date', addMinutes(date));\n                    instance.publishState('selected_range', null);\n                    instance.publishState('selected_multiple_dates', null);\n                    instance.publishState('selected_range_as_list', null);\n                    instance.data.lastSelectedValue = addMinutes(date);\n                    instance.publishAutobinding(addMinutes(date));\n                    instance.triggerEvent('change');\n                    break;\n                }\n               }\n        } else {\n            //datepicker.$el.value = \"\";\n           if (instance.data.okButtonUsed) {\n\tswitch (instance.data.type) {\n\t\tcase 'Single Date': {\n\t\t//\tinstance.publishState('selected_date', addMinutes(date));\n\t\t//\tinstance.publishState('selected_range', null);\n\t\t//\tinstance.publishState('selected_multiple_dates', null);\n\t\t//\tinstance.publishState('selected_range_as_list', null);\n\t\t\tinstance.data.lastSelectedValue = addMinutes(date);\n\t\t\tbreak;\n\t\t}\n\t\tcase 'Multiple Dates': {\n\t\t\tlet dateArr = date.map(addMinutes); \n\t\t//\tinstance.publishState('selected_date', null);\n\t\t\t//instance.publishState('selected_range', null);\n\t\t//\tinstance.publishState('selected_multiple_dates', dateArr);\n\t\t\t//instance.publishState('selected_range_as_list', null);\n\t\t\tinstance.data.lastSelectedValue = dateArr;\n\t\t\tbreak;\n\t\t}\n\t\tcase 'Range': {\n\t\t\tif (date.length === 2) {\n\t\t\t   \n\t\t\t\tvar listOfDates = instance.data.getListOfDates(date[0], date[1]);\n\t\t\t\tvar blockedDateInRange = instance.data.dateInArray(listOfDates, instance.data.blockedDates)\n\t\t\t\tlet listDate = listOfDates.map(addMinutes)\n\t\t\t\t\tlet range = [addMinutes(date[0]), addMinutes(date[1])];\n\t\t\t\tif (!blockedDateInRange){\n\t\t\t\t\t//instance.publishState('selected_date', null);\n\t\t\t\t//\tinstance.publishState('selected_range', range);\n\t\t\t\t//\tinstance.publishState('selected_multiple_dates', null);\n\t\t\t\t//\tinstance.publishState('selected_range_as_list', listDate);\n\t\t\t\t\tinstance.data.lastSelectedValue = date;\n\t\t\t\t} else {\n\t\t\t\t\t//instance.publishState('selected_range', null);\n\t\t\t\t//\tinstance.publishState('selected_range_as_list', null);\n\t\t\t\t\tinstance.data.airpicker.unselectDate(date)\n\t\t\t\t}\n\n\t\t\t} else {\n\t\t\t\t//instance.publishState('selected_range', null);\n\t\t\t//\tinstance.publishState('selected_range_as_list', null);\n\t\t\t} \n\t\t\tbreak;\n\t\t}\n\t\tdefault: {\n\t\t//\tinstance.publishState('selected_date', addMinutes(date));\n\t\t//\tinstance.publishState('selected_range', null);\n\t//\t\tinstance.publishState('selected_multiple_dates', null);\n\t//\t\tinstance.publishState('selected_range_as_list', null);\n\t\t\tinstance.data.lastSelectedValue = addMinutes(date);\n\t\t\tbreak;\n\t\t}\n\t   }\n} \n        }\n\n\n    };\n\n    /* function triggered then user change view date */\n    /*instance.data.onChangeViewDate = ({month, year, decade}) => {\n    }*/\n\n    /* function triggered then user change view */\n    instance.data.onChangeView = (view) => {\n        instance.publishState('current_view', view);\n        instance.triggerEvent('view_change');\n    }\n\n\n    instance.data.onShow = (isFinished) => {\n        instance.publishState('is_visible', true);\n        instance.triggerEvent('show');\n    }\n\n    instance.data.onHide = (isFinished) => {\n        var date = instance.data.lastSelectedValue;\n\n        instance.publishState('is_visible', false);\n        instance.triggerEvent('hide');\n    }\n\n\n\n    /* this function check if pased value exists */\n    instance.data.isValid = (val) => {\n        return val !== null && val !== undefined;\n    }\n\n    /* this function return language object using language title */\n    instance.data.language = (lang, isCustom) => {\n\n        if (isCustom){\n            try{\n                var jsonLang = JSON.parse(lang);\n                return jsonLang;\n            } catch (err) {\n                context.reportDebugger('It is impossible to process a custom language. English language is enabled.');\n                return window.pickerLanguages['English'];\n            }\n\n        }\n\n        var langObj = window.pickerLanguages;\n        if (langObj[lang] !== null && langObj[lang] !== undefined){\n            return langObj[lang];\n        }\n        return langObj['English'];\n    }\n\n    /* this function count if pased value is correct */\n    instance.data.getCorrectValue = (val, minAccepted, maxAccepted) => {\n        if (val >= minAccepted && val <= maxAccepted) {\n            return val;\n        } else if (val < minAccepted) {\n            return minAccepted;\n        } else if (val > maxAccepted) {\n            return maxAccepted;\n        }\n    }\n\n    /* create button for picker */\n    instance.data.createButton = type => {\n        switch (type) {\n            case 'Ok button': {\n                instance.data.okButtonUsed = true;\n\n                \n                return {\n                    content(dp) {\n                        return 'OK';\n                    },\n                    onClick(dp) {\n                        dp._setInputValue();\n                        switch (instance.data.type) {\n                            case 'Single Date': {\n                                instance.publishState('selected_date', addMinutes(dp.lastSelectedDate));\n                                instance.publishState('selected_range', null);\n                                instance.publishState('selected_multiple_dates', null);\n                                instance.publishState('selected_range_as_list', null);\n                                instance.data.lastSelectedValue = dp.lastSelectedDate;\n                                instance.publishAutobinding(addMinutes(dp.lastSelectedDate));\n                                instance.triggerEvent('change');\n\n                                break;\n                            }\n                            case 'Multiple Dates': {\n                               let dateArr = dp.selectedDates.map(addMinutes); \n                                instance.publishState('selected_date', null);\n                                instance.publishState('selected_range', null);\n                                instance.publishState('selected_multiple_dates', dateArr);\n                                instance.publishState('selected_range_as_list', null);\n                                instance.data.lastSelectedValue = dp.selectedDates;\n                                instance.triggerEvent('change');\n                                break;\n                            }\n                            case 'Range': {\n                                if (dp.selectedDates.length === 2) {\n                                    var listOfDates = instance.data.getListOfDates(dp.rangeDateFrom, dp.rangeDateTo);\n                                    var blockedDateInRange = instance.data.dateInArray(listOfDates, instance.data.blockedDates)\t\t\t\t\t\t\t\n                                    let listDate = listOfDates.map(addMinutes)\n\n\n                                    if (!blockedDateInRange){\n                                        instance.publishState('selected_date', null);\n                                        instance.publishState('selected_range', [dp.rangeDateFrom, dp.rangeDateTo]);\n                                        instance.publishState('selected_multiple_dates', null);\n                                        instance.publishState('selected_range_as_list', listDate);\n                                        instance.data.lastSelectedValue = [dp.rangeDateFrom, dp.rangeDateTo];\n                                        instance.triggerEvent('change');\n                                    }else {\n                                        instance.publishState('selected_range', null);\n                                        instance.publishState('selected_range_as_list', null);\n                                        instance.data.airpicker.unselectDate(dp.rangeDateTo);\n\n                                    }\n                                } else {\n                                    instance.publishState('selected_range', null);\n                                    instance.publishState('selected_range_as_list', null);\n\n                                }\n                                break;\n                            }\n                            case 'Only Timepicker': {\n                                let d = dp.lastSelectedDate;\n\n                                if (!d) d = new Date();\n\n                                instance.publishState('selected_date', d);\n                                instance.publishState('selected_range', null);\n                                instance.publishState('selected_multiple_dates', null);\n                                instance.publishState('selected_range_as_list', null);\n                                instance.data.lastSelectedValue = d;\n                                instance.publishAutobinding(d);\n\n                                dp.selectDate(d, {\n                                    silent: true,\n                                    updateTime: true,\n                                });\n                                instance.triggerEvent('change');\n                                break;\n                            }\n                            default: {\n                                let d = dp.lastSelectedDate;\n\n                                if (!d) d = new Date();\n\n                                instance.publishState('selected_date', d);\n                                instance.publishState('selected_range', null);\n                                instance.publishState('selected_multiple_dates', null);\n                                instance.publishState('selected_range_as_list', null);\n                                instance.data.lastSelectedValue = d;\n                                instance.publishAutobinding(d);\n                                instance.triggerEvent('change');\n                                break;\n                            }\n                                                  }\n\n                        dp.hide();\n                    }\n                }\n            }\n            case 'Clear button': {\n\n                return {\n                    content(dp) {\n                        return instance.data.lang;\n                    },\n                    onClick(dp) {\n                        instance.data.airpicker.clear();\n                        instance.data.lastSelectedValue = null;\n                        instance.publishState('selected_date', null);\n                        instance.publishState('selected_range', null);\n                        instance.publishState('selected_multiple_dates', null);\n                        instance.publishState('selected_range_as_list', null);\n                       // dp.hide();\n                    }\n                }\n            }\n            case 'Today button': {\n                return 'today';\n            }\n            default:\n                return undefined;\n                    }\n    }\n\n    instance.data.weekdayNumber = weekday => {\n        switch (weekday) {\n            case 'Sunday':\n                return 0;\n            case 'Monday':\n                return 1;\n            case 'Tuesday':\n                return 2;\n            case 'Wednesday':\n                return 3;\n            case 'Thursday':\n                return 4;\n            case 'Friday':\n                return 5;\n            case 'Saturday':\n                return 6;\n            default:\n                return 0;\n                       }\n    }\n\n    instance.data.stylingDisabledDates = (style) => {\n        if (!instance.data.disabledStyle) {\n            instance.data.disabledStyle = document.createElement(\"style\");\n            document.head.appendChild(instance.data.disabledStyle);\n        }\n\n        switch(style) {\n            case \"gray background\": {\n                instance.data.disabledStyle.innerHTML = `\n.${instance.data.uid} .-disabled- {\nborder-radius: 0px;\nbackground: #f8f8f8; ;\n}`\n                break;\n            }\n            case \"strike through\": {\n                instance.data.disabledStyle.innerHTML = `\n.${instance.data.uid} .-disabled- {\ntext-decoration: line-through;\n}`\n                break;\n            }\n            default: {\n                break;\n            }\n                    }\n    }\n\n    instance.data.clickOutBox = (e) => {\n        const text_container = $(`#${instance.data.uid}`);\n        const container = $(\".air-datepicker\");\n        const parent_container = instance.canvas;\n        if (container.has(e.target).length === 0 && e.target !== text_container[0] && e.target !== parent_container[0]) {\n            try {\n\n                if (instance.data.airpicker.visible) instance.data.airpicker.hide();\n            } catch (err) {\n                context.reportDebugger(err);\n            }\n        }\n    }\n\n}","add_debugger":false},"update":{"fn":"function(instance, properties, context) {\n\n    \n    instance.data.timeZone = properties.timezone.replaceAll('\"','');\n\tvar pickerNameString = \"airdatepicker\";\n\tinstance.data.stylingDisabledDates(properties.disabled_cells_style);\n\tinstance.data.lang = window.pickerLanguages[properties.locale].clear;\n\tif (!/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)) {\n\t\tdocument.removeEventListener('mouseup', instance.data.clickOutBox)\n\t\tdocument.addEventListener('mouseup', instance.data.clickOutBox)\n\t}\n\t//instance.data.getTimeZone();\n\tvar {\n\t\tisValid,\n\t\tisMobile,\n\t\tdateFormat,\n\t\ttimeFormat,\n\t\tlanguage,\n\t\tgetCorrectValue,\n\t\tuid,\n\t\tcreateButton,\n\t\tweekdayNumber,\n\t\ttoUtc\n\t} = instance.data;\n\n\n\n\n\tinstance.data.type = properties.type; /* This var is used to store picker mode */\n\tinstance.data.okButtonUsed = false; /* This var is used to detect when picker return value */\n\n\tvar oldBlockDays = undefined;\n\tif (instance.data.blockedDates) {\n\n\t\toldBlockDays = instance.data.blockedDates;\n\t}\n\n\t//let blocked_dates = properties.blocked_dates.get(0, properties.blocked_dates.length());\n\tinstance.data.blockedDates = (properties.blocked_dates) ? toUtc(properties.blocked_dates.get(0, properties.blocked_dates.length())) : [];\n\n\n\tif (\n\t\toldBlockDays !== undefined &&\n\t\tinstance.data.blockedDates !== undefined &&\n\t\t(_.intersection(oldBlockDays, instance.data.blockedDates)).length\n\t) {\n\t\tinstance.data.forceUpdate = true;\n\t}\n\n\tfunction arrayEquals(a, b) {\n\t\treturn Array.isArray(a) &&\n\t\t\tArray.isArray(b) &&\n\t\t\ta.length === b.length &&\n\t\t\ta.every((val, index) => val === b[index]);\n\t}\n\n\tvar newDisabledWeekdays = [properties.disable_monday,\n\t\tproperties.disable_tuesday,\n\t\tproperties.disable_wednesday,\n\t\tproperties.disable_thursday,\n\t\tproperties.disable_friday,\n\t\tproperties.disable_saturday,\n\t\tproperties.disable_sunday\n\t];\n\n\tif (!instance.data.DisabledWeekdaysArr) {\n\t\tinstance.data.DisabledWeekdaysArr = [properties.disable_monday,\n\t\t\tproperties.disable_tuesday,\n\t\t\tproperties.disable_wednesday,\n\t\t\tproperties.disable_thursday,\n\t\t\tproperties.disable_friday,\n\t\t\tproperties.disable_saturday,\n\t\t\tproperties.disable_sunday\n\t\t];\n\t}\n\n\tif (!arrayEquals(instance.data.DisabledWeekdaysArr, newDisabledWeekdays)) {\n\t\tinstance.data.forceUpdate = true;\n\t\tinstance.data.DisabledWeekdaysArr = newDisabledWeekdays;\n\t}\n\n\tif (!instance.data.airpicker) {\n\t\tinstance.data.airpicker = new AirDatepicker(`#${instance.data.uid}`, {\n\t\t\tlocale: instance.data.language(properties.locale, properties.use_custom_language)\n\t\t});\n\t}\n\n\tinstance.data.styleCSS = `\n.air-datepicker.${uid}{\n--adp-day-name-color: ${properties.day_name_color};\n--adp-cell-background-color-selected: ${properties.highlight_color};\n--adp-cell-background-color-selected-hover: ${properties.highlight_color};\n--adp-cell-background-color-in-range: ${properties.highlight_color.replace(/[\\d\\.]+\\)$/g, \".1)\")};\n--adp-cell-background-color-in-range-hover: ${properties.highlight_color.replace(/[\\d\\.]+\\)$/g, \".2)\")};\n--adp-z-index: 9999999999999;\n--adp-color-current-date: ${properties.current_day_color};\n--adp-btn-color: ${properties.buttons_text_color};\ndirection: ltr;\n}\n\ninput#${uid}{\ncolor: ${properties.bubble.font_color()};\nfont-family: ${properties.bubble.font_face().split(':::')[0]};\nfont-size: ${properties.bubble.font_size()}px;\nfont-weight: ${(properties.bubble.bold())?'bold':properties.bubble.font_face().split(':::')[1]};\nfont-style: ${(properties.bubble.italic())?'italic':'normal'};\n${(properties.bubble.underline())?'text-decoration:underline;':''}\ntext-align: ${properties.bubble.font_alignment()};\npadding-top: ${properties.bubble.padding_vertical() ? properties.bubble.padding_vertical() : 0}px;\npadding-bottom: ${properties.bubble.padding_vertical() ? properties.bubble.padding_vertical() : 0}px;\npadding-left: ${properties.bubble.padding_horizontal() ? properties.bubble.padding_horizontal() : 0}px;\npadding-right: ${properties.bubble.padding_horizontal() ? properties.bubble.padding_horizontal() : 0}px;\n}\ninput#${uid}::placeholder { /* Chrome, Firefox, Opera, Safari 10.1+ */\ncolor: ${properties.placeholder_color};\nopacity: 1; /* Firefox */\nfont-family: ${properties.bubble.font_face().split(':::')[0]};\nfont-size: ${properties.bubble.font_size()}px;\nfont-weight: ${(properties.bubble.bold())?'bold':properties.bubble.font_face().split(':::')[1]};\nfont-style: ${(properties.bubble.italic())?'italic':'normal'};\n${(properties.bubble.underline())?'text-decoration:underline;':''}\ntext-align: ${properties.bubble.font_alignment()};\npadding-top: ${properties.bubble.padding_vertical() ? properties.bubble.padding_vertical() : 0}px;\npadding-bottom: ${properties.bubble.padding_vertical() ? properties.bubble.padding_vertical() : 0}px;\npadding-left: ${properties.bubble.padding_horizontal() ? properties.bubble.padding_horizontal() : 0}px;\npadding-right: ${properties.bubble.padding_horizontal() ? properties.bubble.padding_horizontal() : 0}px;\n}\n\ninput#${uid}:-ms-input-placeholder { /* Internet Explorer 10-11 */\ncolor: ${properties.placeholder_color};\nfont-family: ${properties.bubble.font_face().split(':::')[0]};\nfont-size: ${properties.bubble.font_size()}px;\nfont-weight: ${(properties.bubble.bold())?'bold':properties.bubble.font_face().split(':::')[1]};\nfont-style: ${(properties.bubble.italic())?'italic':'normal'};\n${(properties.bubble.underline())?'text-decoration:underline;':''}\ntext-align: ${properties.bubble.font_alignment()};\npadding-top: ${properties.bubble.padding_vertical() ? properties.bubble.padding_vertical() : 0}px;\npadding-bottom: ${properties.bubble.padding_vertical() ? properties.bubble.padding_vertical() : 0}px;\npadding-left: ${properties.bubble.padding_horizontal() ? properties.bubble.padding_horizontal() : 0}px;\npadding-right: ${properties.bubble.padding_horizontal() ? properties.bubble.padding_horizontal() : 0}px;\n}\n\ninput#${uid}::-ms-input-placeholder { /* Microsoft Edge */\ncolor: ${properties.placeholder_color};\nfont-family: ${properties.bubble.font_face().split(':::')[0]};\nfont-size: ${properties.bubble.font_size()}px;\nfont-weight: ${(properties.bubble.bold())?'bold':properties.bubble.font_face().split(':::')[1]};\nfont-style: ${(properties.bubble.italic())?'italic':'normal'};\n${(properties.bubble.underline())?'text-decoration:underline;':''}\ntext-align: ${properties.bubble.font_alignment()};\npadding-top: ${properties.bubble.padding_vertical() ? properties.bubble.padding_vertical() : 0}px;\npadding-bottom: ${properties.bubble.padding_vertical() ? properties.bubble.padding_vertical() : 0}px;\npadding-left: ${properties.bubble.padding_horizontal() ? properties.bubble.padding_horizontal() : 0}px;\npadding-right: ${properties.bubble.padding_horizontal() ? properties.bubble.padding_horizontal() : 0}px;\n}\n\n        \n`;\n\tif (!instance.data.style) {\n\t\tinstance.data.style = document.createElement('style');\n\t\tinstance.data.style.innerHTML = instance.data.styleCSS;\n\t\tinstance.canvas.get(0).appendChild(instance.data.style);\n\t} else {\n\t\tinstance.data.style.innerHTML = instance.data.styleCSS;\n\t}\n\tvar useMobileMode = false; /* By default mobile mode is disabled */\n\tif (isMobile()) {\n\n\t\tif (properties.mobile_device_mode === 'Auto') {\n\t\t\t/* If we detect that the current device is a mobile phone - enable mobile view */\n\t\t\tuseMobileMode = false;\n\t\t}\n\t} else if (properties.mobile_device_mode === 'Always') {\n\t\t/* if user select always mobile mode */\n\t\tuseMobileMode = false;\n\t}\n\t/* Render cell function rewrite. Blocked dates is here \n\t *  Then we return an object with {disabled: true}\n\t *  This cell will be blocked an can't be selected by user\n\t */\n\tvar onRenderCell = ({\n\t\tdate,\n\t\tcellType,\n\t\tdatepicker\n\t}) => {\n\t\tif (cellType === 'day') {\n\t\t\tlet weekDay = date.getDay(); /* get current cell weekDay index */\n\n\t\t\tswitch (weekDay) {\n\t\t\t\tcase 1: {\n\t\t\t\t\t/* Monday */\n\t\t\t\t\tif (properties.disable_monday) {\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tdisabled: true\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tcase 2: {\n\t\t\t\t\t/* Tuesday */\n\t\t\t\t\tif (properties.disable_tuesday) {\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tdisabled: true\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tcase 3: {\n\t\t\t\t\t/* Wednesday */\n\t\t\t\t\tif (properties.disable_wednesday) {\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tdisabled: true\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tcase 4: {\n\t\t\t\t\t/* Thursday */\n\t\t\t\t\tif (properties.disable_thursday) {\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tdisabled: true\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tcase 5: {\n\t\t\t\t\t/* Friday */\n\t\t\t\t\tif (properties.disable_friday) {\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tdisabled: true\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tcase 6: {\n\t\t\t\t\t/* Saturday */\n\t\t\t\t\tif (properties.disable_saturday) {\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tdisabled: true\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tcase 0: {\n\t\t\t\t\t/* Sunday */\n\t\t\t\t\tif (properties.disable_sunday) {\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tdisabled: true\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tdefault:\n\t\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\t/* count how many days is blocked by user */\n\t\t\tif (instance.data.blockedDates.length > 0) {\n\n\t\t\t\tlet found = [];\n\t\t\t\tinstance.data.blockedDates.forEach(d => {\n\t\t\t\t\tvar isDate = d instanceof Date;\n\t\t\t\t\tif (isDate) {\n\n\t\t\t\t\t\t/* for each blocked day we compare day, month and year */\n\t\t\t\t\t\tlet days = d.getDate() === date.getDate();\n\t\t\t\t\t\tlet months = d.getMonth() === date.getMonth();\n\t\t\t\t\t\tlet years = d.getYear() === date.getYear();\n\n\t\t\t\t\t\t/* if this values is true - we return this day  */\n\t\t\t\t\t\tif (days && months && years) {\n\t\t\t\t\t\t\tfound.push(d);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t})\n\n\n\t\t\t\t/*var disableclass = '';\n\t\t\t\tvar style = properties.disabled_cells_style;\n\t\t\t\tif (style == 'strike through') {\n\t\t\t\t    disableclass = pickerNameString+'-disabled-strikethrough'\n\t\t\t\t} else if (style == 'gray background') {\n\t\t\t\t    disableclass = pickerNameString+'-disabled-background'\n\t\t\t\t} else {\n\t\t\t\t    disableclass = ''\n\t\t\t\t}*/\n\n\n\t\t\t\t/* if we found day in list - we block him */\n\t\t\t\tif (found.length > 0 && found[0] !== null && found[0] !== undefined) {\n\t\t\t\t\treturn {\n\t\t\t\t\t\t//classes: disableclass,\n\t\t\t\t\t\tdisabled: true\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\n\n\t\t}\n\t}\n\tvar position = `${properties.vertical_position} ${properties.horizontal_posiotion}`;\n\tif (properties.autoposition) {\n\t\tposition = ({\n\t\t\t$datepicker,\n\t\t\t$target,\n\t\t\t$pointer,\n\t\t\tdone\n\t\t}) => {\n\t\t\tlet popper = Popper.createPopper($target, $datepicker, {\n\t\t\t\tplacement: properties.vertical_position,\n\t\t\t\tmodifiers: [{\n\t\t\t\t\t\tname: 'flip',\n\t\t\t\t\t\toptions: {\n\t\t\t\t\t\t\tpadding: {\n\t\t\t\t\t\t\t\ttop: 10\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tname: 'offset',\n\t\t\t\t\t\toptions: {\n\t\t\t\t\t\t\toffset: [0, 20]\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tname: 'arrow',\n\t\t\t\t\t\toptions: {\n\t\t\t\t\t\t\telement: $pointer\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t]\n\t\t\t});\n\n\t\t\t/*\n\t\t\t Return function which will be called when `hide()` method is triggered,\n\t\t\t it must necessarily call the `done()` function\n\t\t\t to complete hiding process \n\t\t\t*/\n\t\t\treturn function completeHide() {\n\t\t\t\tpopper.destroy();\n\t\t\t\tdone();\n\t\t\t}\n\t\t}\n\t}\n\n\tvar detectDateField = () => {\n\t\tif (properties.custom_date_format !== null &&\n\t\t\tproperties.custom_date_format !== undefined &&\n\t\t\tproperties.custom_date_format.trim()) {\n\t\t\treturn properties.custom_date_format;\n\t\t}\n\t\treturn dateFormat(properties.date_order, properties.day_format, properties.month_format, properties.year_format);\n\t}\n\n\t/* custom language */\n\tvar langForUse = properties.locale;\n\tif (properties.use_custom_language) {\n\t\tlangForUse = properties.custom_language_definition;\n\t}\n\t/* Define options */\n\tvar options = {\n\t\tclasses: uid,\n\t\tdateFormat: detectDateField(),\n\t\t/*first day of week*/\n\t\tfirstDay: weekdayNumber(properties.first_day_of_week),\n\t\t/*min posible day to select*/\n\t\tminDate: (properties.minimum_date) ? properties.minimum_date : \"\",\n\t\t/*max posible day to select*/\n\t\tmaxDate: (properties.maximum_date) ? properties.maximum_date : \"\",\n\t\t/*language*/\n\t\tlocale: language(langForUse, properties.use_custom_language),\n\t\t/*picker view. can be: year, month or day*/\n\t\tview: properties.default_view.toLowerCase(),\n\t\t/*The minimum possible representation of the calendar.*/\n\t\tminView : properties.min_view.toLowerCase(),\n\t\t/* close picker after select */\n\t\tautoClose: properties.autoclose,\n\t\t/* can user switch selected days */\n\t\ttoggleSelected: properties.toggle_selected,\n\t\t/* allow keyboard navigation. Work only if is aplied to text input. */\n\t\tkeyboardNav: properties.keyboard_navigation,\n\t\t/* display days from other months */\n\t\tshowOtherMonths: properties.show_other_months,\n\t\t/*can user select day fron other month*/\n\t\tselectOtherMonths: properties.select_from_other_months,\n\t\t/*if user select day from other month move piker view to selected month*/\n\t\tmoveToOtherMonthsOnSelect: properties.move_to_other_months,\n\t\t/* disable navigation if max dates selected */\n\t\tdisableNavWhenOutOfRange: false,\n\t\t/* picker position */\n\t\tposition: position,\n\t\t/* show picker in modal popup */\n\t\tisMobile: useMobileMode,\n\t\t/* show picker always */\n\t\tinline: properties.display_inline,\n\t\ttimepicker: properties.enable_timepicker,\n\t\t/*separator of date and time in placeholder*/\n\t\tdateTimeSeparator: (properties.date_time_separator) ? properties.date_time_separator : \" \",\n\t\ttimeFormat: timeFormat(properties.time_format),\n\t\t/* min posible to select hour*/\n\t\tminHours: getCorrectValue(properties.minimum_hours, 0, 24),\n\t\t/*max posible to select hour*/\n\t\tmaxHours: getCorrectValue(properties.maximum_hours, getCorrectValue(properties.minimum_hours, 0, 24), 24),\n\t\t/* min posible to select minutes*/\n\t\tminMinutes: getCorrectValue(properties.minimum_minutes, 0, 59),\n\t\t/*max posible to select minutes*/\n\t\tmaxMinutes: getCorrectValue(properties.maximum_minutes, getCorrectValue(properties.minimum_minutes, 0, 59), 59),\n\t\thoursStep: getCorrectValue(properties.hours_step, 1, 59),\n\t\tminutesStep: getCorrectValue(properties.minutes_step, 1, 59),\n\t\tshowEvent: \"focus\",\n\t\t/* function fired then selection is made*/\n\t\tonSelect: instance.data.onSelect,\n\t\t/* function fired then view date is changed */\n\t\t//onChangeViewDate: instance.data.onChangeViewDate,\n\t\t/* function fired then view is changed */\n\t\tonChangeView: instance.data.onChangeView,\n\t\t/* function fired then cells is rendered*/\n\t\tonRenderCell: onRenderCell,\n\t\tonShow: instance.data.onShow,\n\t\tonHide: instance.data.onHide,\n\n\t};\n\tinstance.data.usedTimeFormat = timeFormat(properties.time_format);\n\n\t/* if user select \"inline\" mode */\n\tif (options.inline) {\n        instance.data.airpicker.destroy();\n\t\t/* Destroy old picker */\n\t\t//instance.data.airpicker.destroy();\n\n\t\t/* Remove input element */\n\t\tlet input = document.getElementById(uid);\n\t\tif (input && input.tagName === 'INPUT') {\n\t\t\tinput.remove();\n\t\t}\n\t\t/* Use main plugin element as target for picker  */\n\t\tinstance.canvas.get(0).id = uid;\n        \n\t\tinstance.data.airpicker = new AirDatepicker(`#${uid}`, instance.data.defaultSettings);\n\t\t\t\n\t} else {\n\t\t/* if user disable \"inline\" mode \n\t\t * check if main plugin elemnt is used as target\n\t\t */\n\t\tif (instance.canvas.get(0).id === uid) {\n\t\t\t/* \n\t\t\t * if main plugin element is used as target\n\t\t\t * remove id and destroy picker\n\t\t\t */\n\t\t\tinstance.canvas.get(0).id = '';\n\t\t\t//instance.data.airpicker.destroy();\n\n\t\t\t/* create new input and select it as target for picker */\n\t\t\tinstance.data.createInput(uid);\n\t\t\t//instance.data.airpicker = new AirDatepicker(`#${uid}`, instance.data.defaultSettings);\n\t\t}\n\n\t}\n\n\t/* Add buttons */\n\tif (properties.show_buttons) {\n\t\tinstance.data.buttons = [];\n\n\t\tlet leftButton = createButton(properties.left_button);\n\t\tif (leftButton) {\n\t\t\tinstance.data.buttons.push(leftButton);\n\t\t}\n\n\t\tlet centerButton = createButton(properties.center_button);\n\t\tif (centerButton) {\n\t\t\tinstance.data.buttons.push(centerButton);\n\t\t}\n\n\t\tlet rightButton = createButton(properties.right_button);\n\t\tif (rightButton) {\n\t\t\tinstance.data.buttons.push(rightButton);\n\t\t}\n\n\t\t/* buttons accept an array[] with text or functions \n\t\t * by default is defined two buttons 'clear' and 'today'\n\t\t * we added one additional button - \"ok button\"\n\t\t * implementation see in \"initialize\" in function \"instance.data.createButton\"\n\t\t */\n\t\toptions.buttons = instance.data.buttons;\n\n\t\t/* If \"OK button\" is visible disable autohide */\n\t\tif (instance.data.okButtonUsed) {\n\t\t\toptions.autoClose = false;\n\t\t}\n\t}\n\n\n\t/* Select picker type */\n\tif (properties.type === 'Multiple Dates') {\n\t\tlet initialDates = [];\n\n\t\tif (properties.initial_multiple_dates !== null && properties.initial_multiple_dates !== undefined) {\n\t\t\tif (properties.initial_multiple_dates.length() !== 0) {\n\t\t\t\tinitialDates = toUtc(properties.initial_multiple_dates.get(0, properties.initial_multiple_dates.length()));\n\t\t\t}\n\t\t}\n\n\n\n\t\t//instance.publishState('selected_multiple_dates', initialDates);\n\t\tlet input = document.getElementById(uid);\n\t\tif (input && input.tagName === 'INPUT' && initialDates.length > 0) {\n\t\t\tvar placeholder = [];\n\t\t\tinitialDates.forEach(date => {\n\t\t\t\tplaceholder.push(instance.data.airpicker.formatDate(date, options.dateFormat));\n\t\t\t});\n\t\t\tinput.placeholder = placeholder.join(\", \");\n\t\t}\n\n\n\t\toptions = {\n\t\t\t...options,\n\t\t\tmultipleDates: (properties.multiple_dates_limit && properties.multiple_dates_limit > 0) ? properties.multiple_dates_limit : true,\n\t\t\tmultipleDatesSeparator: properties.dates_separator,\n\t\t\tstartDate: (initialDates.length > 0) ? initialDates[0] : \"\", //new Date(),\n\t\t\tselectedDates: [...initialDates]\n\t\t};\n\t\tif (initialDates.length > 0) options.selectedDates = initialDates;\n\t} else if (properties.type === 'Range') {\n\t\tlet rangestart = (properties.rangestart) ? properties.rangestart : \"\" //new Date();\n\t\tlet d = new Date(rangestart);\n\t\tlet day = d.setHours(d.getHours() + 1);\n\t\tlet rangeend = (properties.rangeend) ? properties.rangeend : \"\"; //new Date(day);\n\t\tlet initialRange = [rangestart, rangeend];\n\n\t\tif (initialRange !== null && initialRange !== undefined && initialRange.length !== 0) {\n\n\t\t\t//\tinstance.publishState('selected_range', initialRange);\n\t\t\t//\tinstance.publishState('selected_range_as_list', instance.data.getListOfDates(initialRange[0], initialRange[1]));\n\t\t\tlet input = document.getElementById(uid);\n\t\t\t/*find elem and check if is input*/\n\t\t\tif (input && input.tagName === 'INPUT') {\n\t\t\t\tlet rangeStart = instance.data.airpicker.formatDate(initialRange[0], options.dateFormat);\n\t\t\t\tlet rangeEnd = instance.data.airpicker.formatDate(initialRange[1], options.dateFormat);\n\t\t\t\tinput.placeholder = `${rangeStart}, ${rangeEnd}`;\n\t\t\t}\n\n\t\t}\n         \n\n\n\t\toptions = {\n\t\t\t...options,\n\t\t\trange: true,\n\t\t\tmultipleDatesSeparator: properties.dates_separator,\n\t\t\tdynamicRange: true,\n\t\t\tselectedDates: [...initialRange]\n\t\t};\n\t\t\n\t\t\n\t} else if (properties.type === 'Only Timepicker') {\n\t\tlet initialDate; //= new Date();\n\t\tif (isValid(properties.autobinding) && instance.data.autobinding != properties.autobinding) {\n            instance.data.autobinding = properties.autobinding;\n\t\t\tinitialDate = properties.autobinding;\n\t\t} else if (isValid(properties.initial_date)) {\n\t\t\tinitialDate = properties.initial_date;\n\t\t}\n\n\t\tlet input = document.getElementById(uid);\n\t\tif (input && input.tagName === 'INPUT' && initialDate) {\n\t\t\tinput.placeholder = /*instance.data.airpicker.formatDate(initialDate, options.dateFormat) + options.dateTimeSeparator + */ instance.data.airpicker.formatDate(initialDate, options.timeFormat);;\n\t\t}\n\n\t\toptions.timepicker = true; //rewrite default value\n\t\toptions.inline = false; //disable inline mode. inline mode and timepicker mode is incompatible\n\t\toptions.startDate = initialDate;\n\t\t//\tinstance.publishState('selected_date', initialDate);\n\n\t\toptions = {\n\t\t\t...options,\n\t\t\tonlyTimepicker: true,\n\t\t\tstartDate: initialDate,\n\t\t\tselectedDates: [initialDate]\n\t\t};\n\t} else {\n\t\t/* Detect initial date value */\n\t\tlet initialDate; //= new Date();\n\t\tif (isValid(properties.autobinding) && instance.data.autobinding != properties.autobinding) {\n            instance.data.autobinding = properties.autobinding;\n\t\t\tinitialDate = properties.autobinding;\n\t\t} else if (isValid(properties.initial_date)) {\n\t\t\tinitialDate = toUtc(properties.initial_date);\n\t\t}\n\n\t\t//\tinstance.publishState('selected_date', initialDate);\n\n\n\t\tlet input = document.getElementById(uid);\n\n\t\tif (input && input.tagName === 'INPUT' && initialDate) {\n\t\t\tinput.placeholder = instance.data.airpicker.formatDate(initialDate, options.dateFormat);\n\t\t\tif (options.timepicker) {\n\t\t\t\tinput.placeholder += options.dateTimeSeparator + instance.data.airpicker.formatDate(initialDate, options.timeFormat);\n\t\t\t}\n\t\t}\n\n\t\toptions = {\n\t\t\t...options,\n\t\t\tstartDate: initialDate,\n\t\t\tselectedDates: [initialDate]\n\t\t}\n\n\n\t}\n\n\n\t/* if placeholder is set */\n\tif (properties.placeholder) {\n\t\tlet input = document.getElementById(uid);\n\t\t/*find elem and check if is input*/\n\t\tif (input && input.tagName === 'INPUT') {\n\t\t\tinput.placeholder = properties.placeholder;\n\t\t}\n\t}\n\n\t/* Update picker options */\n\t/*\n\tconst sameOptions = (oldOpts, newOpts) => {\n\t    var isSame = true;\n\t    for (let key in newOpts) {\n\t        if (typeof newOpts[key] == 'object' && !(newOpts[key] instanceof Date)) {\n\t            if (JSON.stringify(newOpts[key]) !== JSON.stringify(oldOpts[key])) {\n\t                isSame = false;\n\t                return;\n\t            }\n\t        } else if (typeof newOpts[key] == 'function') {\n\t            if (newOpts[key].toString() !== oldOpts[key].toString()) {\n\t                isSame = false;\n\t                return;\n\t            }\n\t        } else if (!(newOpts[key] instanceof Date)) {\n\t            if (newOpts[key] !== oldOpts[key]) {\n\t                isSame = false;\n\t                return;\n\t            }\n\t        }\n\n\n\t    }\n\t    return isSame;\n\t}\n\t*/\n\tinstance.data.airpicker.update(options);\n\t\n        \n\t//return\n\t/*if (instance.data.airpicker && (!sameOptions(instance.data.airpicker.opts, options) || instance.data.forceUpdate === true)) {\n\t    instance.data.forceUpdate = false;\n\t    //if(instance.data.airpicker){\n\t    instance.data.airpicker.removeAllEvents();\n\t    instance.data.airpicker.destroy();\n\t    instance.data.airpicker = null;\n\t    //}\n\t    instance.data.airpicker = new AirDatepicker(`#${instance.data.uid}`, options);\n\t}*/\n\n\t//return\n\tswitch (instance.data.type) {\n\t\tcase \"Multiple Dates\": {\n\t\t\tif (\n\t\t\t\t!instance.data.lastSelectedValue ||\n\t\t\t\t(properties.initial_multiple_dates &&\n\t\t\t\t\tproperties.initial_multiple_dates.length() > 0)\n\t\t\t) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tlet opts = {\n\t\t\t\tsilent: true,\n\t\t\t\tupdateTime: false,\n\t\t\t};\n\t\t\tif (options.timepicker) {\n\t\t\t\topts.updateTime = true;\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\tinstance.data.lastSelectedValue &&\n\t\t\t\ttypeof instance.data.lastSelectedValue == \"object\" &&\n\t\t\t\t!(instance.data.lastSelectedValue instanceof Date)\n\t\t\t) {\n\t\t\t\toptions.selectedDates = instance.data.lastSelectedValue;\n\t\t\t}\n\n\t\t\tif (options.selectedDates.length) {\n\t\t\t\tinstance.data.airpicker.clear();\n\t\t\t\tinstance.data.airpicker.selectDate(options.selectedDates, opts);\n\t\t\t\t//instance.publishState(\"selected_multiple_dates\", options.selectedDates);\n\t\t\t}\n\t\t\tbreak;\n\t\t}\n\t\tcase \"Range\": {\n\t\t\tif (\n\t\t\t\t!instance.data.lastSelectedValue &&\n\t\t\t\t!properties.rangestart &&\n\t\t\t\t!properties.rangeend\n\t\t\t) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tlet opts = {\n\t\t\t\tsilent: true,\n\t\t\t\tupdateTime: false,\n\t\t\t};\n\t\t\tif (options.timepicker) {\n\t\t\t\topts.updateTime = true;\n\t\t\t}\n\n\t\t\tlet initialRange = [toUtc(properties.rangestart), toUtc(properties.rangeend)];\n\n\t\t\tif (\n\t\t\t\tinstance.data.lastSelectedValue &&\n\t\t\t\ttypeof instance.data.lastSelectedValue == \"object\" &&\n\t\t\t\t!(instance.data.lastSelectedValue instanceof Date)\n\t\t\t) {\n\t\t\t\tinitialRange = instance.data.lastSelectedValue;\n\t\t\t}\n\n\t\t\tif (initialRange !== null && initialRange !== undefined) {\n\t\t\t\tinstance.data.airpicker.clear();\n\t\t\t\tinstance.data.airpicker.selectDate(initialRange, opts);\n\t\t\t//\tinstance.publishState(\"selected_range\", initialRange);\n\t\t\t//\tinstance.publishState(\n\t\t\t\t// \t\"selected_range_as_list\",\n\t\t\t\t// \tinstance.data.getListOfDates(initialRange[0], initialRange[1])\n\t\t\t\t// );\n\t\t\t}\n\n\t\t\tbreak;\n\t\t}\n\t\tcase \"Only Timepicker\": {\n\t\t\tlet opts = {\n\t\t\t\tsilent: true,\n\t\t\t\tupdateTime: true,\n\t\t\t};\n\n\t\t\tlet selDate = options.startDate ? options.startDate : \"\"; //new Date();\n\n\t\t\tif (instance.data.lastSelectedValue) {\n\t\t\t\tselDate = instance.data.lastSelectedValue;\n\t\t\t}\n\n\t\t\tinstance.data.airpicker.clear();\n\t\t\tinstance.data.airpicker.selectDate(selDate, opts);\n\t\t\t//instance.publishState(\"selected_date\", selDate);\n\n\t\t\tbreak;\n\t\t}\n\t\tdefault: {\n\t\t\t/*if (!instance.data.lastSelectedValue && !properties.initial_date) return;\n\t\t\t            \n\t\t\t                if (instance.data.lastSelectedValue && properties.initial_date){\n\t\t\t                    if (instance.data.lastSelectedValue.valueOf() === properties.initial_date.valueOf()) return;\n\t\t\t                }*/\n\n\t\t\tconst isSameDates = (date1, date2) => {\n\t\t\t\ttry {\n\t\t\t\t\tif (!(date1 instanceof Date)) return false;\n\t\t\t\t\tif (!(date2 instanceof Date)) return false;\n\n\t\t\t\t\treturn date1.valueOf() === date2.valueOf();\n\t\t\t\t} catch (err) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t};\n\n\t\t\t//if (!instance.data.lastSelectedValue || !properties.initial_date) return;\n\n\t\t\tif (isSameDates(instance.data.lastSelectedValue, properties.initial_date)) return;\n\n\t\t\tlet opts = {\n\t\t\t\tsilent: true,\n\t\t\t\tupdateTime: false,\n\t\t\t};\n\n\t\t\tif (options.timepicker) {\n\t\t\t\topts.updateTime = true;\n\t\t\t}\n\n\t\t\tif (instance.data.lastSelectedValue) {\n\t\t\t\toptions.startDate = instance.data.lastSelectedValue;\n\t\t\t}\n\n\t\t\tif (options.startDate) {\n\t\t\t\tinstance.data.airpicker.clear();\n\n\t\t\t\tinstance.data.airpicker.selectDate(options.startDate, opts);\n\t\t\t\t//instance.publishState(\"selected_date\", options.startDate);\n\t\t\t}\n\t\t\tbreak;\n\t\t}\n\t}\n            \n\n}","add_debugger":false},"reset":{"fn":"function(instance, context) {\n    var {\n        airpicker\n    } = instance.data;\n    \n    var {\n        publishState\n    } = instance;\n    \n    if (!airpicker) return;\n    \n    try{\n        airpicker.clear();\n        publishState(\"selected_date\", null);\n        publishState(\"selected_range\", null);\n        publishState(\"selected_multiple_dates\", null);\n        instance.publishState('selected_range_as_list', null);\n        publishState(\"current_view\", airpicker.currentView);\n        publishState(\"is_visible\", airpicker.visible);\n    }catch(e){\n        context.reportDebugger(e);\n    }\n    \n}"}}}}};
window._bubble_page_load_data.plugins_size['1495642567089x595986733356023800'] = 124103;
window.preloaded['plugin/third_party:1495642567089x595986733356023800:3.48.0'] = true;
window.plugins["1497473108162x748255442121523200"] = {"human":"Air Copy to clipboard","dependencies":{"use_jquery":true,"plugin_api_version":"2"},"plugin_elements":{"AAC":{"display":"Air copy to clipboard","property_applications":{"resizable":true,"MinWidth":true,"Background":true,"Border":true,"Padding":true,"BoxShadow":true,"Font":true},"add_hover_pressed":true,"add_is_visible":true,"fields":{"AAa":{"caption":"Target element ID attribute","name":"target_id","editor":"DynamicValue","rank":2,"value":"text","optional":true},"AAb":{"caption":"Action type","name":"action_type","editor":"Dropdown","rank":3,"default_val":"copy"},"AAd":{"caption":"Trigger element ID","name":"trigger_id","rank":4,"editor":"DynamicValue","value":"text"},"AAo":{"caption":"Text to copy","name":"text","rank":0,"editor":"DynamicValue","value":"text","optional":true},"AAp":{"caption":"Use ID Attribute","name":"use_id_attribute","rank":1,"editor":"Checkbox","default_val":false},"AAt":{"caption":"Copy HTML","name":"copy_html","rank":5,"editor":"Checkbox","default_val":false}},"actions":{"AAl":{"caption":"Paste from clipboard","code":{"fn":"function(instance, properties, context) {\n\n\n  \tlet elem = document.getElementById(properties.elem_id);\n    if ( elem.nodeName === 'INPUT' ){\n        \n       try{\n           navigator.clipboard.readText().then(clipText => {\n            elem.value = clipText;\n            $(elem).change();\n           });\n       } catch (err) {\n           if (typeof navigator.clipboard.readText !== 'function'){\n               context.reportDebugger('No access to clipboard. Reason: Firefox and internet explorer browsers do not support pasting from clipboard');\n           } else {\n               context.reportDebugger('No access to clipboard. Reason: ' + err.message);\n           }\n           \n       } \n        \n        \n    } else {\n        console.warn(`Air Copy to clipboard: paste from clipboard is allowed only in input element.`);\n    }\n\n\n}"},"fields":{"AAm":{"caption":"Element ID","name":"elem_id","rank":0,"editor":"StaticText"}}},"ABH":{"caption":"Copy with links","code":{"fn":"function(instance, properties, context) {\n    if (document.selection) {\n        var range = document.body.createTextRange();\n        range.moveToElementText(document.getElementById(properties.element_id));\n        range.select().createTextRange();\n        document.execCommand(\"copy\");\n    } else if (window.getSelection) {\n        setTimeout(() =>{\n            var range = document.createRange();\n            range.selectNode(document.getElementById(properties.element_id));\n            window.getSelection().removeAllRanges(range);\n            window.getSelection().addRange(range);\n            document.execCommand(\"copy\");\n        }, 50);\n    }\n}"},"fields":{"ABI":{"caption":"element_id","name":"element_id","rank":0,"editor":"DynamicValue","value":"text"}}}},"code":{"initialize":{"fn":"function(instance, context) {\n  \n\t \n}"},"update":{"fn":"function(instance, properties, context) {\n\n\n  var target = properties.target_id;\n  var trigger = properties.trigger_id;\n  \n  $(document).ready(function(){\n      $(`#${trigger}`).on('click', function(){\n        \n        let type = properties.action_type;\n        if ( properties.use_id_attribute ){\n            let element = document.getElementById(target);\n            if (element.nodeName === 'INPUT' || element.nodeName === 'TEXTAREA') {\n\n                let inpVal = element.value;\n                navigator.clipboard.writeText(inpVal).then(r => {\n                    if (type === 'cut') {\n                        element.value = '';\n                    }\n                });\n\n            } else {\n\t\t\t\t\n                let divTxt = element.innerText;\n                if (properties.copy_html){\n                    divTxt = element.innerHTML;\n\t\t\t\t}\n                navigator.clipboard.writeText(divTxt).then(r => {\n                    if (type === 'cut') {\n                        console.warn(`Air Copy to clipboard: Can't cut from static element`);\n                    }\n\n                });\n\n            }\n\n        } else {\n\n            let text = properties.text;\n            navigator.clipboard.writeText(text).then(r => {\n                if (type === 'cut') {\n                    console.warn(`Air Copy to clipboard: Can't cut from static element`);\n                }\n\n            });\n\n        }\n        \n    });\n  });\n}"}}}},"plugin_actions":{"AAU":{"display":"Copy to clipboard from static text","type":"client_side","fields":{"AAg":{"caption":"Text to copy","name":"element_id","rank":0,"editor":"DynamicValue","value":"text"}},"code":{"client":{"fn":"function(properties, context) {\n    \n    \tlet divTxt = properties.element_id;\n        navigator.clipboard.writeText(divTxt).then(r => {console.log('Text copied')});\n    \n}","add_debugger":false}}},"AAq":{"display":"Copy to clipboard from element","type":"server_side","fields":{"AAr":{"caption":"Delay ( Seconds )","name":"delay","rank":0,"editor":"StaticNumber","default_val":1},"AAs":{"caption":"Element ID","name":"element_id","rank":1,"editor":"DynamicValue","value":"text"},"AAu":{"caption":"Copy HTML","name":"copy_html","rank":2,"editor":"Checkbox","default_val":false}}},"ABC":{"display":"Copy element","type":"client_side","fields":{"ABD":{"caption":"Target ID","name":"target_id","rank":0,"editor":"StaticText"},"ABE":{"caption":"This action uses deprecated method. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. ","name":"this_action_use_deprecated_method._though_some_browsers_might_still_support_it,_it_may_have_already_been_removed_from_the_relevant_web_standards,_may_be_in_the_process_of_being_dropped,_or_may_only_be_kept_for_compatibility_purposes._","rank":1,"editor":"Label"},"ABF":{"caption":"Be aware that this feature may cease to work at any time.","name":"be_aware_that_this_feature_may_cease_to_work_at_any_time.","rank":2,"editor":"Label"},"ABG":{"caption":"This action can copy the entire content of an item while preserving the formatting.","name":"this_action_can_copy_the_entire_content_of_an_item_while_preserving_the_formatting.","rank":3,"editor":"Label"}},"code":{"client":{"fn":"function(properties, context) {\n\t\n  if (document.getElementById(properties.target_id)){\n      var element = document.getElementById(properties.target_id);\n      var range = document.createRange();\n      var selection = window.getSelection();\n      range.selectNodeContents(element);\n      selection.removeAllRanges();\n      selection.addRange(range);\n      document.execCommand('copy');\n      range.collapse();\n  }\n}"}}}}};
window._bubble_page_load_data.plugins_size['1497473108162x748255442121523200'] = 6776;
window.preloaded['plugin/third_party:1497473108162x748255442121523200:2.16.0'] = true;
window.plugins["1504424270272x619283445634039800"] = {"human":"CSS Tools","dependencies":{"use_jquery":true,"plugin_api_version":"1"},"plugin_elements":{"AAD":{"display":"CSS Tools","add_is_visible":true,"states":{"AAE":{"caption":"Finished Height Change","name":"finishedH","value":"boolean","initialization_code":{"fn":"function(properties, context) {\nreturn false;\n}"}},"AAK":{"caption":"Finished Width Change","name":"finishedW","value":"boolean","initialization_code":{"fn":"function(properties, context) {\nreturn false;\n}"}},"AAR":{"caption":"Page Orientation","name":"o","value":"text","initialization_code":{"fn":"function(properties, context) {\nreturn '';  \n}"}},"AAW":{"caption":"Current Page Height","name":"h","value":"number","initialization_code":{"fn":"function(properties, context) {\nreturn 0;\n}"}},"AAX":{"caption":"Current Page Width","name":"w","value":"number","initialization_code":{"fn":"function(properties, context) {\nreturn 0; \n}"}},"ABW":{"caption":"Avail. Width","name":"aw","value":"number","initialization_code":{"fn":"function(properties, context) {\nreturn 0;\n}"}},"ABX":{"caption":"Avail. Height","name":"ah","value":"number","initialization_code":{"fn":"function(properties, context) {\nreturn 0; \n}"}},"ABy":{"caption":"oscpu","name":"oscpu","value":"text","initialization_code":{"fn":"function(properties, context) {\nreturn '';\n}"}},"ABz":{"caption":"platform","name":"platform","value":"text","initialization_code":{"fn":"function(properties, context) {\nreturn '';\n}","add_debugger":false}},"ACC":{"caption":"userAgent","name":"userAgent","value":"text","initialization_code":{"fn":"function(properties, context) {\nreturn '';\n}"}},"ACL":{"caption":"Language","name":"lang","value":"text","initialization_code":{"fn":"function(properties, context) {\nreturn '';\n}"}}},"actions":{"AAO":{"caption":"Add Custom Style To Head","code":{"fn":"function(instance, properties, context) {\n    if(properties.css.includes(\"style\")){\n        properties.css = properties.css.replace(\"<style>\", '');\n        properties.css = properties.css.replace(\"<style type='text/css'>\", '');\n        properties.css = properties.css.replace(\"</style>\", '');\n    }\n    $('head').append($('<style type=\"text/css\">' + properties.css + '</style>')); \n}"},"fields":{"AAP":{"caption":"Your CSS (without tag style)","name":"css","editor":"DynamicValue","rank":1,"value":"text","default_val":"#myDiv { width: 100%; height: 50%; }"},"ACW":{"caption":"In case the element has a built-in style, use !important .","name":"info","rank":0,"editor":"Label"}}},"AAa":{"caption":"Change Element Size Over Time","code":{"fn":"function(instance, properties, context) {\n  instance.publishState(\"finishedH\", false);\n  instance.publishState(\"finishedW\", false);\n  var el = $(properties.eleID);\n  var elC = $(properties.eleID).children();\n  //var elHis = $(properties.eleID).css(\"height\");  \n  //var elWis = $(properties.eleID).css(\"width\");\n  $(el).parent().animate({height: properties.eleH, width: properties.eleW}, properties.time)\n  $(elC).parent().animate({height: properties.eleH, width: properties.eleW}, properties.time);\n  instance.publishState(\"finishedH\", true);\n  instance.publishState(\"finishedW\", true);\n}"},"fields":{"AAb":{"caption":"Element ID or CLASS - for ids, add # before the id (e.g. #myID), for classes add . before the class name (e.g.: .myClass)","name":"eleID","editor":"DynamicValue","rank":0,"value":"text","default_val":"myElement"},"AAc":{"caption":"Element Height (% or px)","name":"eleH","editor":"DynamicValue","rank":1,"value":"text","default_val":"50%"},"AAd":{"caption":"Element Width (% or px)","name":"eleW","editor":"DynamicValue","rank":2,"value":"text","default_val":"50px"},"AAe":{"caption":"Expand/Retract Time (ms)","name":"time","editor":"DynamicValue","rank":3,"value":"number","default_val":1500}}},"ABp":{"caption":"Get Browser Info","code":{"fn":"function(instance, properties, context) {\nif (navigator){\n\tinstance.publishState('oscpu', navigator.oscpu);\n\tinstance.publishState('platform', navigator.platform);\n\tinstance.publishState('userAgent', navigator.userAgent);\n    instance.publishState('lang', navigator.language);\n\t}\n}"}},"ACM":{"caption":"Add Class by ID","code":{"fn":"function(instance, properties, context) {\n\n  if (properties.id && properties.class) {\n    const element = document.getElementById(properties.id);      \n    element.classList.add(properties.class);\n  }\n}\n"},"fields":{"ACO":{"caption":"Element id","name":"id","rank":0,"editor":"DynamicValue","value":"text"},"ACR":{"caption":"Class to add","name":"class","rank":1,"editor":"DynamicValue","value":"text"}}},"ACP":{"caption":"Remove Class by ID","code":{"fn":"function(instance, properties, context) {\n\n  if (properties.id && properties.class) {\n    const element = document.getElementById(properties.id);      \n    element.classList.remove(properties.class);\n  }\n}\n"},"fields":{"ACQ":{"caption":"Element id","name":"id","rank":0,"editor":"DynamicValue","value":"text"},"ACS":{"caption":"Class to remove","name":"class","rank":1,"editor":"DynamicValue","value":"text"}}}},"code":{"initialize":{"fn":"function(instance, context) {\ninstance.publishState(\"finishedH\", false); \ninstance.publishState(\"finishedW\", false); \nvar div = $('<div></div>');\ndiv.css({width: \"0%\", height: \"0%\"}); \ninstance.canvas.append(div);\ninstance.data.div = div;\n\nfunction jqUpdateSize(){\nvar width = $(window).width();\nvar height = $(window).height();\ninstance.publishState(\"h\", height);\ninstance.publishState(\"w\", width);\nif (height > width){\ninstance.publishState(\"o\", \"Portrait\");\n}else{\ninstance.publishState(\"o\", \"Landscape\");\n }\ninstance.publishState(\"aw\", window.screen.availWidth);\ninstance.publishState(\"ah\", window.screen.availHeight);\n }\n$(document).ready(jqUpdateSize);\n$(window).resize(jqUpdateSize);\n}"},"update":{"fn":"function(instance, properties, context) {\n\n}","add_debugger":false},"reset":{"fn":"function(instance, context) {\n\n\n\n}"}}},"AAi":{"display":"Find Dad","property_applications":{"resizable":true,"MinWidth":false},"add_is_visible":true,"fields":{"ABR":{"caption":"These properties can be used for Repeating groups only. Use ADD/REMOVE Class element actions within your workflows for other types of groups.","name":"info","editor":"Label","rank":0},"ABT":{"caption":"Class Name","name":"c","editor":"DynamicValue","rank":1,"value":"text","default_val":"myClass"},"ABV":{"caption":"Add, Remove or Standby?","name":"d","editor":"Dropdown","rank":2,"default_val":"STANDBY"}},"states":{"ABg":{"caption":"Has Finished","name":"jobDone","value":"boolean","initialization_code":{"fn":"function(properties, context) {\nreturn false;\n}"}}},"actions":{"ABJ":{"caption":"Add Class","code":{"fn":"function(instance, properties, context) {    \n$($(instance.data.div).parents()[3]).addClass(properties.c);\ninstance.publishState('jobDone', true);\n}"},"fields":{"ABM":{"caption":"Class Name","name":"c","editor":"DynamicValue","rank":0,"value":"text","default_val":"MyClass"}}},"ABN":{"caption":"Remove Class","code":{"fn":"function(instance, properties, context) {\n$($(instance.data.div).parents()[3]).removeClass(properties.c);\ninstance.publishState('jobDone', true);\n}"},"fields":{"ABP":{"caption":"Class Name","name":"c","editor":"DynamicValue","rank":0,"value":"text","default_val":"MyClass"}}}},"code":{"initialize":{"fn":"function(instance, context) {\ninstance.publishState('jobDone', false);\nvar div = $('<div></div>');\ndiv.css({width: \"0px\", height: \"0px\"});\ninstance.canvas.append(div);\ninstance.data.div = div;\ninstance.data.init = true;\n}"},"update":{"fn":"function(instance, properties, context) {\n  if(instance.data.init === true) {\n    var div = instance.data.div;\n    var p = properties.d;    \n\n    if (p === \"ADD\") {\n      $($(div).parents()[3]).addClass(properties.c);\n      instance.publishState('jobDone', true);\n    } else if (p === \"REMOVE\"){\n      $($(div).parents()[3]).removeClass(properties.c);\n      instance.publishState('jobDone', true);  \n    } else {\n      instance.publishState('jobDone', false);  \n    }\n    instance.data.div = div;\n  }\n}","add_debugger":false},"reset":{"fn":"function(instance, context) {\n\n\n\n}"}}}},"plugin_actions":{"ABh":{"display":"Open New Window","type":"client_side","fields":{"ABi":{"caption":"URL","name":"url","editor":"DynamicValue","rank":0,"value":"text","default_val":"https://www.google.com"},"ABj":{"caption":"Toolbars (deprecated)","name":"t","editor":"Checkbox","rank":5,"default_val":true},"ABk":{"caption":"Scrollbars (deprecated)","name":"s","editor":"Checkbox","rank":6,"default_val":true},"ABl":{"caption":"Resizable (deprecated)","name":"r","editor":"Checkbox","rank":7,"default_val":true},"ABm":{"caption":"Width","name":"w","editor":"DynamicValue","rank":1,"value":"number","default_val":500},"ABn":{"caption":"Height","name":"h","editor":"DynamicValue","rank":2,"value":"number","default_val":500},"ACT":{"caption":"Distance from the left","name":"left","rank":3,"editor":"DynamicValue","value":"number","default_val":0},"ACU":{"caption":"Distance from the top","name":"top","rank":4,"editor":"DynamicValue","value":"number","default_val":0}},"code":{"client":{"fn":"function(properties, context) {\n  let t, s, r, menubar;\n\n  // properties 'Toolbars' (t), 'Scrollbars' (s) and 'Resizable' (r) have been deprecated as they are not used in modern browsers\n  // they are likely to be removed from the future versions of the plugin\n  if (properties.t === true){\n    t = 1;\n  }else{\n    t = 0;\n  }  \n    \n  if (properties.s === true){\n    s = 1;\n  }else{\n    s = 0;\n  }\n   \n  if (properties.r === true){\n    r = 1;\n  }else{\n    r = 0;\n  }    \n\n  const windowFeatures = `toolbar=${t},scrollbars=${s},resizable=${r},width=${properties.w},height=${properties.h},left=${properties.left},top=${properties.top}`;  \n     \n  $(function() {\n      window.open(properties.url, \"\", windowFeatures);\n  });\n  \n}\n  "}}},"ACF":{"display":"Add/Edit Head Tags","type":"client_side","fields":{"ACG":{"caption":"Custom Header","name":"ch","editor":"DynamicValue","rank":1,"value":"text","default_val":"<script id=\"myIdForEditing\">function alertMe(msg){ window.alert(msg) }</script>"},"ACH":{"caption":"Make sure your code includes your html tags! To allow for editing after creation, make sure you give the element an id, eg. <script id=\"myIdForEditing\">function alertMe(msg){ window.alert(msg) }</script>","name":"info","editor":"Label","rank":0},"ACI":{"caption":"Edit Mode?","name":"edit","editor":"Dropdown","rank":2,"default_val":"Add"},"ACJ":{"caption":"Edit/Delete Mode ID","name":"id","editor":"StaticText","rank":3,"default_val":"myIdForEditing","optional":true}},"code":{"client":{"fn":"function(properties, context) {\n\nif (properties.edit === \"Add\"){\n  $('head').append(properties.ch);\n}else if (properties.edit === \"Edit\"){\n  $('#' + properties.id).remove();\n  $('head').append(properties.ch);\n}else if (properties.edit === \"Delete\"){\n  $('#' + properties.id).remove();\n}\n\n}"}}}}};
window._bubble_page_load_data.plugins_size['1504424270272x619283445634039800'] = 11125;
window.preloaded['plugin/third_party:1504424270272x619283445634039800:5.6.0'] = true;
window.plugins["1523000369525x715252417793884200"] = {"human":"Progress Bars Pro","dependencies":{"use_jquery":true},"plugin_elements":{"AAC":{"display":"Picture Progress Bar","property_applications":{"MinWidth":true,"resizable":true,"Border":true,"Background":true,"Padding":true,"BoxShadow":true},"add_hover_pressed":true,"add_is_visible":true,"fields":{"AAD":{"caption":"Image","name":"image","editor":"DynamicValue","rank":0,"value":"image"},"AAG":{"caption":"Percentage","name":"percentage","editor":"DynamicValue","rank":1,"value":"number"},"AAK":{"caption":"Smooth transition","name":"smooth","editor":"Checkbox","rank":2,"default_val":true},"AAL":{"caption":"Opacity","name":"opacity","editor":"DynamicValue","rank":5,"value":"number","default_val":0.5},"AAM":{"caption":"Image Overlay","name":"image_overlay","editor":"Image","rank":6,"optional":true},"AAN":{"caption":"Direction","name":"direction","editor":"Dropdown","rank":3,"default_val":"Left to Right"},"AAO":{"caption":"Filter","name":"filter","editor":"Dropdown","rank":7,"optional":true},"AAP":{"caption":"Background Color","name":"bgcolor","editor":"Color","rank":4,"optional":false,"default_val":"rgba(255, 255, 255, 1)"}},"actions":{"AAc":{"caption":"Reset progress","code":{"fn":"function(instance, properties, context) {\n\n\n  $('#' + instance.data.elementId).loadgo('resetprogress');\n\n}"}}},"code":{"initialize":{"fn":"function(instance, context) {\n\n  //// Uses Loadgo by Fran Verona, MIT Licensed. https://github.com/franverona/loadgo\n//\n//\n  //// Generate a random ID for the element\n  //instance.data.promise = new Promise(function(resolve) {\n//\n//\n//\n  //  $(document).ready(function() {\n  //    var interval = setInterval(function() {\n  //      if (instance.data.image) {\n  //        // Set source image of LoadGo div\n  //        clearInterval(interval);\n  //        var randomId = Math.floor((Math.random() * 100000) + 1);\n  //        var elementId = 'Element_' + randomId;\n  //        instance.data.container = $(\"<div><img src='' id='\"+elementId+\"' style='display: block; margin: 0px; width: 100%; height: 100%; border-radius: 0px;'></div>\");\n  //        instance.data.elementId = elementId;\n  //        // Add the div\n//\n  //        instance.canvas.append(instance.data.container);\n//\n  //        // Get element's div with jquery \n  //        var loadgoElement = instance.data.container.find(\"#\" + instance.data.elementId);\n//\n  //        loadgoElement.attr(\"src\", instance.data.image);\n//\n  //        // Initialize LoadGo once image has loaded\n  //        loadgoElement.load(function() {\n  //          loadgoElement.loadgo({\n//\n  //            animated: instance.data.smooth,\n  //            opacity: instance.data.opacity,\n  //            image: instance.data.image_overlay,\n  //            direction: instance.data.direction,\n  //            filter: instance.data.filter,\n  //            bgcolor: instance.data.bgcolor\n//\n  //          });\n//\n  //          // Add the class \"PPBLoaded\" to the element to signify it has fully loaded\n  //          loadgoElement.attr(\"class\", \"PPBLoaded\");\n  //        });\n  //        resolve();\n  //      }\n  //    }, 1)\n//\n  //    })\n  //});\n    \n    instance.data.d = $.Deferred();\n    instance.data.img = null;\n\n    instance.data.d.done((properties) => {\n        var direction;\n        if (properties.direction === 'Left to Right') direction = 'lr';\n        if (properties.direction === 'Right to Left') direction = 'rl';\n        if (properties.direction === 'Top to Bottom') direction = 'tb';\n        if (properties.direction === 'Bottom to Top') direction = 'bt';\n        var img = $(`<img src=\"${properties.image}\" class=\"loadgo-image\" id=\"loadgoid\" />`);\n        instance.canvas.html(img);\n        Loadgo.init(img.get(0), {\n            initial: true,\n            bgcolor: properties.bgcolor,\n            opacity: properties.opacity,\n            animated: properties.animated,\n            image: properties.image_overlay,\n            direction: direction,\n            filter: properties.filter ? properties.filter.toLowerCase() : null\n        });\n        instance.data.img = img;\n    });\n}"},"update":{"fn":"function(instance, properties, context) {\n\n  //setTimeout(function() {\n  //  // Set properties into instance variables\n  //  instance.data.image = properties.image;\n  //  instance.data.smooth = properties.smooth;\n  //  instance.data.opacity = properties.opacity;\n  //  instance.data.image_overlay = properties.image_overlay;\n  //  instance.data.bgcolor = properties.bgcolor;\n//\n  //  if (properties.filter) {\n  //    instance.data.filter = properties.filter.toLowerCase();\n  //  }\n//\n  //  switch (properties.direction) {\n  //    case \"Left to Right\":\n  //      instance.data.direction = \"lr\";\n  //      break;\n  //    case \"Right to Left\":\n  //      instance.data.direction = \"rl\";\n  //      break;\n  //    case \"Bottom to Top\":\n  //      instance.data.direction = \"bt\";\n  //      break;\n  //    case \"Top to Bottom\":\n  //      instance.data.direction = \"tb\";\n  //      break;\n  //                              }\n  //  instance.data.promise.then(function() {\n  //    var loadgoElement = instance.data.container.find(\"#\"+instance.data.elementId);\n//\n//\n  //    var setProgress = function(percentage) {\n  //      //  console.log(\"setting percent \"+percentage);\n  //      loadgoElement.loadgo('setprogress', percentage);  \n  //    }\n//\n  //    // Check that LoadGo has been initialised by checking for PPBLoaded class, then set LoadGo progress percent. \n  //    if (loadgoElement.hasClass(\"PPBLoaded\") && properties.percentage != null) {\n  //      setProgress(properties.percentage)\n  //    }\n  //  });\n  //}, 1);\n    \n    instance.data.d.resolve(properties);\n    \n    var img = instance.data.img;\n\n    var direction;\n    if (properties.direction === 'Left to Right') direction = 'lr';\n    if (properties.direction === 'Right to Left') direction = 'rl';\n    if (properties.direction === 'Top to Bottom') direction = 'tb';\n    if (properties.direction === 'Bottom to Top') direction = 'bt';\n    \n    Loadgo.options(img.get(0), {\n        bgcolor: properties.bgcolor,\n        opacity: properties.opacity,\n        animated: properties.animated,\n        image: properties.image_overlay,\n        direction: direction,\n        filter: properties.filter ? properties.filter.toLowerCase() : null\n    });\n    \n    Loadgo.setprogress(img.get(0), properties.percentage);\n}"},"reset":{"fn":"function(instance, context) {\n\n\n\n}"}}},"AAE":{"display":"Progress Bar Info","property_applications":{"resizable":true,"MinWidth":true,"Background":false},"add_is_visible":true,"fields":{"AAI":{"caption":"Reset to 0% on completion","name":"reset","editor":"Checkbox","rank":0,"default_val":false},"AAJ":{"caption":"Hide Bubble progress bar","name":"hide","editor":"Checkbox","rank":1,"default_val":false},"ABc":{"caption":"Remove Progress Bar","name":"remove","rank":2,"editor":"Checkbox","default_val":false}},"states":{"AAF":{"caption":"Percent Loaded","name":"percent_loaded","value":"number","initialization_code":{"fn":"function(properties, context) {\n\n  return 0;\n\n}"}},"AAH":{"caption":"Is Loading?","name":"is_loading","value":"boolean","initialization_code":{"fn":"function(properties, context) {\n\n  return false;\n\n}"}},"AAQ":{"caption":"Fake Percent","name":"fake_progress","value":"number","initialization_code":{"fn":"function(properties, context) {\n\n  return 0;\n\n}"}}},"actions":{"AAR":{"caption":"Start Fake Progress","code":{"fn":"function(instance, properties, context) {\n\n  // Clear any previously set intervals\n  window.clearInterval(window.interval);\n\n  if (properties.indeterminate) {\n    // Start the interval\n    window.interval = setInterval(updateFake, 100);\n    var elapsedTime = 0\n\n    // Calculate fake percent, indeterminate\n    function updateFake() {\n      var progress = Math.atan(elapsedTime / properties.approximate_time) / (Math.PI / 2) * 100;\n      var progressRounded = parseFloat(Math.round(progress * 100) / 100).toFixed(2);\n      instance.publishState('fake_progress', progressRounded);\n      elapsedTime = elapsedTime + 1;\n    } \n    \n  } else if (!properties.indeterminate) {\n    // Calculate fake percent, determinate\n    var p = 1;\n\n    var millisecondsPerStep = properties.approximate_time * 1000 / properties.step;\n    var percentPerStep = 100 / properties.step;\n\n    var addPercent = function(percent) {\n\n      var prog = p * percentPerStep;\n\n      var progressRounded = parseFloat(Math.round(prog * 100) / 100).toFixed(2);\n      instance.publishState('fake_progress', progressRounded);\n    }\n\n    addPercent(percentPerStep);\n\n    // Start the interval\n    window.interval = setInterval(function() {\n\n      if (p == properties.step) {\n\n        window.clearInterval(interval);\n\n      } else {\n        p = p + 1;\n        addPercent(percentPerStep);\n\n      }\n    }, millisecondsPerStep);\n\n\n  }\n\n\n}"},"fields":{"AAU":{"caption":"Time (seconds)","name":"approximate_time","editor":"DynamicValue","rank":0,"value":"number","default_val":2},"AAd":{"caption":"Indeterminate (time is approximate)","name":"indeterminate","editor":"Checkbox","rank":2,"default_val":true},"AAq":{"caption":"Steps to reach time","name":"step","editor":"StaticNumber","rank":1,"default_val":10}}},"AAS":{"caption":"Stop Fake Progress","code":{"fn":"function(instance, properties, context) {\n\n  // Stop the interval\n  window.clearInterval(window.interval);\n\n  // Finish by setting progress to 100% or reset to 0%\n  if (instance.data.reset) {\n    instance.publishState('fake_progress', 0)\n  } else {\n    instance.publishState('fake_progress', 100)\n  }\n\n}"}}},"code":{"initialize":{"fn":"function(instance, context) {\n\n    \n  $(document).ready(function() {\n      \n  \tif (instance.data.remove) {\n        \t       \n        const mutationObserver = new MutationObserver(function(mutations) {\n            mutations.forEach(function(mutation) {\n                if (mutation.type === 'childList' && mutation.addedNodes.length && mutation.addedNodes[0].id === 'nprogress') {\n                    mutation.addedNodes[0].remove();\n                }\n\n            });\n        });\n\n        mutationObserver.observe(document.documentElement, {\n        \tchildList: true,\n        \tsubtree: true      \n        });\n    } else {\n        \n        // Generate a random ID for the element\n      var randomId = Math.floor((Math.random() * 100000) + 1);\n      var elementId = 'Element_' + randomId;\n      instance.data.elementId = elementId;\n\n      // Function retrieves % loaded by examining the translate3d style values of nprogress bar\n      function observerCallback() {\n        var matrix = $(\"#nprogress > .bar:first\").css(\"transform\");\n        var windowWidth = $(window).width();\n        if (matrix) {\n          // Get translate3d values into an array using regex\n          var translate_val = matrix.match(/-?[\\d\\.]+/g);\n          // Calculate the percent loaded by checking width compared to window width]Calculate\n\n          //#### Some users have null error on translate_val so I will put here an checker\n          if(translate_val){\n              var percentInt = ( windowWidth + parseInt( translate_val[4]) ) / windowWidth * 100;\n              var percent = parseFloat(Math.round(percentInt * 100) / 100).toFixed(2);\n              // console.log(percent);\n              // Publish percent state and set is_loading flag to true\n              instance.publishState('percent_loaded', percent);\n              instance.publishState('is_loading', true);\n          }else{\n              //#### If null, reset\n              instance.publishState('is_loading', false);\n              if (instance.data.reset) {\n                instance.publishState('percent_loaded', 0);\n              }\n          }\n\n        } else {\n          // Nprogress bar not active, set is_loading flag to false and reset percent loaded state to 0 if desired\n          instance.publishState('is_loading', false);\n          if (instance.data.reset) {\n            instance.publishState('percent_loaded', 0);\n          }\n        }\n      }\n\n\n      // Set up MutationObserver, that fires whenever the DOM changes\n      var mutationObserver = new MutationObserver(function(mutations) {\n        mutations.forEach(function(mutation) {\n          // Run the percent checking function \n          observerCallback();\n        });\n      });\n\n      // MutationObserver properties\n      mutationObserver.observe(document.documentElement, {\n        attributes: true,\n        characterData: false,\n        childList: true,\n        subtree: true,\n        attributeOldValue: false,\n        characterDataOldValue: false\n      });\n        \n        \n      if (instance.data.hide) {\n          // Hide nprogress bar by setting style \"visibility: hidden\", if desired\n\n          var css = '#nprogress { visibility: hidden; }',\n            head = document.head || document.getElementsByTagName('head')[0],\n            style = document.createElement('style');\n\n          style.type = 'text/css';\n          if (style.styleSheet) {\n            style.styleSheet.cssText = css;\n          } else {\n            style.appendChild(document.createTextNode(css));\n          }\n\n          head.appendChild(style);\n\n      }\n        \n    }\n      \n  })\n\n}"},"update":{"fn":"function(instance, properties, context) {\n\n  instance.data.reset = properties.reset;\n  instance.data.hide = properties.hide;\n  instance.data.remove = properties.remove;\n  \n}"},"reset":{"fn":"function(instance, context) {\n\n\n\n}"}}},"AAe":{"display":"Flat Progress Bar","property_applications":{"MinWidth":true,"resizable":true,"Background":true,"Border":true,"Padding":false,"BoxShadow":true},"add_hover_pressed":true,"add_is_visible":true,"fields":{"AAg":{"caption":"Percentage","name":"percentage","editor":"DynamicValue","rank":0,"value":"number"},"AAh":{"caption":"Type","name":"type","editor":"Dropdown","rank":1,"default_val":"Line"},"AAi":{"caption":"To Width","name":"stroke_width","editor":"StaticNumber","rank":6,"default_val":6},"AAj":{"caption":"Animation Duration","name":"animation_duration","editor":"StaticNumber","rank":2,"default_val":100},"AAk":{"caption":"From Color","name":"from_color","editor":"Color","rank":3,"default_val":"rgba(255, 234, 130, 1)"},"AAl":{"caption":"To Color","name":"to_color","editor":"Color","rank":4,"default_val":"rgba(255, 234, 130, 1)"},"AAm":{"caption":"Trail Color","name":"trail_color","editor":"Color","rank":7,"default_val":"rgba(238, 238, 238, 1)"},"AAn":{"caption":"Trail Width","name":"trail_width","editor":"StaticNumber","rank":8,"default_val":1},"AAz":{"caption":"From Width","name":"from_width","editor":"StaticNumber","rank":5,"default_val":6}},"actions":{"AAo":{"caption":"Reset progress","code":{"fn":"function(instance, properties, context) {\n    instance.data.bar.set(0);\n}"}}},"code":{"initialize":{"fn":"function(instance, context) {\n    //// https://progressbarjs.readthedocs.io/en/latest/api/parameters/\n    //var randomId = Math.floor((Math.random() * 100000) + 1);\n    //var elementId = 'Element_' + randomId;\n    //instance.data.elemAdded = false;\n    //instance.data.properties = false;\n    //instance.data.lastProp = false;\n    //instance.data.objSettings = {};\n    //// Add the div\n    //instance.canvas.append(\"<div id='\" + elementId + \"' style='width:inherit; height:inherit'></div>\");\n    //instance.data.elementId = elementId;\n    //// RGB to Hex function. Using Hex rather than RGB values fixes issue where color change animation makes bar invisible on some mobile browsers.\n    //function rgb2hex(rgb) {\n    //    rgb = rgb.match(/^rgba?[\\s+]?\\([\\s+]?(\\d+)[\\s+]?,[\\s+]?(\\d+)[\\s+]?,[\\s+]?(\\d+)[\\s+]?/i);\n    //    return (rgb && rgb.length === 4) ? \"#\" +\n    //        (\"0\" + parseInt(rgb[1], 10).toString(16)).slice(-2) +\n    //        (\"0\" + parseInt(rgb[2], 10).toString(16)).slice(-2) +\n    //        (\"0\" + parseInt(rgb[3], 10).toString(16)).slice(-2) : '';\n    //}\n//\n    //instance.data.loadBar = function loadBar() {\n    //    // Uses progressbar.js by Kimmo Brunfeldt, MIT Licensed. https://github.com/kimmobrunfeldt/progressbar.js\n    //    // Generate a random ID for the element        \n    //    var progressBar = $(\"#\" + elementId);\n//\n    //    let bar;\n    //    if (!instance.data.elemAdded) {\n    //        instance.data.lastProp = instance.data.properties\n    //        instance.data.elemAdded = true;\n    //        let objSettings = {\n    //            strokeWidth: instance.data.strokeWidth,\n    //            duration: instance.data.animationDuration,\n    //            color: instance.data.fromColor,\n    //            from: {\n    //                color: rgb2hex(instance.data.fromColor),\n    //                width: instance.data.fromWidth\n    //            },\n    //            to: {\n    //                color: rgb2hex(instance.data.toColor),\n    //                width: instance.data.strokeWidth\n    //            },\n    //            step: (state, bar) => {\n    //                bar.path.setAttribute('stroke', state.color);\n    //                bar.path.setAttribute('stroke-width', state.width);\n    //            },\n    //            trailColor: instance.data.trailColor,\n    //            trailWidth: instance.data.trailWidth,\n    //            svgStyle: { width: '100%', height: '100%' }\n//\n    //        };\n    //        instance.data.objSettings = objSettings;\n//\n    //        if (instance.data.type == \"Circle\") {\n    //            bar = new ProgressBar.Circle(\"#\" + elementId, objSettings);\n    //        } else if (instance.data.type == \"Line\") {\n    //            bar = new ProgressBar.Line(\"#\" + elementId, objSettings);\n    //        } else if (instance.data.type == \"Semi-circle\") {\n    //            bar = new ProgressBar.SemiCircle(\"#\" + elementId, objSettings);\n    //        }\n    //        instance.data.bar = bar;\n    //        // Attach class to div to signify loaded\n    //        progressBar.attr(\"class\", \"PBLoaded\");\n    //        instance.data.progressBar = progressBar;\n    //    }\n    //    // Set percentage progress\n    //    var loadedElement = $(\"#\" + instance.data.elementId);\n    //    // Check Progress Bar has loaded by checking it has PBLoaded class, before setting the progress value\n    //    if (loadedElement.hasClass(\"PBLoaded\") && instance.data.percentage != null && instance.data.bar != undefined) {\n    //        instance.data.bar.animate(instance.data.percentage / 100);\n    //        if (instance.data.lastProp != instance.data.properties) {\n    //            instance.data.lastProp = instance.data.properties;\n    //            instance.data.bar.animate(instance.data.percentage / 100, {\n    //                from: {\n    //                    color: rgb2hex(instance.data.fromColor),\n    //                    width: instance.data.fromWidth\n    //                },\n    //                to: {\n    //                    color: rgb2hex(instance.data.toColor),\n    //                    width: instance.data.strokeWidth\n    //                }\n    //            });\n    //        }\n    //    }\n    //}\n    \n    instance.data.bar = null;\n    //instance.data.prevPercentage = null;\n    //instance.data.animEnds = 0;\n    instance.data.d = $.Deferred();\n\n    instance.data.d.done(function(props) {\n        instance.data.bar = new ProgressBar[props.type](instance.canvas.get(0), {\n            strokeWidth: props.stroke_width,\n            easing: 'easeInOut',\n            duration: props.animation_duration,\n            from: { color: props.from_color },\n            to: { color: props.to_color },\n            step: function(state, circle, attachment) {\n                circle.path.setAttribute('stroke', state.color);\n            },\n            trailColor: props.trail_color,\n            trailWidth: props.trail_width,\n            svgStyle: {width: '100%', height: '100%'}\n        });\n    });\n}"},"update":{"fn":"function(instance, properties, context) {\n    //instance.data.properties = properties;\n    //setTimeout(function() {\n    //    // Set instance variables\n    //    instance.data.type = properties.type;\n    //    instance.data.strokeWidth = properties.stroke_width;\n    //    instance.data.fromWidth = properties.from_width;\n    //    instance.data.animationDuration = properties.animation_duration;\n    //    instance.data.fromColor = properties.from_color;\n    //    instance.data.toColor = properties.to_color;\n    //    instance.data.trailColor = properties.trail_color;\n    //    instance.data.trailWidth = properties.trail_width;\n    //    instance.data.percentage = properties.percentage;\n    //    instance.data.loadBar();\n    //}, 1)\n\n    //if (instance.data.bar) instance.data.bar.destroy();\n//\n    //instance.data.bar = new ProgressBar[properties.type](instance.canvas.get(0), {\n    //    strokeWidth: properties.stroke_width,\n    //    easing: 'easeInOut',\n    //    duration: properties.animation_duration,\n    //    from: { color: properties.from_color },\n    //    to: { color: properties.to_color },\n    //    step: function(state, circle, attachment) {\n    //        circle.path.setAttribute('stroke', state.color);\n    //    },\n    //    trailColor: properties.trail_color,\n    //    trailWidth: properties.trail_width,\n    //    svgStyle: {width: '100%', height: '100%'}\n    //});\n\n    //instance.data.bar.set(properties.percentage);\n    //instance.data.bar.set(instance.data.prevPercentage);\n    \n    //instance.data.prevPercentage = properties.percentage;\n\n    instance.data.d.resolve(properties);\n\n    instance.data.bar.animate(properties.percentage * 0.01, {\n        from: { color: properties.from_color },\n        to: { color: properties.to_color },\n    }, () => {});\n}"},"reset":{"fn":"function(instance, context) {\n\n\n\n}"}}}}};
window._bubble_page_load_data.plugins_size['1523000369525x715252417793884200'] = 22154;
window.preloaded['plugin/third_party:1523000369525x715252417793884200:2.16.0'] = true;
window.plugins["1531310660066x700901076712292400"] = {"human":"Reveal & Hide Password","dependencies":{"use_jquery":true},"plugin_elements":{"AAH":{"display":"Reveal","property_applications":{"MinWidth":true},"add_is_visible":true,"states":{"AAS":{"caption":"Toggle visible","name":"toggle","value":"boolean","initialization_code":{"fn":"function(properties, context) {\n\n\n\n}"}}},"actions":{"AAK":{"caption":"Toggle","code":{"fn":"function(instance, properties, context) {\n\nif (properties.idtoggle == \"\" )  {}\n\telse { $(\"#\"+properties.idtoggle).togglePassword();\n          if ($(\"#\"+properties.idtoggle).is(':text')) {\n            instance.publishState('toggle', \"yes\");\n          } else { instance.publishState('toggle', \"no\"); }\n         } \n\n}"},"fields":{"AAN":{"caption":"id","name":"idtoggle","rank":0,"editor":"DynamicValue","value":"text"}}}},"code":{"initialize":{"fn":"function(instance, context) {\n\n\n\n}"},"update":{"fn":"function(instance, properties, context) {\n\n \n\n}"},"reset":{"fn":"function(instance, context) {\n\n\n\n}"}}}}};
window._bubble_page_load_data.plugins_size['1531310660066x700901076712292400'] = 1018;
window.preloaded['plugin/third_party:1531310660066x700901076712292400:1.5.0'] = true;
window.plugins["1532013071429x291243122669649900"] = {"human":"Input Placeholder Color","dependencies":{"use_jquery":true},"plugin_elements":{"AAH":{"display":"Placeholder Color","property_applications":{"resizable":true},"add_is_visible":true,"fields":{"AAI":{"caption":"Element's ID","name":"elementId","rank":1,"editor":"DynamicValue","value":"text","default_val":""},"AAJ":{"caption":"Color","name":"color","rank":3,"editor":"Color","default_val":"rgba(209, 209, 209, 1)","in_style":false},"AAK":{"caption":"Enter an Id of the element:","name":"1","rank":0,"editor":"Label"},"AAL":{"caption":"Choose your decided color:","name":"2","rank":2,"editor":"Label"},"AAM":{"caption":"*Notes:","name":"notes","rank":4,"editor":"Label"},"AAO":{"caption":"Please make sure that you are using a correct Id of the element without whitespaces and special characters!","name":"note-1","rank":5,"editor":"Label"}},"code":{"initialize":{"fn":"function(instance, context) {\n\n}"},"update":{"fn":"function(b,a,c){if(b=a.elementId)(a=a.color)||(a=\"#000000\"),a+=\" !important\",value1=\"<style>#\"+b+\"::placeholder{color: \"+a+\";}#\"+b+\":-ms-input-placeholder{color: \"+a+\";}#\"+b+\"::-ms-input-placeholder{color: \"+a+\";}#\"+b+\"::-webkit-input-placeholder{color: \"+a+\";}#\"+b+\":-moz-placeholder{color: \"+a+\";}#\"+b+\"::-moz-placeholder{color: \"+a+\";}\",value2=\"#\"+b+\" .tt-input::placeholder{color: \"+a+\";}#\"+b+\" .tt-input:-ms-input-placeholder{color: \"+a+\";}#\"+b+\" .tt-input::-ms-input-placeholder{color: \"+\na+\";}#\"+b+\" .tt-input::-webkit-input-placeholder{color: \"+a+\";}#\"+b+\" .tt-input:-moz-placeholder{color: \"+a+\";}#\"+b+\" .tt-input::-moz-placeholder{color: \"+a+\";}</style>\",$(\"head\").append(value1+value2)};"},"reset":{"fn":"function(instance, context) {\n\n\n\n}"}}}}};
window._bubble_page_load_data.plugins_size['1532013071429x291243122669649900'] = 1750;
window.preloaded['plugin/third_party:1532013071429x291243122669649900:2.0.2'] = true;
window.plugins["1539124824422x194279356396994560"] = {"human":"File Downloader","dependencies":{"use_jquery":true},"plugin_actions":{"AAC":{"display":"Download file","type":"client_side","fields":{"AAG":{"caption":"File","name":"file","rank":0,"editor":"DynamicValue","value":"file"},"AAI":{"caption":"File name","name":"fileName","rank":1,"editor":"DynamicValue","value":"text","default_val":"my_file","optional":false}},"code":{"client":{"fn":"function(c,f){var b=c.file,e=c.fileName,d=null;if(b)if(1<b.split(\",\").length)alert(\"Please select only a single file!\");else{var a=new XMLHttpRequest;a.open(\"GET\",b);a.responseType=\"blob\";a.onload=function(){200!=a.status?(console.log(\"Status error: \"+a.status),alert(\"There was an issue generating your file. Please check your file type and try again.\")):(d=a.response,download(d,e))};a.send()}else alert(\"Please select a file!\")};","add_debugger":false}}}}};
window._bubble_page_load_data.plugins_size['1539124824422x194279356396994560'] = 866;
window.preloaded['plugin/third_party:1539124824422x194279356396994560:1.0.0'] = true;
window.plugins["1553006094610x835866904531566600"] = {"human":"ZQ Fuzzy Search & Autocomplete","dependencies":{"use_jquery":true},"plugin_elements":{"AAC":{"display":"Search & Autocorrect","property_applications":{"MinWidth":true,"resizable":true},"add_is_visible":true,"fields":{"AAD":{"caption":"Data Type","name":"app_data","rank":0,"editor":"custom_type"},"AAE":{"caption":"Data Source","name":"data_source","rank":1,"editor":"DynamicValue","is_list":true,"value":"custom_data_AAD"},"AAF":{"caption":"Field To Search 1","name":"search_field","rank":2,"editor":"custom_field_AAD"},"AAG":{"caption":"Field To Search 2","name":"search_field_2","rank":3,"editor":"custom_field_AAD","optional":true},"AAH":{"caption":"Field To Search 3","name":"search_field_3","rank":4,"editor":"custom_field_AAD","optional":true},"AAI":{"caption":"Field To Search 4","name":"search_field_4","rank":5,"editor":"custom_field_AAD","optional":true},"AAJ":{"caption":"Field To Search 5","name":"search_field_5","rank":6,"editor":"custom_field_AAD","optional":true},"AAK":{"caption":"Text To Match","name":"string_to_match","rank":7,"editor":"DynamicValue","value":"text","optional":true},"AAL":{"caption":"OR Set Text to Match from an Input Box","name":"search_type","rank":8,"editor":"Checkbox","default_val":false},"AAM":{"caption":"Check for fast updates from an Input Box value. Make sure you set the Input Box ID value below. See documentation for more info.","name":"search_type_info","rank":9,"editor":"Label"},"AAN":{"caption":"Input Box ID","name":"input_box_id","rank":10,"editor":"StaticText","optional":true},"AAO":{"caption":"___ Options ___","name":"options","rank":11,"editor":"Label"},"AAP":{"caption":"Threshold","name":"threshold","rank":12,"editor":"StaticNumber","default_val":0.6},"AAQ":{"caption":"A threshold of 0.0 requires a perfect match (of both letters and location), a threshold of 1.0 would match anything.","name":"threshold_info","rank":13,"editor":"Label"},"AAR":{"caption":"Case Sensitive","name":"case_sensitive","rank":14,"editor":"Checkbox","default_val":false},"AAS":{"caption":"___ Advanced Options ___","name":"advanced_options","rank":15,"editor":"Label"},"AAV":{"caption":"Find All Matches","name":"find_all_matches","rank":16,"editor":"Checkbox","default_val":true},"AAW":{"caption":"Location","name":"location","rank":17,"editor":"StaticNumber","default_val":0},"AAX":{"caption":"Distance","name":"distance","rank":18,"editor":"StaticNumber","default_val":100},"AAZ":{"caption":"Exclude Terms Shorter Than","name":"exclude_under","rank":19,"editor":"StaticNumber","default_val":2}},"states":{"AAa":{"caption":"Matches","name":"match_array","value":"custom_data_AAD","initialization_code":{"fn":"function(properties, context) {\n\n\n\n}"},"is_list":true},"AAb":{"caption":"Match Scores","name":"match_scores_array","value":"number","initialization_code":{"fn":"function(properties, context) {\n\n\n\n}"},"is_list":true},"AAc":{"caption":"Input Box's Value","name":"input_box_value","value":"text","initialization_code":{"fn":"function(properties, context) {\n\n\n\n}"}}},"actions":{"AAd":{"caption":"Reset input","code":{"fn":"function(instance, properties, context) {\n\n\n    if (instance.data.input_box_id) {\n    \n      // Reset the input box and the match arrays\n      $(\"#\" + instance.data.input_box_id).val('');\n      instance.publishState('match_array', null);\n      instance.publishState('match_scores_array', null);\n      instance.publishState('input_box_value', null);\n    \n    }\n\n\n}"}}},"code":{"initialize":{"fn":"function(instance, context) {\n\n\t//\n    //fuzzybug\n\n    instance.data.result = '';\n\n    //function getResults() {\n    instance.data.getResults = function getResults() {\n        // Check that result exists and is not empty before attempting to set properties to avoid errors. Reset matched states to null when no matches found\n\n        if (instance.data.result && instance.data.result.length) {\n            var resultsArray = [];\n            var scoresArray = [];\n            for (i = 0; i < instance.data.result.length; i++) {\n                var resultThing = instance.data.data_source.get(0, instance.data.len + 1)[instance.data.result[i].item.id];\n                resultsArray.push(resultThing);\n                scoresArray.push(instance.data.result[i].score);\n            }\n            instance.publishState(\"match_array\", resultsArray)\n            instance.publishState(\"match_scores_array\", scoresArray);\n\n        } else {\n            instance.publishState(\"match_array\", null);\n            instance.publishState(\"match_scores_array\", null);\n        }\n\n    }\n    // Bind input change handler to #SearchInput. Run getResults function whenever input changes.\n    $(document).ready(function() {\n        if (instance.data.input_box_id && instance.data.search_type) {\n\n            $(\"#\" + instance.data.input_box_id).on(\"input\", null, null, function() {\n                if (instance.data.dictionary && instance.data.options) {\n                    // Trim leading & trailing whitespace, then remove words shorter than exclude_under value\n                    var searchTerm = $(\"#\" + instance.data.input_box_id).val().trim();\n                    searchTerm = searchTerm.split(' ').filter(function(str) {\n                        //var word = str.match(/[\\wа-я]+/ig);\n                        let regex = /[\\u0000-\\u007f\\u0080-\\u00ff\\u0100-\\u0180-\\u024f\\u017f\\u0400-\\u04ff\\u3040-\\u30ff\\u3400-\\u4dbf\\u4e00-\\u9fff\\uf900-\\ufa2d\\uff66-\\uff9f\\u3131-\\uD79D\\u0590-\\u05ff\\u0600–\\u06ff\\u10A0-\\u10ff\\u0530-\\u058f\\u0750-\\u07ff\\u08a0-\\u08ff\\ufa30-\\ufa6a\\ufa70-\\ufad9\\ufb50-\\ufdff\\ufe70-\\ufeff\\u10e60-\\u10e7f\\u1ec70-\\u1ecbf\\u1ed00-\\u1ed4f\\u1ee00-\\u1eeff\\u20000-\\u2a6d6\\u2f800-\\u2fa1d]+/\n                        var word = str.match(regex)\n                        return word && word[0].length >= instance.data.exclude_under;\n                    }).join(' ');\n                  \n                    var fuse = new Fuse(instance.data.dictionary, instance.data.options);\n                    instance.data.result = fuse.search(searchTerm);\n                    //getResults();\n                    instance.data.getResults();\n                } else {\n                    console.log(\"Search & Autocorrect: Instance variables not declared\");\n                }\n              \n              // Publish the input box's value to the input_box_value state\n              instance.publishState('input_box_value', $(\"#\" + instance.data.input_box_id).val());\n            });\n\n        }\n\n    });\n\n\n\n\n}"},"update":{"fn":"function(instance, properties, context) {\n    instance.data.data_source = properties.data_source;\n\n    instance.data.loadFuzzy= function loadFuzzy(){\n    // declare instance variables\n    instance.data.string_to_match = properties.string_to_match;\n    instance.data.dictionary = [];\n    instance.data.input_box_id = properties.input_box_id;\n    instance.data.exclude_under = properties.exclude_under;\n    instance.data.search_type = properties.search_type;\n\n\n    if (properties.data_source) {\n        // var len = properties.data_source.length();\n        var len = instance.data.data_source.length();\n        instance.data.len = len;\n    } else {\n        console.log(\"Search & Autocorrect: Data source not defined\");\n    }\n    // keys array, for fuse.js options. Fuse will search in these keys, so this adds a different key for each Field To Search that has been set.\n    var keys = [];\n    if (properties.search_field) {\n        keys.push(\"word1\");\n    }\n    if (properties.search_field_2) {\n        keys.push(\"word2\");\n    }\n    if (properties.search_field_3) {\n        keys.push(\"word3\");\n    }\n    if (properties.search_field_4) {\n        keys.push(\"word4\");\n    }\n    if (properties.search_field_5) {\n        keys.push(\"word5\");\n    }\n    // Get data source into value_pairs objects with id number and search terms. Add objects to dictionary array.\n\n    instance.data.makearray = function makearray() {\n        for (i = 0; i < len; i++) {\n            var current_object = instance.data.data_source.get(0, len)[i];\n            var value_pairs = {\n                id: i,\n                word1: current_object.get(properties.search_field),\n                word2: (properties.search_field_2) ? current_object.get(properties.search_field_2) : \"Empty\",\n                word3: (properties.search_field_3) ? current_object.get(properties.search_field_3) : \"Empty\",\n                word4: (properties.search_field_4) ? current_object.get(properties.search_field_4) : \"Empty\",\n                word5: (properties.search_field_5) ? current_object.get(properties.search_field_5) : \"Empty\"\n            };\n\n            instance.data.dictionary.push(value_pairs);\n\n        }\n\n    }\n\n    if (instance.data.data_source) {\n        instance.data.makearray();\n    }\n    // Load fuse.js options\n    instance.data.options = {\n        shouldSort: true,\n        includeScore: true,\n        threshold: properties.threshold,\n        isCaseSensitive: properties.case_sensitive,\n        location: properties.location,\n        distance: properties.distance,\n        findAllMatches: properties.find_all_matches,\n        keys: keys\n    };\n\n\n\n\n    // var result;\n\n    // getResults function, same as in function initialize. Here it runs if the user has set a \"Text To Match\" value, on update.\n\n    function getResults() {\n        // Check that result exists and is not empty before attempting to set properties to avoid errors. Reset matched states to null when no matches found\n\n        if (instance.data.result && instance.data.result.length) {\n\n            var resultsArray = [];\n            var scoresArray = [];\n\n            for (i = 0; i < instance.data.result.length; i++) {\n                var resultThing = instance.data.data_source.get(0, instance.data.len + 1)[instance.data.result[i].item.id];\n                resultsArray.push(resultThing);\n                scoresArray.push(instance.data.result[i].score);\n            }\n            instance.publishState(\"match_array\", resultsArray);\n            instance.publishState(\"match_scores_array\", scoresArray);\n\n        } else {\n            instance.publishState(\"match_array\", null);\n            instance.publishState(\"match_scores_array\", null);\n        }\n\n    }\n    // Run getResults if string_to_match is set and the \"use #SearchInput\" checkbox is not checked\n\n    if (!properties.search_type && properties.string_to_match) {\n        // Trim leading & trailing whitespace, then remove words shorter than exclude_under value\n        var searchTerm = properties.string_to_match.trim();\n        searchTerm = searchTerm.split(' ').filter(function(str) {\n            let regex = /[\\u0000-\\u007f\\u0080-\\u00ff\\u0100-\\u0180-\\u024f\\u017f\\u0400-\\u04ff\\u3040-\\u30ff\\u3400-\\u4dbf\\u4e00-\\u9fff\\uf900-\\ufa2d\\uff66-\\uff9f\\u3131-\\uD79D\\u0590-\\u05ff\\u0600–\\u06ff\\u10A0-\\u10ff\\u0530-\\u058f\\u0750-\\u07ff\\u08a0-\\u08ff\\ufa30-\\ufa6a\\ufa70-\\ufad9\\ufb50-\\ufdff\\ufe70-\\ufeff\\u10e60-\\u10e7f\\u1ec70-\\u1ecbf\\u1ed00-\\u1ed4f\\u1ee00-\\u1eeff\\u20000-\\u2a6d6\\u2f800-\\u2fa1d]+/\n            var word = str.match(regex);\n            return word && word[0].length >= instance.data.exclude_under;\n        }).join(' ');\n\n        var fuse = new Fuse(instance.data.dictionary, instance.data.options);\n        instance.data.result = fuse.search(searchTerm);\n        getResults();\n\n    } else if (!properties.search_type && !properties.string_to_match) {\n        instance.publishState(\"match_array\", null);\n        instance.publishState(\"match_scores_array\", null);\n    }\n\n    }\n\tinstance.data.loadFuzzy();\n}"},"reset":{"fn":"function(instance, context) {\n\n\n\n}"}}}}};
window._bubble_page_load_data.plugins_size['1553006094610x835866904531566600'] = 11900;
window.preloaded['plugin/third_party:1553006094610x835866904531566600:1.11.0'] = true;
window.plugins["1553889862898x186125300131692540"] = {"human":"Feather Icons","dependencies":{"use_jquery":true},"plugin_elements":{"AAC":{"display":"Feather Icon","property_applications":{"resizable":true,"MinWidth":true,"BoxShadow":true,"Font":false,"Background":true,"Border":true,"Padding":true},"add_hover_pressed":true,"add_is_visible":true,"support_autobinding":false,"autobinding_value":"text","fields":{"AAD":{"caption":"Type","name":"type","rank":0,"editor":"Dropdown","default_val":"heart"},"AAE":{"caption":"Icon color","name":"color","rank":2,"editor":"Color","default_val":"rgba(51, 51, 51, 1)","in_style":true},"AAF":{"caption":"Stroke width (dynamic)","name":"strokeWidthDynamic","rank":7,"editor":"DynamicValue","in_style":true,"value":"number","optional":true},"AAI":{"caption":"Fill color","name":"fillColor","rank":5,"editor":"Color","default_val":"rgba(255, 255, 255, 0.01)","in_style":true},"AAJ":{"caption":"Include fill color? (dynamic)","name":"includeFillDynamic","rank":4,"editor":"DynamicValue","in_style":true,"value":"boolean","default_val":false,"optional":true},"AAK":{"caption":"Stroke line-cap","name":"strokeLineCap","rank":8,"editor":"Dropdown","default_val":"round","in_style":true},"AAL":{"caption":"Stroke line-join","name":"strokeLineJoin","rank":10,"editor":"Dropdown","in_style":true,"default_val":"round"},"AAP":{"caption":"Type (dynamic)","name":"typeDynamic","rank":1,"editor":"DynamicValue","optional":true,"value":"text"},"AAQ":{"caption":"Stroke line-cap (dynamic)","name":"strokeLineCapDynamic","rank":9,"editor":"DynamicValue","optional":true,"value":"text"},"AAR":{"caption":"Stroke line-join (dynamic)","name":"strokeLineJoinDynamic","rank":11,"editor":"DynamicValue","value":"text","optional":true},"AAT":{"caption":"Stroke width","name":"strokeWidth","rank":6,"editor":"StaticNumber","in_style":true,"default_val":1},"AAU":{"caption":"Include fill color?","name":"includeFill","rank":3,"editor":"Checkbox","default_val":false,"in_style":true},"AAV":{"caption":"Logs? (for developer)","name":"logs","rank":12,"editor":"DynamicValue","value":"boolean","default_val":false}},"states":{"AAO":{"caption":"Icon name","name":"iconName","value":"text","initialization_code":{"fn":"function(properties, context) {\n    \n    var type = properties.type;\n    var typeDynamic = properties.typeDynamic;\n    \n    if (feather.icons[typeDynamic]) {\n        type = typeDynamic;\n    }\n\t\n\treturn type;\n\n}"}}},"events":{"AAM":{"caption":"is clicked","name":"onClick"}},"code":{"initialize":{"fn":"function(instance, context) {\n    \n    // Generate random string for div element ID\n    \n    var divId = \"id_\" + (Math.random() * Math.pow(2,54)).toString(18);\n    \n    // Create our div (a.k.a. wrapper) for the icon (which will be created in the 'update' function below)\n    \n    var div = document.createElement(\"div\");\n    div['id'] = divId;\n    div['style'] = 'width:100%;height:100%;';\n    \n    // Add the new div to the Bubble instance\n    // Store the div ID to the Bubble instance so that we can locate it in the 'update' function\n    \n    instance.canvas.append(div);\n\tinstance.data.divId = divId;\n\n}"},"update":{"fn":"function(instance, properties, context) {\n\t\n    // Define properties\n    \n    var width = properties.bubble.width;\n    var height = properties.bubble.height;\n    \n    var type = properties.type;\n    var typeDynamic = properties.typeDynamic;\n    // var notClickable = properties.notClickable;\n    var color = properties.color;\n    var strokeWidth = properties.strokeWidth;\n    var strokeWidthDynamic = properties.strokeWidthDynamic;\n    var fill = properties.fillColor;\n    var includeFill = properties.includeFill;\n    var includeFillDynamic = properties.includeFillDynamic;\n    var strokeLineCap = properties.strokeLineCap;\n    var strokeLineCapDynamic = properties.strokeLineCapDynamic;\n    var strokeLineJoin = properties.strokeLineJoin;\n    var strokeLineJoinDynamic = properties.strokeLineJoinDynamic;\n    \n    // Updates properties (if dynamic fields provided)\n    \n    if (feather.icons[typeDynamic]) {\n        type = typeDynamic;\n    }\n    \n    if (strokeWidthDynamic) {\n        strokeWidth = strokeWidthDynamic;\n    }\n    \n    if (includeFillDynamic === true || includeFillDynamic === false) {\n        includeFill = includeFillDynamic;\n    }\n    \n    if (strokeLineCapDynamic === 'round' || strokeLineCapDynamic === 'square') {\n        strokeLineCap = strokeLineCapDynamic;\n    }\n    if (strokeLineJoinDynamic === 'round' || strokeLineJoinDynamic === 'square') {\n        strokeLineJoin = strokeLineJoinDynamic;\n    }\n    \n    if (strokeLineCap === 'square') {\n        strokeLineCap = 'butt';\n    }\n    if (strokeLineJoin === 'square') {\n        strokeLineJoin = 'miter';\n    }\n    \n    // Find our original div\n    \n    var divId = instance.data.divId;\n    var div = instance.canvas.find('#' + divId)[0];\n    \n    // Set the attributes / customization for our icon \n    \n    attributes = {}\n    attributes['height'] = height;\n    attributes['width'] = width;\n    attributes['color'] = color;\n    attributes['stroke-width'] = strokeWidth;\n    if (includeFill) {\n        attributes['fill'] = fill;\n    } \n    attributes['stroke-linecap'] = strokeLineCap;\n    attributes['stroke-linejoin'] = strokeLineJoin;\n    \n    attributes['pointer-events'] = \"none\";\n    \n    if (properties.logs) {\n        console.log(attributes);\n    }\n    \n    // Create an SVG string - the markup for a SVG HTML element - and add it to our div\n    \n    var icon = feather.icons[type].toSvg(attributes);\n    \n    if (properties.logs) {\n        console.log(icon);\n    }\n    \n    div.innerHTML = icon;\n    \n}"},"reset":{"fn":"function(instance, context) {\n\n\n\n}"},"preview":{"fn":"function(instance, properties) {\n\t\n    // Define properties\n    \n    var width = properties.bubble.width;\n    var height = properties.bubble.height;\n    \n    var type = properties.type;\n    var color = properties.color;\n    var strokeWidth = properties.strokeWidth;\n    var fill = properties.fillColor;\n    var includeFill = properties.includeFill;\n    var strokeLineCap = properties.strokeLineCap;\n    var strokeLineJoin = properties.strokeLineJoin;\n    \n    if (strokeLineCap === 'square') {\n        strokeLineCap = 'butt';\n    }\n    if (strokeLineJoin === 'square') {\n        strokeLineJoin = 'miter';\n    }\n    \n    // Add script to canvas\n    \n    /*\n    var script = document.createElement(\"script\");\n    script['src'] = \"https://unpkg.com/feather-icons/\";\n    //instance.canvas.append(script);\n    document.head.appendChild(script);\n    */\n    \n    // Create div + add to canvas\n    \n    var div = document.createElement(\"div\");\n    div['style'] = 'width:100%;height:100%;';\n    //document.appendChild(div);\n    instance.canvas.append(div);\n    \n    // Set the attributes / customization for our icon \n    \n    attributes = {}\n    attributes['height'] = height;\n    attributes['width'] = width;\n    attributes['color'] = color;\n    attributes['stroke-width'] = strokeWidth;\n    if (includeFill) {\n        attributes['fill'] = fill;\n    } \n    attributes['stroke-linecap'] = strokeLineCap;\n    attributes['stroke-linejoin'] = strokeLineJoin;\n    \n    // Create an SVG string - the markup for a SVG HTML element - and add it to our div\n    \n    /*\n    var icon = feather.icons[type].toSvg(attributes);\n    div.innerHTML = icon;\n    */\n    \n    var previewImg = document.createElement(\"img\");\n    \n    previewImg['src'] = '//01246d7e30dd8ee862a8dba3b426a683.cdn.bubble.io/f1560539190480x747431396671820500/feather.svg';\n    previewImg['style'] = 'width:100%;height:100%;opacity:0.4;';\n    \n    div.appendChild(previewImg);\n    \n}"}}}}};
window._bubble_page_load_data.plugins_size['1553889862898x186125300131692540'] = 7784;
window.preloaded['plugin/third_party:1553889862898x186125300131692540:1.1.2'] = true;
window.plugins["1580238841425x582072028873097200"] = {"human":"Rich Text Editor","dependencies":{"use_jquery":true,"plugin_api_version":"3"},"plugin_elements":{"AAC":{"display":"Rich Text Input","property_applications":{"Background":true,"Border":true,"BoxShadow":true,"Font":false,"MinWidth":true,"Padding":true,"resizable":true},"add_hover_pressed":true,"add_is_visible":true,"support_autobinding":true,"autobinding_value":"text","has_reset_fn":true,"can_fit_height":true,"fields":{"AAD":{"caption":"Initial Content","editor":"DynamicValue","name":"initial_content","optional":true,"rank":1,"value":"text"},"AAZ":{"caption":"Regular or Tooltip?","default_val":"Regular","editor":"Dropdown","in_style":true,"name":"theme","rank":4},"AAa":{"caption":"Style Complexity","default_val":"Full","editor":"Dropdown","in_style":true,"name":"complexity","rank":5},"AAc":{"caption":"Placeholder","editor":"DynamicValue","name":"placeholder","optional":true,"rank":0,"value":"text"},"AAd":{"caption":"This input shouldn't be empty","default_val":false,"editor":"Checkbox","name":"empty_is_invalid","rank":7},"AAe":{"caption":"This input is disabled ","default_val":false,"editor":"Checkbox","name":"disabled","rank":8},"ABI":{"caption":"Link input placeholder","default_val":"https://bubble.io/","editor":"DynamicValue","name":"link_placeholder","optional":true,"rank":3,"value":"text"},"ABJ":{"caption":"Enable autosave","default_val":true,"editor":"Checkbox","name":"autosave","rank":6},"ABK":{"caption":"⚠️Initial content is ignored if autobinding is enabled","editor":"Label","name":"label_autobinding_vs_initial_content","rank":2}},"states":{"AAE":{"caption":"value","initialization_code":{"fn":"function(properties, context) {\n\n\treturn properties.initial_content || '';\n\n}\n"},"name":"value","value":"text"},"AAg":{"caption":"value is valid","initialization_code":{"fn":"function(properties, context) {\n\tif (properties.empty_is_invalid) {\n\t\treturn !!properties.initial_content || properties.bubble.auto_binding()\n\t}\n\treturn true;\n}\n"},"name":"value_is_valid","value":"boolean"},"AAx":{"caption":"field is focused","initialization_code":{"fn":"function(properties, context) {\n\n\treturn false;\n\n}"},"name":"field_is_focused","value":"boolean"}},"events":{"AAf":{"caption":"value changes","name":"value_changes"}},"actions":{"ABA":{"caption":"Reset","code":{"fn":"function(instance, context) {\n  const d = instance.data\n  if (!d.quill) return\n  // Not sure \"reset\" does not really make any sense with autobinding on,\n  // but bubble still fires it\n  if (d.is_autobound) return\n\n  // set contents back to the initial value\n  d.set_content_in_quill(d.initial_bbcode)\n\n  d.last_change_source = 'api'\n  d.has_been_edited = false\n}\n"}},"ABB":{"caption":"Set focus to","code":{"fn":"function(instance, properties, context) {\n  if (!instance.data.quill) return;\n  var quill = instance.data.quill;\n  instance.publishState(\"field_is_focused\", true);\n  quill.focus();\n}\n"}}},"code":{"initialize":{"fn":"function(instance, context) {\n    const d = instance.data\n\n    // === set plugin constants ===\n    d.consts = {}\n\n    d.consts.DONE_TYPING_INTERVAL_MS = 2200\n    // handles images -> base64 images cannot be loaded in our text elements,\n    // so this functionality identifies base64 files and uploads them to our S3 bucket and replaces the src value with the S3 url\n    d.consts.SUPPORTED_FILE_EXTENSIONS = {\n        jpg: true,\n        jpeg: true,\n        png: true,\n        gif: true,\n      }\n\n    d.consts.ICON_H1 = `\n    <svg width=\"17px\" height=\"12px\" viewBox=\"0 0 17 12\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n        <g id=\"Page-1\" stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">\n            <g id=\"h3\" fill=\"currentColor\">\n                <path d=\"M1.992,12.728 C1.81066576,12.9093342 1.58966797,13 1.329,13 C1.06833203,13 0.84733424,12.9093342 0.666,12.728 C0.48466576,12.5466658 0.394,12.325668 0.394,12.065 L0.394,1.525 C0.394,1.26433203 0.48466576,1.04333424 0.666,0.862 C0.84733424,0.68066576 1.06833203,0.59 1.329,0.59 C1.58966797,0.59 1.81066576,0.68066576 1.992,0.862 C2.17333424,1.04333424 2.264,1.26433203 2.264,1.525 L2.264,5.503 C2.264,5.60500051 2.31499949,5.656 2.417,5.656 L7.381,5.656 C7.48300051,5.656 7.534,5.60500051 7.534,5.503 L7.534,1.525 C7.534,1.26433203 7.62466576,1.04333424 7.806,0.862 C7.98733424,0.68066576 8.20833203,0.59 8.469,0.59 C8.72966797,0.59 8.95066576,0.68066576 9.132,0.862 C9.31333424,1.04333424 9.404,1.26433203 9.404,1.525 L9.404,12.065 C9.404,12.325668 9.31333424,12.5466658 9.132,12.728 C8.95066576,12.9093342 8.72966797,13 8.469,13 C8.20833203,13 7.98733424,12.9093342 7.806,12.728 C7.62466576,12.5466658 7.534,12.325668 7.534,12.065 L7.534,7.271 C7.534,7.16899949 7.48300051,7.118 7.381,7.118 L2.417,7.118 C2.31499949,7.118 2.264,7.16899949 2.264,7.271 L2.264,12.065 C2.264,12.325668 2.17333424,12.5466658 1.992,12.728 Z M11.42,8.63 C11.3266662,8.7033337 11.2283339,8.7133336 11.125,8.66 C11.0216661,8.6066664 10.97,8.5200006 10.97,8.4 L10.97,7.67 C10.97,7.2899981 11.1233318,6.9900011 11.43,6.77 L12.44,6.03 C12.7400015,5.8099989 13.0833314,5.7 13.47,5.7 L14.1,5.7 C14.2533341,5.7 14.3866661,5.7566661 14.5,5.87 C14.6133339,5.9833339 14.67,6.1166659 14.67,6.27 L14.67,12.43 C14.67,12.5833341 14.6133339,12.7166661 14.5,12.83 C14.3866661,12.9433339 14.2533341,13 14.1,13 L13.47,13 C13.3166659,13 13.1833339,12.9433339 13.07,12.83 C12.9566661,12.7166661 12.9,12.5833341 12.9,12.43 L12.9,7.57 L12.88,7.57 L11.42,8.63 Z\" id=\"Shape\" fill-rule=\"nonzero\"></path>\n            </g>\n        </g>\n    </svg>`\n\n    d.consts.ICON_H2 = `\n    <svg width=\"17px\" height=\"12px\" viewBox=\"0 0 17 12\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n        <g id=\"Page-1\" stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">\n            <g id=\"h3\" fill=\"currentColor\">\n                <path d=\"M1.992,12.728 C1.81066576,12.9093342 1.58966797,13 1.329,13 C1.06833203,13 0.84733424,12.9093342 0.666,12.728 C0.48466576,12.5466658 0.394,12.325668 0.394,12.065 L0.394,1.525 C0.394,1.26433203 0.48466576,1.04333424 0.666,0.862 C0.84733424,0.68066576 1.06833203,0.59 1.329,0.59 C1.58966797,0.59 1.81066576,0.68066576 1.992,0.862 C2.17333424,1.04333424 2.264,1.26433203 2.264,1.525 L2.264,5.503 C2.264,5.60500051 2.31499949,5.656 2.417,5.656 L7.381,5.656 C7.48300051,5.656 7.534,5.60500051 7.534,5.503 L7.534,1.525 C7.534,1.26433203 7.62466576,1.04333424 7.806,0.862 C7.98733424,0.68066576 8.20833203,0.59 8.469,0.59 C8.72966797,0.59 8.95066576,0.68066576 9.132,0.862 C9.31333424,1.04333424 9.404,1.26433203 9.404,1.525 L9.404,12.065 C9.404,12.325668 9.31333424,12.5466658 9.132,12.728 C8.95066576,12.9093342 8.72966797,13 8.469,13 C8.20833203,13 7.98733424,12.9093342 7.806,12.728 C7.62466576,12.5466658 7.534,12.325668 7.534,12.065 L7.534,7.271 C7.534,7.16899949 7.48300051,7.118 7.381,7.118 L2.417,7.118 C2.31499949,7.118 2.264,7.16899949 2.264,7.271 L2.264,12.065 C2.264,12.325668 2.17333424,12.5466658 1.992,12.728 Z M11.35,13 C11.1966659,13 11.0633339,12.9433339 10.95,12.83 C10.8366661,12.7166661 10.78,12.5833341 10.78,12.43 L10.78,12.2 C10.78,11.8266648 10.9299985,11.5233345 11.23,11.29 C12.3500056,10.4099956 13.0916649,9.7400023 13.455,9.28 C13.8183351,8.8199977 14,8.3700022 14,7.93 C14,7.3166636 13.6600034,7.01 12.98,7.01 C12.5666646,7.01 12.060003,7.1233322 11.46,7.35 C11.3333327,7.3966669 11.2133339,7.3833337 11.1,7.31 C10.9866661,7.2366663 10.93,7.133334 10.93,7 L10.93,6.58 C10.93,6.4066658 10.9799995,6.25166735 11.08,6.115 C11.1800005,5.97833265 11.3133325,5.8866669 11.48,5.84 C12.0866697,5.6799992 12.6699972,5.6 13.23,5.6 C14.0366707,5.6 14.6583312,5.79166475 15.095,6.175 C15.5316688,6.55833525 15.75,7.0899966 15.75,7.77 C15.75,8.3566696 15.5650018,8.91499735 15.195,9.445 C14.8249981,9.97500265 14.1033387,10.6933288 13.03,11.6 C13.0233333,11.6066667 13.02,11.6133333 13.02,11.62 C13.02,11.6266667 13.0233333,11.63 13.03,11.63 L15.22,11.63 C15.3733341,11.63 15.5049995,11.6866661 15.615,11.8 C15.7250006,11.9133339 15.78,12.0466659 15.78,12.2 L15.78,12.43 C15.78,12.5833341 15.7250006,12.7166661 15.615,12.83 C15.5049995,12.9433339 15.3733341,13 15.22,13 L11.35,13 Z\" id=\"Shape\" fill-rule=\"nonzero\"></path>\n            </g>\n        </g>\n    </svg>`\n\n    d.consts.ICON_H3 = `\n    <svg width=\"17px\" height=\"12px\" viewBox=\"0 0 17 12\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n        <g id=\"Page-1\" stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">\n            <g id=\"h3\" fill=\"currentColor\">\n                <path d=\"M1.992,12.728 C1.81066576,12.9093342 1.58966797,13 1.329,13 C1.06833203,13 0.84733424,12.9093342 0.666,12.728 C0.48466576,12.5466658 0.394,12.325668 0.394,12.065 L0.394,1.525 C0.394,1.26433203 0.48466576,1.04333424 0.666,0.862 C0.84733424,0.68066576 1.06833203,0.59 1.329,0.59 C1.58966797,0.59 1.81066576,0.68066576 1.992,0.862 C2.17333424,1.04333424 2.264,1.26433203 2.264,1.525 L2.264,5.503 C2.264,5.60500051 2.31499949,5.656 2.417,5.656 L7.381,5.656 C7.48300051,5.656 7.534,5.60500051 7.534,5.503 L7.534,1.525 C7.534,1.26433203 7.62466576,1.04333424 7.806,0.862 C7.98733424,0.68066576 8.20833203,0.59 8.469,0.59 C8.72966797,0.59 8.95066576,0.68066576 9.132,0.862 C9.31333424,1.04333424 9.404,1.26433203 9.404,1.525 L9.404,12.065 C9.404,12.325668 9.31333424,12.5466658 9.132,12.728 C8.95066576,12.9093342 8.72966797,13 8.469,13 C8.20833203,13 7.98733424,12.9093342 7.806,12.728 C7.62466576,12.5466658 7.534,12.325668 7.534,12.065 L7.534,7.271 C7.534,7.16899949 7.48300051,7.118 7.381,7.118 L2.417,7.118 C2.31499949,7.118 2.264,7.16899949 2.264,7.271 L2.264,12.065 C2.264,12.325668 2.17333424,12.5466658 1.992,12.728 Z M11.32,7.07 C11.1666659,7.07 11.0333339,7.0133339 10.92,6.9 C10.8066661,6.7866661 10.75,6.6533341 10.75,6.5 L10.75,6.27 C10.75,6.1166659 10.8066661,5.9833339 10.92,5.87 C11.0333339,5.7566661 11.1666659,5.7 11.32,5.7 L15.05,5.7 C15.2033341,5.7 15.3366661,5.7566661 15.45,5.87 C15.5633339,5.9833339 15.62,6.1166659 15.62,6.27 L15.62,6.5 C15.62,6.8800019 15.4733348,7.1899988 15.18,7.43 L13.67,8.68 L13.67,8.69 C13.67,8.6966667 13.6733333,8.7 13.68,8.7 L13.8,8.7 C14.3800029,8.7 14.8449983,8.8799982 15.195,9.24 C15.5450018,9.6000018 15.72,10.0866636 15.72,10.7 C15.72,11.4733372 15.4833357,12.0666646 15.01,12.48 C14.5366643,12.8933354 13.8566711,13.1 12.97,13.1 C12.436664,13.1 11.8966694,13.0366673 11.35,12.91 C11.1899992,12.8699998 11.0583339,12.7816674 10.955,12.645 C10.8516662,12.5083327 10.8,12.3533342 10.8,12.18 L10.8,11.84 C10.8,11.706666 10.8549995,11.6016671 10.965,11.525 C11.0750006,11.448333 11.196666,11.4299998 11.33,11.47 C11.9033362,11.6566676 12.4033312,11.75 12.83,11.75 C13.2166686,11.75 13.5166656,11.6600009 13.73,11.48 C13.9433344,11.2999991 14.05,11.0500016 14.05,10.73 C14.05,10.4033317 13.9266679,10.173334 13.68,10.04 C13.4333321,9.906666 12.9733367,9.8366667 12.3,9.83 C12.1466659,9.83 12.0133339,9.77500055 11.9,9.665 C11.7866661,9.55499945 11.73,9.4233341 11.73,9.27 L11.73,9.25 C11.73,8.8766648 11.8733319,8.5666679 12.16,8.32 L13.58,7.09 L13.58,7.08 C13.58,7.0733333 13.5766667,7.07 13.57,7.07 L11.32,7.07 Z\" id=\"Shape\" fill-rule=\"nonzero\"></path>\n            </g>\n        </g>\n    </svg>`\n\n    d.consts.ICON_H4 = `\n      <svg width=\"17px\" height=\"12px\" viewBox=\"0 0 17 12\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n          <g id=\"Page-1\" stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">\n              <g id=\"h3\" fill=\"currentColor\">\n                  <path d=\"M1.992,12.728 C1.81066576,12.9093342 1.58966797,13 1.329,13 C1.06833203,13 0.84733424,12.9093342 0.666,12.728 C0.48466576,12.5466658 0.394,12.325668 0.394,12.065 L0.394,1.525 C0.394,1.26433203 0.48466576,1.04333424 0.666,0.862 C0.84733424,0.68066576 1.06833203,0.59 1.329,0.59 C1.58966797,0.59 1.81066576,0.68066576 1.992,0.862 C2.17333424,1.04333424 2.264,1.26433203 2.264,1.525 L2.264,5.503 C2.264,5.60500051 2.31499949,5.656 2.417,5.656 L7.381,5.656 C7.48300051,5.656 7.534,5.60500051 7.534,5.503 L7.534,1.525 C7.534,1.26433203 7.62466576,1.04333424 7.806,0.862 C7.98733424,0.68066576 8.20833203,0.59 8.469,0.59 C8.72966797,0.59 8.95066576,0.68066576 9.132,0.862 C9.31333424,1.04333424 9.404,1.26433203 9.404,1.525 L9.404,12.065 C9.404,12.325668 9.31333424,12.5466658 9.132,12.728 C8.95066576,12.9093342 8.72966797,13 8.469,13 C8.20833203,13 7.98733424,12.9093342 7.806,12.728 C7.62466576,12.5466658 7.534,12.325668 7.534,12.065 L7.534,7.271 C7.534,7.16899949 7.48300051,7.118 7.381,7.118 L2.417,7.118 C2.31499949,7.118 2.264,7.16899949 2.264,7.271 L2.264,12.065 C2.264,12.325668 2.17333424,12.5466658 1.992,12.728 Z M11.62,10.25 L11.62,10.26 C11.62,10.2666667 11.6233333,10.27 11.63,10.27 L13.28,10.27 C13.3400003,10.27 13.37,10.2433336 13.37,10.19 L13.37,7.77 C13.37,7.7633333 13.3666667,7.76 13.36,7.76 C13.3466666,7.76 13.34,7.7633333 13.34,7.77 L11.62,10.25 Z M10.68,11.6 C10.5266659,11.6 10.3950005,11.5433339 10.285,11.43 C10.1749995,11.3166661 10.12,11.1833341 10.12,11.03 L10.12,10.84 C10.12,10.4666648 10.2299989,10.1233349 10.45,9.81 L13.04,6.16 C13.2600011,5.8533318 13.5566648,5.7 13.93,5.7 L14.43,5.7 C14.5833341,5.7 14.7149994,5.7566661 14.825,5.87 C14.9350006,5.9833339 14.99,6.1166659 14.99,6.27 L14.99,10.19 C14.99,10.2433336 15.0199997,10.27 15.08,10.27 L15.48,10.27 C15.6333341,10.27 15.7666661,10.3266661 15.88,10.44 C15.9933339,10.5533339 16.05,10.6866659 16.05,10.84 L16.05,11.03 C16.05,11.1833341 15.9933339,11.3166661 15.88,11.43 C15.7666661,11.5433339 15.6333341,11.6 15.48,11.6 L15.08,11.6 C15.0199997,11.6 14.99,11.6299997 14.99,11.69 L14.99,12.43 C14.99,12.5833341 14.9350006,12.7166661 14.825,12.83 C14.7149994,12.9433339 14.5833341,13 14.43,13 L13.93,13 C13.7766659,13 13.6450005,12.9433339 13.535,12.83 C13.4249995,12.7166661 13.37,12.5833341 13.37,12.43 L13.37,11.69 C13.37,11.6299997 13.3400003,11.6 13.28,11.6 L10.68,11.6 Z\" id=\"Shape\" fill-rule=\"nonzero\"></path>\n              </g>\n          </g>\n      </svg>`\n\n\n    d.consts.ALL_FONTS = new Set(['', 'abeezee', 'abril-fatface', 'alegreya', 'archivo', 'arial', 'arvo', 'biorhyme', 'b612', 'cairo', 'cardo', 'concert-one', 'cormorant', 'cousine', 'crimson-text', 'droid-sans', 'droid-serif', 'eb-garamond', 'exo-2', 'fira-sans', 'fjalla-one', 'frank-ruhl-libre', 'karla', 'ibm-plex', 'lato', 'lora', 'merriweather', 'mizra', 'monospace', 'montserrat', 'muli', 'noto-sans', 'nunito', 'old-standard-tt', 'open-sans', 'oswald', 'oxygen', 'playfair-display', 'pt-sans', 'pt-serif', 'poppins', 'rakkas', 'raleway', 'roboto', 'rubik', 'serif', 'source-sans', 'source-sans-pro', 'spectral', 'times-new-roman', 'tinos', 'titillium', 'ubuntu','varela','volkorn','work-sans','yatra-one'])\n\n    d.helpers = {}\n    d.helpers.kebab_to_title_case = (string) => string\n      .split('-')\n      .map((word) => word.charAt(0).toUpperCase() + word.slice(1))\n      .join(' ')\n\n    // Simplified form of lodash.isEqual which does not do circular reference checks (since those are disallowed with deltas)\n    // Because deltas are a simplified shallow object, the code here does not perform as many types of checks and may return\n    // two objects as being different when lodash.isEqual would call them equal\n    d.helpers.deltaIsEqual = (lhs, rhs) => {\n      if (lhs === rhs) {\n        return true\n      }\n\n      if(lhs === null || lhs === undefined || rhs === null || rhs === undefined) {\n        return lhs === rhs\n      }\n\n      let lhs_is_array = Array.isArray(lhs)\n      let rhs_is_array = Array.isArray(rhs)\n\n      // Minor performance improvement - for arrays, toString attempts to print out every single element of the\n      // array, making the call to toString and the tag check slightly redundant (we do that again in the if block)\n      let lhs_tag = '[object Array]'\n      if(!lhs_is_array) {\n        lhs_tag = toString.call(lhs)\n      }\n\n      let rhs_tag = '[object Array]'\n      if(!rhs_is_array) {\n        rhs_tag = toString.call(rhs)\n      }\n\n      if(lhs_tag !== rhs_tag) {\n        return false\n      }\n\n      // At this point anything referring to the left or right tag refers to the other tag\n\n      if(lhs_is_array) {\n        let lhs_len = lhs.length\n        let rhs_len = rhs.length\n\n        if(lhs_len !== rhs_len) {\n          return false\n        }\n\n        for(let i = 0; i < lhs_len; i++) {\n          if(!d.helpers.deltaIsEqual(lhs[i], rhs[i])) {\n            return false\n          }\n        }\n\n        return true\n      }\n\n      if(lhs_tag === '[object Object]') {\n        let lhs_props = Object.keys(lhs)\n        let rhs_props = Object.keys(rhs)\n\n        if(lhs_props.length !== rhs_props.length) {\n          return false\n        }\n\n        for(let i = 0; i < lhs_props.length; i++) {\n          let prop = lhs_props[i]\n          if(!Object.prototype.hasOwnProperty.call(rhs, prop)) {\n            // Don't treat explicit null and missing the same\n            return false\n          }\n\n          let lhs_val = lhs[prop]\n          let rhs_val = rhs[prop]\n\n          if(!d.helpers.deltaIsEqual(lhs_val, rhs_val)) {\n            return false\n          }\n        }\n\n        return true\n      }\n\n      switch(lhs_tag) {\n        case '[object Boolean]':\n        case '[object Date]':\n        case '[object Number]':\n          // Force lhs and rhs to be of the same type\n          let casted_lhs = +lhs\n          let casted_rhs = +rhs\n          return casted_lhs === casted_rhs || (casted_lhs !== casted_lhs && casted_rhs !== casted_rhs)\n\n        case '[object RegExp]':\n        case '[object String]':\n          return (lhs + '') === (rhs + '')\n\n        case '[object Map]':\n        case '[object Set]':\n        case '[object Error]':\n        case '[object DataView]':\n        case '[object ArrayBuffer]':\n          // These are all cases that the original lodash.isEqual implementation would have checked for equality\n          // But which we do not since they do not show up in Deltas, for simplicity\n          return false // explicitly, for clarity\n      }\n\n      return false\n    }\n\n    // Sans serif is already registered by default, so we replace it with an empty string in the fonts list\n    d.consts.HTML_TO_BBCODE_FONTS = {}\n    d.consts.BBCODE_TO_HTML_FONTS = {}\n    for (const font_name of d.consts.ALL_FONTS) {\n        const bbcode_translation = d.helpers.kebab_to_title_case(font_name)\n        d.consts.HTML_TO_BBCODE_FONTS[font_name] = bbcode_translation\n        d.consts.BBCODE_TO_HTML_FONTS[bbcode_translation] = font_name\n    }\n\n    // === initialize state ===\n    // Quill instance itself is initialized in the update function\n    d.initialized = false\n    d.img_tracker = 0\n    d.should_rerun_val = false\n    d.prev_contents = \"\"\n    d.initial_bbcode = \"\"\n    d.initial_html = \"\"\n    // last_change_source designates the actual source of the last change in content.\n    // Quill indicates the source of a change either by 'user' or 'api'. It is mostly as we'd understand it, at the exception\n    // that a programmatic change from the update function is considered also 'user', even though the user has not precisely\n    // interacted with the editor.\n    // We thus use last_change_source to clarify this situation. User actions result in user source, and\n    // changes coming from Bubble (via autobinding for example) is listed as 'api'\n    d.last_change_source = 'api'\n    d.has_been_edited = false\n    d.typing_timer_id = null\n\n    instance.canvas.css(\"overflow\", \"visible\")\n\n    instance.publishState(\"field_is_focused\", false)\n\n    // === Initialize clipboard ===\n\n    // Hack the clipboard to bypass the annoying re-focus\n    // which centers the top of the Quill container after paste\n    const Clipboard = Quill.import('modules/clipboard')\n    class ForceScrollClipboard extends Clipboard {\n        onPaste(e) {\n            d.pasted = true\n            const scrollTop = window.scrollY\n            const scrollLeft = window.scrollX\n            Clipboard.prototype.onPaste.call(this, e)\n            // Shitty hack because the bad focus from above happens on a setTimeout too\n            setTimeout(() => window.scrollTo(scrollLeft, scrollTop), 1)\n        }\n    }\n    Quill.register('modules/clipboard', ForceScrollClipboard, true)\n}\n"},"update":{"fn":"// --- Table of Contents\n// Note: POTENTIALLY BROKEN can mean legitimately broken or misleading\n//  -- instance.data - d variables\n//   - FORMAT: NAME - FREQ - DESCRIPTION\n//   - did_set_content_first_time - 6 - POTENTIALLY BROKEN tracks if this is the first call to the update function. Uncertain about it's accuracy\n//   - has_resize_listener - 3 - POTENTIALLY BROKEN - is turned on to be turned right back off. It may be good to remove this part of the condition\n//   - pasted - 2 - boolean indicating if something was pasted. Set true via an event handler in initialize.js.\n//   - elements - 11 - holds the HTML elements that are modified as part of RTE\n//   - should_rerun_val - 5 - boolean flag indicating that a value changed and several functions should be re-run.\n//   - current_bbcode - 2 - holds the current value in the editor in bbcode. Used to check if a change is new in a limited scope.\n//   - quill - 9 - access to the quill API\n//   - last_change_source - 6 - determines if the last change source was from a user or API\n//   - has_been_edited - 4 - determines if data was edited and that the edit was user-performed\n//   - prev_contents - 4 - tracks the previous content of the bbcode\n//   - typing_timer_id - 3 - timeout handler. part of the object so it can be cleared anywhere. Attached event autosaves after DONE_TYPING_INTERVAL_MS ms (currently 2200)\n//   - img_tracker - 2 - keeps track of the number of inline images to know when to update them\n//   - prev_theme - 3 - used to track if the theme changed\n//   - prev_complexity - 3 - used to track if the complexity changed\n//   - has_been_reconciled - 3 - tracks if the reconcile function has ran\n//\n//  -- properties variables\n//   - autobinding - 2 - POTENTIALLY BROKEN value of autobound field. It seems to be used as a boolean in some cases, which may result in weird JS logic\n//   - autosave - 1 - determines if autosave is checked in the editor\n//   - theme - 7 - theme the editor is set to. Either Regular or Tooltip\n//   - empty_is_invalid - 1 - determines if it is valid for the editor to be empty\n//   - initial_content - not sure if I should do anything about this once\n//   - complexity - 6 determines the amount of controls displayed to the user\n//   - placeholder - 3 - value that appears if nothing else is defined\n//   - bubble - 4 - access to bubble and html element information\n//     - bubble.border_style() - 1 - returns string of border style\n//     - bubble.height() - 1 - returns a number\n//     - bubble.auto_binding() - 2 - POTENTIALLY BROKEN returns boolean. true if autobinding on, else false. I'm not certain this exists. It's not documented\n//   - link_placeholder - 1 - placeholder value for a link in the RTE\n//   - disabled - 1- sets quill to disabled if the element is disabled\n\nconst update = function(instance, properties, context) {\n  // shorthand for d container\n  const d = instance.data\n\n  // `d.initialized` tracks the initialization of the quill editor,\n  // while first pass looks only at the content.\n  // It is possible to initialize the editor after a first pass, with an \"updated\" content,\n  // for example when we change the theme of the editor. We reinitialize it,\n  // but it's not the first pass, and we need to control the source of the text content.\n  d.did_set_content_first_time = true // Track first content loading after update\n\n  // Avoid adding element selectors, store direct references in d.elements\n  if (!('elements' in d)) d.elements = {}\n  // track that this instance is autobound, to bypass the reset function\n  if (!('is_autobound' in d)) d.is_autobound = !!properties.bubble.auto_binding()\n\n  // shorthands for the ALL_FONTS constant, easier readability\n  const {\n    DONE_TYPING_INTERVAL_MS,\n    SUPPORTED_FILE_EXTENSIONS,\n    ICON_H1,\n    ICON_H2,\n    ICON_H3,\n    ICON_H4,\n    ALL_FONTS,\n    HTML_TO_BBCODE_FONTS,\n    BBCODE_TO_HTML_FONTS\n  } = d.consts\n\n  // 4 objects track the current diff, and track a global up-to-date version of the properties object\n  // d.last_update_props is an up-to-date copy of `properties` (to work around closure problems with setTimeouts)\n  // d.updated_props tracks the changed `properties`\n  // d.last_update_bubble_props & d.updated_bubble_props respectively track the same but for `properties.bubble`\n\n  if (!d.last_update_bubble_props) d.last_update_bubble_props = {}\n  d.updated_bubble_props = {}\n  for (const key in properties.bubble) {\n    const property = properties.bubble[key]()\n    if (d.last_update_bubble_props[key] !== property) {\n      d.last_update_bubble_props[key] = property\n      d.updated_bubble_props[key] = property\n    }\n  }\n  if (!d.last_update_props) d.last_update_props = {}\n  d.updated_props = {}\n  for (const key in properties) {\n    if (key === 'bubble') continue\n    const there_has_been_changes = properties[key] !== d.last_update_props[key]\n    if (there_has_been_changes) {\n      d.updated_props[key] = properties[key]\n      d.last_update_props[key] = properties[key]\n    }\n  }\n\n  if (!d.has_been_reconciled){\n    // The instance hasn't been reconciled yet, and we risk losing what was updated, so we refill the data.\n    // Why we do this? Because the instance can update again before it is reconciled, and in that case updated_props is empty\n    // since the properties were copied at the previous update run. But the editor wasn't ready to be displayed then, so the next time update runs,\n    // we lose all the information about what had been updated.\n    for (const key in properties) {\n      if (key === 'bubble') continue\n      d.updated_props[key] = properties[key]\n      d.last_update_props[key] = properties[key]\n    }\n\n    for (const key in properties.bubble) {\n      const property = properties.bubble[key]()\n      d.last_update_bubble_props[key] = property\n      d.updated_bubble_props[key] = property\n    }\n  }\n\n  // Get rid of a lot of odd issues with extra updates running by returning on identical updates\n  if (\n    Object.keys(d.updated_props).length === 0 &&\n    Object.keys(d.updated_bubble_props).length === 0\n  ) return\n\n  // === event handler and helper functions ===\n\n  // function to check if the input is truly empty - runs under the assumption that an input should be considered empty\n  // if it contains a blank html tag but no text is actually written\n  const checkForContent = (html) => {\n    html = html.replace(/<(.*?)>(.*?)<\\/(.*?)>/gmi, \"$2\")\n    html = html.replace(/<br>/gi, \"\")\n    return html\n  }\n\n  const attr = (node, attribute) =>\n    node.attributes && node.attributes[attribute] && node.attributes[attribute].nodeValue || ''\n\n  const quillAttrs = (node) =>\n    [...(node.classList || [])].reduce((attributes, className) => {\n      const [prefix, attribute, ...value] = className.split('-')\n      if (prefix === 'ql') {\n        if(value.length === 0) {\n          attributes[attribute] = true\n        } else {\n          attributes[attribute] = value.join('-')\n        }\n      }\n      return attributes\n    }, {})\n\n  const bbcodeTagMap = {\n    'IMG': (node) => {\n      const width = attr(node, 'width')\n      const src = attr(node, 'src')\n      return [`[img${width ? ` width=${width}` : ''}]${src}[/img]`, '']\n    },\n    'IFRAME': (node) => {\n      const src = attr(node, 'src')\n      const youtubeMatch = src.match(/https:\\/\\/www.youtube.com\\/embed\\/(.*?)\\?showinfo=0(.*?)/)\n      if (youtubeMatch) {\n        return [`[youtube]${youtubeMatch[1]}[/youtube]`, '']\n      }\n      if (quillAttrs(node).video) {\n        return [`[video]${src}[/video]`, '']\n      }\n      return ['', '']\n    },\n    'UL': () => ['[ml][ul]', '[/ul][/ml]'],\n    'OL': () => ['[ml][ol]', '[/ol][/ml]'],\n    'LI': (node, listType) => {\n      const prevSib = node.previousElementSibling\n      const nextSib = node.nextElementSibling\n\n      const classData = [node, prevSib, nextSib].map((curr) => {\n        const attrs = curr ? quillAttrs(curr) : {}\n        return {\n          indent: attrs.indent ? parseInt(attrs.indent, 10) : 0,\n          align: attrs.align || 'left',\n        }\n      })\n\n      const openDiff = classData[0].indent - classData[1].indent\n      const closeDiff = classData[0].indent - classData[2].indent\n\n      let openList = ''\n      for (let i = 0; i < openDiff; i++) {\n        const data = ` data=${classData[0].indent}`\n        if (listType === 'UL') {\n          openList += `[ul${data}]`\n        } else if (listType === 'OL') {\n          openList += `[ol${data}]`\n        }\n      }\n\n      let closeList = ''\n      for (let i = 0; i < closeDiff; i++) {\n        if (listType === 'UL') {\n          closeList += `[/ul]`\n        } else if (listType === 'OL') {\n          closeList += `[/ol]`\n        }\n      }\n\n      const indent = ` indent=${classData[0].indent}`\n      const align = ` align=${classData[0].align}`\n\n      return [`${openList}[li${indent}${align}]`, `[/li]${closeList}`]\n    },\n    'H1': () => ['[h1]', '[/h1]\\n'],\n    'H2': () => ['[h2]', '[/h2]\\n'],\n    'H3': () => ['[h3]', '[/h3]\\n'],\n    'H4': () => ['[h4]', '[/h4]\\n'],\n    'SUB': () => ['[sub]', '[/sub]'],\n    'SUP': () => ['[sup]', '[/sup]'],\n    'PRE': () => ['[code]', '[/code]'],\n    'BLOCKQUOTE': () => ['[quote]', '[/quote]'],\n    'U': () => ['[u]', '[/u]'],\n    'EM': () => ['[i]', '[/i]'],\n    'STRONG': () => ['[b]', '[/b]'],\n    'S': () => ['[s]', '[/s]'],\n    'P': () => ['', '\\n'],\n    'SPAN': () => ['', ''],\n    'BR': () => ['', ''],\n  }\n\n  const bbcodeSizeMap = {\n    'small': 1,\n    'large': 4,\n    'huge': 6,\n  }\n\n  const getBBCode = (node, listType) => {\n    if (node.nodeName === '#text') {\n      return node.nodeValue\n    }\n\n    // Initialize empty components of BBCode result\n    let bbcodeInner = ''\n    let bbcodeOuterLeft = ''\n    let bbcodeOuterRight = ''\n\n    // Recursively append BBCode from child nodes\n    if (node.childNodes.length) {\n      node.childNodes.forEach((child) => {\n        bbcodeInner += getBBCode(\n          child,\n          ['UL', 'OL'].includes(node.nodeName) && node.nodeName\n        )\n      })\n    }\n\n    // A should be the most inner element\n    if (node.nodeName === 'A') {\n      let url = attr(node, 'href')\n      if (!url.includes('http://') && !url.includes(\"https://\") && !url.includes(\"mailto:\")) {\n        url = `https://${url}`\n      }\n      bbcodeInner = `[url=${url}]${bbcodeInner}[/url]`\n    }\n\n    // Convert HTML element styles\n    if (node.style && node.style.length) {\n      if (node.style.backgroundColor) {\n        bbcodeInner = `[highlight=${node.style.backgroundColor}]${bbcodeInner}[/highlight]`\n      }\n      if (node.style.color) {\n        bbcodeInner = `[color=${node.style.color}]${bbcodeInner}[/color]`\n      }\n    }\n\n    // Convert Quill element classes\n    const attrs = quillAttrs(node)\n    if (attrs.font) {\n      bbcodeInner = `[font=\"${HTML_TO_BBCODE_FONTS[attrs.font]}\"]${bbcodeInner}[/font]`\n    }\n    if (attrs.size) {\n      bbcodeInner = `[size=${bbcodeSizeMap[attrs.size]}]${bbcodeInner}[/size]`\n    }\n    if (attrs.align && !['UL', 'OL', 'LI'].includes(node.nodeName)) {\n      bbcodeOuterLeft = `[${attrs.align}]${bbcodeOuterLeft}`\n      bbcodeOuterRight = `${bbcodeOuterRight}[/${attrs.align}]`\n    }\n    if (attrs.indent && !['UL', 'OL', 'LI'].includes(node.nodeName)) {\n      bbcodeInner = `[indent data=${attrs.indent}]${bbcodeInner}[/indent]`\n    }\n\n    // Convert HTML tags\n    const tags = bbcodeTagMap[node.nodeName]\n      ? bbcodeTagMap[node.nodeName](node, listType)\n      : ['', '']\n\n    // In the case of alignment, move the \\n of the tags to the end of close alignment tag\n    if (bbcodeOuterRight != '' && tags[1].slice(-1) == '\\n'){\n      tags[1] = tags[1].slice(0, -1)\n      bbcodeOuterRight += \"\\n\"\n    }\n    return `${bbcodeOuterLeft}${tags[0]}${bbcodeInner}${tags[1]}${bbcodeOuterRight}`\n  }\n\n  // \"translates\" Quill html to bbcode to be consumed and usable by Bubble text fields\n  const htmlToBBCode = (html) =>\n    $.parseHTML(html)\n      .map((node) => getBBCode(node))\n      .join('')\n\n  // \"translates\" bbcode to Quill html - useful when using dynamic values to set initial input\n  const bbCodeToHTML = (bbcode) => {\n    bbcode = bbcode.replace(/\\[\\/center\\]/gi, \"[/center]\")\n    bbcode = bbcode.replace(/\\[\\/right\\]/gi, \"[/right]\")\n    bbcode = bbcode.replace(/\\[\\/justify\\]/gi, \"[/justify]\")\n\n    // TODO: for all lines containing (.*?), use '/gmis' instead of '/gmi'\n    bbcode = bbcode.replace(/\\[(center|right|left)\\].*?\\[\\/\\1\\]/gmis, (match, align) => {\n      close_open_align = '[/' + align + '][' + align + ']'\n      match = match.replace(/\\[(h[1-4]|youtube|blockquote)\\](.*?)\\[\\/\\1\\]/, close_open_align + '[$1]$2[/$1]' + close_open_align)\n      match = match.replace(/\\[indent data=(.*?)\\](.*?)\\[\\/indent\\]/, close_open_align + '[indent data=$1]$2[/indent]' + close_open_align)\n      match = match.replace(/(?:<br>|\\n)/gmi, close_open_align)\n      match = match.replace(new RegExp('\\\\[' + align + '\\\\]\\\\[\\\\/' + align + '\\\\]', 'gmi'), \"\")\n      return match\n    })\n\n    bbcode = bbcode.replace(/\\[size=1\\](.*?)\\[\\/size\\]/gmi, '<span class=\"ql-size-small\">$1</span>')\n    bbcode = bbcode.replace(/\\[size=2\\](.*?)\\[\\/size\\]/gmi, '<span class=\"ql-size-small\">$1</span>')\n    bbcode = bbcode.replace(/\\[size=3\\](.*?)\\[\\/size\\]/gmi, '$1')\n    bbcode = bbcode.replace(/\\[size=4\\](.*?)\\[\\/size\\]/gmi, '<span class=\"ql-size-large\">$1</span>')\n    bbcode = bbcode.replace(/\\[size=5\\](.*?)\\[\\/size\\]/gmi, '<span class=\"ql-size-large\">$1</span>')\n    bbcode = bbcode.replace(/\\[size=6\\](.*?)\\[\\/size\\]/gmi, '<span class=\"ql-size-huge\">$1</span>')\n    bbcode = bbcode.replace(/\\[size=7\\](.*?)\\[\\/size\\]/gmi, '<span class=\"ql-size-huge\">$1</span>')\n\n    bbcode = bbcode.replace(/\\[color=(.*?)\\](.*?)\\[\\/color\\]/gmi, '<span style=\"color:$1;\">$2</span>')\n    bbcode = bbcode.replace(/\\[highlight=(.*?)\\](.*?)\\[\\/highlight\\]/gmi, '<span style=\"background-color:$1;\">$2</span>')\n    bbcode = bbcode.replace(/\\[font=\"(.*?)\"\\](.*?)\\[\\/font\\]/gmi, function(match, m1, m2){\n      return `<span class=\"ql-font-${BBCODE_TO_HTML_FONTS[m1]}\">${m2}</span>`\n    })\n\n    bbcode = bbcode.replace(/\\[(center|right|justify)\\]\\[(h[1-4]|blockquote)\\]\\[indent data=(.*?)\\]/gmi, '<$2 class=\"ql-align-$1 ql-indent-$3\">')\n    bbcode = bbcode.replace(/\\[(center|right|justify)\\]\\[(h[1-4]|blockquote)\\]/gmi, '<$2 class=\"ql-align-$1\">')\n    bbcode = bbcode.replace(/\\[(h[1-4]|blockquote)\\]\\[indent data=(.*?)\\]/gmi, '<$1 class=\"ql-indent-$2\">')\n\n    bbcode = bbcode.replace(/\\[(center|right|justify)\\]\\[youtube\\](.*?)\\[\\/youtube\\]\\[\\/(center|right|justify)\\]/gi, '<iframe class=\"ql-video ql-align-$1\" frameborder=\"0\" allowfullscreen=\"true\" src=\"https://www.youtube.com/embed/$2?showinfo=0\">')\n\n    bbcode = bbcode.replace(/\\[(center|right|justify)\\]\\[indent data=(.*?)\\](.*?)\\[\\/indent\\]\\[\\/(center|right|justify)\\]\\n?/gmi, '<p class=\"ql-align-$1 ql-indent-$2\">$3</p>')\n    bbcode = bbcode.replace(/\\[(center|right|justify)\\](.*?)\\[\\/\\1\\]\\n?/gmis, '<p class=\"ql-align-$1\">$2</p>')\n    bbcode = bbcode.replace(/\\[indent data=(.*?)\\](.*?)\\[\\/indent\\]\\n?/gmi, '<p class=\"ql-indent-$1\">$2</p>')\n\n    bbcode = bbcode.replace(/\\[b\\]/gi, \"<strong>\")\n    bbcode = bbcode.replace(/\\[\\/b\\]/gi, \"</strong>\")\n    bbcode = bbcode.replace(/\\[i\\]/gi, \"<em>\")\n    bbcode = bbcode.replace(/\\[\\/i\\]/gi, \"</em>\")\n    bbcode = bbcode.replace(/\\[u\\]/gi, \"<u>\")\n    bbcode = bbcode.replace(/\\[\\/u\\]/gi, \"</u>\")\n    bbcode = bbcode.replace(/\\[s\\]/gi, \"<s>\")\n    bbcode = bbcode.replace(/\\[\\/s\\]/gi, \"</s>\")\n    bbcode = bbcode.replace(/\\[quote\\]/gi, \"<blockquote>\")\n    bbcode = bbcode.replace(/\\[\\/quote\\]/gi, \"</blockquote>\")\n    bbcode = bbcode.replace(/\\[code\\]/gi, \"<pre>\")\n    bbcode = bbcode.replace(/\\[\\/code\\]/gi, \"</pre>\")\n    bbcode = bbcode.replace(/\\[sub\\]/gi, \"<sub>\")\n    bbcode = bbcode.replace(/\\[\\/sub\\]/gi, \"</sub>\")\n    bbcode = bbcode.replace(/\\[sup\\]/gi, \"<sup>\")\n    bbcode = bbcode.replace(/\\[\\/sup\\]/gi, \"</sup>\")\n    bbcode = bbcode.replace(/\\[h1\\]/gi, \"<h1>\")\n\n    // html to bbcode enters '\\n' at the end of closing h1 tags, detect the newline along with the tag to avoid duplicate spaces\n    bbcode = bbcode.replace(/\\[\\/(h[1-4])]\\n?/gi, \"</$1>\")\n    bbcode = bbcode.replace(/\\[(h[1-4])\\]/gi, \"<$1>\")\n    bbcode = bbcode.replace(/\\[\\/indent\\]/gi, \"\")\n    bbcode = bbcode.replace(/\\[\\/center\\]\\n?/gi, \"\")\n    bbcode = bbcode.replace(/\\[\\/right\\]\\n?/gi, \"\")\n    bbcode = bbcode.replace(/\\[\\/justify\\]\\n?/gi, \"\")\n\n    bbcode = bbcode.replace(/\\[hr\\]/gi, \"\")\n    bbcode = bbcode.replace(/\\[email(.*?)\\]/gi, \"\")\n    bbcode = bbcode.replace(/\\[\\/email\\]/gi, \"\")\n    bbcode = bbcode.replace(/\\[left\\]/gi, \"\")\n    bbcode = bbcode.replace(/\\[\\/left\\]/gi, \"\")\n\n    bbcode = bbcode.replace(/\\[ml\\]\\[ol\\](.*?)\\[\\/ol\\]\\[\\/ml\\]/gmi, \"<ol>$1</ol>\")\n    bbcode = bbcode.replace(/\\[ml\\]\\[ul\\](.*?)\\[\\/ul\\]\\[\\/ml\\]/gmi, \"<ul>$1</ul>\")\n    bbcode = bbcode.replace(/\\[ol(.*?)\\]/gi, \"\")\n    bbcode = bbcode.replace(/\\[\\/ol\\]/gi, \"\")\n    bbcode = bbcode.replace(/\\[ul(.*?)\\]/gi, \"\")\n    bbcode = bbcode.replace(/\\[\\/ul\\]/gi, \"\")\n    bbcode = bbcode.replace(/\\[li indent=(.*?) align=(.*?)\\]/gi, (x) => {\n      const indent = x.replace(/\\[li indent=(.*?) align=(.*?)\\]/gi, \"$1\")\n      const alignment = x.replace(/\\[li indent=(.*?) align=(.*?)\\]/gi, \"$2\")\n      let result = \"<li\"\n      if (indent !== '0' || alignment !== 'left'){\n        result += ' class=\"'\n      }\n      if (indent !== '0'){\n        result += 'ql-indent-' + indent\n      }\n      if (alignment !== 'left'){\n        result += ' ql-align-' + alignment\n      }\n      if (indent !== '0' || alignment !== 'left'){\n        result += '\"'\n      }\n      return result + \">\"\n    })\n    bbcode = bbcode.replace(/\\[li\\]/gi, \"<li>\")\n    bbcode = bbcode.replace(/\\[\\/li\\]/gi, \"</li>\")\n\n    bbcode = bbcode.replace(/\\[img width=(.*?)\\](.*?)\\[\\/img\\]/gmi, '<img src=\"$2\" width=\"$1\">')\n    bbcode = bbcode.replace(/\\[img\\](.*?)\\[\\/img\\]/gmi, '<img src=\"$1\">')\n    bbcode = bbcode.replace(/\\[url=(.*?)\\](.*?)\\[\\/url\\]/gi, '<a href=\"$1\" target=\"_blank\">$2</a>')\n    bbcode = bbcode.replace(/\\[youtube\\](.*?)\\[\\/youtube\\]/gi, '<iframe class=\"ql-video\" frameborder=\"0\" allowfullscreen=\"true\" src=\"https://www.youtube.com/embed/$1?showinfo=0\"></iframe>')\n    bbcode = bbcode.replace(/\\[video\\](.*?)\\[\\/video\\]/gi, '<iframe class=\"ql-video\" frameborder=\"0\" allowfullscreen=\"true\" src=\"$1\"></iframe>')\n\n    //new line conversion is way down here because it needs to happen after digesting all closing header + \\n\n    bbcode = bbcode.replace(/\\n/gi, \"<br>\")\n\n    return bbcode\n  }\n\n  // callback invoked when the user is done typing, in a debounced fashion\n  // i.e. not after every keystroke, but a certain amount of time after the last keystroke.\n  const done_typing = () => {\n    if (d.should_rerun_val && d.last_update_props.autosave) set_val()\n  }\n\n  // handles text changes and blur events\n  const set_val = () => {\n    // regex removes excess line feed inserted by quill, otherwise :number of characters if off by 1\n    const new_bbcode = htmlToBBCode(d.quill.root.innerHTML).replace(/\\n$/, '')\n    const did_content_change = d.current_bbcode !== new_bbcode\n    d.current_bbcode = new_bbcode\n    if (did_content_change) {\n      notify_content_changed(new_bbcode)\n    }\n    d.pasted = false\n  }\n\n  // notify the external world that the content has changed\n  const notify_content_changed = (bbcode, args = { programmatic: false }) => {\n    instance.publishState(\"value\", bbcode)\n\n    // Publishes boolean indicating whether the input is valid\n    // not valid if the input is empty and the user has checked \"this input should not be empty\"\n    instance.publishState(\"value_is_valid\", is_valid())\n\n    if(!args.programmatic) {\n      d.should_rerun_val = false\n\n      //cheat to avoid re-draw on next update\n      d.last_update_props.autobinding = bbcode\n      instance.publishAutobinding(bbcode)\n      instance.triggerEvent('value_changes', (err) => {\n        if (err) {\n          console.error(\"Rich text event error - please report to admin: \" + JSON.stringify(err))\n        }\n      })\n    }\n  }\n\n  const is_valid = () => {\n    const quill = d.quill\n\n    if (properties.empty_is_invalid) {\n      return checkForContent(quill.root.innerHTML) !== ''\n    }\n    return true\n  }\n\n  // handle the quill instance telling us that its value has changed.\n  // this can result either from us setting the value, or the user making an edit\n  const handle_quill_text_change_event = (delta, oldDelta, source) => {\n    // early return for change induced by setting value ourselves\n    if (d.last_change_source === 'bubble_update') return\n\n    d.last_change_source = source\n    if (d.last_change_source === 'user') {\n      d.has_been_edited = true\n    }\n    if (get_current_content_bbcode() === properties.initial_content) {\n      d.has_been_edited = false\n    }\n    d.should_rerun_val = true\n    d.prev_contents = htmlToBBCode(d.quill.root.innerHTML)\n    // reset debounce timer\n    clearTimeout(d.typing_timer_id)\n    d.typing_timer_id = setTimeout(done_typing, DONE_TYPING_INTERVAL_MS)\n\n    if (d.quill.theme.modules.imageResize.overlay && !d.has_resize_listener) {\n      d.has_resize_listener = true\n      $(d.quill.theme.modules.imageResize.overlay).one('mouseup', () => {\n        done_typing()\n        d.has_resize_listener = false\n      })\n    }\n\n    fixup_images()\n\n    d.pasted = false\n\n    set_initial_content(source)\n\n    // Check for google keyboard issue of not moving cursor on newline\n    // Code gotten from https://github.com/quilljs/quill/issues/3240\n    const quill = d.quill\n    const ops = delta.ops\n    const oldSelection = quill.getSelection()\n    const oldPos = oldSelection?.index\n    const oldSelectionLength = oldSelection ?  oldSelection.length : 0\n\n    if (ops[0].retain === undefined ||\n        !ops[1] ||\n        !ops[1].insert ||\n        !ops[1].insert ||\n        ops[1].insert !== '\\n' ||\n        oldSelectionLength > 0) {\n        return\n    }\n\n    setTimeout(() => {\n        const newPos = quill.getSelection().index\n        if (newPos === oldPos) {\n            quill.setSelection(quill.getSelection().index + 1, 0)\n        }\n    }, 3)\n  }\n\n  const fixup_images = () => {\n    const quillRoot = d.elements.quillRoot\n\n    quillRoot.find('img').each((index, element) => {\n      $(element).data('width', $(element).css('width'))\n    })\n\n    upload_and_replace_inline_images()\n  }\n\n  const upload_and_replace_inline_image = (file_extension, source) => {\n    context.uploadContent(`richtext_content.${file_extension}`, source, (err, url) => {\n      const quillRoot = d.elements.quillRoot\n      const upload_width = quillRoot\n        .find(`img[src=\"data:image/${file_extension};base64,${source}\"]`)\n        .css('width') || \"\"\n      quillRoot\n        .find(`img[src=\"data:image/${file_extension};base64,${source}\"]`)\n        .attr({'src': url, 'width': upload_width})\n    })\n  }\n\n  const upload_and_replace_inline_images = () => {\n    const quill = d.quill\n\n    const rawhtml = quill.root.innerHTML\n\n    const base64ImageRegex = /<img[^>]* src=\"data:image\\/(.*?)\"(.*?)>/gi\n    const matches = rawhtml.match(base64ImageRegex) || []\n\n    let img_change = false\n    if (matches.length !== d.img_tracker) {\n      img_change = true\n      d.img_tracker = matches.length\n    }\n\n    let fullMatch = base64ImageRegex.exec(rawhtml)\n    let encoding, base64source\n    while (img_change && fullMatch) {\n      [encoding, base64source] = fullMatch[1].split(',') || []\n      const file_extension = (encoding || '').split(';')[0]\n\n      if (SUPPORTED_FILE_EXTENSIONS[file_extension]) {\n        upload_and_replace_inline_image(file_extension, base64source)\n      }\n      fullMatch = base64ImageRegex.exec(rawhtml)\n    }\n  }\n\n  const register_fonts_and_icons = () => {\n    const FontAttributor = window.Quill.import('attributors/class/font')\n    FontAttributor.whitelist = [...ALL_FONTS]\n    window.Quill.register(FontAttributor, true)\n\n    const icons = window.Quill.import('ui/icons')\n    icons.header[1] = ICON_H1\n    icons.header[2] = ICON_H2\n    icons.header[3] = ICON_H3\n    icons.header[4] = ICON_H4\n  }\n\n  // initialize an instance of the quill editor\n  const initialize_quill = () => {\n    instance.canvas.empty()\n\n    // Import Delta module from Quill\n    const Delta = window.Quill.import('delta')\n    // create unique ID in case more than one Rich Text input is added to a page\n    if (!d.element_id) d.element_id =  `richtext-editor-${$('.ql-container').length}`\n\n    // Quill.js themes\n    register_fonts_and_icons()\n    const theme = properties.theme === 'Regular' ? 'snow' : 'bubble'\n\n    // Initialize toolbar based on desired complexity\n    let toolbar\n    if (properties.complexity === \"Basic\") {\n      toolbar = [\n        [ 'bold', 'italic', 'link'],\n        [{ 'align': [] },{ 'header': '1' }, { 'header': '2' }]\n      ]\n    } else if (properties.complexity === \"Medium\") {\n      toolbar = [\n        [{font: [...ALL_FONTS] }],\n        ['bold', 'italic', 'underline', 'strike'],\n        [{ color: [] }, { background: [] }],\n        [{ header: '1' }, { header: '2' }, { header: '3' },{ header: '4' }],\n        [{ list: 'ordered' }, { list: 'bullet'}],\n        [{ indent: '-1' }, { indent: '+1' }, { align: [] }, 'link']\n      ]\n    } else {\n      toolbar = [\n        [{ font: [...ALL_FONTS] }, { size: [] }],\n        ['bold', 'italic', 'underline', 'strike'],\n        [{ color: [] }, { background: [] }],\n        [{ script: 'super' }, { script: 'sub' }],\n        [{ header: '1' }, { header: '2' }, { header: '3' }, { header: '4' }, 'blockquote', 'code-block'],\n        [{ list: 'ordered' }, { list: 'bullet'}],\n        [{ indent: '-1' }, { indent: '+1' }, { align: [] }],\n        ['link', 'image', 'video'], ['clean']\n      ]\n    }\n\n    // add Quill container div to page\n    instance.canvas.append(`<div id=\"${d.element_id}\"></div>`)\n\n    // initialize Quill\n    const quill = new window.Quill(`#${d.element_id}`, {\n      theme: theme,\n      bounds: `#${d.element_id}`,\n      modules: {\n        imageResize: {\n          modules: [ 'Resize', 'DisplaySize']\n        },\n        toolbar: toolbar,\n        clipboard: {},\n        history: {\n          // Prevent any Bubble-initiated changes from adding a history entry\n          userOnly: true\n        }\n      },\n      placeholder: d.updated_props.placeholder || ''\n    })\n\n    const rteContainer = $(quill.container)\n    d.elements.rteContainer = rteContainer\n\n    rteContainer.css({\n      border: 'none',\n      height: 'max-content',\n      'min-height': 0,\n      'flex-shrink': 1,\n      'flex-grow': 1\n    })\n\n    const editorContainer = rteContainer.find('.ql-editor')\n    editorContainer.css({\n      'max-height': d.last_update_bubble_props.max_height_css\n    })\n\n    instance.canvas.css({\n      display: 'flex',\n      'flex-direction': 'column'\n    })\n\n    const toolbarElement = rteContainer.siblings('.ql-toolbar')\n    d.elements.toolbarElement = toolbarElement\n\n    toolbarElement.css({\n      'flex-grow': 0,\n      'flex-shrink': 0\n    })\n\n    if (properties.bubble.border_style() !== \"none\" && theme === \"snow\") {\n      toolbarElement.css({\n        border: 'none',\n        'border-bottom': '1px solid #ccc'\n      })\n    }\n\n    // Matcher to process fonts (especially two worded fonts) correctly\n    // Span elements directly wrap the text content, and this is what we're going to use\n    // to identify the font, via the ql-font-... class\n    quill.clipboard.addMatcher('span', (node, delta) => {\n      // identify the class that indicates the class we need\n      for (const node_class of node.classList) {\n        if (!node_class.startsWith('ql-font-')) continue\n        const matched_font = node_class.replace('ql-font-', '')\n        if (!ALL_FONTS.has(matched_font) || matched_font === 'sans-serif') continue\n        return delta.compose(new Delta().retain(delta.length(), { font: matched_font }))\n      }\n      return delta\n    })\n\n    const quillRoot = $(quill.root)\n    d.elements.quillRoot = quillRoot\n\n    //add tooltips to icons for clarity\n    $('.ql-bold').attr('title', 'Bold')\n    $('.ql-italic').attr('title', 'Italic')\n    $('.ql-underline').attr('title', 'Underline')\n    $('.ql-header[value=\"1\"]').attr('title', \"Title\")\n    $('.ql-header[value=\"2\"]').attr('title', \"Subtitle\")\n    $('.ql-align').attr('title', 'Text alignment')\n    if (['Full', 'Medium'].includes(properties.complexity)) {\n      $('.ql-header[value=\"3\"]').attr('title', \"Subtitle\")\n      $('.ql-header[value=\"4\"]').attr('title', \"Subtitle\")\n      $('.ql-strike').attr('title', 'Strikethrough')\n      $('.ql-color').attr('title', 'Font color')\n      $('.ql-background').attr('title', 'Highlight color')\n      $('.ql-font').attr('title', 'Font')\n      $('.ql-list[value=\"ordered\"]').attr('title', \"Numbered list\")\n      $('.ql-list[value=\"bullet\"]').attr('title', \"Bulleted list\")\n      $('.ql-indent[value=\"+1\"]').attr('title', \"Indent\")\n      $('.ql-indent[value=\"-1\"]').attr('title', \"Remove indent\")\n      $('.ql-link').attr('title', 'Link')\n    }\n    if (properties.complexity === 'Full') {\n      $('.ql-size').attr('title', 'Font size')\n      $('.ql-script[value=\"super\"]').attr('title', \"Superscript\")\n      $('.ql-script[value=\"sub\"]').attr('title', \"Subscript\")\n      $('.ql-blockquote').attr('title', 'Quote')\n      $('.ql-code-block').attr('title', 'Code')\n      $('.ql-image').attr('title', 'Image')\n      $('.ql-video').attr('title', 'Video')\n      $('.ql-clean').attr('title', 'Remove all formatting')\n    }\n\n    $('.ql-font .ql-picker-options').css({ height: '250px', overflow: 'scroll' })\n\n    // Use BBCode font caption, which is human-readable\n    $('.ql-font .ql-picker-options .ql-picker-item').each((index, element) => {\n      $(element).attr('data-label', HTML_TO_BBCODE_FONTS[$(element).data('value')])\n    })\n\n    // initialize helpful variables for later on:\n    d.quill = quill\n\n    // sets placeholder for link input to https://bubble.io/\n    const tooltip = quill.theme.tooltip\n    const input = tooltip.root.querySelector(\"input[data-link]\")\n    input.dataset.link = properties.link_placeholder\n\n    // == bind event handlers on newly-initialized Quill instance ==\n\n    // positions the image resize module correctly when scrolling\n    quillRoot.on('scroll', () => {\n      const resize_obj = rteContainer.children()[3]\n      if (resize_obj && !resize_obj.hidden){\n        quill.theme.modules.imageResize.repositionElements()\n      }\n    })\n\n    // if image is resized, updates the value right away instead of waiting for the DONE_TYPING_INTERVAL_MS timer\n    rteContainer.mouseup(() => {\n      if (rteContainer.children()[3]) {\n        done_typing()\n      }\n    })\n\n    // bind on/off focus events\n    const rte_canvas = rteContainer.children()[0]\n\n    rte_canvas.onfocus = () => {\n      instance.publishState(\"field_is_focused\", true)\n    }\n\n    rte_canvas.onblur = () => {\n      if (d.pasted) return\n\n      instance.publishState(\"field_is_focused\", false)\n      clearTimeout(d.typing_timer_id)\n      if (d.should_rerun_val) {\n        set_val()\n      }\n    }\n\n    $('.ql-toolbar').mousedown(e => e.preventDefault())\n\n    // actions to be run whenever the Quill text is changed\n    quill.on('text-change', handle_quill_text_change_event)\n\n    // hides image resize module outline if any formatting buttons are pressed\n    $('.ql-formats').on('click', () => rteContainer.children().eq(3).hide())\n\n    // run the validation on initialization to avoid breaking change\n    // @TODO inconsistent styling with regular inputs, pristine should register as \"valid\"\n    //instance.publishState(\"value_is_valid\", true)\n    d.prev_contents = ''\n    d.initialized = true\n  }\n\n  // set the quill editor to show the given bbcode\n  d.set_content_in_quill = (bbcode) => {\n    const quill = d.quill\n\n    // paste the HTML even if current_bbcode matches initial content,\n    // to mitigate wrong initial content from persisting in editor if the data the RTE is autobinding to changes\n    const desired_html = bbCodeToHTML(bbcode)\n\n    // The proper way to insert content into a Quill editor is to convert it into a delta via quill.clipboard.convert\n    // We can then set the content of the editor using the delta object.\n    const desired_delta = quill.clipboard.convert(desired_html)\n\n    // Add an extra newline because quill has the bad habit of trimming it (not all of them, just the last one...).\n    desired_delta.insert('\\n')\n\n    const current_delta = quill.getContents()\n\n    // If we re-initialized the quill instance, the contents of it might not be trustworthy.\n    // Also check that we havent changed from prev_contents\n    if(d.helpers.deltaIsEqual(current_delta, desired_delta) &&\n       bbcode === d.prev_contents) {\n      return\n    }\n    // Get the last modified part to indicate where the cursor in the text editor\n    const current_selection = quill.getSelection()\n\n    // Pasting the contents programmatically focuses the editor and sets\n    // the cursor to the end, which breaks autobinding and is weird UX,\n    // so restoring initial selection below\n\n    // preserve the last change source, while forcing it to be 'bubble_update' when setting contents,\n    // in order to prevent extra change loops from running\n    const actual_change_source = d.last_change_source\n    d.last_change_source = 'bubble_update'\n\n    // Set content\n    quill.setContents(desired_delta)\n    d.last_change_source = actual_change_source\n    // Indicate we've set the content for the first time.\n    if (d.did_set_content_first_time) {\n      d.did_set_content_first_time = false\n    }\n\n    if (current_selection) quill.setSelection(current_selection)\n\n    // no good way to know what cmd+z should do after an external change, so clear history\n    quill.history.clear()\n\n    notify_content_changed(bbcode, { programmatic: true })\n  }\n\n  const should_reinitialize = () => {\n    if (!d.initialized) return true\n    const PROPS_THAT_NEED_REINITIALIZATION = ['theme', 'complexity']\n    for (const prop of PROPS_THAT_NEED_REINITIALIZATION) {\n      if (prop in d.updated_props) return true\n    }\n    return false\n  }\n\n  // Allow setting initial content dynamically if the initial content has changed and data has not been edited\n  const set_initial_content = (source) => {\n    if (source === 'user' || source === 'silent') {\n      return\n    }\n    if (\n      !properties.autobinding &&\n      properties.initial_content !== d.initial_bbcode &&\n      !d.has_been_edited\n    ) {\n      // write to the initial_content property\n      properties.initial_content = d.initial_bbcode\n    }\n  }\n\n  // If the properties.autobinding resolves to null, equate that with an empty string\n  const get_non_null_autobinding_value = () => {\n    return properties.autobinding || ''\n  }\n\n  // get the content that the editor should be set to right now\n  const get_current_content_bbcode = () => {\n    // On first pass after an update, we want to make sure that the content that we use is the one that was input by the user just before\n    // the update. This situation arises when the editor is set to fit to expand (overflow = true). In this case, when we reach the final\n    // line and create a new line, if the editor needs to expand, it triggers update_element_height.\n    // However, when this happens, the autobinding content is different from the last one that the user input, and this causes the\n    // height to reset. The user is no longer able to input anything, as the quill editor keeps bouncing back to the autobinding content.\n    if (d.did_set_content_first_time && d.last_change_source === 'user') {\n      return d.prev_contents || \"\"\n    }\n\n    if (d.is_autobound) {\n      return get_non_null_autobinding_value()\n    }\n\n    // only set initial content if the user hasn't made edits\n    if (!d.has_been_edited) {\n      // prevents the same initial content from loading more than once\n      // initialize flag to see if html should actually be translated to bbcode later on\n      d.should_rerun_val = false\n      return properties.initial_content || \"\"\n    } else {\n      return d.prev_contents\n    }\n  }\n\n  const get_initial_content_bbcode = () => {\n    if (d.is_autobound) {\n      if (properties.initial_content) {\n        console.warn(\"Ignoring initial content since autobinding is enabled.\")\n      }\n      return get_non_null_autobinding_value(properties)\n    }\n    return properties.initial_content || \"\"\n  }\n\n  // main entry point: reconcile quill instance with new properties, or create it if it doesn't exist.\n  const reconcile = () => {\n\n    let content_bbcode = ''\n    if (d.initial_bbcode !== get_initial_content_bbcode()) {\n      // initial_bbcode and initial_html can change if initial content is a dynamic expression\n      content_bbcode = get_initial_content_bbcode()\n      // these are used by the reset action\n      d.initial_html = bbCodeToHTML(content_bbcode)\n      d.initial_bbcode = content_bbcode\n      // only update the current_bbcode if autobinding is on since initial_bbcode can change from an external source\n      // or if the content has not been edited and autobinding is off\n      if (!d.has_been_edited || d.is_autobound) {\n        d.current_bbcode = d.initial_bbcode\n      }\n    }\n\n    if (d.current_bbcode == null) {\n      // need to initialize d.current_bbcode here\n      d.current_bbcode = d.initial_bbcode\n    }\n\n    if (d.initialized) content_bbcode = get_current_content_bbcode()\n    // Regardless of other logic, when auto-binding, this should be the source of truth\n    if (d.updated_props.autobinding && d.is_autobound) content_bbcode = get_non_null_autobinding_value()\n\n\n    if (should_reinitialize()) initialize_quill()\n\n    // disable Quill input if this element is disabled\n    if ('disabled' in d.updated_props) {\n      d.quill.enable(!d.updated_props.disabled)\n    }\n\n    // Dynamically set the placeholder\n    if ('placeholder' in d.updated_props) {\n      d.quill.root.dataset.placeholder = d.updated_props.placeholder || ''\n    }\n\n    // set content based on what mode we're in\n    if (content_bbcode !== d.prev_contents) {\n      d.set_content_in_quill(content_bbcode)\n      d.prev_contents = content_bbcode\n    }\n    d.has_been_reconciled = true\n  }\n\n  d.has_been_reconciled = false\n  $(document).ready(reconcile)\n}\n"},"reset":{"fn":"function(instance, context) {\n  const d = instance.data\n  if (!d.quill) return\n  // Not sure \"reset\" does not really make any sense with autobinding on,\n  // but bubble still fires it\n  if (d.is_autobound) return\n\n  // set contents back to the initial value\n  d.set_content_in_quill(d.initial_bbcode)\n\n  d.last_change_source = 'api'\n  d.has_been_edited = false\n}\n"},"preview":{"fn":"function(instance, properties) {\n\n    //custom preview that changes as various properties are changed\n    //uses images rather than initializing a disabled Quill instance because the images are lighter weight and makes loading the element more efficient in the editor \n    \n    var preview;\n    var preview_images = {\n        \"basic_styles\": \"//01246d7e30dd8ee862a8dba3b426a683.cdn.bubble.io/f1578328422624x814410333288381700/basic_styles.png\",\n        \"basic_text_alignment\": \"//01246d7e30dd8ee862a8dba3b426a683.cdn.bubble.io/f1578328435036x176083124177772740/basic_align.png\",\n        \"font\": \"//01246d7e30dd8ee862a8dba3b426a683.cdn.bubble.io/f1578328456820x636678729904445200/font.png\",\n        \"size\": \"//01246d7e30dd8ee862a8dba3b426a683.cdn.bubble.io/f1578328471900x601277843539461200/size.png\",\n        \"text_styles\": \"//01246d7e30dd8ee862a8dba3b426a683.cdn.bubble.io/f1578328500984x237729254917328450/text_styles.png\",\n        \"text_color\": \"//01246d7e30dd8ee862a8dba3b426a683.cdn.bubble.io/f1578526040133x618924377176704400/text_color.png\",\n        \"sup_sub\": \"//01246d7e30dd8ee862a8dba3b426a683.cdn.bubble.io/f1578328553500x547904523073018600/sup_sub.png\",\n        \"titles_quote_code\": \"//01246d7e30dd8ee862a8dba3b426a683.cdn.bubble.io/f1578328573740x193466729817275650/titles_quote_code.png\",\n        \"media\": \"//01246d7e30dd8ee862a8dba3b426a683.cdn.bubble.io/f1578328690820x732983396842500400/media.png\",\n        \"remove_style\": \"//01246d7e30dd8ee862a8dba3b426a683.cdn.bubble.io/f1578328704608x655581645962726700/remove_style.png\",\n        \"list\": \"//01246d7e30dd8ee862a8dba3b426a683.cdn.bubble.io/f1580145133799x948312827511517800/list.png\",\n        \"indent_align\": \"//01246d7e30dd8ee862a8dba3b426a683.cdn.bubble.io/f1580145152691x503666194763457100/indent_align.png\",\n        \"all_titles\": \"//01246d7e30dd8ee862a8dba3b426a683.cdn.bubble.io/f1585641019238x597655811909080000/all%20titles.png\",\n        \"code_quotes\": \"//01246d7e30dd8ee862a8dba3b426a683.cdn.bubble.io/f1585641079062x980676637005123800/code%20quotes.png\",\n        \"medium_format\": \"//01246d7e30dd8ee862a8dba3b426a683.cdn.bubble.io/f1585641062978x592964815466108240/medium%20formats.png\"\n    };\n    \n    \n    if(properties.theme == \"Regular\"){\n        var toolbar = \"<div><div style='background-color:white;'>\";\n        if(properties.complexity == \"Full\"){\n            toolbar += \"<img src='\"+ preview_images[\"font\"] +\"'>\";\n            toolbar += \"<img src='\"+ preview_images[\"size\"] +\"'>\";\n            toolbar += \"<img src='\"+ preview_images[\"text_styles\"] +\"'>\";\n            toolbar += \"<img src='\"+ preview_images[\"text_color\"] +\"'>\";\n            toolbar += \"<img src='\"+ preview_images[\"sup_sub\"] +\"'>\";\n            toolbar += \"<img src='\"+ preview_images[\"all_titles\"] +\"'>\";\n            toolbar += \"<img src='\"+ preview_images[\"code_quotes\"] +\"'>\";\n            toolbar += \"<img src='\"+ preview_images[\"list\"] +\"'>\";\n            toolbar += \"<img src='\"+ preview_images[\"indent_align\"] +\"'>\";\n            toolbar += \"<img src='\"+ preview_images[\"media\"] +\"'>\";\n            toolbar += \"<img src='\"+ preview_images[\"remove_style\"] +\"'>\";\n        } else if(properties.complexity == \"Medium\"){\n            toolbar += \"<img src='\"+ preview_images[\"font\"] +\"'>\";\n            toolbar += \"<img src='\"+ preview_images[\"text_styles\"] +\"'>\";\n            toolbar += \"<img src='\"+ preview_images[\"text_color\"] +\"'>\";\n            toolbar += \"<img src='\"+ preview_images[\"all_titles\"] +\"'>\";\n            toolbar += \"<img src='\"+ preview_images[\"list\"] +\"'>\";\n            toolbar += \"<img src='\"+ preview_images[\"medium_format\"] +\"'>\";\n        } else {\n            toolbar += \"<img src='\"+ preview_images[\"basic_styles\"] +\"'>\";\n            toolbar += \"<img src='\"+ preview_images[\"basic_text_alignment\"] +\"'>\";\n        }\n        toolbar += \"</div>\";\n        if(properties.initial_content && properties.initial_content!=\"\"){\n            toolbar += \"<span style='margin:15px;font-family:sans-serif;font-size:13px;line-height:40px;'>\" + properties.initial_content + \"</span>\";\n        } else {\n            if(properties.placeholder){\n                toolbar += \"<span style='font-style:italic;margin:15px;font-family:sans-serif;color:#737373;font-size:13px;line-height:40px;'>\" + properties.placeholder + \"</span>\";\n            }\n        }\n        toolbar += \"</div>\";\n        preview = $(toolbar);\n    } else {\n\t\tvar editor = \"<div>\";\n        if(properties.initial_content && properties.initial_content!=\"\"){\n            editor += \"<span style='margin:15px;font-family:sans-serif;font-size:13px;line-height:40px;'>\" + properties.initial_content + \"</span>\";\n        } else {\n            if(properties.placeholder){\n                editor += \"<span style='font-style:italic;margin:15px;font-family:sans-serif;color:#737373;font-size:13px;line-height:40px;'>\" + properties.placeholder + \"</span>\";\n            }\n        }\n        editor += \"</div>\";\n        preview = $(editor);\n    }\n\n    preview.css(\"height\", (properties.bubble.height() - 2) + \"px\");\n    if(properties.bubble.border_style()=='none'){\n        preview.children('div').css(\"border\", \"1px solid #cbcbcb\");  \n    } else {\n        preview.children('div').css(\"border-bottom\", \"1px solid #cbcbcb\");\n    }\n    preview.children('div').css(\"padding-right\", \"10px\");\n    preview.children('div').children('img').css(\"height\", \"38px\");\n\t\n    instance.canvas.append(preview);\n    \n}"}}}}};
window._bubble_page_load_data.plugins_size['1580238841425x582072028873097200'] = 66061;
window.preloaded['plugin/third_party:1580238841425x582072028873097200:2.0.5'] = true;
window.plugins["1604083196447x185573648335896580"] = {"human":"Iconify","dependencies":{"use_jquery":true,"plugin_api_version":"1"},"plugin_elements":{"AAC":{"display":"Iconify","property_applications":{"resizable":true,"MinWidth":false,"Font":false,"Background":true,"Border":true,"Padding":false,"BoxShadow":true},"add_hover_pressed":true,"add_is_visible":true,"support_autobinding":false,"autobinding_value":"text","has_reset_fn":false,"fields":{"AAD":{"caption":"Name","name":"icon","rank":0,"editor":"DynamicValue","value":"text"},"AAE":{"caption":"Color","name":"color","rank":1,"editor":"Color","default_val":"rgba(0, 0, 0, 1)","optional":false,"in_style":true},"AAM":{"caption":"Vertical flip","name":"flipx","rank":4,"editor":"Checkbox","default_val":false,"in_style":true},"AAN":{"caption":"Horizontal flip","name":"flipy","rank":5,"editor":"Checkbox","default_val":false,"in_style":true},"AAO":{"caption":"Rotate (deg)","name":"rotate","rank":6,"editor":"StaticNumber","default_val":0,"optional":false,"in_style":true},"AAQ":{"caption":"Scale (%)","name":"scale","rank":14,"editor":"StaticNumber","default_val":100,"in_style":true},"AAR":{"caption":"Transition Effect (ms)","name":"transition","rank":15,"editor":"StaticNumber","default_val":200,"in_style":false},"AAf":{"caption":"------------------------------ ROTATION ------------------------------","name":"label_rotation","rank":3,"editor":"Label"},"AAg":{"caption":"------------------------- ICONIFY SHADOW ------------------------","name":"label_shadow","rank":7,"editor":"Label"},"AAh":{"caption":"-------------------------------- OTHER ----------------------------------","name":"label_other","rank":13,"editor":"Label"},"AAi":{"caption":"Shadow","name":"shadow","rank":8,"editor":"Checkbox","default_val":false,"in_style":true},"AAj":{"caption":"Horizontal offset","name":"horizontal_offset","rank":9,"editor":"StaticNumber","default_val":2,"in_style":true},"AAk":{"caption":"Vertical offset","name":"vertical_offset","rank":10,"editor":"StaticNumber","default_val":2,"in_style":true},"AAl":{"caption":"Radius","name":"radius","rank":11,"editor":"StaticNumber","in_style":true,"default_val":2},"AAm":{"caption":"Shadow color","name":"shadow_color","rank":12,"editor":"Color","in_style":true,"default_val":"rgba(170, 170, 170, 1)"},"AAn":{"caption":"Is clickabel","name":"is_clickabel","rank":2,"editor":"Checkbox","default_val":false},"AAo":{"caption":"Spin","name":"spin","rank":16,"editor":"Checkbox","default_val":false}},"states":{"AAx":{"caption":"test_expose","name":"test_expose","value":"boolean","initialization_code":{"fn":"function(a,b){};"}}},"events":{"AAe":{"caption":"is clicked","name":"is_clicked"}},"code":{"preview":{"fn":"function(e,a){var b=Math.min(a.bubble.width,a.bubble.height)-2*a.bubble.border_width,f=a.flipx?180:0,g=a.flipy?180:0,h=(a.bubble.height-b-2*a.bubble.border_width)/2+\"px\",k=(a.bubble.width-b-2*a.bubble.border_width)/2+\"px\",d=a.scale/100;d=1<d?1:.1>d?.1:d;var l=a.shadow?\"drop-shadow(\"+a.horizontal_offset+\"px \"+a.vertical_offset+\"px \"+a.radius+\"px \"+a.shadow_color+\")\":\"none\",c=$('<div style=\"width:'+b+\"px; height: \"+b+'px; \"><svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" aria-hidden=\"true\" focusable=\"false\"width=\"'+\nb+'\"height=\"'+b+'\"style=\"-ms-transform: rotate(360deg); -webkit-transform: rotate(360deg); transform: rotate(360deg);\" preserveAspectRatio=\"xMidYMid meet\" viewBox=\"0 0 17 16\"><g fill=\"'+a.color+'\"fill-rule=\"evenodd\"><path d=\"M9.968 1.866c0 1.012-.437 4.061-.976 4.061c-.537 0-.977-3.049-.977-4.061c0-1.014.439-1.835.977-1.835c.539 0 .976.822.976 1.835z\"/><path d=\"M8.016 14.088c0-1.006.438-4.031.977-4.031c.538 0 .975 3.025.975 4.031c0 1.004-.437 1.818-.975 1.818c-.54 0-.977-.814-.977-1.818z\"/><path d=\"M2.859 7.03c1.025 0 4.113.431 4.113.961s-3.088.959-4.113.961C1.832 8.95 1 8.521 1 7.991s.832-.96 1.859-.961z\"/><path d=\"M15.123 8.982c-1.021 0-4.092-.44-4.092-.983c0-.543 3.07-.983 4.092-.983c1.019-.002 1.846.44 1.846.983c0 .543-.827.983-1.846.983z\"/><g><path d=\"M14.182 4.193c-.715.715-3.18 2.562-3.561 2.182c-.38-.381 1.465-2.848 2.18-3.562c.717-.717 1.609-.986 1.989-.607c.382.382.108 1.271-.608 1.987z\"/><path d=\"M3.816 11.846c.711-.712 3.16-2.542 3.541-2.16c.381.38-1.45 2.828-2.162 3.539c-.709.71-1.594.977-1.975.597c-.38-.383-.114-1.267.596-1.976z\"/><path d=\"M5.176 2.818c.726.725 2.604 3.213 2.229 3.588S4.544 4.9 3.817 4.177c-.726-.728-1.011-1.619-.636-1.994c.375-.375 1.268-.091 1.995.635z\"/><path d=\"M12.812 13.198c-.723-.722-2.582-3.205-2.198-3.589c.384-.385 2.867 1.476 3.588 2.198c.723.719.994 1.616.61 2.001c-.384.383-1.281.11-2-.61z\"/></g></g><rect x=\"0\" y=\"0\" width=\"17\" height=\"16\" fill=\"rgba(0, 0, 0, 0)\" /></svg></div>');\nc.css(\"width\",b);c.css(\"height\",b);c.css(\"margin\",h+\" \"+k);c.css(\"background-color\",a.bubble.color);c.css(\"transform\",\"rotate(\"+a.rotate+\"deg) rotateX(\"+f+\"deg) rotateY(\"+g+\"deg) scale(\"+d+\") \");c.css(\"filter\",l);e.canvas.append(c)};"},"initialize":{"fn":"function(a,b){a.data.id=\"iconify-\"+Math.random().toString(36).substr(2,5);a.data.init=!0;a.data.initSpin=!0;a.canvas.click(function(){a.data.clickabel&&(event.stopPropagation(),a.triggerEvent(\"is_clicked\"))})};"},"update":{"fn":"function(instance, properties) {\n    let iconName, id, size, flipX, flipY, marginV, dropShadow, cursor, isClickabel, transition;\n\n    /* FULFILL VARIABLES */\n    id = instance.data.id;\n    init = instance.data.init;\n    initSpin = instance.data.initSpin;\n\n    iconName = properties.icon.trim();\n    size = Math.min(properties.bubble.width, properties.bubble.height) - (2 * properties.bubble.border_width);\n    flipX = (properties.flipx) ? (180) : (0);\n    flipY = (properties.flipy) ? (180) : (0);\n    marginV = (properties.bubble.height - size - (2 * properties.bubble.border_width)) / 2 + \"px\";\n\n    let i = properties.scale / 100;\n    processedScale = (i > 1) ? (1) : (i < 0.1) ? (0.1) : (i);\n\n    if (properties.shadow) {\n        dropShadow = 'drop-shadow(' + properties.horizontal_offset + 'px ' + properties.vertical_offset + 'px ' + properties.radius + 'px ' + properties.shadow_color + ')'\n    } else { dropShadow = 'none' };\n\n    instance.data.clickabel = properties.is_clickabel;\n\n    if (properties.is_clickabel) {\n        cursor = 'pointer';\n    } else {\n        cursor = 'default';\n    }\n\n    spin = properties.spin;\n\n    if (initSpin && spin) {\n        compose_spin_style();\n\n        instance.data.initSpin = false;\n    }\n\n    transition = properties.transition;\n    rotate = properties.rotate;\n    color = properties.color;\n\n    /* COMPOSE ICON */\n    function compose_icon() {\n        let div, a;\n\n        div = document.createElement('div');\n        $(div).attr('id', id );\n\n        a = document.createElement('a');\n        $(a).attr({ 'class': 'iconify', 'data-icon': iconName, 'data-width': size + 'px', 'data-height': size + 'px', 'data-inline': 'false' });\n\n        div.appendChild(a);\n\n        instance.data.id = id;\n        instance.data.currentIcon = div;\n        instance.data.currentIconName = iconName;\n\n        instance.canvas.append(div);\n    }\n\n    /* COMPOSE SPIN STYLE */\n    function compose_spin_style() {\n        let animation, keyframes;\n        \n        animation = `#${id}.spin {animation: ${id} 2s infinite linear;}`;\n        keyframes = `@keyframes ${id} {from {transform: rotate(0deg) scale(${processedScale});} to {transform: rotate(359deg) scale(${processedScale});}}`;\n\n        $('#iconify-plugin-stylesheet').append(animation).append(keyframes);\n    }\n\n    /* CHECK THE CURRENT ICON NAME WITH THE PREVIOUS */\n    if (init) {\n        compose_icon();\n\n        instance.data.init = false;\n    } else if (instance.data.currentIconName !== iconName) {\n        $('div').remove('#' + id);\n\n        compose_icon();\n    }\n\n    /* STYLE */\n    $(instance.data.currentIcon).css({'width':size, 'height':size});\n    $(instance.data.currentIcon).css('margin', marginV + ' auto');\n    $(instance.data.currentIcon).css('color', color);\n    $(instance.data.currentIcon).css('transform', 'rotate(' + rotate + 'deg) rotateX(' + flipX + 'deg) rotateY(' + flipY + 'deg) scale(' + processedScale + ')');\n    $(instance.data.currentIcon).css('filter', dropShadow);\n    $(instance.data.currentIcon).css('transition', 'all ' + transition + 'ms ease');\n    $(instance.data.currentIcon).css('cursor', cursor);\n    $(instance.data.currentIcon).toggleClass('spin', spin);\n}"},"reset":{"fn":""}}}}};
window._bubble_page_load_data.plugins_size['1604083196447x185573648335896580'] = 8550;
window.preloaded['plugin/third_party:1604083196447x185573648335896580:2.3.3'] = true;
window.plugins["1605114169605x735770390476357600"] = {"human":"Uppy Pro","dependencies":{"use_jquery":false,"plugin_api_version":"2"},"plugin_elements":{"AKH":{"display":"uppy pro uploader","property_applications":{"resizable":true,"MinWidth":true,"Background":true},"add_is_visible":true,"add_large_file_upload_properties":true,"fields":{"AKK":{"caption":"upload from camera","name":"use_webcam","rank":1,"editor":"Checkbox","default_val":true},"AKe":{"caption":"UPLOADER CONFIG","name":"uploader_config","rank":4,"editor":"Label"},"AKf":{"caption":"show progress details","name":"show_progress_details","rank":8,"editor":"Checkbox","default_val":false},"AKk":{"caption":"hide progress after finish","name":"hide_progress_after_finish","rank":9,"editor":"Checkbox","default_val":true},"AKm":{"caption":"disable status bar","name":"disable_status_bar","rank":10,"editor":"Checkbox","default_val":false},"AKn":{"caption":"disable informer","name":"disable_informer","rank":11,"editor":"Checkbox","default_val":false},"AKo":{"caption":"disable thumbnail generator","name":"disable_thumbnail_generator","rank":12,"editor":"Checkbox","default_val":false},"AKp":{"caption":"proudly display powered by uppy","name":"proudly_display_powered_by_uppy","rank":13,"editor":"Checkbox","default_val":false},"AKq":{"caption":"webcam video only","name":"webcam_video_only","rank":15,"editor":"Checkbox","default_val":false},"AKr":{"caption":"webcam audio & video","name":"webcam_video_audio","rank":14,"editor":"Checkbox","default_val":true},"AKs":{"caption":"webcam audio only","name":"webcam_audio_only","rank":16,"editor":"Checkbox","default_val":false},"AKt":{"caption":"webcam picture","name":"webcam_picture","rank":17,"editor":"Checkbox","default_val":false},"AKu":{"caption":"webcam mirror","name":"webcam_mirror","rank":18,"editor":"Checkbox","default_val":true},"AKv":{"caption":"webcam facing mode","name":"webcam_facing_mode","rank":19,"editor":"Dropdown","default_val":"user","optional":true},"AKy":{"caption":"webcam show recording_lengt","name":"webcam_show_recording_length","rank":21,"editor":"Checkbox","default_val":true},"AKz":{"caption":"webcam countdown","name":"webcam_countdown","rank":20,"editor":"Checkbox","default_val":false},"ALG":{"caption":"max number of files","name":"max_number_of_files","rank":7,"editor":"DynamicValue","value":"number","optional":true},"ALH":{"caption":"min number of files","name":"min_number_of_files","rank":5,"editor":"DynamicValue","value":"number","optional":true},"ALI":{"caption":"allowed file types","name":"allowed_file_types","rank":6,"editor":"DynamicValue","value":"text","optional":true},"ALK":{"caption":"attach to thing","name":"attach_to_thing","rank":22,"editor":"DynamicValue","value":"_any_thing","optional":true},"ALU":{"caption":"allow_multiple_uploads","name":"allow_multiple_uploads","rank":23,"editor":"Checkbox","default_val":false},"ALV":{"caption":"auto_proceed","name":"auto_proceed","rank":24,"editor":"Checkbox","default_val":false},"ALk":{"caption":"language code","name":"lang_code","rank":25,"editor":"DynamicValue","value":"text","optional":true},"ALl":{"caption":"language script","name":"lang_script","rank":26,"editor":"DynamicValue","value":"text","optional":true},"ALm":{"caption":"dashboard ui strings JSON","name":"dashboard_locale_strings","rank":27,"editor":"DynamicValue","value":"text","optional":true},"ALn":{"caption":"camera title","name":"camera_title","rank":28,"editor":"DynamicValue","value":"text","optional":true},"ALo":{"caption":"webcam ui strings (JSON)","name":"webcam_locale_strings","rank":29,"editor":"DynamicValue","value":"text","optional":true},"ALp":{"caption":"use screen capture","name":"enable_screen_capture","rank":3,"editor":"Checkbox","default_val":true},"ALq":{"caption":"use image editor","name":"enable_image_editor","rank":2,"editor":"Checkbox","default_val":true},"ALr":{"caption":"image editor config (JSON) (Advanced)","name":"image_editor_config","rank":30,"editor":"DynamicValue","value":"text","optional":true},"ALt":{"caption":"xhr uri endpoint","name":"xhr_endpoint","rank":34,"editor":"DynamicValue","value":"text","optional":true},"ALu":{"caption":"xhr method","name":"xhr_method","rank":33,"editor":"Dropdown","default_val":"post"},"ALv":{"caption":"post as formdata?","name":"xhr_use_formdata","rank":35,"editor":"Checkbox","default_val":false},"ALw":{"caption":"request headers (JSON)","name":"xhr_headers","rank":37,"editor":"DynamicValue","value":"text","default_val":"","optional":true},"ALx":{"caption":"file form field name","name":"xhr_field_name","rank":36,"editor":"DynamicValue","value":"text","optional":true},"ALy":{"caption":"allowed form post fields (JSON) ","name":"xhr_filter_metafields","rank":38,"editor":"DynamicValue","value":"text","default_val":"","optional":true},"ALz":{"caption":"bundle multi files in single POST?","name":"xhr_bundle","rank":39,"editor":"Checkbox","default_val":false},"AMB":{"caption":"meta data (JSON)","name":"meta","rank":31,"editor":"DynamicValue","value":"text","optional":true},"AMC":{"caption":"theme","name":"theme","rank":0,"editor":"Dropdown","default_val":"auto"},"AMD":{"caption":"upload destination","name":"upload_destination","rank":32,"editor":"Dropdown","default_val":"bubble"}},"states":{"AKL":{"caption":"current file url","name":"current_file_url","value":"text","initialization_code":{"fn":"function(properties, context) {\n\n\n\n}"}},"ALL":{"caption":"current file name","name":"current_file_name","value":"text","initialization_code":{"fn":"function(properties, context) {\n\n\n\n}"}},"ALM":{"caption":"current file type","name":"current_file_type","value":"text","initialization_code":{"fn":"function(properties, context) {\n\n\n\n}"}},"ALN":{"caption":"current file extension","name":"current_file_extension","value":"text","initialization_code":{"fn":"function(properties, context) {\n\n\n\n}"}},"ALO":{"caption":"current file size","name":"current_file_size","value":"number","initialization_code":{"fn":"function(properties, context) {\n\n\n\n}"}},"ALd":{"caption":"uploaded file urls","name":"all_file_urls","value":"text","initialization_code":{"fn":"function(properties, context) {\n\n\n\n}"},"is_list":true},"ALe":{"caption":"current file upload progress","name":"current_file_upload_progress","value":"number","initialization_code":{"fn":"function(properties, context) {\n\n\n\n}"}},"ALg":{"caption":"picker file names","name":"picker_file_names","value":"text","initialization_code":{"fn":"function(properties, context) {\n\n\n\n}"},"is_list":true},"ALi":{"caption":"picker file mimes","name":"picker_file_mimes","value":"text","initialization_code":{"fn":"function(properties, context) {\n\n\n\n}"},"is_list":true},"ALj":{"caption":"picker file upload statuses","name":"picker_file_upload_statuses","value":"boolean","initialization_code":{"fn":"function(properties, context) {\n\n\n\n}"},"is_list":true},"AMI":{"caption":"http response status (xhr only)","name":"xhr_response_status","value":"number","initialization_code":{"fn":"function(properties, context) {\n\n\n\n}"}},"AMJ":{"caption":"http response body (xhr only)","name":"xhr_response_body","value":"text","initialization_code":{"fn":"function(properties, context) {\n\n\n\n}"}},"AMW":{"caption":"current file id","name":"current_file_id","value":"text","initialization_code":{"fn":"function(properties, context) {\n\n\n\n}"}},"AMZ":{"caption":"(xhr) each file has an upload url?","name":"urls_set","value":"boolean","initialization_code":{"fn":"function(properties, context) {\n\n\n\n}"}},"AMb":{"caption":"(xhr) file upload uri list","name":"xhr_file_upload_uri_list","value":"text","initialization_code":{"fn":"function(properties, context) {\n\n\n\n}"},"is_list":true}},"events":{"ALC":{"caption":"file upload complete","name":"file_upload_complete"},"ALD":{"caption":"upload session complete","name":"upload_session_complete"},"ALX":{"caption":"file(s) added","name":"file_added"},"ALY":{"caption":"files removed","name":"file_removed"},"AMT":{"caption":"get upload uri","name":"trigger_get_url"}},"actions":{"AKW":{"caption":"upload files","code":{"fn":"function(instance, properties, context) {\n\ninstance.data.upload(); \n  //Do the operation\n\n\n\n}"}},"ALW":{"caption":"reset uploader","code":{"fn":"function(instance, properties, context) {\n\ninstance.data.uppy.reset();\ninstance.data.allFileURLs = [];\ninstance.data.uploadURIs = [];\n    \ninstance.publishState('current_file_name', null);\ninstance.publishState('current_file_type', null);\ninstance.publishState('current_file_extension',null); \ninstance.publishState('current_file_size', null);\ninstance.publishState('current_file_upload_progress', null);\ninstance.publishState('all_file_urls', null);\ninstance.publishState('picker_file_names', null);\ninstance.publishState('picker_file_mimes', null);     \ninstance.publishState('picker_file_upload_statuses', null);    \n\n}"}},"ALf":{"caption":"clear outputs","code":{"fn":"function(instance, properties, context) {\n\ninstance.data.uploadURIs = [];\ninstance.publishState('current_file_name', null);\ninstance.publishState('current_file_type', null);\ninstance.publishState('current_file_extension',null); \ninstance.publishState('current_file_size', null);\ninstance.publishState('current_file_upload_progress', null );\ninstance.publishState('all_file_urls', null );\ninstance.publishState('picker_file_names', null);\ninstance.publishState('picker_file_mimes', null);     \ninstance.publishState('picker_file_upload_statuses', null);\n\n\n}"}},"AMO":{"caption":"get next URI on remaining files","code":{"fn":"function(instance, properties, context) {\n\n\n//Load any data \n//let uploadURIs = instance.data.uploadURIs.filter( i => i.url == null);\ninstance.data.findEmptyUploadURL();\n \n //Do the operation\n\n\n\n}"}},"AMQ":{"caption":"set upload uri","code":{"fn":"function(instance, properties, context) {\n\nlet err = null;\n\n  //Load any data \ntry{ \n    instance.data.uploadURIs.find( i => properties.file_id == i.id ).uri = properties.uri\n}\ncatch{\n    err = true;\n    context.reportDebugger(\"Uppy Bubble: Couldn't find the file id to apply the upload uri endpoint\")\n}\n  //Do the operation\n\nif ( properties[\"trigger_next_'get_upload_uri'_workflow\"] ) instance.data.findEmptyUploadURL();\n\nif (err != true){\n    instance.publishState('xhr_file_upload_uri_list', instance.data.uploadURIs.map( f => f.uri) );\n    const file = instance.data.uppy.getFile(properties.file_id)\n    instance.data.uppy.setFileState(properties.file_id, {\n      xhrUpload: {\n        ...file.xhrUpload,\n        endpoint: properties.uri\n      }\n    });\n}\n\n\n\n}"},"fields":{"AMU":{"caption":"uri","name":"uri","rank":0,"editor":"DynamicValue","value":"text"},"AMV":{"caption":"file id","name":"file_id","rank":1,"editor":"DynamicValue","value":"text"},"AMY":{"caption":"trigger next 'get upload uri' workflow","name":"trigger_next_'get_upload_uri'_workflow","rank":2,"editor":"Checkbox","default_val":true}}}},"code":{"preview":{"fn":"function(instance, properties) {\n    instance.canvas.style.border = ' 1px solid grey'\n    instance.canvas.style.background = \"url('https://01246d7e30dd8ee862a8dba3b426a683.cdn.bubble.io/f1578670985990x199833086222686900/uppy-logo-2019%20%281%29.svg') center center no-repeat\"\n    instance.canvas.style.height = (properties.bubble.height() - 2) + 'px'\n    instance.canvas.style.width = (properties.bubble.width() - 2)+ 'px'\n    instance.canvas.style.backgroundColor = '#F5F5F5'\n    \n}"},"initialize":{"fn":"\nfunction(instance, context) {\n\n//Polyfill for old iOS\n    \nif ( typeof ResizeObserver == \"undefined\"){\n    window.ResizeObserver = class {\n      constructor(callback) {\n        this.observables = [];\n          // Array of observed elements that looks like this:\n          // [{\n          //   el: domNode,\n          //   size: {height: x, width: y}\n          // }]\n        this.boundCheck = this.check.bind(this);\n        this.boundCheck();\n        this.callback = callback;\n      }\n\n      observe(el) {\n        if (this.observables.some((observable) => observable.el === el)) {\n          return;\n        }\n        const newObservable = {\n          el: el,\n          size: {\n            height: el.clientHeight,\n            width: el.clientWidth\n          }\n        }\n        this.observables.push(newObservable);\n      }\n\n      unobserve(el) {\n        this.observables = this.observables.filter((obj) => obj.el !== el);\n      }\n\n      disconnect() {\n        this.observables = [];\n      }\n\n      check() {\n        const changedEntries = this.observables.filter((obj) => {\n          const currentHeight = obj.el.clientHeight;\n          const currentWidth = obj.el.clientWidth;\n          if (obj.size.height !== currentHeight || obj.size.width !== currentWidth) {\n            obj.size.height = currentHeight;\n            obj.size.width = currentWidth;\n            return true;\n          }\n        }).map((obj) => obj.el);\n        if (changedEntries.length > 0) {\n          this.callback(changedEntries);\n        }\n        window.requestAnimationFrame(this.boundCheck);\n      }\n    }\n} \n    \ninstance.data.divName = \"id\"+Math.round(Math.random()*1000000) + 1\ninstance.canvas.innerHTML = `<div id=\"${instance.data.divName}\"></div>`\ninstance.data.debounceLockout = false;\ninstance.data.debounce = function (fn){\n    if ( instance.data.debounceLockout != true ) {\n        instance.data.debounceLockout = true;\n        setTimeout ( _ => instance.data.debounceLockout = false, 250);\n    }\n}\n\n}\n"},"update":{"fn":"function(instance, properties, context){\n    // uppy pro\n\n    // check init\n    if (instance.data.init_is_complete != true){\n        setTimeout(init, 100);\n        instance.data.init_is_complete = true;\n    }\n    else {\n        return\n    }\n    \n     function init(){    \n        \n        //load settings \n        \n        // uppy general & dashboard settings\n        instance.data.allFileURLs = [];\n        instance.data.uploadURIs = [];\n\n        //set max file size in bytes\n        if (properties.bubble.max_size() > 5000 && properties.upload_destination === \"bubble\" ) instance.data.maxFileSizeBytes = 5000 * 1024 * 1024;\n        else instance.data.maxFileSizeBytes = properties.bubble.max_size() * 1024 * 1024;\n        instance.data.allowedFileTypes = properties.allowed_file_types.split(',').forEach(e => e = e.trim());\n        // parse locale string\n        instance.data.dashboardLocaleStrings = {};\n        try {\n            instance.data.dashboardLocaleStrings = JSON.parse(properties.dashboard_locale_strings);\n        }\n        catch(err){\n            console.error ('Uppy Bubble: Uppy dashboard local strings JSON - ' , err)\n        }\n\n        //parse  meta\n        instance.data.meta = null;\n        try {\n            instance.data.meta = JSON.parse(properties.meta);\n        } catch(err){\n            console.error(\"Uppy Bubble: Error parsing meta JSON\", err)\n        }\n        instance.data.uppyDashboardSettings = { \n                target: `#${instance.data.divName}`,\n                theme: properties.theme,\n                inline: true ,\n                id : instance.data.divName,\n                width: properties.bubble.width(),\n                height: properties.bubble.height(),\n                showProgressDetails: properties.show_progress_details,\n                hideProgressAfterFinish: properties.hide_progress_after_finish,\n                disableStatusBar: properties.disable_status_bar,\n                disableInformer: properties.disable_informer,\n                disableThumbnailGenerator: properties.disable_thumbnail_generator,\n                proudlyDisplayPoweredByUppy: properties.proudly_display_powered_by_uppy,\n                hideUploadButton: true,\n                hideRetryButton: true,\n                hidePauseResumeButton: true,\n                hideCancelButton: true,\n                locale : {\n                    strings : instance.data.dashboardLocaleStrings\n                }\n        }\n\n        instance.data.uppyGeneralSettings = {\n            meta: instance.data.meta,\n            restrictions: {\n                    maxFileSize: instance.data.maxFileSizeBytes,\n                    maxNumberOfFiles: properties.max_number_of_files,\n                    minNumberOfFiles: properties.min_number_of_files || 1,\n                    allowedFileTypes: instance.data.allowedFileTypes\n                },\n            allowMultipleUploadBatches: properties.allow_multiple_uploads,\n            autoProceed : properties.auto_proceed,\n            debug : false,\n            onBeforeFileAdded : (file) => {return file},\n            onBeforeUpload : (files) => { return files}\n        };\n\n\n        if (properties.lang_code != undefined && properties.lang_code !== \"\" ) {\n            uppyGeneralSettings.locale = Uppy.locales[properties.lang_code];\n            instance.data.uppyDashboardSettings.locale = Uppy.locales[properties.lang_code];\n        }\n\n        //xhr settings\n        try{\n            instance.data.metafields = JSON.parse(properties.xhr_filter_metafields);\n        }\n        catch(err){\n           console.error('Uppy Bubble: Could not parse metafields JSON', err)\n        }\n        try{\n           instance.data.xhrHeaders = JSON.parse(properties.xhr_headers);\n        }\n        catch(err){\n           console.error('Uppy Bubble: Could not parse xhr headers JSON', err);\n        }\n\n        if (properties.upload_destination === 'xhr'){\n           instance.data.xhrConfig = { \n               endpoint:    properties.xhr_endpoint || null, //text (URI) \n               method:      properties.xhr_method || \"post\", //text (HTTP verb: \"POST\",\"PUT\", etc)\n               formData:    properties.xhr_use_formdata, //bool\n               headers:     instance.data.xhrHeaders, // object\n               fieldName:   properties.xhr_field_name || null, // text\n               metaFields : instance.data.metafields || null // object\n           };\n\n        }\n\n        // webcam settings\n        instance.data.webcamLocaleStrings = {};\n        instance.data.webcamSettings = {};\n        instance.data.webcamModes = [];\n        if (properties.use_webcam === true){\n             if (properties.webcam_video_only == true){\n                 instance.data.webcamModes.push('video-only');\n             }\n             if (properties.webcam_video_audio == true){\n                 instance.data.webcamModes.push('video-audio');\n             }\n             if (properties.webcam_audio_only == true){\n                 instance.data.webcamModes.push('audio-only');\n             }\n             if (properties.webcam_picture == true){\n                 instance.data.webcamModes.push('picture');\n             }\n\n             try {\n                 instance.data.webcamLocaleStrings =  JSON.parse ( properties.webcam_locale_strings );\n             }\n             catch (err) {\n                 console.error('Uppy Bubble: Error parsing webcam locale JSON. ' + err)\n             }\n             instance.data.webcamSettings = {\n                 mirror: properties.webcam_mirror,\n                 facingMode: properties.webcam_facing_mode,\n                 showRecordingLength: properties.webcam_show_recording_length,\n                 target : Uppy.Dashboard,\n                 onBeforeSnapshot : _ => Promise.resolve(),\n                 countdown: properties.webcam_countdown,\n                 modes: instance.data.webcamModes,\n                 showRecordingLength: properties.webcam_show_recording_length,\n                 locale: {\n                     strings : instance.data.webcamLocaleStrings,\n                 },\n             }\n        }\n\n        // image editor settings\n        if (properties.enable_image_editor == true){\n               instance.data.imageEditorConfig = {};\n               if (properties.image_editor_config != \"\" && properties.image_editor_config != undefined){\n                   try{\n                       instance.data.imageEditorConfig = JSON.parse(properties.image_editor_config);\n                   }\n                       catch(err){\n                           console.error(\"Uppy Bubble: error parsing image editor config JSON - \" + err);\n                   }\n               }\n               instance.data.imageEditorConfig.target = Uppy.Dashboard;\n        }\n\n\n\n\n\n        if (properties.lang_script != undefined &&\n           properties.lang_script != \"\" &&\n           instance.data.lang_check != true ) {\n                var sc = document.createElement(\"script\");\n                sc.setAttribute(\"src\", properties.lang_script);\n                sc.setAttribute(\"type\", \"text/javascript\");\n                let script = document.querySelector('head').appendChild(sc);\n                instance.data.lang_check = true;\n                setTimeout(init, 100);\n                return\n        }\n        \n        //instantiate uppy\n        instance.data.uppy = new Uppy.Core(instance.data.uppyGeneralSettings);\n        instance.data.uppy.use(Uppy.Dashboard, instance.data.uppyDashboardSettings);\n\n        //load optional 'plugins'\n        if (properties.upload_destination === \"xhr\") instance.data.uppy.use(Uppy.XHRUpload, instance.data.xhrConfig );\n        if (properties.use_webcam === true) instance.data.uppy.use(Uppy.Webcam, instance.data.webcamSettings);\n        if (properties.enable_screen_capture == true) instance.data.uppy.use(Uppy.ScreenCapture, { target: Uppy.Dashboard })\n        if (properties.enable_image_editor === true) instance.data.uppy.use(Uppy.ImageEditor, instance.data.imageEditorConfig )\n\n        //setup uppy event listeners\n        instance.data.uppy.on('cancel-all',() => {\n            instance.data.fileCount = 0; \n            instance.data.allFileURLs = [];\n        });\n\n        instance.data.uppy.on('file-added', (file) => {\n            instance.data.publishFileStates(file, \"urls\");\n            if (instance.data.debounceLockout == false) instance.triggerEvent('file_added') ;\n            instance.data.debounce();\n\n        });\n\n        instance.data.uppy.on('file-removed',(file) => {\n            instance.data.publishFileStates(file, \"file-removed\");\n            if (instance.data.debounceLockout == false) instance.triggerEvent('file_removed') ;\n            instance.data.debounce();\n\n        });\n\n        instance.data.uppy.on('upload-success', (file,response) => {\n            if (properties.upload_destination === \"xhr\"){\n                let resBody;\n                instance.triggerEvent('file_upload_complete');\n\t\t\t\tinstance.data.uploadURIs.find( i => i.id == file.id).uploaded = true;\n                if (typeof response.body === \"object\" ) resBody = JSON.stringify(response.body);\n                else if (typeof response.body === \"string\") resBody = response.body;\n                else if (typeof response.body === \"undefined\") resBody = \"\";\n\n                instance.publishState('xhr_response_body', resBody );\n                instance.publishState('xhr_response_status', response.status);\n            }\n        });\n\n    }\n        //file upload - bubble s3 complete\n        instance.data.bubbleS3FileDone = function (err, url, id, data){\n            let file = instance.data.file\n            let files = instance.data.uppy.getState().files;\n\n            if (err != undefined) {\n                console.error('Uppy Bubble: issue uploading to bubble s3 - ' + err);\n                return\n            }\n\n            instance.data.allFileURLs.push(url);\n            instance.publishState('current_file_url', url);\n            instance.publishState('all_file_urls', instance.data.allFileURLs);\n            instance.data.publishFileStates(data, \"all files\");\n            instance.data.setUppy( 100 , id , null , true);  //mark file as complete\n\n            setTimeout(instance.triggerEvent('file_upload_complete'), 500);\n\n            for (let id in files){\n               if (files[id].progress.uploadComplete === false ) return\n            }\n\n            instance.triggerEvent('upload_session_complete');\n        }\n\n        //file upload - kick off\n        instance.data.upload = function (){\n           let uppyFiles = instance.data.uppy.getState().files ;\n\n           if (properties.upload_destination === 'bubble'){\n               instance.data.uppy.getFiles().forEach(file => {\n \n\n                   if (file != undefined & file.progress.uploadComplete === false ) {\n\n                       //if blob exists, make it a file \n                       let data;\n                       if(file.data instanceof File) data = file.data;\n                       else data = new File([file.data], file.name);\n                       \n                       setTimeout(\n                           instance.data.fileUpload(data, file.id )\n                       , 150);\n                   }\n               }) \n           }\n\n           if (properties.upload_destination === \"xhr\"){\n               \n               instance.data.uppy.upload();\n           }\n\n        }\n\n    \tinstance.data.triggerNextFileAction = function(){\n            context.publishState('file_id', instance.data.file_queue[0].id);\n            instance.data.file_queue.shift();\n            setTimeout(instance.data.triggerNextFileAction, 500);\n        }\n\n        //file upload - bubble s3 update status\n        instance.data.fileUpload = ( data , id ) =>{\n\n            if(instance.canUploadFile(data)){\n                //  bubble S3 uploader function\n                instance.uploadFile( \n                    data, // local file blob\n                    (err,url) => instance.data.bubbleS3FileDone(err,url,id,data),  //upload complete callback fn\n                    properties.attach_to_thing || null, //attach to \n                    pct => instance.data.bubbleS3FileProg(pct, id, data.size) //upload status callback fn\n                )\n            }\n            else console.error('Uppy Bubble: file not ready!' + file.name)\n\n        }\n        instance.data.bubbleS3FileProg = function (pct, id, size){\n            instance.data.setUppy(pct,id, size);\n        }\n        \n        //file upload - publish state\n\n        instance.data.publishFileStates = function (file, action ) {\n           \n           instance.data.syncUppyURIs();\n           instance.publishState('current_file_name', file.name);\n           instance.publishState('current_file_type', file.type);\n           instance.publishState('current_file_extension',file.extension); \n           instance.publishState('current_file_size', file.size);\n           instance.publishState('current_file_id', file.id);\n           instance.publishState('xhr_file_upload_uri_list', instance.data.uploadURIs.map( f => f.uri) );\n           instance.publishState('picker_file_names', instance.data.uppy.getFiles().map( f => f.data.name));\n           instance.publishState('picker_file_mimes', instance.data.uppy.getFiles().map( f => f.data.type));     \n           instance.publishState('picker_file_upload_statuses', instance.data.uppy.getFiles().map( f => f.progress.uploadComplete));\n            \n           \n           \n        }\n\n        //sync states of the uppy files object and url object\n        instance.data.syncUppyURIs = function() {\n            for ( let file of instance.data.uppy.getFiles() ){\n                if ( instance.data.uploadURIs.some( f => f.id == file.id) == false){\n                    instance.data.uploadURIs.push({ id:file.id , uri: null , uploaded: false })\n                    instance.publishState('urls_set', false);\n                    //set url state to false because we added new files;\n                }\n                else if ( file.progress.uploadComplete ) {\n                    instance.data.uploadURIs.find( i => i.id = file.id ).uploaded = true;\n                }\n            }\n            for ( let urlObj of instance.data.uploadURIs ){\n                if ( instance.data.uppy.getFiles().some( f => f.id == urlObj.id) == false){\n                    instance.data.uploadURIs.splice(instance.data.uploadURIs.indexOf(urlObj),1);\n                }\n                //set the url_set state to 'true' if we have urls for all items\n                if ( instance.data.uploadURIs.some( e => e.uploaded == false) ){\n                    instance.publishState('urls_set', false);\n                }\n                else{\n                        instance.publishState('urls_set', true);\n                }\n\n            }\n       }\n        \n    \n            instance.data.setUppy = function ( pct, fileID, size, complete = false){\n            let progressObj = {};\n            if ( !complete ){\n                progressObj =  {\n                   uploadStarted: true,\n                   bytesUploaded: Math.floor(size * pct),\n                   bytesTotal: size,\n                   percentage: Math.floor(pct * 100)\n                }\n            }\n            else{\n                progressObj =  {\n                   uploadStarted: false,\n                   uploadComplete: true\n                }\n            }\n\n            const updatedFiles = Object.assign({}, instance.data.uppy.getState().files);\n            const updatedFile = Object.assign({}, updatedFiles[fileID], {\n               progress: Object.assign({}, updatedFiles[fileID].progress, progressObj),\n            });\n\n            updatedFiles[fileID] = updatedFile;\n            instance.data.uppy.setState({ files: updatedFiles });\n            instance.publishState('current_file_upload_progress', Math.floor(pct * 100) );\n\n        }\n        \n        instance.data.findEmptyUploadURL = function (){\n               let urlObj = instance.data.uploadURIs.find(e => e.uri == undefined && e.uploaded == false );\n               if ( urlObj != undefined ) {\n                    let file = instance.data.uppy.getFile(urlObj.id);\n               \t\tinstance.data.publishFileStates(file);\n               \t\tinstance.triggerEvent('trigger_get_url');\n               }\n               else{\n                   instance.publishState('urls_set', true);\n               }\n               \n        }\n      \n}","add_debugger":false},"reset":{"fn":"function(instance, context) {\n\n\n\n}"}}}}};
window._bubble_page_load_data.plugins_size['1605114169605x735770390476357600'] = 30467;
window.preloaded['plugin/third_party:1605114169605x735770390476357600:2.1.13'] = true;
window.plugins["1608469100580x213930232373051400"] = {"human":"VideoJS Advanced + MUX (All Media)","dependencies":{"use_jquery":true,"plugin_api_version":"3"},"plugin_api":{"human":"Endpoint: ","calls":{"ADi":{"name":"Get data (vimeo)","method":"get","publish_as":"action","should_reinitialize":true,"url":"https://player.vimeo.com/video/[vimeo_id]/config","url_params":{"ADl":{"key":"vimeo_id","value":"","private":true,"doc":"Enter a valid Vimeo video Id here. A list of URL's containing multiple MP4 files at various qualities can be found at request.files.progressive.url.\n\nYou can sort by quality to get the highest available.\n\nUpdate: Oct 2022 Vimeo have changed the data making the MP4 data no longer visible. This will work for videos before that time but newer videos you will have to use their own API service to retrieve the MP4 link or utilise their own player instead of videoJS."}},"initialized":true,"types":"{\"plugin_api.ADi\":{\"caption\":\"Get data (vimeo)\",\"fields\":{\"_p_cdn_url\":{\"ret_value\":\"text\",\"caption\":\"cdn_url\",\"sample_value\":\"https://f.vimeocdn.com\"},\"_p_vimeo_api_url\":{\"ret_value\":\"text\",\"caption\":\"vimeo_api_url\",\"sample_value\":\"api.vimeo.com\"},\"_p_request.files.dash.separate_av\":{\"ret_value\":\"boolean\",\"caption\":\"request files dash separate_av\",\"sample_value\":true,\"path\":[\"request\",\"files\",\"dash\",\"separate_av\"]},\"_p_request.files.dash.streams\":{\"ret_value\":\"list.api.1608469100580x213930232373051400.plugin_api.ADi.request.files.dash.streams\",\"caption\":\"request files dash streams\",\"path\":[\"request\",\"files\",\"dash\",\"streams\"]},\"_p_request.files.dash.cdns.akfire_interconnect_quic.url\":{\"ret_value\":\"text\",\"caption\":\"request files dash cdns akfire_interconnect_quic url\",\"sample_value\":\"https://72vod-adaptive.akamaized.net/exp=1621602290~acl=%2F76979871%2F%2A~hmac=a1980148102482aebf9238655dd70ba06dc979643e1e001d112e4f76b80ac854/76979871/sep/video/449262797,468975811,449260571,449260574/master.json?base64_init=1\",\"path\":[\"request\",\"files\",\"dash\",\"cdns\",\"akfire_interconnect_quic\",\"url\"]},\"_p_request.files.dash.cdns.akfire_interconnect_quic.origin\":{\"ret_value\":\"text\",\"caption\":\"request files dash cdns akfire_interconnect_quic origin\",\"sample_value\":\"gcs\",\"path\":[\"request\",\"files\",\"dash\",\"cdns\",\"akfire_interconnect_quic\",\"origin\"]},\"_p_request.files.dash.cdns.akfire_interconnect_quic.avc_url\":{\"ret_value\":\"text\",\"caption\":\"request files dash cdns akfire_interconnect_quic avc_url\",\"sample_value\":\"https://72vod-adaptive.akamaized.net/exp=1621602290~acl=%2F76979871%2F%2A~hmac=a1980148102482aebf9238655dd70ba06dc979643e1e001d112e4f76b80ac854/76979871/sep/video/449262797,468975811,449260571,449260574/master.json?base64_init=1\",\"path\":[\"request\",\"files\",\"dash\",\"cdns\",\"akfire_interconnect_quic\",\"avc_url\"]},\"_p_request.files.dash.cdns.fastly_skyfire.url\":{\"ret_value\":\"text\",\"caption\":\"request files dash cdns fastly_skyfire url\",\"sample_value\":\"https://skyfire.vimeocdn.com/1621602290-0x153b0b0f5eb528a9e1715b23b81a5b533d94f584/76979871/sep/video/449262797,468975811,449260571,449260574/master.json?base64_init=1\",\"path\":[\"request\",\"files\",\"dash\",\"cdns\",\"fastly_skyfire\",\"url\"]},\"_p_request.files.dash.cdns.fastly_skyfire.origin\":{\"ret_value\":\"text\",\"caption\":\"request files dash cdns fastly_skyfire origin\",\"sample_value\":\"gcs\",\"path\":[\"request\",\"files\",\"dash\",\"cdns\",\"fastly_skyfire\",\"origin\"]},\"_p_request.files.dash.cdns.fastly_skyfire.avc_url\":{\"ret_value\":\"text\",\"caption\":\"request files dash cdns fastly_skyfire avc_url\",\"sample_value\":\"https://skyfire.vimeocdn.com/1621602290-0x153b0b0f5eb528a9e1715b23b81a5b533d94f584/76979871/sep/video/449262797,468975811,449260571,449260574/master.json?base64_init=1\",\"path\":[\"request\",\"files\",\"dash\",\"cdns\",\"fastly_skyfire\",\"avc_url\"]},\"_p_request.files.dash.streams_avc\":{\"ret_value\":\"list.api.1608469100580x213930232373051400.plugin_api.ADi.request.files.dash.streams_avc\",\"caption\":\"request files dash streams_avc\",\"path\":[\"request\",\"files\",\"dash\",\"streams_avc\"]},\"_p_request.files.dash.default_cdn\":{\"ret_value\":\"text\",\"caption\":\"request files dash default_cdn\",\"sample_value\":\"akfire_interconnect_quic\",\"path\":[\"request\",\"files\",\"dash\",\"default_cdn\"]},\"_p_request.files.hls.separate_av\":{\"ret_value\":\"boolean\",\"caption\":\"request files hls separate_av\",\"sample_value\":true,\"path\":[\"request\",\"files\",\"hls\",\"separate_av\"]},\"_p_request.files.hls.default_cdn\":{\"ret_value\":\"text\",\"caption\":\"request files hls default_cdn\",\"sample_value\":\"akfire_interconnect_quic\",\"path\":[\"request\",\"files\",\"hls\",\"default_cdn\"]},\"_p_request.files.hls.cdns.akfire_interconnect_quic.url\":{\"ret_value\":\"text\",\"caption\":\"request files hls cdns akfire_interconnect_quic url\",\"sample_value\":\"https://72vod-adaptive.akamaized.net/exp=1621602290~acl=%2F76979871%2F%2A~hmac=a1980148102482aebf9238655dd70ba06dc979643e1e001d112e4f76b80ac854/76979871/sep/video/468975811,449262797,449260574,449260571/subtitles/170-Deutsch-de,171-Espa%C3%B1ol-es,140662-English-en,4678937-Fran%C3%A7ais-fr/master.m3u8?external-subs=1\",\"path\":[\"request\",\"files\",\"hls\",\"cdns\",\"akfire_interconnect_quic\",\"url\"]},\"_p_request.files.hls.cdns.akfire_interconnect_quic.origin\":{\"ret_value\":\"text\",\"caption\":\"request files hls cdns akfire_interconnect_quic origin\",\"sample_value\":\"gcs\",\"path\":[\"request\",\"files\",\"hls\",\"cdns\",\"akfire_interconnect_quic\",\"origin\"]},\"_p_request.files.hls.cdns.akfire_interconnect_quic.captions\":{\"ret_value\":\"text\",\"caption\":\"request files hls cdns akfire_interconnect_quic captions\",\"sample_value\":\"https://72vod-adaptive.akamaized.net/exp=1621602290~acl=%2F76979871%2F%2A~hmac=a1980148102482aebf9238655dd70ba06dc979643e1e001d112e4f76b80ac854/76979871/video/468975811,449262797,449260574,449260571/subtitles/170-Deutsch-de,171-Espa%C3%B1ol-es,140662-English-en,4678937-Fran%C3%A7ais-fr/master.m3u8\",\"path\":[\"request\",\"files\",\"hls\",\"cdns\",\"akfire_interconnect_quic\",\"captions\"]},\"_p_request.files.hls.cdns.akfire_interconnect_quic.avc_url\":{\"ret_value\":\"text\",\"caption\":\"request files hls cdns akfire_interconnect_quic avc_url\",\"sample_value\":\"https://72vod-adaptive.akamaized.net/exp=1621602290~acl=%2F76979871%2F%2A~hmac=a1980148102482aebf9238655dd70ba06dc979643e1e001d112e4f76b80ac854/76979871/sep/video/468975811,449262797,449260574,449260571/subtitles/170-Deutsch-de,171-Espa%C3%B1ol-es,140662-English-en,4678937-Fran%C3%A7ais-fr/master.m3u8?external-subs=1\",\"path\":[\"request\",\"files\",\"hls\",\"cdns\",\"akfire_interconnect_quic\",\"avc_url\"]},\"_p_request.files.hls.cdns.fastly_skyfire.url\":{\"ret_value\":\"text\",\"caption\":\"request files hls cdns fastly_skyfire url\",\"sample_value\":\"https://skyfire.vimeocdn.com/1621602290-0x153b0b0f5eb528a9e1715b23b81a5b533d94f584/76979871/sep/video/468975811,449262797,449260574,449260571/subtitles/170-Deutsch-de,171-Espa%C3%B1ol-es,140662-English-en,4678937-Fran%C3%A7ais-fr/master.m3u8?external-subs=1\",\"path\":[\"request\",\"files\",\"hls\",\"cdns\",\"fastly_skyfire\",\"url\"]},\"_p_request.files.hls.cdns.fastly_skyfire.origin\":{\"ret_value\":\"text\",\"caption\":\"request files hls cdns fastly_skyfire origin\",\"sample_value\":\"gcs\",\"path\":[\"request\",\"files\",\"hls\",\"cdns\",\"fastly_skyfire\",\"origin\"]},\"_p_request.files.hls.cdns.fastly_skyfire.captions\":{\"ret_value\":\"text\",\"caption\":\"request files hls cdns fastly_skyfire captions\",\"sample_value\":\"https://skyfire.vimeocdn.com/1621602290-0x153b0b0f5eb528a9e1715b23b81a5b533d94f584/76979871/video/468975811,449262797,449260574,449260571/subtitles/170-Deutsch-de,171-Espa%C3%B1ol-es,140662-English-en,4678937-Fran%C3%A7ais-fr/master.m3u8\",\"path\":[\"request\",\"files\",\"hls\",\"cdns\",\"fastly_skyfire\",\"captions\"]},\"_p_request.files.hls.cdns.fastly_skyfire.avc_url\":{\"ret_value\":\"text\",\"caption\":\"request files hls cdns fastly_skyfire avc_url\",\"sample_value\":\"https://skyfire.vimeocdn.com/1621602290-0x153b0b0f5eb528a9e1715b23b81a5b533d94f584/76979871/sep/video/468975811,449262797,449260574,449260571/subtitles/170-Deutsch-de,171-Espa%C3%B1ol-es,140662-English-en,4678937-Fran%C3%A7ais-fr/master.m3u8?external-subs=1\",\"path\":[\"request\",\"files\",\"hls\",\"cdns\",\"fastly_skyfire\",\"avc_url\"]},\"_p_request.files.hls.captions\":{\"ret_value\":\"text\",\"caption\":\"request files hls captions\",\"sample_value\":\"https://72vod-adaptive.akamaized.net/exp=1621602290~acl=%2F76979871%2F%2A~hmac=a1980148102482aebf9238655dd70ba06dc979643e1e001d112e4f76b80ac854/76979871/video/468975811,449262797,449260574,449260571/subtitles/170-Deutsch-de,171-Espa%C3%B1ol-es,140662-English-en,4678937-Fran%C3%A7ais-fr/master.m3u8\",\"path\":[\"request\",\"files\",\"hls\",\"captions\"]},\"_p_request.files.progressive\":{\"ret_value\":\"list.api.1608469100580x213930232373051400.plugin_api.ADi.request.files.progressive\",\"caption\":\"request files progressive\",\"path\":[\"request\",\"files\",\"progressive\"]},\"_p_request.lang\":{\"ret_value\":\"text\",\"caption\":\"request lang\",\"sample_value\":\"en\",\"path\":[\"request\",\"lang\"]},\"_p_request.sentry.url\":{\"ret_value\":\"text\",\"caption\":\"request sentry url\",\"sample_value\":\"https://6f5f8e1cecfa40fb850f578b69fc1705@o189131.ingest.sentry.io/1297650\",\"path\":[\"request\",\"sentry\",\"url\"]},\"_p_request.sentry.enabled\":{\"ret_value\":\"boolean\",\"caption\":\"request sentry enabled\",\"sample_value\":false,\"path\":[\"request\",\"sentry\",\"enabled\"]},\"_p_request.sentry.debug_enabled\":{\"ret_value\":\"boolean\",\"caption\":\"request sentry debug_enabled\",\"sample_value\":true,\"path\":[\"request\",\"sentry\",\"debug_enabled\"]},\"_p_request.sentry.debug_intent\":{\"ret_value\":\"number\",\"caption\":\"request sentry debug_intent\",\"sample_value\":0,\"path\":[\"request\",\"sentry\",\"debug_intent\"]},\"_p_request.ab_tests.chunk_logging.track\":{\"ret_value\":\"boolean\",\"caption\":\"request ab_tests chunk_logging track\",\"sample_value\":false,\"path\":[\"request\",\"ab_tests\",\"chunk_logging\",\"track\"]},\"_p_request.ab_tests.chunk_logging.group\":{\"ret_value\":\"boolean\",\"caption\":\"request ab_tests chunk_logging group\",\"sample_value\":true,\"path\":[\"request\",\"ab_tests\",\"chunk_logging\",\"group\"]},\"_p_request.ab_tests.chromecast.track\":{\"ret_value\":\"boolean\",\"caption\":\"request ab_tests chromecast track\",\"sample_value\":false,\"path\":[\"request\",\"ab_tests\",\"chromecast\",\"track\"]},\"_p_request.ab_tests.chromecast.group\":{\"ret_value\":\"boolean\",\"caption\":\"request ab_tests chromecast group\",\"sample_value\":false,\"path\":[\"request\",\"ab_tests\",\"chromecast\",\"group\"]},\"_p_request.ab_tests.llhls_features.track\":{\"ret_value\":\"boolean\",\"caption\":\"request ab_tests llhls_features track\",\"sample_value\":true,\"path\":[\"request\",\"ab_tests\",\"llhls_features\",\"track\"]},\"_p_request.ab_tests.llhls_features.data.feature_timeout\":{\"ret_value\":\"boolean\",\"caption\":\"request ab_tests llhls_features feature_timeout\",\"sample_value\":false,\"path\":[\"request\",\"ab_tests\",\"llhls_features\",\"data\",\"feature_timeout\"]},\"_p_request.ab_tests.llhls_features.data.feature_switch\":{\"ret_value\":\"boolean\",\"caption\":\"request ab_tests llhls_features feature_switch\",\"sample_value\":false,\"path\":[\"request\",\"ab_tests\",\"llhls_features\",\"data\",\"feature_switch\"]},\"_p_request.ab_tests.llhls_features.group\":{\"ret_value\":\"boolean\",\"caption\":\"request ab_tests llhls_features group\",\"sample_value\":true,\"path\":[\"request\",\"ab_tests\",\"llhls_features\",\"group\"]},\"_p_request.referrer\":{\"ret_value\":\"text\",\"caption\":\"request referrer\",\"sample_value\":null,\"path\":[\"request\",\"referrer\"]},\"_p_request.cookie_domain\":{\"ret_value\":\"text\",\"caption\":\"request cookie_domain\",\"sample_value\":\".vimeo.com\",\"path\":[\"request\",\"cookie_domain\"]},\"_p_request.timestamp\":{\"ret_value\":\"number\",\"caption\":\"request timestamp\",\"sample_value\":1621598390,\"path\":[\"request\",\"timestamp\"]},\"_p_request.gc_debug.bucket\":{\"ret_value\":\"text\",\"caption\":\"request gc_debug bucket\",\"sample_value\":\"vimeo-player-debug\",\"path\":[\"request\",\"gc_debug\",\"bucket\"]},\"_p_request.expires\":{\"ret_value\":\"number\",\"caption\":\"request expires\",\"sample_value\":3600,\"path\":[\"request\",\"expires\"]},\"_p_request.text_tracks\":{\"ret_value\":\"list.api.1608469100580x213930232373051400.plugin_api.ADi.request.text_tracks\",\"caption\":\"request text_tracks\",\"path\":[\"request\",\"text_tracks\"]},\"_p_request.client.ip\":{\"ret_value\":\"text\",\"caption\":\"request client ip\",\"sample_value\":\"52.35.126.74\",\"path\":[\"request\",\"client\",\"ip\"]},\"_p_request.currency\":{\"ret_value\":\"text\",\"caption\":\"request currency\",\"sample_value\":\"USD\",\"path\":[\"request\",\"currency\"]},\"_p_request.session\":{\"ret_value\":\"text\",\"caption\":\"request session\",\"sample_value\":\"3552fbce58e6a9b8e13a757535064bf26b0d26f81621598390\",\"path\":[\"request\",\"session\"]},\"_p_request.cookie.scaling\":{\"ret_value\":\"number\",\"caption\":\"request cookie scaling\",\"sample_value\":1,\"path\":[\"request\",\"cookie\",\"scaling\"]},\"_p_request.cookie.volume\":{\"ret_value\":\"number\",\"caption\":\"request cookie volume\",\"sample_value\":1,\"path\":[\"request\",\"cookie\",\"volume\"]},\"_p_request.cookie.quality\":{\"ret_value\":\"text\",\"caption\":\"request cookie quality\",\"sample_value\":null,\"path\":[\"request\",\"cookie\",\"quality\"]},\"_p_request.cookie.hd\":{\"ret_value\":\"number\",\"caption\":\"request cookie hd\",\"sample_value\":0,\"path\":[\"request\",\"cookie\",\"hd\"]},\"_p_request.cookie.captions\":{\"ret_value\":\"text\",\"caption\":\"request cookie captions\",\"sample_value\":null,\"path\":[\"request\",\"cookie\",\"captions\"]},\"_p_request.build.backend\":{\"ret_value\":\"text\",\"caption\":\"request build backend\",\"sample_value\":\"1.38.9\",\"path\":[\"request\",\"build\",\"backend\"]},\"_p_request.build.js\":{\"ret_value\":\"text\",\"caption\":\"request build js\",\"sample_value\":\"3.28.1\",\"path\":[\"request\",\"build\",\"js\"]},\"_p_request.urls.barebone_js\":{\"ret_value\":\"text\",\"caption\":\"request urls barebone_js\",\"sample_value\":\"https://f.vimeocdn.com/p/3.28.1/js/barebone.js\",\"path\":[\"request\",\"urls\",\"barebone_js\"]},\"_p_request.urls.test_imp\":{\"ret_value\":\"text\",\"caption\":\"request urls test_imp\",\"sample_value\":\"https://fresnel.vimeocdn.com/add/player-test-impression\",\"path\":[\"request\",\"urls\",\"test_imp\"]},\"_p_request.urls.js_base\":{\"ret_value\":\"text\",\"caption\":\"request urls js_base\",\"sample_value\":\"https://f.vimeocdn.com/p/3.28.1/js/\",\"path\":[\"request\",\"urls\",\"js_base\"]},\"_p_request.urls.fresnel\":{\"ret_value\":\"text\",\"caption\":\"request urls fresnel\",\"sample_value\":\"https://fresnel.vimeocdn.com/add/player-stats\",\"path\":[\"request\",\"urls\",\"fresnel\"]},\"_p_request.urls.js\":{\"ret_value\":\"text\",\"caption\":\"request urls js\",\"sample_value\":\"https://f.vimeocdn.com/p/3.28.1/js/player.js\",\"path\":[\"request\",\"urls\",\"js\"]},\"_p_request.urls.proxy\":{\"ret_value\":\"text\",\"caption\":\"request urls proxy\",\"sample_value\":\"https://player.vimeo.com/static/proxy.html\",\"path\":[\"request\",\"urls\",\"proxy\"]},\"_p_request.urls.mux_url\":{\"ret_value\":\"text\",\"caption\":\"request urls mux_url\",\"sample_value\":\"https://f.vimeocdn.com/p/external/mux.js\",\"path\":[\"request\",\"urls\",\"mux_url\"]},\"_p_request.urls.fresnel_mimir_inputs_url\":{\"ret_value\":\"text\",\"caption\":\"request urls fresnel_mimir_inputs_url\",\"sample_value\":\"https://fresnel-events.vimeocdn.com/add/mimir_inputs\",\"path\":[\"request\",\"urls\",\"fresnel_mimir_inputs_url\"]},\"_p_request.urls.fresnel_chunk_url\":{\"ret_value\":\"text\",\"caption\":\"request urls fresnel_chunk_url\",\"sample_value\":\"https://fresnel-events.vimeocdn.com/add/chunk_downloads\",\"path\":[\"request\",\"urls\",\"fresnel_chunk_url\"]},\"_p_request.urls.three_js\":{\"ret_value\":\"text\",\"caption\":\"request urls three_js\",\"sample_value\":\"https://f.vimeocdn.com/p/external/three.rvimeo.min.js\",\"path\":[\"request\",\"urls\",\"three_js\"]},\"_p_request.urls.vuid_js\":{\"ret_value\":\"text\",\"caption\":\"request urls vuid_js\",\"sample_value\":\"https://f.vimeocdn.com/js_opt/modules/utils/vuid.min.js\",\"path\":[\"request\",\"urls\",\"vuid_js\"]},\"_p_request.urls.fresnel_manifest_url\":{\"ret_value\":\"text\",\"caption\":\"request urls fresnel_manifest_url\",\"sample_value\":\"https://fresnel-events.vimeocdn.com/add/playback_manifest\",\"path\":[\"request\",\"urls\",\"fresnel_manifest_url\"]},\"_p_request.urls.chromeless_css\":{\"ret_value\":\"text\",\"caption\":\"request urls chromeless_css\",\"sample_value\":\"https://f.vimeocdn.com/p/3.28.1/css/chromeless.css\",\"path\":[\"request\",\"urls\",\"chromeless_css\"]},\"_p_request.urls.player_telemetry_url\":{\"ret_value\":\"text\",\"caption\":\"request urls player_telemetry_url\",\"sample_value\":\"https://player-telemetry.vimeo.com/player-events\",\"path\":[\"request\",\"urls\",\"player_telemetry_url\"]},\"_p_request.urls.chromeless_js\":{\"ret_value\":\"text\",\"caption\":\"request urls chromeless_js\",\"sample_value\":\"https://f.vimeocdn.com/p/3.28.1/js/chromeless.js\",\"path\":[\"request\",\"urls\",\"chromeless_js\"]},\"_p_request.urls.css\":{\"ret_value\":\"text\",\"caption\":\"request urls css\",\"sample_value\":\"https://f.vimeocdn.com/p/3.28.1/css/player.css\",\"path\":[\"request\",\"urls\",\"css\"]},\"_p_request.signature\":{\"ret_value\":\"text\",\"caption\":\"request signature\",\"sample_value\":\"8f5c111df06ecec5500700449ccc6fbd\",\"path\":[\"request\",\"signature\"]},\"_p_request.flags.dnt\":{\"ret_value\":\"number\",\"caption\":\"request flags dnt\",\"sample_value\":0,\"path\":[\"request\",\"flags\",\"dnt\"]},\"_p_request.flags.preload_video\":{\"ret_value\":\"text\",\"caption\":\"request flags preload_video\",\"sample_value\":\"metadata_on_hover\",\"path\":[\"request\",\"flags\",\"preload_video\"]},\"_p_request.flags.plays\":{\"ret_value\":\"number\",\"caption\":\"request flags plays\",\"sample_value\":1,\"path\":[\"request\",\"flags\",\"plays\"]},\"_p_request.flags.partials\":{\"ret_value\":\"number\",\"caption\":\"request flags partials\",\"sample_value\":1,\"path\":[\"request\",\"flags\",\"partials\"]},\"_p_request.flags.autohide_controls\":{\"ret_value\":\"number\",\"caption\":\"request flags autohide_controls\",\"sample_value\":0,\"path\":[\"request\",\"flags\",\"autohide_controls\"]},\"_p_request.country\":{\"ret_value\":\"text\",\"caption\":\"request country\",\"sample_value\":\"US\",\"path\":[\"request\",\"country\"]},\"_p_request.file_codecs.avc\":{\"ret_value\":\"list.number\",\"caption\":\"request file_codecs avc\",\"sample_value\":468975811,\"path\":[\"request\",\"file_codecs\",\"avc\"]},\"_p_player_url\":{\"ret_value\":\"text\",\"caption\":\"player_url\",\"sample_value\":\"player.vimeo.com\"},\"_p_video.rating.id\":{\"ret_value\":\"number\",\"caption\":\"video rating id\",\"sample_value\":6,\"path\":[\"video\",\"rating\",\"id\"]},\"_p_video.version.current\":{\"ret_value\":\"text\",\"caption\":\"video version current\",\"sample_value\":null,\"path\":[\"video\",\"version\",\"current\"]},\"_p_video.height\":{\"ret_value\":\"number\",\"caption\":\"video height\",\"sample_value\":720,\"path\":[\"video\",\"height\"]},\"_p_video.duration\":{\"ret_value\":\"number\",\"caption\":\"video duration\",\"sample_value\":62,\"path\":[\"video\",\"duration\"]},\"_p_video.thumbs.640\":{\"ret_value\":\"text\",\"caption\":\"video thumbs 640\",\"sample_value\":\"https://i.vimeocdn.com/video/452001751_640\",\"path\":[\"video\",\"thumbs\",\"640\"]},\"_p_video.thumbs.960\":{\"ret_value\":\"text\",\"caption\":\"video thumbs 960\",\"sample_value\":\"https://i.vimeocdn.com/video/452001751_960\",\"path\":[\"video\",\"thumbs\",\"960\"]},\"_p_video.thumbs.1280\":{\"ret_value\":\"text\",\"caption\":\"video thumbs 1280\",\"sample_value\":\"https://i.vimeocdn.com/video/452001751_1280\",\"path\":[\"video\",\"thumbs\",\"1280\"]},\"_p_video.thumbs.base\":{\"ret_value\":\"text\",\"caption\":\"video thumbs base\",\"sample_value\":\"https://i.vimeocdn.com/video/452001751\",\"path\":[\"video\",\"thumbs\",\"base\"]},\"_p_video.owner.account_type\":{\"ret_value\":\"text\",\"caption\":\"video owner account_type\",\"sample_value\":\"enterprise\",\"path\":[\"video\",\"owner\",\"account_type\"]},\"_p_video.owner.name\":{\"ret_value\":\"text\",\"caption\":\"video owner name\",\"sample_value\":\"Vimeo Staff\",\"path\":[\"video\",\"owner\",\"name\"]},\"_p_video.owner.img\":{\"ret_value\":\"text\",\"caption\":\"video owner img\",\"sample_value\":\"https://i.vimeocdn.com/portrait/9934446_60x60.jpg\",\"path\":[\"video\",\"owner\",\"img\"]},\"_p_video.owner.url\":{\"ret_value\":\"text\",\"caption\":\"video owner url\",\"sample_value\":\"https://vimeo.com/staff\",\"path\":[\"video\",\"owner\",\"url\"]},\"_p_video.owner.img_2x\":{\"ret_value\":\"text\",\"caption\":\"video owner img_2x\",\"sample_value\":\"https://i.vimeocdn.com/portrait/9934446_120x120.jpg\",\"path\":[\"video\",\"owner\",\"img_2x\"]},\"_p_video.owner.id\":{\"ret_value\":\"number\",\"caption\":\"video owner id\",\"sample_value\":152184,\"path\":[\"video\",\"owner\",\"id\"]},\"_p_video.id\":{\"ret_value\":\"number\",\"caption\":\"video id\",\"sample_value\":76979871,\"path\":[\"video\",\"id\"]},\"_p_video.embed_code\":{\"ret_value\":\"text\",\"caption\":\"video embed_code\",\"sample_value\":\"<iframe title=\\\"vimeo-player\\\" src=\\\"https://player.vimeo.com/video/76979871\\\" width=\\\"640\\\" height=\\\"360\\\" frameborder=\\\"0\\\" allowfullscreen></iframe>\",\"path\":[\"video\",\"embed_code\"]},\"_p_video.title\":{\"ret_value\":\"text\",\"caption\":\"video title\",\"sample_value\":\"The New Vimeo Player (You Know, For Videos)\",\"path\":[\"video\",\"title\"]},\"_p_video.share_url\":{\"ret_value\":\"text\",\"caption\":\"video share_url\",\"sample_value\":\"https://vimeo.com/76979871\",\"path\":[\"video\",\"share_url\"]},\"_p_video.width\":{\"ret_value\":\"number\",\"caption\":\"video width\",\"sample_value\":1280,\"path\":[\"video\",\"width\"]},\"_p_video.embed_permission\":{\"ret_value\":\"text\",\"caption\":\"video embed_permission\",\"sample_value\":\"public\",\"path\":[\"video\",\"embed_permission\"]},\"_p_video.fps\":{\"ret_value\":\"number\",\"caption\":\"video fps\",\"sample_value\":24,\"path\":[\"video\",\"fps\"]},\"_p_video.spatial\":{\"ret_value\":\"number\",\"caption\":\"video spatial\",\"sample_value\":0,\"path\":[\"video\",\"spatial\"]},\"_p_video.logo_url\":{\"ret_value\":\"text\",\"caption\":\"video logo_url\",\"sample_value\":\"https://vimeo.com/embed-redirect/76979871\",\"path\":[\"video\",\"logo_url\"]},\"_p_video.live_event\":{\"ret_value\":\"text\",\"caption\":\"video live_event\",\"sample_value\":null,\"path\":[\"video\",\"live_event\"]},\"_p_video.allow_hd\":{\"ret_value\":\"number\",\"caption\":\"video allow_hd\",\"sample_value\":1,\"path\":[\"video\",\"allow_hd\"]},\"_p_video.hd\":{\"ret_value\":\"number\",\"caption\":\"video hd\",\"sample_value\":1,\"path\":[\"video\",\"hd\"]},\"_p_video.lang\":{\"ret_value\":\"text\",\"caption\":\"video lang\",\"sample_value\":\"en\",\"path\":[\"video\",\"lang\"]},\"_p_video.default_to_hd\":{\"ret_value\":\"number\",\"caption\":\"video default_to_hd\",\"sample_value\":0,\"path\":[\"video\",\"default_to_hd\"]},\"_p_video.url\":{\"ret_value\":\"text\",\"caption\":\"video url\",\"sample_value\":\"https://vimeo.com/76979871\",\"path\":[\"video\",\"url\"]},\"_p_video.privacy\":{\"ret_value\":\"text\",\"caption\":\"video privacy\",\"sample_value\":\"anybody\",\"path\":[\"video\",\"privacy\"]},\"_p_video.bypass_token\":{\"ret_value\":\"text\",\"caption\":\"video bypass_token\",\"sample_value\":\"eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJjbGlwX2lkIjo3Njk3OTg3MSwiZXhwIjoxNjIxNjAxODgwfQ.Qk_pHfKlv6omKc5in1rzpqlc16Z9ZFsdszDaLbC91dE\",\"path\":[\"video\",\"bypass_token\"]},\"_p_video.unlisted_hash\":{\"ret_value\":\"text\",\"caption\":\"video unlisted_hash\",\"sample_value\":null,\"path\":[\"video\",\"unlisted_hash\"]},\"_p_user.team_origin_user_id\":{\"ret_value\":\"number\",\"caption\":\"user team_origin_user_id\",\"sample_value\":0,\"path\":[\"user\",\"team_origin_user_id\"]},\"_p_user.liked\":{\"ret_value\":\"number\",\"caption\":\"user liked\",\"sample_value\":0,\"path\":[\"user\",\"liked\"]},\"_p_user.account_type\":{\"ret_value\":\"text\",\"caption\":\"user account_type\",\"sample_value\":\"none\",\"path\":[\"user\",\"account_type\"]},\"_p_user.vimeo_api_client_token\":{\"ret_value\":\"text\",\"caption\":\"user vimeo_api_client_token\",\"sample_value\":null,\"path\":[\"user\",\"vimeo_api_client_token\"]},\"_p_user.vimeo_api_interaction_tokens\":{\"ret_value\":\"text\",\"caption\":\"user vimeo_api_interaction_tokens\",\"sample_value\":null,\"path\":[\"user\",\"vimeo_api_interaction_tokens\"]},\"_p_user.team_id\":{\"ret_value\":\"number\",\"caption\":\"user team_id\",\"sample_value\":0,\"path\":[\"user\",\"team_id\"]},\"_p_user.watch_later\":{\"ret_value\":\"number\",\"caption\":\"user watch_later\",\"sample_value\":0,\"path\":[\"user\",\"watch_later\"]},\"_p_user.owner\":{\"ret_value\":\"number\",\"caption\":\"user owner\",\"sample_value\":0,\"path\":[\"user\",\"owner\"]},\"_p_user.id\":{\"ret_value\":\"number\",\"caption\":\"user id\",\"sample_value\":0,\"path\":[\"user\",\"id\"]},\"_p_user.mod\":{\"ret_value\":\"number\",\"caption\":\"user mod\",\"sample_value\":0,\"path\":[\"user\",\"mod\"]},\"_p_user.logged_in\":{\"ret_value\":\"number\",\"caption\":\"user logged_in\",\"sample_value\":0,\"path\":[\"user\",\"logged_in\"]},\"_p_embed.autopause\":{\"ret_value\":\"number\",\"caption\":\"embed autopause\",\"sample_value\":1,\"path\":[\"embed\",\"autopause\"]},\"_p_embed.playsinline\":{\"ret_value\":\"number\",\"caption\":\"embed playsinline\",\"sample_value\":1,\"path\":[\"embed\",\"playsinline\"]},\"_p_embed.settings.fullscreen\":{\"ret_value\":\"number\",\"caption\":\"embed settings fullscreen\",\"sample_value\":1,\"path\":[\"embed\",\"settings\",\"fullscreen\"]},\"_p_embed.settings.byline\":{\"ret_value\":\"number\",\"caption\":\"embed settings byline\",\"sample_value\":1,\"path\":[\"embed\",\"settings\",\"byline\"]},\"_p_embed.settings.like\":{\"ret_value\":\"number\",\"caption\":\"embed settings like\",\"sample_value\":1,\"path\":[\"embed\",\"settings\",\"like\"]},\"_p_embed.settings.playbar\":{\"ret_value\":\"number\",\"caption\":\"embed settings playbar\",\"sample_value\":1,\"path\":[\"embed\",\"settings\",\"playbar\"]},\"_p_embed.settings.title\":{\"ret_value\":\"number\",\"caption\":\"embed settings title\",\"sample_value\":1,\"path\":[\"embed\",\"settings\",\"title\"]},\"_p_embed.settings.color\":{\"ret_value\":\"number\",\"caption\":\"embed settings color\",\"sample_value\":0,\"path\":[\"embed\",\"settings\",\"color\"]},\"_p_embed.settings.speed\":{\"ret_value\":\"number\",\"caption\":\"embed settings speed\",\"sample_value\":1,\"path\":[\"embed\",\"settings\",\"speed\"]},\"_p_embed.settings.watch_later\":{\"ret_value\":\"number\",\"caption\":\"embed settings watch_later\",\"sample_value\":1,\"path\":[\"embed\",\"settings\",\"watch_later\"]},\"_p_embed.settings.share\":{\"ret_value\":\"number\",\"caption\":\"embed settings share\",\"sample_value\":1,\"path\":[\"embed\",\"settings\",\"share\"]},\"_p_embed.settings.scaling\":{\"ret_value\":\"number\",\"caption\":\"embed settings scaling\",\"sample_value\":1,\"path\":[\"embed\",\"settings\",\"scaling\"]},\"_p_embed.settings.spatial_compass\":{\"ret_value\":\"number\",\"caption\":\"embed settings spatial_compass\",\"sample_value\":1,\"path\":[\"embed\",\"settings\",\"spatial_compass\"]},\"_p_embed.settings.collections\":{\"ret_value\":\"number\",\"caption\":\"embed settings collections\",\"sample_value\":0,\"path\":[\"embed\",\"settings\",\"collections\"]},\"_p_embed.settings.info_on_pause\":{\"ret_value\":\"number\",\"caption\":\"embed settings info_on_pause\",\"sample_value\":0,\"path\":[\"embed\",\"settings\",\"info_on_pause\"]},\"_p_embed.settings.portrait\":{\"ret_value\":\"number\",\"caption\":\"embed settings portrait\",\"sample_value\":1,\"path\":[\"embed\",\"settings\",\"portrait\"]},\"_p_embed.settings.logo\":{\"ret_value\":\"number\",\"caption\":\"embed settings logo\",\"sample_value\":1,\"path\":[\"embed\",\"settings\",\"logo\"]},\"_p_embed.settings.embed\":{\"ret_value\":\"number\",\"caption\":\"embed settings embed\",\"sample_value\":1,\"path\":[\"embed\",\"settings\",\"embed\"]},\"_p_embed.settings.badge\":{\"ret_value\":\"number\",\"caption\":\"embed settings badge\",\"sample_value\":0,\"path\":[\"embed\",\"settings\",\"badge\"]},\"_p_embed.settings.spatial_label\":{\"ret_value\":\"number\",\"caption\":\"embed settings spatial_label\",\"sample_value\":0,\"path\":[\"embed\",\"settings\",\"spatial_label\"]},\"_p_embed.settings.volume\":{\"ret_value\":\"number\",\"caption\":\"embed settings volume\",\"sample_value\":1,\"path\":[\"embed\",\"settings\",\"volume\"]},\"_p_embed.color\":{\"ret_value\":\"text\",\"caption\":\"embed color\",\"sample_value\":\"00adef\",\"path\":[\"embed\",\"color\"]},\"_p_embed.texttrack\":{\"ret_value\":\"text\",\"caption\":\"embed texttrack\",\"sample_value\":\"\",\"path\":[\"embed\",\"texttrack\"]},\"_p_embed.on_site\":{\"ret_value\":\"number\",\"caption\":\"embed on_site\",\"sample_value\":0,\"path\":[\"embed\",\"on_site\"]},\"_p_embed.app_id\":{\"ret_value\":\"text\",\"caption\":\"embed app_id\",\"sample_value\":\"\",\"path\":[\"embed\",\"app_id\"]},\"_p_embed.muted\":{\"ret_value\":\"number\",\"caption\":\"embed muted\",\"sample_value\":0,\"path\":[\"embed\",\"muted\"]},\"_p_embed.dnt\":{\"ret_value\":\"number\",\"caption\":\"embed dnt\",\"sample_value\":0,\"path\":[\"embed\",\"dnt\"]},\"_p_embed.player_id\":{\"ret_value\":\"text\",\"caption\":\"embed player_id\",\"sample_value\":\"\",\"path\":[\"embed\",\"player_id\"]},\"_p_embed.api\":{\"ret_value\":\"text\",\"caption\":\"embed api\",\"sample_value\":null,\"path\":[\"embed\",\"api\"]},\"_p_embed.editor\":{\"ret_value\":\"boolean\",\"caption\":\"embed editor\",\"sample_value\":false,\"path\":[\"embed\",\"editor\"]},\"_p_embed.context\":{\"ret_value\":\"text\",\"caption\":\"embed context\",\"sample_value\":\"embed.main\",\"path\":[\"embed\",\"context\"]},\"_p_embed.time\":{\"ret_value\":\"number\",\"caption\":\"embed time\",\"sample_value\":0,\"path\":[\"embed\",\"time\"]},\"_p_embed.outro\":{\"ret_value\":\"text\",\"caption\":\"embed outro\",\"sample_value\":\"threevideos\",\"path\":[\"embed\",\"outro\"]},\"_p_embed.log_plays\":{\"ret_value\":\"number\",\"caption\":\"embed log_plays\",\"sample_value\":1,\"path\":[\"embed\",\"log_plays\"]},\"_p_embed.quality\":{\"ret_value\":\"text\",\"caption\":\"embed quality\",\"sample_value\":null,\"path\":[\"embed\",\"quality\"]},\"_p_embed.transparent\":{\"ret_value\":\"number\",\"caption\":\"embed transparent\",\"sample_value\":1,\"path\":[\"embed\",\"transparent\"]},\"_p_embed.loop\":{\"ret_value\":\"number\",\"caption\":\"embed loop\",\"sample_value\":0,\"path\":[\"embed\",\"loop\"]},\"_p_embed.autoplay\":{\"ret_value\":\"number\",\"caption\":\"embed autoplay\",\"sample_value\":0,\"path\":[\"embed\",\"autoplay\"]},\"_p_view\":{\"ret_value\":\"number\",\"caption\":\"view\",\"sample_value\":1},\"_p_vimeo_url\":{\"ret_value\":\"text\",\"caption\":\"vimeo_url\",\"sample_value\":\"vimeo.com\"}}},\"plugin_api.ADi.request.files.dash.streams\":{\"caption\":\"Get data (vimeo) request files dash stream\",\"fields\":{\"_p_profile\":{\"ret_value\":\"number\",\"caption\":\"profile\",\"sample_value\":113},\"_p_quality\":{\"ret_value\":\"text\",\"caption\":\"quality\",\"sample_value\":\"720p\"},\"_p_id\":{\"ret_value\":\"text\",\"caption\":\"id\",\"sample_value\":449260574},\"_p_fps\":{\"ret_value\":\"number\",\"caption\":\"fps\",\"sample_value\":24}}},\"plugin_api.ADi.request.files.dash.streams_avc\":{\"caption\":\"Get data (vimeo) request files dash streams_avc\",\"fields\":{\"_p_profile\":{\"ret_value\":\"number\",\"caption\":\"profile\",\"sample_value\":113},\"_p_quality\":{\"ret_value\":\"text\",\"caption\":\"quality\",\"sample_value\":\"720p\"},\"_p_id\":{\"ret_value\":\"text\",\"caption\":\"id\",\"sample_value\":449260574},\"_p_fps\":{\"ret_value\":\"number\",\"caption\":\"fps\",\"sample_value\":24}}},\"plugin_api.ADi.request.files.progressive\":{\"caption\":\"Get data (vimeo) request files progressive\",\"fields\":{\"_p_profile\":{\"ret_value\":\"number\",\"caption\":\"profile\",\"sample_value\":165},\"_p_width\":{\"ret_value\":\"number\",\"caption\":\"width\",\"sample_value\":960},\"_p_mime\":{\"ret_value\":\"text\",\"caption\":\"mime\",\"sample_value\":\"video/mp4\"},\"_p_fps\":{\"ret_value\":\"number\",\"caption\":\"fps\",\"sample_value\":24},\"_p_url\":{\"ret_value\":\"text\",\"caption\":\"url\",\"sample_value\":\"https://vod-progressive.akamaized.net/exp=1621602290~acl=%2A%2F468975811.mp4%2A~hmac=d682b74ab221dc95aabcf5ecacf66935c2ed685877fb4847b433ad96c9990c02/vimeo-prod-skyfire-std-us/01/395/3/76979871/468975811.mp4\"},\"_p_cdn\":{\"ret_value\":\"text\",\"caption\":\"cdn\",\"sample_value\":\"akamai_interconnect\"},\"_p_quality\":{\"ret_value\":\"text\",\"caption\":\"quality\",\"sample_value\":\"540p\"},\"_p_id\":{\"ret_value\":\"text\",\"caption\":\"id\",\"sample_value\":468975811},\"_p_origin\":{\"ret_value\":\"text\",\"caption\":\"origin\",\"sample_value\":\"gcs\"},\"_p_height\":{\"ret_value\":\"number\",\"caption\":\"height\",\"sample_value\":540}}},\"plugin_api.ADi.request.text_tracks\":{\"caption\":\"Get data (vimeo) request text_track\",\"fields\":{\"_p_lang\":{\"ret_value\":\"text\",\"caption\":\"lang\",\"sample_value\":\"de\"},\"_p_url\":{\"ret_value\":\"text\",\"caption\":\"url\",\"sample_value\":\"/texttrack/170.vtt?token=60a7aec6_0x9fb0772f775b6fafb7627c6828b4e00db7ab3dfe\"},\"_p_kind\":{\"ret_value\":\"text\",\"caption\":\"kind\",\"sample_value\":\"subtitles\"},\"_p_id\":{\"ret_value\":\"text\",\"caption\":\"id\",\"sample_value\":170},\"_p_label\":{\"ret_value\":\"text\",\"caption\":\"label\",\"sample_value\":\"Deutsch\"}}}}","ret_value":"api.1608469100580x213930232373051400.plugin_api.ADi"},"ADm":{"name":"Get data (vimeo)","method":"get","publish_as":"data","should_reinitialize":true,"url":"https://player.vimeo.com/video/[vimeo_id]/config","url_params":{"ADo":{"key":"vimeo_id","value":"","private":true,"doc":"Enter a valid Vimeo video Id here. A list of URL's containing multiple MP4 files at various qualities can be found at request.files.progressive.url.\n\nYou can sort by quality to get the highest available.\n\nUpdate: Oct 2022 Vimeo have changed the data making the MP4 data no longer visible. This will work for videos before that time but newer videos you will have to use their own API service to retrieve the MP4 link or utilise their own player instead of videoJS."}},"initialized":true,"types":"{\"plugin_api.ADm\":{\"caption\":\"Get data (vimeo)\",\"fields\":{\"_p_cdn_url\":{\"ret_value\":\"text\",\"caption\":\"cdn_url\",\"sample_value\":\"https://f.vimeocdn.com\"},\"_p_vimeo_api_url\":{\"ret_value\":\"text\",\"caption\":\"vimeo_api_url\",\"sample_value\":\"api.vimeo.com\"},\"_p_request.files.dash.separate_av\":{\"ret_value\":\"boolean\",\"caption\":\"request files dash separate_av\",\"sample_value\":true,\"path\":[\"request\",\"files\",\"dash\",\"separate_av\"]},\"_p_request.files.dash.streams\":{\"ret_value\":\"list.api.1608469100580x213930232373051400.plugin_api.ADm.request.files.dash.streams\",\"caption\":\"request files dash streams\",\"path\":[\"request\",\"files\",\"dash\",\"streams\"]},\"_p_request.files.dash.cdns.akfire_interconnect_quic.url\":{\"ret_value\":\"text\",\"caption\":\"request files dash cdns akfire_interconnect_quic url\",\"sample_value\":\"https://72vod-adaptive.akamaized.net/exp=1621602255~acl=%2F76979871%2F%2A~hmac=2625ca7809ca8e5f1ffc986520dd396899d56adb1a37d2fd7b60e45e28b04648/76979871/sep/video/449262797,468975811,449260571,449260574/master.json?base64_init=1\",\"path\":[\"request\",\"files\",\"dash\",\"cdns\",\"akfire_interconnect_quic\",\"url\"]},\"_p_request.files.dash.cdns.akfire_interconnect_quic.origin\":{\"ret_value\":\"text\",\"caption\":\"request files dash cdns akfire_interconnect_quic origin\",\"sample_value\":\"gcs\",\"path\":[\"request\",\"files\",\"dash\",\"cdns\",\"akfire_interconnect_quic\",\"origin\"]},\"_p_request.files.dash.cdns.akfire_interconnect_quic.avc_url\":{\"ret_value\":\"text\",\"caption\":\"request files dash cdns akfire_interconnect_quic avc_url\",\"sample_value\":\"https://72vod-adaptive.akamaized.net/exp=1621602255~acl=%2F76979871%2F%2A~hmac=2625ca7809ca8e5f1ffc986520dd396899d56adb1a37d2fd7b60e45e28b04648/76979871/sep/video/449262797,468975811,449260571,449260574/master.json?base64_init=1\",\"path\":[\"request\",\"files\",\"dash\",\"cdns\",\"akfire_interconnect_quic\",\"avc_url\"]},\"_p_request.files.dash.cdns.fastly_skyfire.url\":{\"ret_value\":\"text\",\"caption\":\"request files dash cdns fastly_skyfire url\",\"sample_value\":\"https://skyfire.vimeocdn.com/1621602255-0x7d84b35d4c1b2c770af65fc33a6fda640b047e88/76979871/sep/video/449262797,468975811,449260571,449260574/master.json?base64_init=1\",\"path\":[\"request\",\"files\",\"dash\",\"cdns\",\"fastly_skyfire\",\"url\"]},\"_p_request.files.dash.cdns.fastly_skyfire.origin\":{\"ret_value\":\"text\",\"caption\":\"request files dash cdns fastly_skyfire origin\",\"sample_value\":\"gcs\",\"path\":[\"request\",\"files\",\"dash\",\"cdns\",\"fastly_skyfire\",\"origin\"]},\"_p_request.files.dash.cdns.fastly_skyfire.avc_url\":{\"ret_value\":\"text\",\"caption\":\"request files dash cdns fastly_skyfire avc_url\",\"sample_value\":\"https://skyfire.vimeocdn.com/1621602255-0x7d84b35d4c1b2c770af65fc33a6fda640b047e88/76979871/sep/video/449262797,468975811,449260571,449260574/master.json?base64_init=1\",\"path\":[\"request\",\"files\",\"dash\",\"cdns\",\"fastly_skyfire\",\"avc_url\"]},\"_p_request.files.dash.streams_avc\":{\"ret_value\":\"list.api.1608469100580x213930232373051400.plugin_api.ADm.request.files.dash.streams_avc\",\"caption\":\"request files dash streams_avc\",\"path\":[\"request\",\"files\",\"dash\",\"streams_avc\"]},\"_p_request.files.dash.default_cdn\":{\"ret_value\":\"text\",\"caption\":\"request files dash default_cdn\",\"sample_value\":\"akfire_interconnect_quic\",\"path\":[\"request\",\"files\",\"dash\",\"default_cdn\"]},\"_p_request.files.hls.separate_av\":{\"ret_value\":\"boolean\",\"caption\":\"request files hls separate_av\",\"sample_value\":true,\"path\":[\"request\",\"files\",\"hls\",\"separate_av\"]},\"_p_request.files.hls.default_cdn\":{\"ret_value\":\"text\",\"caption\":\"request files hls default_cdn\",\"sample_value\":\"akfire_interconnect_quic\",\"path\":[\"request\",\"files\",\"hls\",\"default_cdn\"]},\"_p_request.files.hls.cdns.akfire_interconnect_quic.url\":{\"ret_value\":\"text\",\"caption\":\"request files hls cdns akfire_interconnect_quic url\",\"sample_value\":\"https://72vod-adaptive.akamaized.net/exp=1621602255~acl=%2F76979871%2F%2A~hmac=2625ca7809ca8e5f1ffc986520dd396899d56adb1a37d2fd7b60e45e28b04648/76979871/sep/video/468975811,449262797,449260574,449260571/subtitles/170-Deutsch-de,171-Espa%C3%B1ol-es,140662-English-en,4678937-Fran%C3%A7ais-fr/master.m3u8?external-subs=1\",\"path\":[\"request\",\"files\",\"hls\",\"cdns\",\"akfire_interconnect_quic\",\"url\"]},\"_p_request.files.hls.cdns.akfire_interconnect_quic.origin\":{\"ret_value\":\"text\",\"caption\":\"request files hls cdns akfire_interconnect_quic origin\",\"sample_value\":\"gcs\",\"path\":[\"request\",\"files\",\"hls\",\"cdns\",\"akfire_interconnect_quic\",\"origin\"]},\"_p_request.files.hls.cdns.akfire_interconnect_quic.captions\":{\"ret_value\":\"text\",\"caption\":\"request files hls cdns akfire_interconnect_quic captions\",\"sample_value\":\"https://72vod-adaptive.akamaized.net/exp=1621602255~acl=%2F76979871%2F%2A~hmac=2625ca7809ca8e5f1ffc986520dd396899d56adb1a37d2fd7b60e45e28b04648/76979871/video/468975811,449262797,449260574,449260571/subtitles/170-Deutsch-de,171-Espa%C3%B1ol-es,140662-English-en,4678937-Fran%C3%A7ais-fr/master.m3u8\",\"path\":[\"request\",\"files\",\"hls\",\"cdns\",\"akfire_interconnect_quic\",\"captions\"]},\"_p_request.files.hls.cdns.akfire_interconnect_quic.avc_url\":{\"ret_value\":\"text\",\"caption\":\"request files hls cdns akfire_interconnect_quic avc_url\",\"sample_value\":\"https://72vod-adaptive.akamaized.net/exp=1621602255~acl=%2F76979871%2F%2A~hmac=2625ca7809ca8e5f1ffc986520dd396899d56adb1a37d2fd7b60e45e28b04648/76979871/sep/video/468975811,449262797,449260574,449260571/subtitles/170-Deutsch-de,171-Espa%C3%B1ol-es,140662-English-en,4678937-Fran%C3%A7ais-fr/master.m3u8?external-subs=1\",\"path\":[\"request\",\"files\",\"hls\",\"cdns\",\"akfire_interconnect_quic\",\"avc_url\"]},\"_p_request.files.hls.cdns.fastly_skyfire.url\":{\"ret_value\":\"text\",\"caption\":\"request files hls cdns fastly_skyfire url\",\"sample_value\":\"https://skyfire.vimeocdn.com/1621602255-0x7d84b35d4c1b2c770af65fc33a6fda640b047e88/76979871/sep/video/468975811,449262797,449260574,449260571/subtitles/170-Deutsch-de,171-Espa%C3%B1ol-es,140662-English-en,4678937-Fran%C3%A7ais-fr/master.m3u8?external-subs=1\",\"path\":[\"request\",\"files\",\"hls\",\"cdns\",\"fastly_skyfire\",\"url\"]},\"_p_request.files.hls.cdns.fastly_skyfire.origin\":{\"ret_value\":\"text\",\"caption\":\"request files hls cdns fastly_skyfire origin\",\"sample_value\":\"gcs\",\"path\":[\"request\",\"files\",\"hls\",\"cdns\",\"fastly_skyfire\",\"origin\"]},\"_p_request.files.hls.cdns.fastly_skyfire.captions\":{\"ret_value\":\"text\",\"caption\":\"request files hls cdns fastly_skyfire captions\",\"sample_value\":\"https://skyfire.vimeocdn.com/1621602255-0x7d84b35d4c1b2c770af65fc33a6fda640b047e88/76979871/video/468975811,449262797,449260574,449260571/subtitles/170-Deutsch-de,171-Espa%C3%B1ol-es,140662-English-en,4678937-Fran%C3%A7ais-fr/master.m3u8\",\"path\":[\"request\",\"files\",\"hls\",\"cdns\",\"fastly_skyfire\",\"captions\"]},\"_p_request.files.hls.cdns.fastly_skyfire.avc_url\":{\"ret_value\":\"text\",\"caption\":\"request files hls cdns fastly_skyfire avc_url\",\"sample_value\":\"https://skyfire.vimeocdn.com/1621602255-0x7d84b35d4c1b2c770af65fc33a6fda640b047e88/76979871/sep/video/468975811,449262797,449260574,449260571/subtitles/170-Deutsch-de,171-Espa%C3%B1ol-es,140662-English-en,4678937-Fran%C3%A7ais-fr/master.m3u8?external-subs=1\",\"path\":[\"request\",\"files\",\"hls\",\"cdns\",\"fastly_skyfire\",\"avc_url\"]},\"_p_request.files.hls.captions\":{\"ret_value\":\"text\",\"caption\":\"request files hls captions\",\"sample_value\":\"https://72vod-adaptive.akamaized.net/exp=1621602255~acl=%2F76979871%2F%2A~hmac=2625ca7809ca8e5f1ffc986520dd396899d56adb1a37d2fd7b60e45e28b04648/76979871/video/468975811,449262797,449260574,449260571/subtitles/170-Deutsch-de,171-Espa%C3%B1ol-es,140662-English-en,4678937-Fran%C3%A7ais-fr/master.m3u8\",\"path\":[\"request\",\"files\",\"hls\",\"captions\"]},\"_p_request.files.progressive\":{\"ret_value\":\"list.api.1608469100580x213930232373051400.plugin_api.ADm.request.files.progressive\",\"caption\":\"request files progressive\",\"path\":[\"request\",\"files\",\"progressive\"]},\"_p_request.lang\":{\"ret_value\":\"text\",\"caption\":\"request lang\",\"sample_value\":\"en\",\"path\":[\"request\",\"lang\"]},\"_p_request.sentry.url\":{\"ret_value\":\"text\",\"caption\":\"request sentry url\",\"sample_value\":\"https://6f5f8e1cecfa40fb850f578b69fc1705@o189131.ingest.sentry.io/1297650\",\"path\":[\"request\",\"sentry\",\"url\"]},\"_p_request.sentry.enabled\":{\"ret_value\":\"boolean\",\"caption\":\"request sentry enabled\",\"sample_value\":false,\"path\":[\"request\",\"sentry\",\"enabled\"]},\"_p_request.sentry.debug_enabled\":{\"ret_value\":\"boolean\",\"caption\":\"request sentry debug_enabled\",\"sample_value\":true,\"path\":[\"request\",\"sentry\",\"debug_enabled\"]},\"_p_request.sentry.debug_intent\":{\"ret_value\":\"number\",\"caption\":\"request sentry debug_intent\",\"sample_value\":0,\"path\":[\"request\",\"sentry\",\"debug_intent\"]},\"_p_request.ab_tests.chromecast.track\":{\"ret_value\":\"boolean\",\"caption\":\"request ab_tests chromecast track\",\"sample_value\":false,\"path\":[\"request\",\"ab_tests\",\"chromecast\",\"track\"]},\"_p_request.ab_tests.chromecast.group\":{\"ret_value\":\"boolean\",\"caption\":\"request ab_tests chromecast group\",\"sample_value\":false,\"path\":[\"request\",\"ab_tests\",\"chromecast\",\"group\"]},\"_p_request.ab_tests.llhls_features.track\":{\"ret_value\":\"boolean\",\"caption\":\"request ab_tests llhls_features track\",\"sample_value\":true,\"path\":[\"request\",\"ab_tests\",\"llhls_features\",\"track\"]},\"_p_request.ab_tests.llhls_features.data.feature_timeout\":{\"ret_value\":\"boolean\",\"caption\":\"request ab_tests llhls_features feature_timeout\",\"sample_value\":false,\"path\":[\"request\",\"ab_tests\",\"llhls_features\",\"data\",\"feature_timeout\"]},\"_p_request.ab_tests.llhls_features.data.feature_switch\":{\"ret_value\":\"boolean\",\"caption\":\"request ab_tests llhls_features feature_switch\",\"sample_value\":false,\"path\":[\"request\",\"ab_tests\",\"llhls_features\",\"data\",\"feature_switch\"]},\"_p_request.ab_tests.llhls_features.group\":{\"ret_value\":\"boolean\",\"caption\":\"request ab_tests llhls_features group\",\"sample_value\":true,\"path\":[\"request\",\"ab_tests\",\"llhls_features\",\"group\"]},\"_p_request.referrer\":{\"ret_value\":\"text\",\"caption\":\"request referrer\",\"sample_value\":null,\"path\":[\"request\",\"referrer\"]},\"_p_request.cookie_domain\":{\"ret_value\":\"text\",\"caption\":\"request cookie_domain\",\"sample_value\":\".vimeo.com\",\"path\":[\"request\",\"cookie_domain\"]},\"_p_request.timestamp\":{\"ret_value\":\"number\",\"caption\":\"request timestamp\",\"sample_value\":1621598355,\"path\":[\"request\",\"timestamp\"]},\"_p_request.gc_debug.bucket\":{\"ret_value\":\"text\",\"caption\":\"request gc_debug bucket\",\"sample_value\":\"vimeo-player-debug\",\"path\":[\"request\",\"gc_debug\",\"bucket\"]},\"_p_request.expires\":{\"ret_value\":\"number\",\"caption\":\"request expires\",\"sample_value\":3600,\"path\":[\"request\",\"expires\"]},\"_p_request.text_tracks\":{\"ret_value\":\"list.api.1608469100580x213930232373051400.plugin_api.ADm.request.text_tracks\",\"caption\":\"request text_tracks\",\"path\":[\"request\",\"text_tracks\"]},\"_p_request.client.ip\":{\"ret_value\":\"text\",\"caption\":\"request client ip\",\"sample_value\":\"52.12.155.211\",\"path\":[\"request\",\"client\",\"ip\"]},\"_p_request.currency\":{\"ret_value\":\"text\",\"caption\":\"request currency\",\"sample_value\":\"USD\",\"path\":[\"request\",\"currency\"]},\"_p_request.session\":{\"ret_value\":\"text\",\"caption\":\"request session\",\"sample_value\":\"563c5fd0664189ebc5d7cb0de6b018549d60ede71621598355\",\"path\":[\"request\",\"session\"]},\"_p_request.cookie.scaling\":{\"ret_value\":\"number\",\"caption\":\"request cookie scaling\",\"sample_value\":1,\"path\":[\"request\",\"cookie\",\"scaling\"]},\"_p_request.cookie.volume\":{\"ret_value\":\"number\",\"caption\":\"request cookie volume\",\"sample_value\":1,\"path\":[\"request\",\"cookie\",\"volume\"]},\"_p_request.cookie.quality\":{\"ret_value\":\"text\",\"caption\":\"request cookie quality\",\"sample_value\":null,\"path\":[\"request\",\"cookie\",\"quality\"]},\"_p_request.cookie.hd\":{\"ret_value\":\"number\",\"caption\":\"request cookie hd\",\"sample_value\":0,\"path\":[\"request\",\"cookie\",\"hd\"]},\"_p_request.cookie.captions\":{\"ret_value\":\"text\",\"caption\":\"request cookie captions\",\"sample_value\":null,\"path\":[\"request\",\"cookie\",\"captions\"]},\"_p_request.build.backend\":{\"ret_value\":\"text\",\"caption\":\"request build backend\",\"sample_value\":\"1.38.9\",\"path\":[\"request\",\"build\",\"backend\"]},\"_p_request.build.js\":{\"ret_value\":\"text\",\"caption\":\"request build js\",\"sample_value\":\"3.28.1\",\"path\":[\"request\",\"build\",\"js\"]},\"_p_request.urls.barebone_js\":{\"ret_value\":\"text\",\"caption\":\"request urls barebone_js\",\"sample_value\":\"https://f.vimeocdn.com/p/3.28.1/js/barebone.js\",\"path\":[\"request\",\"urls\",\"barebone_js\"]},\"_p_request.urls.test_imp\":{\"ret_value\":\"text\",\"caption\":\"request urls test_imp\",\"sample_value\":\"https://fresnel.vimeocdn.com/add/player-test-impression\",\"path\":[\"request\",\"urls\",\"test_imp\"]},\"_p_request.urls.js_base\":{\"ret_value\":\"text\",\"caption\":\"request urls js_base\",\"sample_value\":\"https://f.vimeocdn.com/p/3.28.1/js/\",\"path\":[\"request\",\"urls\",\"js_base\"]},\"_p_request.urls.fresnel\":{\"ret_value\":\"text\",\"caption\":\"request urls fresnel\",\"sample_value\":\"https://fresnel.vimeocdn.com/add/player-stats\",\"path\":[\"request\",\"urls\",\"fresnel\"]},\"_p_request.urls.js\":{\"ret_value\":\"text\",\"caption\":\"request urls js\",\"sample_value\":\"https://f.vimeocdn.com/p/3.28.1/js/player.js\",\"path\":[\"request\",\"urls\",\"js\"]},\"_p_request.urls.proxy\":{\"ret_value\":\"text\",\"caption\":\"request urls proxy\",\"sample_value\":\"https://player.vimeo.com/static/proxy.html\",\"path\":[\"request\",\"urls\",\"proxy\"]},\"_p_request.urls.mux_url\":{\"ret_value\":\"text\",\"caption\":\"request urls mux_url\",\"sample_value\":\"https://f.vimeocdn.com/p/external/mux.js\",\"path\":[\"request\",\"urls\",\"mux_url\"]},\"_p_request.urls.fresnel_mimir_inputs_url\":{\"ret_value\":\"text\",\"caption\":\"request urls fresnel_mimir_inputs_url\",\"sample_value\":\"https://fresnel-events.vimeocdn.com/add/mimir_inputs\",\"path\":[\"request\",\"urls\",\"fresnel_mimir_inputs_url\"]},\"_p_request.urls.fresnel_chunk_url\":{\"ret_value\":\"text\",\"caption\":\"request urls fresnel_chunk_url\",\"sample_value\":\"https://fresnel-events.vimeocdn.com/add/chunk_downloads\",\"path\":[\"request\",\"urls\",\"fresnel_chunk_url\"]},\"_p_request.urls.three_js\":{\"ret_value\":\"text\",\"caption\":\"request urls three_js\",\"sample_value\":\"https://f.vimeocdn.com/p/external/three.rvimeo.min.js\",\"path\":[\"request\",\"urls\",\"three_js\"]},\"_p_request.urls.vuid_js\":{\"ret_value\":\"text\",\"caption\":\"request urls vuid_js\",\"sample_value\":\"https://f.vimeocdn.com/js_opt/modules/utils/vuid.min.js\",\"path\":[\"request\",\"urls\",\"vuid_js\"]},\"_p_request.urls.fresnel_manifest_url\":{\"ret_value\":\"text\",\"caption\":\"request urls fresnel_manifest_url\",\"sample_value\":\"https://fresnel-events.vimeocdn.com/add/playback_manifest\",\"path\":[\"request\",\"urls\",\"fresnel_manifest_url\"]},\"_p_request.urls.chromeless_css\":{\"ret_value\":\"text\",\"caption\":\"request urls chromeless_css\",\"sample_value\":\"https://f.vimeocdn.com/p/3.28.1/css/chromeless.css\",\"path\":[\"request\",\"urls\",\"chromeless_css\"]},\"_p_request.urls.player_telemetry_url\":{\"ret_value\":\"text\",\"caption\":\"request urls player_telemetry_url\",\"sample_value\":\"https://player-telemetry.vimeo.com/player-events\",\"path\":[\"request\",\"urls\",\"player_telemetry_url\"]},\"_p_request.urls.chromeless_js\":{\"ret_value\":\"text\",\"caption\":\"request urls chromeless_js\",\"sample_value\":\"https://f.vimeocdn.com/p/3.28.1/js/chromeless.js\",\"path\":[\"request\",\"urls\",\"chromeless_js\"]},\"_p_request.urls.css\":{\"ret_value\":\"text\",\"caption\":\"request urls css\",\"sample_value\":\"https://f.vimeocdn.com/p/3.28.1/css/player.css\",\"path\":[\"request\",\"urls\",\"css\"]},\"_p_request.signature\":{\"ret_value\":\"text\",\"caption\":\"request signature\",\"sample_value\":\"3c2defe1a77cac6e84ab82b9da769dfb\",\"path\":[\"request\",\"signature\"]},\"_p_request.flags.dnt\":{\"ret_value\":\"number\",\"caption\":\"request flags dnt\",\"sample_value\":0,\"path\":[\"request\",\"flags\",\"dnt\"]},\"_p_request.flags.preload_video\":{\"ret_value\":\"text\",\"caption\":\"request flags preload_video\",\"sample_value\":\"metadata_on_hover\",\"path\":[\"request\",\"flags\",\"preload_video\"]},\"_p_request.flags.plays\":{\"ret_value\":\"number\",\"caption\":\"request flags plays\",\"sample_value\":1,\"path\":[\"request\",\"flags\",\"plays\"]},\"_p_request.flags.partials\":{\"ret_value\":\"number\",\"caption\":\"request flags partials\",\"sample_value\":1,\"path\":[\"request\",\"flags\",\"partials\"]},\"_p_request.flags.autohide_controls\":{\"ret_value\":\"number\",\"caption\":\"request flags autohide_controls\",\"sample_value\":0,\"path\":[\"request\",\"flags\",\"autohide_controls\"]},\"_p_request.country\":{\"ret_value\":\"text\",\"caption\":\"request country\",\"sample_value\":\"US\",\"path\":[\"request\",\"country\"]},\"_p_request.file_codecs.avc\":{\"ret_value\":\"list.number\",\"caption\":\"request file_codecs avc\",\"sample_value\":468975811,\"path\":[\"request\",\"file_codecs\",\"avc\"]},\"_p_player_url\":{\"ret_value\":\"text\",\"caption\":\"player_url\",\"sample_value\":\"player.vimeo.com\"},\"_p_video.rating.id\":{\"ret_value\":\"number\",\"caption\":\"video rating id\",\"sample_value\":6,\"path\":[\"video\",\"rating\",\"id\"]},\"_p_video.version.current\":{\"ret_value\":\"text\",\"caption\":\"video version current\",\"sample_value\":null,\"path\":[\"video\",\"version\",\"current\"]},\"_p_video.height\":{\"ret_value\":\"number\",\"caption\":\"video height\",\"sample_value\":720,\"path\":[\"video\",\"height\"]},\"_p_video.duration\":{\"ret_value\":\"number\",\"caption\":\"video duration\",\"sample_value\":62,\"path\":[\"video\",\"duration\"]},\"_p_video.thumbs.640\":{\"ret_value\":\"text\",\"caption\":\"video thumbs 640\",\"sample_value\":\"https://i.vimeocdn.com/video/452001751_640\",\"path\":[\"video\",\"thumbs\",\"640\"]},\"_p_video.thumbs.960\":{\"ret_value\":\"text\",\"caption\":\"video thumbs 960\",\"sample_value\":\"https://i.vimeocdn.com/video/452001751_960\",\"path\":[\"video\",\"thumbs\",\"960\"]},\"_p_video.thumbs.1280\":{\"ret_value\":\"text\",\"caption\":\"video thumbs 1280\",\"sample_value\":\"https://i.vimeocdn.com/video/452001751_1280\",\"path\":[\"video\",\"thumbs\",\"1280\"]},\"_p_video.thumbs.base\":{\"ret_value\":\"text\",\"caption\":\"video thumbs base\",\"sample_value\":\"https://i.vimeocdn.com/video/452001751\",\"path\":[\"video\",\"thumbs\",\"base\"]},\"_p_video.owner.account_type\":{\"ret_value\":\"text\",\"caption\":\"video owner account_type\",\"sample_value\":\"enterprise\",\"path\":[\"video\",\"owner\",\"account_type\"]},\"_p_video.owner.name\":{\"ret_value\":\"text\",\"caption\":\"video owner name\",\"sample_value\":\"Vimeo Staff\",\"path\":[\"video\",\"owner\",\"name\"]},\"_p_video.owner.img\":{\"ret_value\":\"text\",\"caption\":\"video owner img\",\"sample_value\":\"https://i.vimeocdn.com/portrait/9934446_60x60.jpg\",\"path\":[\"video\",\"owner\",\"img\"]},\"_p_video.owner.url\":{\"ret_value\":\"text\",\"caption\":\"video owner url\",\"sample_value\":\"https://vimeo.com/staff\",\"path\":[\"video\",\"owner\",\"url\"]},\"_p_video.owner.img_2x\":{\"ret_value\":\"text\",\"caption\":\"video owner img_2x\",\"sample_value\":\"https://i.vimeocdn.com/portrait/9934446_120x120.jpg\",\"path\":[\"video\",\"owner\",\"img_2x\"]},\"_p_video.owner.id\":{\"ret_value\":\"number\",\"caption\":\"video owner id\",\"sample_value\":152184,\"path\":[\"video\",\"owner\",\"id\"]},\"_p_video.id\":{\"ret_value\":\"number\",\"caption\":\"video id\",\"sample_value\":76979871,\"path\":[\"video\",\"id\"]},\"_p_video.embed_code\":{\"ret_value\":\"text\",\"caption\":\"video embed_code\",\"sample_value\":\"<iframe title=\\\"vimeo-player\\\" src=\\\"https://player.vimeo.com/video/76979871\\\" width=\\\"640\\\" height=\\\"360\\\" frameborder=\\\"0\\\" allowfullscreen></iframe>\",\"path\":[\"video\",\"embed_code\"]},\"_p_video.title\":{\"ret_value\":\"text\",\"caption\":\"video title\",\"sample_value\":\"The New Vimeo Player (You Know, For Videos)\",\"path\":[\"video\",\"title\"]},\"_p_video.share_url\":{\"ret_value\":\"text\",\"caption\":\"video share_url\",\"sample_value\":\"https://vimeo.com/76979871\",\"path\":[\"video\",\"share_url\"]},\"_p_video.width\":{\"ret_value\":\"number\",\"caption\":\"video width\",\"sample_value\":1280,\"path\":[\"video\",\"width\"]},\"_p_video.embed_permission\":{\"ret_value\":\"text\",\"caption\":\"video embed_permission\",\"sample_value\":\"public\",\"path\":[\"video\",\"embed_permission\"]},\"_p_video.fps\":{\"ret_value\":\"number\",\"caption\":\"video fps\",\"sample_value\":24,\"path\":[\"video\",\"fps\"]},\"_p_video.spatial\":{\"ret_value\":\"number\",\"caption\":\"video spatial\",\"sample_value\":0,\"path\":[\"video\",\"spatial\"]},\"_p_video.logo_url\":{\"ret_value\":\"text\",\"caption\":\"video logo_url\",\"sample_value\":\"https://vimeo.com/embed-redirect/76979871\",\"path\":[\"video\",\"logo_url\"]},\"_p_video.live_event\":{\"ret_value\":\"text\",\"caption\":\"video live_event\",\"sample_value\":null,\"path\":[\"video\",\"live_event\"]},\"_p_video.allow_hd\":{\"ret_value\":\"number\",\"caption\":\"video allow_hd\",\"sample_value\":1,\"path\":[\"video\",\"allow_hd\"]},\"_p_video.hd\":{\"ret_value\":\"number\",\"caption\":\"video hd\",\"sample_value\":1,\"path\":[\"video\",\"hd\"]},\"_p_video.lang\":{\"ret_value\":\"text\",\"caption\":\"video lang\",\"sample_value\":\"en\",\"path\":[\"video\",\"lang\"]},\"_p_video.default_to_hd\":{\"ret_value\":\"number\",\"caption\":\"video default_to_hd\",\"sample_value\":0,\"path\":[\"video\",\"default_to_hd\"]},\"_p_video.url\":{\"ret_value\":\"text\",\"caption\":\"video url\",\"sample_value\":\"https://vimeo.com/76979871\",\"path\":[\"video\",\"url\"]},\"_p_video.privacy\":{\"ret_value\":\"text\",\"caption\":\"video privacy\",\"sample_value\":\"anybody\",\"path\":[\"video\",\"privacy\"]},\"_p_video.bypass_token\":{\"ret_value\":\"text\",\"caption\":\"video bypass_token\",\"sample_value\":\"eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJjbGlwX2lkIjo3Njk3OTg3MSwiZXhwIjoxNjIxNjAyMDAwfQ.uWdSG6EuzJUqDEHhUIv4XPqfCt58gNc8T56WH7ywjSU\",\"path\":[\"video\",\"bypass_token\"]},\"_p_video.unlisted_hash\":{\"ret_value\":\"text\",\"caption\":\"video unlisted_hash\",\"sample_value\":null,\"path\":[\"video\",\"unlisted_hash\"]},\"_p_user.team_origin_user_id\":{\"ret_value\":\"number\",\"caption\":\"user team_origin_user_id\",\"sample_value\":0,\"path\":[\"user\",\"team_origin_user_id\"]},\"_p_user.liked\":{\"ret_value\":\"number\",\"caption\":\"user liked\",\"sample_value\":0,\"path\":[\"user\",\"liked\"]},\"_p_user.account_type\":{\"ret_value\":\"text\",\"caption\":\"user account_type\",\"sample_value\":\"none\",\"path\":[\"user\",\"account_type\"]},\"_p_user.vimeo_api_client_token\":{\"ret_value\":\"text\",\"caption\":\"user vimeo_api_client_token\",\"sample_value\":null,\"path\":[\"user\",\"vimeo_api_client_token\"]},\"_p_user.vimeo_api_interaction_tokens\":{\"ret_value\":\"text\",\"caption\":\"user vimeo_api_interaction_tokens\",\"sample_value\":null,\"path\":[\"user\",\"vimeo_api_interaction_tokens\"]},\"_p_user.team_id\":{\"ret_value\":\"number\",\"caption\":\"user team_id\",\"sample_value\":0,\"path\":[\"user\",\"team_id\"]},\"_p_user.watch_later\":{\"ret_value\":\"number\",\"caption\":\"user watch_later\",\"sample_value\":0,\"path\":[\"user\",\"watch_later\"]},\"_p_user.owner\":{\"ret_value\":\"number\",\"caption\":\"user owner\",\"sample_value\":0,\"path\":[\"user\",\"owner\"]},\"_p_user.id\":{\"ret_value\":\"number\",\"caption\":\"user id\",\"sample_value\":0,\"path\":[\"user\",\"id\"]},\"_p_user.mod\":{\"ret_value\":\"number\",\"caption\":\"user mod\",\"sample_value\":0,\"path\":[\"user\",\"mod\"]},\"_p_user.logged_in\":{\"ret_value\":\"number\",\"caption\":\"user logged_in\",\"sample_value\":0,\"path\":[\"user\",\"logged_in\"]},\"_p_embed.autopause\":{\"ret_value\":\"number\",\"caption\":\"embed autopause\",\"sample_value\":1,\"path\":[\"embed\",\"autopause\"]},\"_p_embed.playsinline\":{\"ret_value\":\"number\",\"caption\":\"embed playsinline\",\"sample_value\":1,\"path\":[\"embed\",\"playsinline\"]},\"_p_embed.settings.fullscreen\":{\"ret_value\":\"number\",\"caption\":\"embed settings fullscreen\",\"sample_value\":1,\"path\":[\"embed\",\"settings\",\"fullscreen\"]},\"_p_embed.settings.byline\":{\"ret_value\":\"number\",\"caption\":\"embed settings byline\",\"sample_value\":1,\"path\":[\"embed\",\"settings\",\"byline\"]},\"_p_embed.settings.like\":{\"ret_value\":\"number\",\"caption\":\"embed settings like\",\"sample_value\":1,\"path\":[\"embed\",\"settings\",\"like\"]},\"_p_embed.settings.playbar\":{\"ret_value\":\"number\",\"caption\":\"embed settings playbar\",\"sample_value\":1,\"path\":[\"embed\",\"settings\",\"playbar\"]},\"_p_embed.settings.title\":{\"ret_value\":\"number\",\"caption\":\"embed settings title\",\"sample_value\":1,\"path\":[\"embed\",\"settings\",\"title\"]},\"_p_embed.settings.color\":{\"ret_value\":\"number\",\"caption\":\"embed settings color\",\"sample_value\":0,\"path\":[\"embed\",\"settings\",\"color\"]},\"_p_embed.settings.speed\":{\"ret_value\":\"number\",\"caption\":\"embed settings speed\",\"sample_value\":1,\"path\":[\"embed\",\"settings\",\"speed\"]},\"_p_embed.settings.watch_later\":{\"ret_value\":\"number\",\"caption\":\"embed settings watch_later\",\"sample_value\":1,\"path\":[\"embed\",\"settings\",\"watch_later\"]},\"_p_embed.settings.share\":{\"ret_value\":\"number\",\"caption\":\"embed settings share\",\"sample_value\":1,\"path\":[\"embed\",\"settings\",\"share\"]},\"_p_embed.settings.scaling\":{\"ret_value\":\"number\",\"caption\":\"embed settings scaling\",\"sample_value\":1,\"path\":[\"embed\",\"settings\",\"scaling\"]},\"_p_embed.settings.spatial_compass\":{\"ret_value\":\"number\",\"caption\":\"embed settings spatial_compass\",\"sample_value\":1,\"path\":[\"embed\",\"settings\",\"spatial_compass\"]},\"_p_embed.settings.collections\":{\"ret_value\":\"number\",\"caption\":\"embed settings collections\",\"sample_value\":0,\"path\":[\"embed\",\"settings\",\"collections\"]},\"_p_embed.settings.info_on_pause\":{\"ret_value\":\"number\",\"caption\":\"embed settings info_on_pause\",\"sample_value\":0,\"path\":[\"embed\",\"settings\",\"info_on_pause\"]},\"_p_embed.settings.portrait\":{\"ret_value\":\"number\",\"caption\":\"embed settings portrait\",\"sample_value\":1,\"path\":[\"embed\",\"settings\",\"portrait\"]},\"_p_embed.settings.logo\":{\"ret_value\":\"number\",\"caption\":\"embed settings logo\",\"sample_value\":1,\"path\":[\"embed\",\"settings\",\"logo\"]},\"_p_embed.settings.embed\":{\"ret_value\":\"number\",\"caption\":\"embed settings embed\",\"sample_value\":1,\"path\":[\"embed\",\"settings\",\"embed\"]},\"_p_embed.settings.badge\":{\"ret_value\":\"number\",\"caption\":\"embed settings badge\",\"sample_value\":0,\"path\":[\"embed\",\"settings\",\"badge\"]},\"_p_embed.settings.spatial_label\":{\"ret_value\":\"number\",\"caption\":\"embed settings spatial_label\",\"sample_value\":0,\"path\":[\"embed\",\"settings\",\"spatial_label\"]},\"_p_embed.settings.volume\":{\"ret_value\":\"number\",\"caption\":\"embed settings volume\",\"sample_value\":1,\"path\":[\"embed\",\"settings\",\"volume\"]},\"_p_embed.color\":{\"ret_value\":\"text\",\"caption\":\"embed color\",\"sample_value\":\"00adef\",\"path\":[\"embed\",\"color\"]},\"_p_embed.texttrack\":{\"ret_value\":\"text\",\"caption\":\"embed texttrack\",\"sample_value\":\"\",\"path\":[\"embed\",\"texttrack\"]},\"_p_embed.on_site\":{\"ret_value\":\"number\",\"caption\":\"embed on_site\",\"sample_value\":0,\"path\":[\"embed\",\"on_site\"]},\"_p_embed.app_id\":{\"ret_value\":\"text\",\"caption\":\"embed app_id\",\"sample_value\":\"\",\"path\":[\"embed\",\"app_id\"]},\"_p_embed.muted\":{\"ret_value\":\"number\",\"caption\":\"embed muted\",\"sample_value\":0,\"path\":[\"embed\",\"muted\"]},\"_p_embed.dnt\":{\"ret_value\":\"number\",\"caption\":\"embed dnt\",\"sample_value\":0,\"path\":[\"embed\",\"dnt\"]},\"_p_embed.player_id\":{\"ret_value\":\"text\",\"caption\":\"embed player_id\",\"sample_value\":\"\",\"path\":[\"embed\",\"player_id\"]},\"_p_embed.api\":{\"ret_value\":\"text\",\"caption\":\"embed api\",\"sample_value\":null,\"path\":[\"embed\",\"api\"]},\"_p_embed.editor\":{\"ret_value\":\"boolean\",\"caption\":\"embed editor\",\"sample_value\":false,\"path\":[\"embed\",\"editor\"]},\"_p_embed.context\":{\"ret_value\":\"text\",\"caption\":\"embed context\",\"sample_value\":\"embed.main\",\"path\":[\"embed\",\"context\"]},\"_p_embed.time\":{\"ret_value\":\"number\",\"caption\":\"embed time\",\"sample_value\":0,\"path\":[\"embed\",\"time\"]},\"_p_embed.outro\":{\"ret_value\":\"text\",\"caption\":\"embed outro\",\"sample_value\":\"threevideos\",\"path\":[\"embed\",\"outro\"]},\"_p_embed.log_plays\":{\"ret_value\":\"number\",\"caption\":\"embed log_plays\",\"sample_value\":1,\"path\":[\"embed\",\"log_plays\"]},\"_p_embed.quality\":{\"ret_value\":\"text\",\"caption\":\"embed quality\",\"sample_value\":null,\"path\":[\"embed\",\"quality\"]},\"_p_embed.transparent\":{\"ret_value\":\"number\",\"caption\":\"embed transparent\",\"sample_value\":1,\"path\":[\"embed\",\"transparent\"]},\"_p_embed.loop\":{\"ret_value\":\"number\",\"caption\":\"embed loop\",\"sample_value\":0,\"path\":[\"embed\",\"loop\"]},\"_p_embed.autoplay\":{\"ret_value\":\"number\",\"caption\":\"embed autoplay\",\"sample_value\":0,\"path\":[\"embed\",\"autoplay\"]},\"_p_view\":{\"ret_value\":\"number\",\"caption\":\"view\",\"sample_value\":1},\"_p_vimeo_url\":{\"ret_value\":\"text\",\"caption\":\"vimeo_url\",\"sample_value\":\"vimeo.com\"}}},\"plugin_api.ADm.request.files.dash.streams\":{\"caption\":\"Get data (vimeo) request files dash stream\",\"fields\":{\"_p_profile\":{\"ret_value\":\"number\",\"caption\":\"profile\",\"sample_value\":113},\"_p_quality\":{\"ret_value\":\"text\",\"caption\":\"quality\",\"sample_value\":\"720p\"},\"_p_id\":{\"ret_value\":\"text\",\"caption\":\"id\",\"sample_value\":449260574},\"_p_fps\":{\"ret_value\":\"number\",\"caption\":\"fps\",\"sample_value\":24}}},\"plugin_api.ADm.request.files.dash.streams_avc\":{\"caption\":\"Get data (vimeo) request files dash streams_avc\",\"fields\":{\"_p_profile\":{\"ret_value\":\"number\",\"caption\":\"profile\",\"sample_value\":113},\"_p_quality\":{\"ret_value\":\"text\",\"caption\":\"quality\",\"sample_value\":\"720p\"},\"_p_id\":{\"ret_value\":\"text\",\"caption\":\"id\",\"sample_value\":449260574},\"_p_fps\":{\"ret_value\":\"number\",\"caption\":\"fps\",\"sample_value\":24}}},\"plugin_api.ADm.request.files.progressive\":{\"caption\":\"Get data (vimeo) request files progressive\",\"fields\":{\"_p_profile\":{\"ret_value\":\"number\",\"caption\":\"profile\",\"sample_value\":165},\"_p_width\":{\"ret_value\":\"number\",\"caption\":\"width\",\"sample_value\":960},\"_p_mime\":{\"ret_value\":\"text\",\"caption\":\"mime\",\"sample_value\":\"video/mp4\"},\"_p_fps\":{\"ret_value\":\"number\",\"caption\":\"fps\",\"sample_value\":24},\"_p_url\":{\"ret_value\":\"text\",\"caption\":\"url\",\"sample_value\":\"https://vod-progressive.akamaized.net/exp=1621602255~acl=%2A%2F468975811.mp4%2A~hmac=deb2623e4b006422bebd0514b44ab2ba8580de4a42c567831761dbb8427a87b9/vimeo-prod-skyfire-std-us/01/395/3/76979871/468975811.mp4\"},\"_p_cdn\":{\"ret_value\":\"text\",\"caption\":\"cdn\",\"sample_value\":\"akamai_interconnect\"},\"_p_quality\":{\"ret_value\":\"text\",\"caption\":\"quality\",\"sample_value\":\"540p\"},\"_p_id\":{\"ret_value\":\"text\",\"caption\":\"id\",\"sample_value\":468975811},\"_p_origin\":{\"ret_value\":\"text\",\"caption\":\"origin\",\"sample_value\":\"gcs\"},\"_p_height\":{\"ret_value\":\"number\",\"caption\":\"height\",\"sample_value\":540}}},\"plugin_api.ADm.request.text_tracks\":{\"caption\":\"Get data (vimeo) request text_track\",\"fields\":{\"_p_lang\":{\"ret_value\":\"text\",\"caption\":\"lang\",\"sample_value\":\"de\"},\"_p_url\":{\"ret_value\":\"text\",\"caption\":\"url\",\"sample_value\":\"/texttrack/170.vtt?token=60a7aea3_0xada285bf723e70addc597a6566241ca9631c26e6\"},\"_p_kind\":{\"ret_value\":\"text\",\"caption\":\"kind\",\"sample_value\":\"subtitles\"},\"_p_id\":{\"ret_value\":\"text\",\"caption\":\"id\",\"sample_value\":170},\"_p_label\":{\"ret_value\":\"text\",\"caption\":\"label\",\"sample_value\":\"Deutsch\"}}}}","ret_value":"api.1608469100580x213930232373051400.plugin_api.ADm"},"AEM":{"name":"List transcriptions (happyscribe)","method":"get","publish_as":"action","should_reinitialize":true,"url":"https://www.happyscribe.com/api/v1/transcriptions","initialized":true,"types":"{\"plugin_api.AEM\":{\"caption\":\"List transcriptions (happyscribe)\",\"fields\":{\"_p__links.next.url\":{\"ret_value\":\"text\",\"caption\":\"_links next url\",\"sample_value\":\"https://www.happyscribe.com/api/v1/transcriptions?page=2\",\"path\":[\"_links\",\"next\",\"url\"]}}}}","ret_value":"api.1608469100580x213930232373051400.plugin_api.AEM","headers":{"AJa":{"key":"Authorization","private":true,"visibility":"secret","doc":"This is your HappyScribe API key. Type the word Bearer before the key so it should be like this: Bearer kBrPx32df3jZeEfrt4THgtk"}}},"AEO":{"name":"Create transcription (happyscribe)","method":"post","publish_as":"action","should_reinitialize":true,"url":"https://www.happyscribe.com/api/v1/transcriptions","headers":{"AEU":{"key":"Content-Type","value":"application/json","private":true,"visibility":"hidden"},"AJc":{"key":"Authorization","private":true,"doc":"This is your HappyScribe API key. Type the word Bearer before the key so it should be like this: Bearer kBrPx32df3jZeEfrt4THgtk","visibility":"secret"}},"body":"{\n    \"transcription\": {\n        \"name\": \"<name>\",\n        \"language\": \"<language_code>\",\n        \"tmp_url\": \"<url>\"\n     }\n}","body_params":{"AER":{"key":"name","value":"my test","private":true,"doc":"Name of the transcription."},"AES":{"key":"language_code","value":"en-GB","private":true,"doc":"Language code. Full list here: https://dev.happyscribe.com/#languages"},"AET":{"key":"url","value":"https://vod-progressive.akamaized.net/exp=1611766808~acl=%2A%2F449260574.mp4%2A~hmac=49b6bc3c57964b640f915c10b13998623782e6bdc9dac749fd744ed0e6b39256/vimeo-prod-skyfire-std-us/01/395/3/76979871/449260574.mp4","private":true,"doc":"URL to the video file."}},"initialized":true,"get_headers":false,"types":"{\"plugin_api.AEO\":{\"caption\":\"Create transcription (happyscribe)\",\"fields\":{\"_p_id\":{\"ret_value\":\"text\",\"caption\":\"id\",\"sample_value\":\"07739c345e614dcd9f6597d94fd9961b\"},\"_p_name\":{\"ret_value\":\"text\",\"caption\":\"name\",\"sample_value\":\"my test\"},\"_p_createdAt\":{\"ret_value\":\"text\",\"caption\":\"createdAt\",\"sample_value\":\"2021-01-27T16:08:02.706Z\"},\"_p_updatedAt\":{\"ret_value\":\"text\",\"caption\":\"updatedAt\",\"sample_value\":\"2021-01-27T16:08:02.706Z\"},\"_p_sharingEnabled\":{\"ret_value\":\"boolean\",\"caption\":\"sharingEnabled\",\"sample_value\":false},\"_p_shareCode\":{\"ret_value\":\"text\",\"caption\":\"shareCode\",\"sample_value\":\"ec1f7438b7daaa8823bc\"},\"_p_state\":{\"ret_value\":\"text\",\"caption\":\"state\",\"sample_value\":\"initial\"},\"_p_language\":{\"ret_value\":\"text\",\"caption\":\"language\",\"sample_value\":\"en-GB\"},\"_p__links.self.url\":{\"ret_value\":\"text\",\"caption\":\"_links self url\",\"sample_value\":\"https://www.happyscribe.com/api/v1/transcriptions/07739c345e614dcd9f6597d94fd9961b\",\"path\":[\"_links\",\"self\",\"url\"]},\"_p__links.self.editorUrl\":{\"ret_value\":\"text\",\"caption\":\"_links self editorUrl\",\"sample_value\":\"https://www.happyscribe.com/transcriptions/07739c345e614dcd9f6597d94fd9961b/edit_v2\",\"path\":[\"_links\",\"self\",\"editorUrl\"]}}}}","ret_value":"api.1608469100580x213930232373051400.plugin_api.AEO"},"AEV":{"name":"Retrieve transcription (happyscribe)","method":"get","publish_as":"action","should_reinitialize":true,"url":"https://www.happyscribe.com/api/v1/transcriptions/[transcription_id]","initialized":true,"types":"{\"plugin_api.AEV\":{\"caption\":\"Retrieve transcription (happyscribe)\",\"fields\":{\"_p_id\":{\"ret_value\":\"text\",\"caption\":\"id\",\"sample_value\":\"2454a973767c473f98a7859dcceafe40\"},\"_p_name\":{\"ret_value\":\"text\",\"caption\":\"name\",\"sample_value\":\"my test\"},\"_p_createdAt\":{\"ret_value\":\"text\",\"caption\":\"createdAt\",\"sample_value\":\"2021-01-27T16:54:39.675Z\"},\"_p_updatedAt\":{\"ret_value\":\"text\",\"caption\":\"updatedAt\",\"sample_value\":\"2021-01-28T02:52:21.062Z\"},\"_p_sharingEnabled\":{\"ret_value\":\"boolean\",\"caption\":\"sharingEnabled\",\"sample_value\":false},\"_p_shareCode\":{\"ret_value\":\"text\",\"caption\":\"shareCode\",\"sample_value\":\"e6ad3ead935f317a39e6\"},\"_p_state\":{\"ret_value\":\"text\",\"caption\":\"state\",\"sample_value\":\"automatic_done\"},\"_p_language\":{\"ret_value\":\"text\",\"caption\":\"language\",\"sample_value\":\"en-GB\"},\"_p__links.self.url\":{\"ret_value\":\"text\",\"caption\":\"_links self url\",\"sample_value\":\"https://www.happyscribe.com/api/v1/transcriptions/2454a973767c473f98a7859dcceafe40\",\"path\":[\"_links\",\"self\",\"url\"]},\"_p__links.self.editorUrl\":{\"ret_value\":\"text\",\"caption\":\"_links self editorUrl\",\"sample_value\":\"https://www.happyscribe.com/transcriptions/2454a973767c473f98a7859dcceafe40/edit_v2\",\"path\":[\"_links\",\"self\",\"editorUrl\"]}}}}","ret_value":"api.1608469100580x213930232373051400.plugin_api.AEV","url_params":{"AEz":{"key":"transcription_id","value":"2454a973767c473f98a7859dcceafe40","private":true,"doc":"This is the transcription Id that was returned when you run the endpoint to create a new transcription."}},"headers":{"AJe":{"key":"Authorization","private":true,"doc":"This is your HappyScribe API key. Type the word Bearer before the key so it should be like this: Bearer kBrPx32df3jZeEfrt4THgtk","visibility":"secret"}}},"AEX":{"name":"Create an Export (happyscribe)","method":"post","publish_as":"action","should_reinitialize":true,"url":"https://www.happyscribe.com/api/v1/exports","body":"{\n    \"export\": {\n      \"format\": \"<format>\",\n      \"transcription_ids\": [\"<transcription_ids>\"],\n      \"show_timestamps\": \"<show_timestamps>\",\n      \"show_speakers\": \"<show_speakers>\",\n      \"show_comments\": \"<show_comments>\",\n      \"show_highlights\": \"<show_highlights>\"\n    }\n}","headers":{"AEY":{"key":"Content-Type","value":"application/json","private":true,"visibility":"hidden"},"AJg":{"key":"Authorization","private":true,"visibility":"secret","doc":"This is your HappyScribe API key. Type the word Bearer before the key so it should be like this: Bearer kBrPx32df3jZeEfrt4THgtk"}},"body_params":{"AEa":{"key":"format","value":"txt","private":true,"doc":"Specify the export format. Valid values are: txt, docx, pdf, srt, vtt, stl, avid, html, premiere, maxqda, json, fcp"},"AEb":{"key":"transcription_ids","value":"2454a973767c473f98a7859dcceafe40","private":true,"doc":"This is a list of transcription Id's. If you only have the one then use Bubble's 'first item'. If you have more than one, use Bubble's join with (,) function."},"AFA":{"key":"show_timestamps","value":"false","private":true,"doc":"Include timestamps (only for formats: txt, docx, pdf)"},"AFB":{"key":"show_speakers","value":"false","private":true,"doc":"Include speaker labels (only for formats: txt, docx, pdf)"},"AFC":{"key":"show_comments","value":"false","private":true,"doc":"Include comments (only for formats: txt, docx, pdf)"},"AFD":{"key":"show_highlights","value":"false","private":true,"doc":"Include highlights (only for formats: docx, pdf)"}},"initialized":true,"types":"{\"plugin_api.AEX\":{\"caption\":\"Create an Export (happyscribe)\",\"fields\":{\"_p_id\":{\"ret_value\":\"text\",\"caption\":\"id\",\"sample_value\":\"54fef92e-109f-4c42-9324-c7e81152e0f5\"},\"_p_state\":{\"ret_value\":\"text\",\"caption\":\"state\",\"sample_value\":\"pending\"},\"_p_format\":{\"ret_value\":\"text\",\"caption\":\"format\",\"sample_value\":\"txt\"},\"_p_show_timestamps\":{\"ret_value\":\"boolean\",\"caption\":\"show_timestamps\",\"sample_value\":false},\"_p_show_speakers\":{\"ret_value\":\"boolean\",\"caption\":\"show_speakers\",\"sample_value\":false},\"_p_show_comments\":{\"ret_value\":\"boolean\",\"caption\":\"show_comments\",\"sample_value\":false},\"_p_show_highlights\":{\"ret_value\":\"boolean\",\"caption\":\"show_highlights\",\"sample_value\":false},\"_p_transcription_ids\":{\"ret_value\":\"list.text\",\"caption\":\"transcription_ids\",\"sample_value\":\"2454a973767c473f98a7859dcceafe40\"}}}}","ret_value":"api.1608469100580x213930232373051400.plugin_api.AEX"},"AFE":{"name":"Retrieve an Export (happyscribe)","method":"get","publish_as":"action","url":"https://www.happyscribe.com/api/v1/exports/[export_id]","should_reinitialize":true,"url_params":{"AFF":{"key":"export_id","value":"54fef92e-109f-4c42-9324-c7e81152e0f5","private":true,"doc":"This is the export Id that was returned when you run the endpoint to create a new export."}},"initialized":true,"types":"{\"plugin_api.AFE\":{\"caption\":\"Retrieve an Export (happyscribe)\",\"fields\":{\"_p_id\":{\"ret_value\":\"text\",\"caption\":\"id\",\"sample_value\":\"54fef92e-109f-4c42-9324-c7e81152e0f5\"},\"_p_state\":{\"ret_value\":\"text\",\"caption\":\"state\",\"sample_value\":\"ready\"},\"_p_format\":{\"ret_value\":\"text\",\"caption\":\"format\",\"sample_value\":\"txt\"},\"_p_show_timestamps\":{\"ret_value\":\"boolean\",\"caption\":\"show_timestamps\",\"sample_value\":false},\"_p_show_speakers\":{\"ret_value\":\"boolean\",\"caption\":\"show_speakers\",\"sample_value\":false},\"_p_show_comments\":{\"ret_value\":\"boolean\",\"caption\":\"show_comments\",\"sample_value\":false},\"_p_show_highlights\":{\"ret_value\":\"boolean\",\"caption\":\"show_highlights\",\"sample_value\":false},\"_p_transcription_ids\":{\"ret_value\":\"list.text\",\"caption\":\"transcription_ids\",\"sample_value\":\"2454a973767c473f98a7859dcceafe40\"},\"_p_download_link\":{\"ret_value\":\"text\",\"caption\":\"download_link\",\"sample_value\":\"https://www.happyscribe.com/rails/active_storage/blobs/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBBOXNxekE9PSIsImV4cCI6bnVsbCwicHVyIjoiYmxvYl9pZCJ9fQ==--603efab403188503c6d7cdcd3453a62df4d3c2ea/my%20test.txt?disposition=attachment\"}}}}","ret_value":"api.1608469100580x213930232373051400.plugin_api.AFE","headers":{"AJi":{"key":"Authorization","private":true,"doc":"This is your HappyScribe API key. Type the word Bearer before the key so it should be like this: Bearer kBrPx32df3jZeEfrt4THgtk","visibility":"secret"}}},"AFG":{"name":"List transcriptions (happyscribe)","method":"get","publish_as":"data","should_reinitialize":true,"url":"https://www.happyscribe.com/api/v1/transcriptions","initialized":true,"types":"{\"plugin_api.AFG\":{\"caption\":\"List transcriptions (happyscribe)\",\"fields\":{\"_p_results\":{\"ret_value\":\"list.api.1608469100580x213930232373051400.plugin_api.AFG.results\",\"caption\":\"results\"},\"_p__links.next.url\":{\"ret_value\":\"text\",\"caption\":\"_links next url\",\"sample_value\":\"https://www.happyscribe.com/api/v1/transcriptions?page=2\",\"path\":[\"_links\",\"next\",\"url\"]}}},\"plugin_api.AFG.results\":{\"caption\":\"List transcriptions (happyscribe) result\",\"fields\":{\"_p_id\":{\"ret_value\":\"text\",\"caption\":\"id\",\"sample_value\":\"2454a973767c473f98a7859dcceafe40\"},\"_p_name\":{\"ret_value\":\"text\",\"caption\":\"name\",\"sample_value\":\"my test\"},\"_p_createdAt\":{\"ret_value\":\"text\",\"caption\":\"createdAt\",\"sample_value\":\"2021-01-27T16:54:39.675Z\"},\"_p_updatedAt\":{\"ret_value\":\"text\",\"caption\":\"updatedAt\",\"sample_value\":\"2021-01-27T16:57:26.781Z\"},\"_p_sharingEnabled\":{\"ret_value\":\"boolean\",\"caption\":\"sharingEnabled\",\"sample_value\":false},\"_p_shareCode\":{\"ret_value\":\"text\",\"caption\":\"shareCode\",\"sample_value\":\"e6ad3ead935f317a39e6\"},\"_p_state\":{\"ret_value\":\"text\",\"caption\":\"state\",\"sample_value\":\"automatic_done\"},\"_p_language\":{\"ret_value\":\"text\",\"caption\":\"language\",\"sample_value\":\"en-GB\"},\"_p__links.self.url\":{\"ret_value\":\"text\",\"caption\":\"_links self url\",\"sample_value\":\"https://www.happyscribe.com/api/v1/transcriptions/2454a973767c473f98a7859dcceafe40\",\"path\":[\"_links\",\"self\",\"url\"]},\"_p__links.self.editorUrl\":{\"ret_value\":\"text\",\"caption\":\"_links self editorUrl\",\"sample_value\":\"https://www.happyscribe.com/transcriptions/2454a973767c473f98a7859dcceafe40/edit_v2\",\"path\":[\"_links\",\"self\",\"editorUrl\"]}}}}","ret_value":"api.1608469100580x213930232373051400.plugin_api.AFG","headers":{"AJb":{"key":"Authorization","private":true,"visibility":"secret","doc":"This is your HappyScribe API key. Type the word Bearer before the key so it should be like this: Bearer kBrPx32df3jZeEfrt4THgtk"}}},"AFH":{"name":"Create transcription (happyscribe)","method":"post","publish_as":"data","should_reinitialize":true,"url":"https://www.happyscribe.com/api/v1/transcriptions","headers":{"AFI":{"key":"Content-Type","value":"application/json","private":true,"visibility":"hidden"},"AJf":{"key":"Authorization","private":true,"visibility":"secret","doc":"This is your HappyScribe API key. Type the word Bearer before the key so it should be like this: Bearer kBrPx32df3jZeEfrt4THgtk"}},"body":"{\n    \"transcription\": {\n        \"name\": \"<name>\",\n        \"language\": \"<language_code>\",\n        \"tmp_url\": \"<url>\"\n     }\n}","body_params":{"AFJ":{"key":"name","value":"my test","private":true,"doc":"Name of the transcription."},"AFK":{"key":"language_code","value":"en-GB","private":true,"doc":"Language code. Full list here: https://dev.happyscribe.com/#languages"},"AFL":{"key":"url","value":"https://vod-progressive.akamaized.net/exp=1611766808~acl=%2A%2F449260574.mp4%2A~hmac=49b6bc3c57964b640f915c10b13998623782e6bdc9dac749fd744ed0e6b39256/vimeo-prod-skyfire-std-us/01/395/3/76979871/449260574.mp4","private":true,"doc":"URL to the video file."}},"initialized":true,"types":"{\"plugin_api.AFH\":{\"caption\":\"Create transcription (happyscribe)\",\"fields\":{\"_p_id\":{\"ret_value\":\"text\",\"caption\":\"id\",\"sample_value\":\"32eb9c31377e4aa3b42a204a7290b892\"},\"_p_name\":{\"ret_value\":\"text\",\"caption\":\"name\",\"sample_value\":\"my test\"},\"_p_createdAt\":{\"ret_value\":\"text\",\"caption\":\"createdAt\",\"sample_value\":\"2021-01-27T17:22:29.599Z\"},\"_p_updatedAt\":{\"ret_value\":\"text\",\"caption\":\"updatedAt\",\"sample_value\":\"2021-01-27T17:22:29.599Z\"},\"_p_sharingEnabled\":{\"ret_value\":\"boolean\",\"caption\":\"sharingEnabled\",\"sample_value\":false},\"_p_shareCode\":{\"ret_value\":\"text\",\"caption\":\"shareCode\",\"sample_value\":\"257f0d2cfdad7d705626\"},\"_p_state\":{\"ret_value\":\"text\",\"caption\":\"state\",\"sample_value\":\"initial\"},\"_p_language\":{\"ret_value\":\"text\",\"caption\":\"language\",\"sample_value\":\"en-GB\"},\"_p__links.self.url\":{\"ret_value\":\"text\",\"caption\":\"_links self url\",\"sample_value\":\"https://www.happyscribe.com/api/v1/transcriptions/32eb9c31377e4aa3b42a204a7290b892\",\"path\":[\"_links\",\"self\",\"url\"]},\"_p__links.self.editorUrl\":{\"ret_value\":\"text\",\"caption\":\"_links self editorUrl\",\"sample_value\":\"https://www.happyscribe.com/transcriptions/32eb9c31377e4aa3b42a204a7290b892/edit_v2\",\"path\":[\"_links\",\"self\",\"editorUrl\"]}}}}","ret_value":"api.1608469100580x213930232373051400.plugin_api.AFH"},"AFM":{"name":"Retrieve transcription (happyscribe)","method":"get","publish_as":"data","should_reinitialize":true,"url":"https://www.happyscribe.com/api/v1/transcriptions/[transcription_id]","url_params":{"AFN":{"key":"transcription_id","value":"2454a973767c473f98a7859dcceafe40","private":true,"doc":"This is the transcription Id that was returned when you run the endpoint to create a new transcription."}},"initialized":true,"types":"{\"plugin_api.AFM\":{\"caption\":\"Retrieve transcription (happyscribe)\",\"fields\":{\"_p_id\":{\"ret_value\":\"text\",\"caption\":\"id\",\"sample_value\":\"2454a973767c473f98a7859dcceafe40\"},\"_p_name\":{\"ret_value\":\"text\",\"caption\":\"name\",\"sample_value\":\"my test\"},\"_p_createdAt\":{\"ret_value\":\"text\",\"caption\":\"createdAt\",\"sample_value\":\"2021-01-27T16:54:39.675Z\"},\"_p_updatedAt\":{\"ret_value\":\"text\",\"caption\":\"updatedAt\",\"sample_value\":\"2021-01-27T16:57:26.781Z\"},\"_p_sharingEnabled\":{\"ret_value\":\"boolean\",\"caption\":\"sharingEnabled\",\"sample_value\":false},\"_p_shareCode\":{\"ret_value\":\"text\",\"caption\":\"shareCode\",\"sample_value\":\"e6ad3ead935f317a39e6\"},\"_p_state\":{\"ret_value\":\"text\",\"caption\":\"state\",\"sample_value\":\"automatic_done\"},\"_p_language\":{\"ret_value\":\"text\",\"caption\":\"language\",\"sample_value\":\"en-GB\"},\"_p__links.self.url\":{\"ret_value\":\"text\",\"caption\":\"_links self url\",\"sample_value\":\"https://www.happyscribe.com/api/v1/transcriptions/2454a973767c473f98a7859dcceafe40\",\"path\":[\"_links\",\"self\",\"url\"]},\"_p__links.self.editorUrl\":{\"ret_value\":\"text\",\"caption\":\"_links self editorUrl\",\"sample_value\":\"https://www.happyscribe.com/transcriptions/2454a973767c473f98a7859dcceafe40/edit_v2\",\"path\":[\"_links\",\"self\",\"editorUrl\"]}}}}","ret_value":"api.1608469100580x213930232373051400.plugin_api.AFM","headers":{"AJd":{"key":"Authorization","private":true,"doc":"This is your HappyScribe API key. Type the word Bearer before the key so it should be like this: Bearer kBrPx32df3jZeEfrt4THgtk","visibility":"secret"}}},"AFO":{"name":"Create an Export (happyscribe)","method":"post","publish_as":"data","should_reinitialize":true,"url":"https://www.happyscribe.com/api/v1/exports","headers":{"AFP":{"key":"Content-Type","value":"application/json","private":true,"visibility":"hidden"},"AJh":{"key":"Authorization","private":true,"visibility":"secret","doc":"This is your HappyScribe API key. Type the word Bearer before the key so it should be like this: Bearer kBrPx32df3jZeEfrt4THgtk"}},"body":"{\n    \"export\": {\n      \"format\": \"<format>\",\n      \"transcription_ids\": [\"<transcription_ids>\"],\n      \"show_timestamps\": \"<show_timestamps>\",\n      \"show_speakers\": \"<show_speakers>\",\n      \"show_comments\": \"<show_comments>\",\n      \"show_highlights\": \"<show_highlights>\"\n    }\n}","body_params":{"AFQ":{"key":"format","value":"txt","private":true,"doc":"Specify the export format. Valid values are: txt, docx, pdf, srt, vtt, stl, avid, html, premiere, maxqda, json, fcp"},"AFR":{"key":"transcription_ids","value":"2454a973767c473f98a7859dcceafe40","private":true,"doc":"This is a list of transcription Id's. If you only have the one then use Bubble's 'first item'. If you have more than one, use Bubble's join with (,) function."},"AFS":{"key":"show_timestamps","value":"false","private":true,"doc":"Include timestamps (only for formats: txt, docx, pdf)"},"AFT":{"key":"show_speakers","value":"false","private":true,"doc":"Include speaker labels (only for formats: txt, docx, pdf)"},"AFU":{"key":"show_comments","value":"false","private":true,"doc":"Include comments (only for formats: txt, docx, pdf)"},"AFV":{"key":"show_highlights","value":"false","private":true,"doc":"Include highlights (only for formats: docx, pdf)"}},"initialized":true,"types":"{\"plugin_api.AFO\":{\"caption\":\"Create an Export (happyscribe)\",\"fields\":{\"_p_id\":{\"ret_value\":\"text\",\"caption\":\"id\",\"sample_value\":\"0751ce21-4410-40fd-9b50-18aafb84425a\"},\"_p_state\":{\"ret_value\":\"text\",\"caption\":\"state\",\"sample_value\":\"pending\"},\"_p_format\":{\"ret_value\":\"text\",\"caption\":\"format\",\"sample_value\":\"txt\"},\"_p_show_timestamps\":{\"ret_value\":\"boolean\",\"caption\":\"show_timestamps\",\"sample_value\":false},\"_p_show_speakers\":{\"ret_value\":\"boolean\",\"caption\":\"show_speakers\",\"sample_value\":false},\"_p_show_comments\":{\"ret_value\":\"boolean\",\"caption\":\"show_comments\",\"sample_value\":false},\"_p_show_highlights\":{\"ret_value\":\"boolean\",\"caption\":\"show_highlights\",\"sample_value\":false},\"_p_transcription_ids\":{\"ret_value\":\"list.text\",\"caption\":\"transcription_ids\",\"sample_value\":\"2454a973767c473f98a7859dcceafe40\"}}}}","ret_value":"api.1608469100580x213930232373051400.plugin_api.AFO"},"AFW":{"name":"Retrieve an Export (happyscribe)","method":"get","publish_as":"data","should_reinitialize":true,"url":"https://www.happyscribe.com/api/v1/exports/[export_id]","url_params":{"AFX":{"key":"export_id","value":"54fef92e-109f-4c42-9324-c7e81152e0f5","private":true,"doc":"This is the export Id that was returned when you run the endpoint to create a new export."}},"initialized":true,"types":"{\"plugin_api.AFW\":{\"caption\":\"Retrieve an Export (happyscribe)\",\"fields\":{\"_p_id\":{\"ret_value\":\"text\",\"caption\":\"id\",\"sample_value\":\"54fef92e-109f-4c42-9324-c7e81152e0f5\"},\"_p_state\":{\"ret_value\":\"text\",\"caption\":\"state\",\"sample_value\":\"ready\"},\"_p_format\":{\"ret_value\":\"text\",\"caption\":\"format\",\"sample_value\":\"txt\"},\"_p_show_timestamps\":{\"ret_value\":\"boolean\",\"caption\":\"show_timestamps\",\"sample_value\":false},\"_p_show_speakers\":{\"ret_value\":\"boolean\",\"caption\":\"show_speakers\",\"sample_value\":false},\"_p_show_comments\":{\"ret_value\":\"boolean\",\"caption\":\"show_comments\",\"sample_value\":false},\"_p_show_highlights\":{\"ret_value\":\"boolean\",\"caption\":\"show_highlights\",\"sample_value\":false},\"_p_transcription_ids\":{\"ret_value\":\"list.text\",\"caption\":\"transcription_ids\",\"sample_value\":\"2454a973767c473f98a7859dcceafe40\"},\"_p_download_link\":{\"ret_value\":\"text\",\"caption\":\"download_link\",\"sample_value\":\"https://www.happyscribe.com/rails/active_storage/blobs/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBBOXNxekE9PSIsImV4cCI6bnVsbCwicHVyIjoiYmxvYl9pZCJ9fQ==--603efab403188503c6d7cdcd3453a62df4d3c2ea/my%20test.txt?disposition=attachment\"}}}}","ret_value":"api.1608469100580x213930232373051400.plugin_api.AFW","headers":{"AJj":{"key":"Authorization","private":true,"doc":"This is your HappyScribe API key. Type the word Bearer before the key so it should be like this: Bearer kBrPx32df3jZeEfrt4THgtk","visibility":"secret"}}},"AIG":{"name":"Get stats data (wistia)","method":"get","publish_as":"action","should_reinitialize":true,"url":"https://api.wistia.com/v1/stats/medias/[wistia_id].json","url_params":{"AIW":{"key":"wistia_id","value":"","private":true,"doc":"Enter a valid Wistia video Id here."}},"initialized":true,"types":"{\"plugin_api.AIG\":{\"caption\":\"Get stats data (wistia)\",\"fields\":{\"_p_load_count\":{\"ret_value\":\"number\",\"caption\":\"load_count\",\"sample_value\":33},\"_p_play_count\":{\"ret_value\":\"number\",\"caption\":\"play_count\",\"sample_value\":9},\"_p_play_rate\":{\"ret_value\":\"number\",\"caption\":\"play_rate\",\"sample_value\":0.5833333333333334},\"_p_hours_watched\":{\"ret_value\":\"number\",\"caption\":\"hours_watched\",\"sample_value\":0.039460949999999995},\"_p_engagement\":{\"ret_value\":\"number\",\"caption\":\"engagement\",\"sample_value\":0.263073},\"_p_visitors\":{\"ret_value\":\"number\",\"caption\":\"visitors\",\"sample_value\":12},\"_p_actions\":{\"ret_value\":\"list.api.1608469100580x213930232373051400.plugin_api.AIG.actions\",\"caption\":\"actions\"}}},\"plugin_api.AIG.actions\":{\"caption\":\"Get stats data (wistia) action\",\"fields\":{\"_p_type\":{\"ret_value\":\"text\",\"caption\":\"type\",\"sample_value\":\"Turnstile\"},\"_p_action_count\":{\"ret_value\":\"number\",\"caption\":\"action_count\",\"sample_value\":0},\"_p_impression_count\":{\"ret_value\":\"number\",\"caption\":\"impression_count\",\"sample_value\":8},\"_p_rate\":{\"ret_value\":\"number\",\"caption\":\"rate\",\"sample_value\":0}}}}","ret_value":"api.1608469100580x213930232373051400.plugin_api.AIG","headers":{"AnJ":{"key":"Authorization","private":true,"visibility":"secret","doc":"This is your Wistia bearer token. Type the word Bearer before the key so it should be like this: Bearer kBrPx32df3jZeEfrt4THgtk"}}},"AIJ":{"name":"Get stats data (wistia)","method":"get","publish_as":"data","should_reinitialize":true,"url":"https://api.wistia.com/v1/stats/medias/[wistia_id].json","url_params":{"AIR":{"key":"wistia_id","value":"","private":true,"doc":"Enter a valid Wistia video Id here."}},"initialized":true,"types":"{\"plugin_api.AIJ\":{\"caption\":\"Get stats data (wistia)\",\"fields\":{\"_p_load_count\":{\"ret_value\":\"number\",\"caption\":\"load_count\",\"sample_value\":33},\"_p_play_count\":{\"ret_value\":\"number\",\"caption\":\"play_count\",\"sample_value\":9},\"_p_play_rate\":{\"ret_value\":\"number\",\"caption\":\"play_rate\",\"sample_value\":0.5833333333333334},\"_p_hours_watched\":{\"ret_value\":\"number\",\"caption\":\"hours_watched\",\"sample_value\":0.039460949999999995},\"_p_engagement\":{\"ret_value\":\"number\",\"caption\":\"engagement\",\"sample_value\":0.263073},\"_p_visitors\":{\"ret_value\":\"number\",\"caption\":\"visitors\",\"sample_value\":12},\"_p_actions\":{\"ret_value\":\"list.api.1608469100580x213930232373051400.plugin_api.AIJ.actions\",\"caption\":\"actions\"}}},\"plugin_api.AIJ.actions\":{\"caption\":\"Get stats data (wistia) action\",\"fields\":{\"_p_type\":{\"ret_value\":\"text\",\"caption\":\"type\",\"sample_value\":\"Turnstile\"},\"_p_action_count\":{\"ret_value\":\"number\",\"caption\":\"action_count\",\"sample_value\":0},\"_p_impression_count\":{\"ret_value\":\"number\",\"caption\":\"impression_count\",\"sample_value\":8},\"_p_rate\":{\"ret_value\":\"number\",\"caption\":\"rate\",\"sample_value\":0}}}}","ret_value":"api.1608469100580x213930232373051400.plugin_api.AIJ","headers":{"AnI":{"key":"Authorization","private":true,"visibility":"secret","doc":"This is your Wistia bearer token. Type the word Bearer before the key so it should be like this: Bearer kBrPx32df3jZeEfrt4THgtk"}}},"AIZ":{"name":"Get engagement data (wistia)","method":"get","publish_as":"action","should_reinitialize":true,"url":"https://api.wistia.com/v1/stats/medias/[wistia_id]/engagement.json","url_params":{"AIc":{"key":"wistia_id","value":"","private":true,"doc":"Enter a valid Wistia video Id here."}},"initialized":true,"types":"{\"plugin_api.AIZ\":{\"caption\":\"Get engagement data (wistia)\",\"fields\":{\"_p_engagement\":{\"ret_value\":\"number\",\"caption\":\"engagement\",\"sample_value\":0.263073},\"_p_engagement_data\":{\"ret_value\":\"list.number\",\"caption\":\"engagement_data\",\"sample_value\":8},\"_p_rewatch_data\":{\"ret_value\":\"list.number\",\"caption\":\"rewatch_data\",\"sample_value\":0}}}}","ret_value":"api.1608469100580x213930232373051400.plugin_api.AIZ","headers":{"AnH":{"key":"Authorization","private":true,"visibility":"secret","doc":"This is your Wistia bearer token. Type the word Bearer before the key so it should be like this: Bearer kBrPx32df3jZeEfrt4THgtk"}}},"AIa":{"name":"Get engagement data (wistia)","method":"get","publish_as":"data","should_reinitialize":true,"url":"https://api.wistia.com/v1/stats/medias/[wistia_id]/engagement.json","url_params":{"AIf":{"key":"wistia_id","value":"","private":true,"doc":"Enter a valid Wistia video Id here."}},"initialized":true,"types":"{\"plugin_api.AIa\":{\"caption\":\"Get engagement data (wistia)\",\"fields\":{\"_p_engagement\":{\"ret_value\":\"number\",\"caption\":\"engagement\",\"sample_value\":0.263073},\"_p_engagement_data\":{\"ret_value\":\"list.number\",\"caption\":\"engagement_data\",\"sample_value\":8},\"_p_rewatch_data\":{\"ret_value\":\"list.number\",\"caption\":\"rewatch_data\",\"sample_value\":0}}}}","ret_value":"api.1608469100580x213930232373051400.plugin_api.AIa","headers":{"AnG":{"key":"Authorization","private":true,"visibility":"secret","doc":"This is your Wistia bearer token. Type the word Bearer before the key so it should be like this: Bearer kBrPx32df3jZeEfrt4THgtk"}}},"AIh":{"name":"Get projects list data (wistia)","method":"get","publish_as":"action","should_reinitialize":true,"url":"https://api.wistia.com/v1/projects.json?page=[page]&per_page=10","url_params":{"AIi":{"key":"page","value":"1","private":true,"doc":"If you're returning more than 10 projects in one request, you can change the page number here."}},"initialized":true,"types":"{\"plugin_api.AIh\":{\"caption\":\"Get projects list data (wistia)\",\"fields\":{\"_p_id\":{\"ret_value\":\"text\",\"caption\":\"id\",\"sample_value\":5645169},\"_p_name\":{\"ret_value\":\"text\",\"caption\":\"name\",\"sample_value\":\"Paul's first project\"},\"_p_mediaCount\":{\"ret_value\":\"number\",\"caption\":\"mediaCount\",\"sample_value\":3},\"_p_created\":{\"ret_value\":\"text\",\"caption\":\"created\",\"sample_value\":\"2021-01-22T21:59:22+00:00\"},\"_p_updated\":{\"ret_value\":\"text\",\"caption\":\"updated\",\"sample_value\":\"2021-05-22T04:57:06+00:00\"},\"_p_hashedId\":{\"ret_value\":\"text\",\"caption\":\"hashedId\",\"sample_value\":\"4y6nqui8on\"},\"_p_anonymousCanUpload\":{\"ret_value\":\"boolean\",\"caption\":\"anonymousCanUpload\",\"sample_value\":false},\"_p_anonymousCanDownload\":{\"ret_value\":\"boolean\",\"caption\":\"anonymousCanDownload\",\"sample_value\":false},\"_p_public\":{\"ret_value\":\"boolean\",\"caption\":\"public\",\"sample_value\":true},\"_p_publicId\":{\"ret_value\":\"text\",\"caption\":\"publicId\",\"sample_value\":\"4y6nqui8on\"},\"_p_description\":{\"ret_value\":\"text\",\"caption\":\"description\",\"sample_value\":\"Get started by adding a video to your project - you can always delete it later!\"}}}}","is_list":true,"ret_value":"api.1608469100580x213930232373051400.plugin_api.AIh","headers":{"AnF":{"key":"Authorization","private":true,"visibility":"secret","doc":"This is your Wistia bearer token. Type the word Bearer before the key so it should be like this: Bearer kBrPx32df3jZeEfrt4THgtk"}}},"AIm":{"name":"Get projects list data (wistia)","method":"get","publish_as":"data","should_reinitialize":true,"url":"https://api.wistia.com/v1/projects.json?page=[page]&per_page=10","url_params":{"AIo":{"key":"page","value":"1","private":true,"doc":"If you're returning more than 10 projects in one request, you can change the page number here."}},"initialized":true,"types":"{\"plugin_api.AIm\":{\"caption\":\"Get projects list data (wistia)\",\"fields\":{\"_p_id\":{\"ret_value\":\"text\",\"caption\":\"id\",\"sample_value\":5645169},\"_p_name\":{\"ret_value\":\"text\",\"caption\":\"name\",\"sample_value\":\"Paul's first project\"},\"_p_mediaCount\":{\"ret_value\":\"number\",\"caption\":\"mediaCount\",\"sample_value\":3},\"_p_created\":{\"ret_value\":\"text\",\"caption\":\"created\",\"sample_value\":\"2021-01-22T21:59:22+00:00\"},\"_p_updated\":{\"ret_value\":\"text\",\"caption\":\"updated\",\"sample_value\":\"2021-05-22T04:57:06+00:00\"},\"_p_hashedId\":{\"ret_value\":\"text\",\"caption\":\"hashedId\",\"sample_value\":\"4y6nqui8on\"},\"_p_anonymousCanUpload\":{\"ret_value\":\"boolean\",\"caption\":\"anonymousCanUpload\",\"sample_value\":false},\"_p_anonymousCanDownload\":{\"ret_value\":\"boolean\",\"caption\":\"anonymousCanDownload\",\"sample_value\":false},\"_p_public\":{\"ret_value\":\"boolean\",\"caption\":\"public\",\"sample_value\":true},\"_p_publicId\":{\"ret_value\":\"text\",\"caption\":\"publicId\",\"sample_value\":\"4y6nqui8on\"},\"_p_description\":{\"ret_value\":\"text\",\"caption\":\"description\",\"sample_value\":\"Get started by adding a video to your project - you can always delete it later!\"}}}}","is_list":true,"ret_value":"api.1608469100580x213930232373051400.plugin_api.AIm","headers":{"AnK":{"key":"Authorization","private":true,"visibility":"secret","doc":"This is your Wistia bearer token. Type the word Bearer before the key so it should be like this: Bearer kBrPx32df3jZeEfrt4THgtk"}}},"AIp":{"name":"Get project show data (wistia)","method":"get","publish_as":"action","url":"https://api.wistia.com/v1/projects/[project_id].json","should_reinitialize":true,"url_params":{"AIq":{"key":"project_id","value":"","private":true,"doc":"Enter your project Id here."}},"initialized":true,"types":"{\"plugin_api.AIp\":{\"caption\":\"Get project show data (wistia)\",\"fields\":{\"_p_id\":{\"ret_value\":\"text\",\"caption\":\"id\",\"sample_value\":5645169},\"_p_name\":{\"ret_value\":\"text\",\"caption\":\"name\",\"sample_value\":\"Paul's first project\"},\"_p_mediaCount\":{\"ret_value\":\"number\",\"caption\":\"mediaCount\",\"sample_value\":3},\"_p_created\":{\"ret_value\":\"text\",\"caption\":\"created\",\"sample_value\":\"2021-01-22T21:59:22+00:00\"},\"_p_updated\":{\"ret_value\":\"text\",\"caption\":\"updated\",\"sample_value\":\"2021-05-22T04:57:06+00:00\"},\"_p_hashedId\":{\"ret_value\":\"text\",\"caption\":\"hashedId\",\"sample_value\":\"4y6nqui8on\"},\"_p_anonymousCanUpload\":{\"ret_value\":\"boolean\",\"caption\":\"anonymousCanUpload\",\"sample_value\":false},\"_p_anonymousCanDownload\":{\"ret_value\":\"boolean\",\"caption\":\"anonymousCanDownload\",\"sample_value\":false},\"_p_public\":{\"ret_value\":\"boolean\",\"caption\":\"public\",\"sample_value\":true},\"_p_publicId\":{\"ret_value\":\"text\",\"caption\":\"publicId\",\"sample_value\":\"4y6nqui8on\"},\"_p_description\":{\"ret_value\":\"text\",\"caption\":\"description\",\"sample_value\":\"Get started by adding a video to your project - you can always delete it later!\"},\"_p_medias\":{\"ret_value\":\"list.api.1608469100580x213930232373051400.plugin_api.AIp.medias\",\"caption\":\"medias\"}}},\"plugin_api.AIp.medias\":{\"caption\":\"Get project show data (wistia) media\",\"fields\":{\"_p_id\":{\"ret_value\":\"text\",\"caption\":\"id\",\"sample_value\":68900804},\"_p_name\":{\"ret_value\":\"text\",\"caption\":\"name\",\"sample_value\":\"Big Buck Bunny\"},\"_p_type\":{\"ret_value\":\"text\",\"caption\":\"type\",\"sample_value\":\"Video\"},\"_p_created\":{\"ret_value\":\"text\",\"caption\":\"created\",\"sample_value\":\"2021-02-18T14:30:21+00:00\"},\"_p_updated\":{\"ret_value\":\"text\",\"caption\":\"updated\",\"sample_value\":\"2021-05-22T04:57:06+00:00\"},\"_p_duration\":{\"ret_value\":\"number\",\"caption\":\"duration\",\"sample_value\":60},\"_p_hashed_id\":{\"ret_value\":\"text\",\"caption\":\"hashed_id\",\"sample_value\":\"khuace7itk\"},\"_p_description\":{\"ret_value\":\"text\",\"caption\":\"description\",\"sample_value\":\"\"},\"_p_progress\":{\"ret_value\":\"number\",\"caption\":\"progress\",\"sample_value\":1},\"_p_status\":{\"ret_value\":\"text\",\"caption\":\"status\",\"sample_value\":\"ready\"},\"_p_thumbnail.url\":{\"ret_value\":\"text\",\"caption\":\"thumbnail url\",\"sample_value\":\"https://embed-ssl.wistia.com/deliveries/43b7e26e02e1dbaaca1f4e5f7137941a6a30bbd8.jpg?image_crop_resized=200x120\",\"path\":[\"thumbnail\",\"url\"]},\"_p_thumbnail.width\":{\"ret_value\":\"number\",\"caption\":\"thumbnail width\",\"sample_value\":200,\"path\":[\"thumbnail\",\"width\"]},\"_p_thumbnail.height\":{\"ret_value\":\"number\",\"caption\":\"thumbnail height\",\"sample_value\":120,\"path\":[\"thumbnail\",\"height\"]}}}}","ret_value":"api.1608469100580x213930232373051400.plugin_api.AIp","headers":{"AnL":{"key":"Authorization","private":true,"visibility":"secret","doc":"This is your Wistia bearer token. Type the word Bearer before the key so it should be like this: Bearer kBrPx32df3jZeEfrt4THgtk"}}},"AIs":{"name":"Get project show data (wistia)","method":"get","publish_as":"data","should_reinitialize":true,"url":"https://api.wistia.com/v1/projects/[project_id].json","url_params":{"AIt":{"key":"project_id","value":"","private":true,"doc":"Enter your project Id here."}},"initialized":true,"types":"{\"plugin_api.AIs\":{\"caption\":\"Get project show data (wistia)\",\"fields\":{\"_p_id\":{\"ret_value\":\"text\",\"caption\":\"id\",\"sample_value\":5645169},\"_p_name\":{\"ret_value\":\"text\",\"caption\":\"name\",\"sample_value\":\"Paul's first project\"},\"_p_mediaCount\":{\"ret_value\":\"number\",\"caption\":\"mediaCount\",\"sample_value\":3},\"_p_created\":{\"ret_value\":\"text\",\"caption\":\"created\",\"sample_value\":\"2021-01-22T21:59:22+00:00\"},\"_p_updated\":{\"ret_value\":\"text\",\"caption\":\"updated\",\"sample_value\":\"2021-05-22T04:57:06+00:00\"},\"_p_hashedId\":{\"ret_value\":\"text\",\"caption\":\"hashedId\",\"sample_value\":\"4y6nqui8on\"},\"_p_anonymousCanUpload\":{\"ret_value\":\"boolean\",\"caption\":\"anonymousCanUpload\",\"sample_value\":false},\"_p_anonymousCanDownload\":{\"ret_value\":\"boolean\",\"caption\":\"anonymousCanDownload\",\"sample_value\":false},\"_p_public\":{\"ret_value\":\"boolean\",\"caption\":\"public\",\"sample_value\":true},\"_p_publicId\":{\"ret_value\":\"text\",\"caption\":\"publicId\",\"sample_value\":\"4y6nqui8on\"},\"_p_description\":{\"ret_value\":\"text\",\"caption\":\"description\",\"sample_value\":\"Get started by adding a video to your project - you can always delete it later!\"},\"_p_medias\":{\"ret_value\":\"list.api.1608469100580x213930232373051400.plugin_api.AIs.medias\",\"caption\":\"medias\"}}},\"plugin_api.AIs.medias\":{\"caption\":\"Get project show data (wistia) media\",\"fields\":{\"_p_id\":{\"ret_value\":\"text\",\"caption\":\"id\",\"sample_value\":68900804},\"_p_name\":{\"ret_value\":\"text\",\"caption\":\"name\",\"sample_value\":\"Big Buck Bunny\"},\"_p_type\":{\"ret_value\":\"text\",\"caption\":\"type\",\"sample_value\":\"Video\"},\"_p_created\":{\"ret_value\":\"text\",\"caption\":\"created\",\"sample_value\":\"2021-02-18T14:30:21+00:00\"},\"_p_updated\":{\"ret_value\":\"text\",\"caption\":\"updated\",\"sample_value\":\"2021-05-22T04:57:06+00:00\"},\"_p_duration\":{\"ret_value\":\"number\",\"caption\":\"duration\",\"sample_value\":60},\"_p_hashed_id\":{\"ret_value\":\"text\",\"caption\":\"hashed_id\",\"sample_value\":\"khuace7itk\"},\"_p_description\":{\"ret_value\":\"text\",\"caption\":\"description\",\"sample_value\":\"\"},\"_p_progress\":{\"ret_value\":\"number\",\"caption\":\"progress\",\"sample_value\":1},\"_p_status\":{\"ret_value\":\"text\",\"caption\":\"status\",\"sample_value\":\"ready\"},\"_p_thumbnail.url\":{\"ret_value\":\"text\",\"caption\":\"thumbnail url\",\"sample_value\":\"https://embed-ssl.wistia.com/deliveries/43b7e26e02e1dbaaca1f4e5f7137941a6a30bbd8.jpg?image_crop_resized=200x120\",\"path\":[\"thumbnail\",\"url\"]},\"_p_thumbnail.width\":{\"ret_value\":\"number\",\"caption\":\"thumbnail width\",\"sample_value\":200,\"path\":[\"thumbnail\",\"width\"]},\"_p_thumbnail.height\":{\"ret_value\":\"number\",\"caption\":\"thumbnail height\",\"sample_value\":120,\"path\":[\"thumbnail\",\"height\"]}}}}","ret_value":"api.1608469100580x213930232373051400.plugin_api.AIs","headers":{"AnM":{"key":"Authorization","private":true,"visibility":"secret","doc":"This is your Wistia bearer token. Type the word Bearer before the key so it should be like this: Bearer kBrPx32df3jZeEfrt4THgtk"}}},"AJk":{"name":"Create upload URL (MUX)","method":"post","publish_as":"data","should_reinitialize":true,"headers":{"AJl":{"key":"Content-Type","value":"application/json","private":true,"visibility":"hidden"},"AJm":{"key":"Authorization","private":true,"visibility":"secret","doc":"See here for how to generate the base64 authorization header: http://paul-testing-4.bubbleapps.io/base64_authorization"}},"url":"https://api.mux.com/video/v1/uploads","body":"{\n\t\"new_asset_settings\": {\n        \"passthrough\": \"<Passthrough>\",\n\t\t\"playback_policy\": [\n\t\t\t\"<Playback_policy>\"\n\t\t],\n        \"mp4_support\": \"standard\"\n\t},\n\t\"cors_origin\": \"<CORS_origin>\"\n}","initialized":true,"get_headers":false,"types":"{\"plugin_api.AJk\":{\"caption\":\"Create upload URL (MUX)\",\"fields\":{\"_p_data.url\":{\"ret_value\":\"text\",\"caption\":\"url\",\"sample_value\":\"https://storage.googleapis.com/video-storage-us-east1-uploads/RxYKJ6x7DKSLM8vbNyGW802Z00e01nbshwjdy7QXAcS7PQ?Expires=1619595636&GoogleAccessId=mux-direct-upload%40mux-cloud.iam.gserviceaccount.com&Signature=N3rg1rv4GnZPunMcZNrgscPdbKQGP59RD5wJjc2sECT5MlPauDbafQv6GUAQcLV0GO%2FKfM5WVeY3ncN8qa0dSXMohBrJR3rcdyxMJDVm%2FKGU8e%2FkdarZuihWwgu0hsZwYSXS8EW5ubLP0Zy65onk4sYmDy02R7EO8uQWMrVzOI5CAMAAXwLFAy8jiDgOKOXqrNh47xW9%2BQhk%2FptWo2X8FJ3ub%2BNIa9mtPiZ0yUYOdZiknA%2BXQ3f9QGQKIE21Cx5Yh1nNQEQwec3sFXLlQfCwE0s%2FWlPacLu3OFJvyoR8ubGufysJFqyffHQ%2BS8kToj5buquHD5idqUpvtTzDYX2D8A%3D%3D&upload_id=ABg5-UxKJwCTDXic2tG07Cxs4zwsVcWnCyG17nHpyQH2SHYDtICshtXLvRJ0k6VCErllZTHTiU-cji3LIB0OEXe3-xI\",\"path\":[\"data\",\"url\"]},\"_p_data.timeout\":{\"ret_value\":\"number\",\"caption\":\"timeout\",\"sample_value\":3600,\"path\":[\"data\",\"timeout\"]},\"_p_data.test\":{\"ret_value\":\"boolean\",\"caption\":\"test\",\"sample_value\":true,\"path\":[\"data\",\"test\"]},\"_p_data.status\":{\"ret_value\":\"text\",\"caption\":\"status\",\"sample_value\":\"waiting\",\"path\":[\"data\",\"status\"]},\"_p_data.new_asset_settings.playback_policies\":{\"ret_value\":\"list.text\",\"caption\":\"new_asset_settings playback_policies\",\"sample_value\":\"public\",\"path\":[\"data\",\"new_asset_settings\",\"playback_policies\"]},\"_p_data.new_asset_settings.passthrough\":{\"ret_value\":\"text\",\"caption\":\"new_asset_settings passthrough\",\"sample_value\":\"12345\",\"path\":[\"data\",\"new_asset_settings\",\"passthrough\"]},\"_p_data.new_asset_settings.mp4_support\":{\"ret_value\":\"text\",\"caption\":\"new_asset_settings mp4_support\",\"sample_value\":\"standard\",\"path\":[\"data\",\"new_asset_settings\",\"mp4_support\"]},\"_p_data.new_asset_settings.inputs\":{\"ret_value\":\"list.api.1608469100580x213930232373051400.plugin_api.AJk.data.new_asset_settings.inputs\",\"caption\":\"new_asset_settings inputs\",\"path\":[\"data\",\"new_asset_settings\",\"inputs\"]},\"_p_data.id\":{\"ret_value\":\"text\",\"caption\":\"id\",\"sample_value\":\"RxYKJ6x7DKSLM8vbNyGW802Z00e01nbshwjdy7QXAcS7PQ\",\"path\":[\"data\",\"id\"]},\"_p_data.cors_origin\":{\"ret_value\":\"text\",\"caption\":\"cors_origin\",\"sample_value\":\"*\",\"path\":[\"data\",\"cors_origin\"]}}},\"plugin_api.AJk.data.new_asset_settings.inputs\":{\"caption\":\"Create upload URL (MUX) data new_asset_settings input\",\"fields\":{\"_p_url\":{\"ret_value\":\"text\",\"caption\":\"url\",\"sample_value\":\"https://s3.amazonaws.com/appforest_uf/f1617526990703x846380668886772700/Capture.PNG\"},\"_p_overlay_settings.width\":{\"ret_value\":\"text\",\"caption\":\"overlay_settings width\",\"sample_value\":\"25.000000%\",\"path\":[\"overlay_settings\",\"width\"]},\"_p_overlay_settings.vertical_margin\":{\"ret_value\":\"text\",\"caption\":\"overlay_settings vertical_margin\",\"sample_value\":\"10.000000%\",\"path\":[\"overlay_settings\",\"vertical_margin\"]},\"_p_overlay_settings.vertical_align\":{\"ret_value\":\"text\",\"caption\":\"overlay_settings vertical_align\",\"sample_value\":\"middle\",\"path\":[\"overlay_settings\",\"vertical_align\"]},\"_p_overlay_settings.opacity\":{\"ret_value\":\"text\",\"caption\":\"overlay_settings opacity\",\"sample_value\":\"90.000000%\",\"path\":[\"overlay_settings\",\"opacity\"]},\"_p_overlay_settings.horizontal_margin\":{\"ret_value\":\"text\",\"caption\":\"overlay_settings horizontal_margin\",\"sample_value\":\"10.000000%\",\"path\":[\"overlay_settings\",\"horizontal_margin\"]},\"_p_overlay_settings.horizontal_align\":{\"ret_value\":\"text\",\"caption\":\"overlay_settings horizontal_align\",\"sample_value\":\"center\",\"path\":[\"overlay_settings\",\"horizontal_align\"]}}}}","ret_value":"api.1608469100580x213930232373051400.plugin_api.AJk","body_params":{"AOm":{"key":"Passthrough","value":"12345","private":true,"doc":"A passthrough value can be sent with this request. When using the backend workflow in Bubble, this passthrough value can then be accessed when the data is returned from MUX in a webhook."},"AOn":{"key":"Playback_policy","value":"public","private":true,"doc":"This option can be one of 2 values: public or signed."},"AQf":{"key":"CORS_origin","value":"*","private":true,"doc":"Set the CORS origin to your applications domain URL. Example, https://myGreatSite.com - This is an added security measure to make sure only your domain can upload videos to the upload URL created by this request."}}},"AJn":{"name":"Create upload URL (MUX)","method":"post","publish_as":"action","should_reinitialize":true,"url":"https://api.mux.com/video/v1/uploads","headers":{"AJo":{"key":"Content-Type","value":"application/json","private":true,"visibility":"hidden"},"AJp":{"key":"Authorization","private":true,"doc":"See here for how to generate the base64 authorization header: http://paul-testing-4.bubbleapps.io/base64_authorization","visibility":"secret"}},"body":"{\n\t\"new_asset_settings\": {\n        \"passthrough\": \"<Passthrough>\",\n\t\t\"playback_policy\": [\n\t\t\t\"<Playback_policy>\"\n\t\t],\n        \"mp4_support\": \"standard\"\n\t},\n\t\"cors_origin\": \"<CORS_origin>\"\n}","initialized":true,"types":"{\"plugin_api.AJn\":{\"caption\":\"Create upload URL (MUX)\",\"fields\":{\"_p_data.url\":{\"ret_value\":\"text\",\"caption\":\"url\",\"sample_value\":\"https://storage.googleapis.com/video-storage-us-east1-uploads/NHTbQzhPSdEOytcwytyBTOZW1qxJfLzV9hquceSzpEs?Expires=1619595789&GoogleAccessId=mux-direct-upload%40mux-cloud.iam.gserviceaccount.com&Signature=u3B4kGrmHp0J%2BHkybglX3cuFK55JteHWczc1O3vqWiH%2FCO%2B66e3OiT%2Fze1zCt6Woto0VIkz7%2FZm6t6ZzZSecbe7yMeYKkWcCtbC00ioXLPw35pvpUS57nqS1MVcJH4fu70LHtU8lGMOzRsec7bESHTqVb6wuUQkP%2FVZUNMpEGDbWTK4RLEDrniZg67we2oqQINIdFvXBmcp55YdLkHTSmRyLzyzhUmm0uypzoUwhSgvJt9JDJ93wuZ%2ByLyjLck8AWV%2Fji17HhkYwHMsDFbap2TmLaVRMaQvXW%2BPHRdWMZF3HJSsr4W1zUHd556v3oBKzW3gWUJc71tqaV4b9IcQPYA%3D%3D&upload_id=ABg5-UwhATIapXdOiBNnL-jiq_Ccn6UR9Frtn5uirFTdqpRm30khISBdGuyWjNg02Sl86Uy53BytHx2w4fMCDVVdw2cGJe1zZA\",\"path\":[\"data\",\"url\"]},\"_p_data.timeout\":{\"ret_value\":\"number\",\"caption\":\"timeout\",\"sample_value\":3600,\"path\":[\"data\",\"timeout\"]},\"_p_data.test\":{\"ret_value\":\"boolean\",\"caption\":\"test\",\"sample_value\":true,\"path\":[\"data\",\"test\"]},\"_p_data.status\":{\"ret_value\":\"text\",\"caption\":\"status\",\"sample_value\":\"waiting\",\"path\":[\"data\",\"status\"]},\"_p_data.new_asset_settings.playback_policies\":{\"ret_value\":\"list.text\",\"caption\":\"new_asset_settings playback_policies\",\"sample_value\":\"public\",\"path\":[\"data\",\"new_asset_settings\",\"playback_policies\"]},\"_p_data.new_asset_settings.passthrough\":{\"ret_value\":\"text\",\"caption\":\"new_asset_settings passthrough\",\"sample_value\":\"12345\",\"path\":[\"data\",\"new_asset_settings\",\"passthrough\"]},\"_p_data.new_asset_settings.mp4_support\":{\"ret_value\":\"text\",\"caption\":\"new_asset_settings mp4_support\",\"sample_value\":\"standard\",\"path\":[\"data\",\"new_asset_settings\",\"mp4_support\"]},\"_p_data.new_asset_settings.inputs\":{\"ret_value\":\"list.api.1608469100580x213930232373051400.plugin_api.AJn.data.new_asset_settings.inputs\",\"caption\":\"new_asset_settings inputs\",\"path\":[\"data\",\"new_asset_settings\",\"inputs\"]},\"_p_data.id\":{\"ret_value\":\"text\",\"caption\":\"id\",\"sample_value\":\"NHTbQzhPSdEOytcwytyBTOZW1qxJfLzV9hquceSzpEs\",\"path\":[\"data\",\"id\"]},\"_p_data.cors_origin\":{\"ret_value\":\"text\",\"caption\":\"cors_origin\",\"sample_value\":\"*\",\"path\":[\"data\",\"cors_origin\"]}}},\"plugin_api.AJn.data.new_asset_settings.inputs\":{\"caption\":\"Create upload URL (MUX) data new_asset_settings input\",\"fields\":{\"_p_url\":{\"ret_value\":\"text\",\"caption\":\"url\",\"sample_value\":\"https://s3.amazonaws.com/appforest_uf/f1617526990703x846380668886772700/Capture.PNG\"},\"_p_overlay_settings.width\":{\"ret_value\":\"text\",\"caption\":\"overlay_settings width\",\"sample_value\":\"25.000000%\",\"path\":[\"overlay_settings\",\"width\"]},\"_p_overlay_settings.vertical_margin\":{\"ret_value\":\"text\",\"caption\":\"overlay_settings vertical_margin\",\"sample_value\":\"10.000000%\",\"path\":[\"overlay_settings\",\"vertical_margin\"]},\"_p_overlay_settings.vertical_align\":{\"ret_value\":\"text\",\"caption\":\"overlay_settings vertical_align\",\"sample_value\":\"middle\",\"path\":[\"overlay_settings\",\"vertical_align\"]},\"_p_overlay_settings.opacity\":{\"ret_value\":\"text\",\"caption\":\"overlay_settings opacity\",\"sample_value\":\"90.000000%\",\"path\":[\"overlay_settings\",\"opacity\"]},\"_p_overlay_settings.horizontal_margin\":{\"ret_value\":\"text\",\"caption\":\"overlay_settings horizontal_margin\",\"sample_value\":\"10.000000%\",\"path\":[\"overlay_settings\",\"horizontal_margin\"]},\"_p_overlay_settings.horizontal_align\":{\"ret_value\":\"text\",\"caption\":\"overlay_settings horizontal_align\",\"sample_value\":\"center\",\"path\":[\"overlay_settings\",\"horizontal_align\"]}}}}","ret_value":"api.1608469100580x213930232373051400.plugin_api.AJn","body_params":{"AOv":{"key":"Passthrough","value":"12345","private":true,"doc":"A passthrough value can be sent with this request. When using the backend workflow in Bubble, this passthrough value can then be accessed when the data is returned from MUX in a webhook."},"AOw":{"key":"Playback_policy","value":"public","private":true,"doc":"This option can be one of 2 values: public or signed."},"AQg":{"key":"CORS_origin","value":"*","private":true,"doc":"Set the CORS origin to your applications domain URL. Example, https://myGreatSite.com - This is an added security measure to make sure only your domain can upload videos to the upload URL created by this request."}}},"AJz":{"name":"Retrieve asset (MUX)","method":"get","publish_as":"data","should_reinitialize":true,"url":"https://api.mux.com/video/v1/assets/[asset_id]","headers":{"AKA":{"key":"Content-Type","value":"application/json","private":true,"visibility":"hidden"},"AKB":{"key":"Authorization","private":true,"doc":"See here for how to generate the base64 authorization header: http://paul-testing-4.bubbleapps.io/base64_authorization","visibility":"secret"}},"url_params":{"AKD":{"key":"asset_id","value":"","private":true,"doc":"This should be an asset ID which you want to check."}},"initialized":true,"types":"{\"plugin_api.AJz\":{\"caption\":\"Retrieve asset (MUX)\",\"fields\":{\"_p_data.tracks\":{\"ret_value\":\"list.api.1608469100580x213930232373051400.plugin_api.AJz.data.tracks\",\"caption\":\"tracks\",\"path\":[\"data\",\"tracks\"]},\"_p_data.test\":{\"ret_value\":\"boolean\",\"caption\":\"test\",\"sample_value\":true,\"path\":[\"data\",\"test\"]},\"_p_data.status\":{\"ret_value\":\"text\",\"caption\":\"status\",\"sample_value\":\"ready\",\"path\":[\"data\",\"status\"]},\"_p_data.static_renditions.status\":{\"ret_value\":\"text\",\"caption\":\"static_renditions status\",\"sample_value\":\"ready\",\"path\":[\"data\",\"static_renditions\",\"status\"]},\"_p_data.static_renditions.files\":{\"ret_value\":\"list.api.1608469100580x213930232373051400.plugin_api.AJz.data.static_renditions.files\",\"caption\":\"static_renditions files\",\"path\":[\"data\",\"static_renditions\",\"files\"]},\"_p_data.playback_ids\":{\"ret_value\":\"list.api.1608469100580x213930232373051400.plugin_api.AJz.data.playback_ids\",\"caption\":\"playback_ids\",\"path\":[\"data\",\"playback_ids\"]},\"_p_data.passthrough\":{\"ret_value\":\"text\",\"caption\":\"passthrough\",\"sample_value\":\"90918475510296156056\",\"path\":[\"data\",\"passthrough\"]},\"_p_data.mp4_support\":{\"ret_value\":\"text\",\"caption\":\"mp4_support\",\"sample_value\":\"standard\",\"path\":[\"data\",\"mp4_support\"]},\"_p_data.max_stored_resolution\":{\"ret_value\":\"text\",\"caption\":\"max_stored_resolution\",\"sample_value\":\"SD\",\"path\":[\"data\",\"max_stored_resolution\"]},\"_p_data.max_stored_frame_rate\":{\"ret_value\":\"number\",\"caption\":\"max_stored_frame_rate\",\"sample_value\":23.962,\"path\":[\"data\",\"max_stored_frame_rate\"]},\"_p_data.master_access\":{\"ret_value\":\"text\",\"caption\":\"master_access\",\"sample_value\":\"none\",\"path\":[\"data\",\"master_access\"]},\"_p_data.id\":{\"ret_value\":\"text\",\"caption\":\"id\",\"sample_value\":\"Vy5r4c02bkQiD5bTTugshr4Ub5pFYqpxbCOWV9zpm01zo\",\"path\":[\"data\",\"id\"]},\"_p_data.duration\":{\"ret_value\":\"number\",\"caption\":\"duration\",\"sample_value\":10,\"path\":[\"data\",\"duration\"]},\"_p_data.created_at\":{\"ret_value\":\"text\",\"caption\":\"created_at\",\"sample_value\":\"1619587102\",\"path\":[\"data\",\"created_at\"]},\"_p_data.aspect_ratio\":{\"ret_value\":\"text\",\"caption\":\"aspect_ratio\",\"sample_value\":\"16:9\",\"path\":[\"data\",\"aspect_ratio\"]}}},\"plugin_api.AJz.data.tracks\":{\"caption\":\"Retrieve asset (MUX) data track\",\"fields\":{\"_p_type\":{\"ret_value\":\"text\",\"caption\":\"type\",\"sample_value\":\"audio\"},\"_p_max_channels\":{\"ret_value\":\"number\",\"caption\":\"max_channels\",\"sample_value\":2},\"_p_max_channel_layout\":{\"ret_value\":\"text\",\"caption\":\"max_channel_layout\",\"sample_value\":\"stereo\"},\"_p_id\":{\"ret_value\":\"text\",\"caption\":\"id\",\"sample_value\":\"YPFoFHgovRkLdG48jBMEDuGtCVAeQ7ifq02gdXZunhj00\"},\"_p_duration\":{\"ret_value\":\"number\",\"caption\":\"duration\",\"sample_value\":60.095011},\"_p_max_width\":{\"ret_value\":\"number\",\"caption\":\"max_width\",\"sample_value\":640},\"_p_max_height\":{\"ret_value\":\"number\",\"caption\":\"max_height\",\"sample_value\":360},\"_p_max_frame_rate\":{\"ret_value\":\"number\",\"caption\":\"max_frame_rate\",\"sample_value\":23.962}}},\"plugin_api.AJz.data.static_renditions.files\":{\"caption\":\"Retrieve asset (MUX) data static_renditions file\",\"fields\":{\"_p_width\":{\"ret_value\":\"number\",\"caption\":\"width\",\"sample_value\":640},\"_p_name\":{\"ret_value\":\"text\",\"caption\":\"name\",\"sample_value\":\"low.mp4\"},\"_p_height\":{\"ret_value\":\"number\",\"caption\":\"height\",\"sample_value\":360},\"_p_filesize\":{\"ret_value\":\"text\",\"caption\":\"filesize\",\"sample_value\":\"1122544\"},\"_p_ext\":{\"ret_value\":\"text\",\"caption\":\"ext\",\"sample_value\":\"mp4\"},\"_p_bitrate\":{\"ret_value\":\"number\",\"caption\":\"bitrate\",\"sample_value\":895168}}},\"plugin_api.AJz.data.playback_ids\":{\"caption\":\"Retrieve asset (MUX) data playback_id\",\"fields\":{\"_p_policy\":{\"ret_value\":\"text\",\"caption\":\"policy\",\"sample_value\":\"public\"},\"_p_id\":{\"ret_value\":\"text\",\"caption\":\"id\",\"sample_value\":\"tGcd8nDuvVfitBLBbNoNPqoiMC2PoD1kPRB7qWeYvoQ\"}}}}","ret_value":"api.1608469100580x213930232373051400.plugin_api.AJz"},"AKE":{"name":"Retrieve asset (MUX)","method":"get","publish_as":"action","should_reinitialize":true,"url":"https://api.mux.com/video/v1/assets/[asset_id]","url_params":{"AKF":{"key":"asset_id","value":"","private":true,"doc":"This should be an asset ID which you want to check."}},"headers":{"AKH":{"key":"Content-Type","value":"application/json","private":true,"visibility":"hidden"},"AKI":{"key":"Authorization","private":true,"doc":"See here for how to generate the base64 authorization header: http://paul-testing-4.bubbleapps.io/base64_authorization","visibility":"secret"}},"initialized":true,"types":"{\"plugin_api.AKE\":{\"caption\":\"Retrieve asset (MUX)\",\"fields\":{\"_p_data.tracks\":{\"ret_value\":\"list.api.1608469100580x213930232373051400.plugin_api.AKE.data.tracks\",\"caption\":\"tracks\",\"path\":[\"data\",\"tracks\"]},\"_p_data.test\":{\"ret_value\":\"boolean\",\"caption\":\"test\",\"sample_value\":true,\"path\":[\"data\",\"test\"]},\"_p_data.status\":{\"ret_value\":\"text\",\"caption\":\"status\",\"sample_value\":\"ready\",\"path\":[\"data\",\"status\"]},\"_p_data.static_renditions.status\":{\"ret_value\":\"text\",\"caption\":\"static_renditions status\",\"sample_value\":\"ready\",\"path\":[\"data\",\"static_renditions\",\"status\"]},\"_p_data.static_renditions.files\":{\"ret_value\":\"list.api.1608469100580x213930232373051400.plugin_api.AKE.data.static_renditions.files\",\"caption\":\"static_renditions files\",\"path\":[\"data\",\"static_renditions\",\"files\"]},\"_p_data.playback_ids\":{\"ret_value\":\"list.api.1608469100580x213930232373051400.plugin_api.AKE.data.playback_ids\",\"caption\":\"playback_ids\",\"path\":[\"data\",\"playback_ids\"]},\"_p_data.passthrough\":{\"ret_value\":\"text\",\"caption\":\"passthrough\",\"sample_value\":\"90918475510296156056\",\"path\":[\"data\",\"passthrough\"]},\"_p_data.mp4_support\":{\"ret_value\":\"text\",\"caption\":\"mp4_support\",\"sample_value\":\"standard\",\"path\":[\"data\",\"mp4_support\"]},\"_p_data.max_stored_resolution\":{\"ret_value\":\"text\",\"caption\":\"max_stored_resolution\",\"sample_value\":\"SD\",\"path\":[\"data\",\"max_stored_resolution\"]},\"_p_data.max_stored_frame_rate\":{\"ret_value\":\"number\",\"caption\":\"max_stored_frame_rate\",\"sample_value\":23.962,\"path\":[\"data\",\"max_stored_frame_rate\"]},\"_p_data.master_access\":{\"ret_value\":\"text\",\"caption\":\"master_access\",\"sample_value\":\"none\",\"path\":[\"data\",\"master_access\"]},\"_p_data.id\":{\"ret_value\":\"text\",\"caption\":\"id\",\"sample_value\":\"Vy5r4c02bkQiD5bTTugshr4Ub5pFYqpxbCOWV9zpm01zo\",\"path\":[\"data\",\"id\"]},\"_p_data.duration\":{\"ret_value\":\"number\",\"caption\":\"duration\",\"sample_value\":10,\"path\":[\"data\",\"duration\"]},\"_p_data.created_at\":{\"ret_value\":\"text\",\"caption\":\"created_at\",\"sample_value\":\"1619587102\",\"path\":[\"data\",\"created_at\"]},\"_p_data.aspect_ratio\":{\"ret_value\":\"text\",\"caption\":\"aspect_ratio\",\"sample_value\":\"16:9\",\"path\":[\"data\",\"aspect_ratio\"]}}},\"plugin_api.AKE.data.tracks\":{\"caption\":\"Retrieve asset (MUX) data track\",\"fields\":{\"_p_type\":{\"ret_value\":\"text\",\"caption\":\"type\",\"sample_value\":\"audio\"},\"_p_max_channels\":{\"ret_value\":\"number\",\"caption\":\"max_channels\",\"sample_value\":2},\"_p_max_channel_layout\":{\"ret_value\":\"text\",\"caption\":\"max_channel_layout\",\"sample_value\":\"stereo\"},\"_p_id\":{\"ret_value\":\"text\",\"caption\":\"id\",\"sample_value\":\"YPFoFHgovRkLdG48jBMEDuGtCVAeQ7ifq02gdXZunhj00\"},\"_p_duration\":{\"ret_value\":\"number\",\"caption\":\"duration\",\"sample_value\":60.095011},\"_p_max_width\":{\"ret_value\":\"number\",\"caption\":\"max_width\",\"sample_value\":640},\"_p_max_height\":{\"ret_value\":\"number\",\"caption\":\"max_height\",\"sample_value\":360},\"_p_max_frame_rate\":{\"ret_value\":\"number\",\"caption\":\"max_frame_rate\",\"sample_value\":23.962}}},\"plugin_api.AKE.data.static_renditions.files\":{\"caption\":\"Retrieve asset (MUX) data static_renditions file\",\"fields\":{\"_p_width\":{\"ret_value\":\"number\",\"caption\":\"width\",\"sample_value\":640},\"_p_name\":{\"ret_value\":\"text\",\"caption\":\"name\",\"sample_value\":\"low.mp4\"},\"_p_height\":{\"ret_value\":\"number\",\"caption\":\"height\",\"sample_value\":360},\"_p_filesize\":{\"ret_value\":\"text\",\"caption\":\"filesize\",\"sample_value\":\"1122544\"},\"_p_ext\":{\"ret_value\":\"text\",\"caption\":\"ext\",\"sample_value\":\"mp4\"},\"_p_bitrate\":{\"ret_value\":\"number\",\"caption\":\"bitrate\",\"sample_value\":895168}}},\"plugin_api.AKE.data.playback_ids\":{\"caption\":\"Retrieve asset (MUX) data playback_id\",\"fields\":{\"_p_policy\":{\"ret_value\":\"text\",\"caption\":\"policy\",\"sample_value\":\"public\"},\"_p_id\":{\"ret_value\":\"text\",\"caption\":\"id\",\"sample_value\":\"tGcd8nDuvVfitBLBbNoNPqoiMC2PoD1kPRB7qWeYvoQ\"}}}}","ret_value":"api.1608469100580x213930232373051400.plugin_api.AKE"},"AKJ":{"name":"Check upload URL (MUX)","method":"get","publish_as":"data","should_reinitialize":true,"url":"https://api.mux.com/video/v1/uploads/[id]","url_params":{"AKK":{"key":"id","value":"","private":true,"doc":"This should be the ID that you get in the response from running the \"Create upload URL (MUX)\" request."}},"headers":{"AKL":{"key":"Content-Type","value":"application/json","private":true,"visibility":"hidden"},"AKM":{"key":"Authorization","private":true,"doc":"See here for how to generate the base64 authorization header: http://paul-testing-4.bubbleapps.io/base64_authorization","visibility":"secret"}},"initialized":true,"types":"{\"plugin_api.AKJ\":{\"caption\":\"Check upload URL (MUX)\",\"fields\":{\"_p_data.timeout\":{\"ret_value\":\"number\",\"caption\":\"timeout\",\"sample_value\":3600,\"path\":[\"data\",\"timeout\"]},\"_p_data.test\":{\"ret_value\":\"boolean\",\"caption\":\"test\",\"sample_value\":true,\"path\":[\"data\",\"test\"]},\"_p_data.status\":{\"ret_value\":\"text\",\"caption\":\"status\",\"sample_value\":\"timed_out\",\"path\":[\"data\",\"status\"]},\"_p_data.new_asset_settings.playback_policies\":{\"ret_value\":\"list.text\",\"caption\":\"new_asset_settings playback_policies\",\"sample_value\":\"public\",\"path\":[\"data\",\"new_asset_settings\",\"playback_policies\"]},\"_p_data.id\":{\"ret_value\":\"text\",\"caption\":\"id\",\"sample_value\":\"PkK0002P2FaWMntDBrvwynwKf8A02nR6JBxwiBIquFsn78\",\"path\":[\"data\",\"id\"]},\"_p_data.cors_origin\":{\"ret_value\":\"text\",\"caption\":\"cors_origin\",\"sample_value\":\"*\",\"path\":[\"data\",\"cors_origin\"]}}}}","ret_value":"api.1608469100580x213930232373051400.plugin_api.AKJ"},"AKN":{"name":"Check upload URL (MUX)","method":"get","publish_as":"action","should_reinitialize":true,"url":"https://api.mux.com/video/v1/uploads/[id]","url_params":{"AKO":{"key":"id","value":"","private":true,"doc":"This should be the ID that you get in the response from running the \"Create upload URL (MUX)\" request."}},"headers":{"AKP":{"key":"Content-Type","value":"application/json","private":true,"visibility":"hidden"},"AKQ":{"key":"Authorization","private":true,"doc":"See here for how to generate the base64 authorization header: http://paul-testing-4.bubbleapps.io/base64_authorization","visibility":"secret"}},"initialized":true,"types":"{\"plugin_api.AKN\":{\"caption\":\"Check upload URL (MUX)\",\"fields\":{\"_p_data.timeout\":{\"ret_value\":\"number\",\"caption\":\"timeout\",\"sample_value\":3600,\"path\":[\"data\",\"timeout\"]},\"_p_data.test\":{\"ret_value\":\"boolean\",\"caption\":\"test\",\"sample_value\":true,\"path\":[\"data\",\"test\"]},\"_p_data.status\":{\"ret_value\":\"text\",\"caption\":\"status\",\"sample_value\":\"timed_out\",\"path\":[\"data\",\"status\"]},\"_p_data.new_asset_settings.playback_policies\":{\"ret_value\":\"list.text\",\"caption\":\"new_asset_settings playback_policies\",\"sample_value\":\"public\",\"path\":[\"data\",\"new_asset_settings\",\"playback_policies\"]},\"_p_data.id\":{\"ret_value\":\"text\",\"caption\":\"id\",\"sample_value\":\"PkK0002P2FaWMntDBrvwynwKf8A02nR6JBxwiBIquFsn78\",\"path\":[\"data\",\"id\"]},\"_p_data.cors_origin\":{\"ret_value\":\"text\",\"caption\":\"cors_origin\",\"sample_value\":\"*\",\"path\":[\"data\",\"cors_origin\"]}}}}","ret_value":"api.1608469100580x213930232373051400.plugin_api.AKN"},"AMR":{"name":"Delete asset (MUX)","method":"delete_method","publish_as":"data","should_reinitialize":true,"url":"https://api.mux.com/video/v1/assets/[asset_id]","url_params":{"AMS":{"key":"asset_id","value":"","private":true,"doc":"This should be an asset ID which you want to delete."}},"initialized":true,"headers":{"AMT":{"key":"Content-Type","value":"application/json","private":true,"visibility":"hidden"},"AMU":{"key":"Authorization","private":true,"doc":"See here for how to generate the base64 authorization header: http://paul-testing-4.bubbleapps.io/base64_authorization","visibility":"secret"}},"data_type":"empty","no_types":true},"AMV":{"name":"Delete asset (MUX)","method":"delete_method","publish_as":"action","should_reinitialize":true,"data_type":"empty","url":"https://api.mux.com/video/v1/assets/[asset_id]","url_params":{"AMW":{"key":"asset_id","value":"","private":true,"doc":"This should be an asset ID which you want to delete."}},"headers":{"AMX":{"key":"Content-Type","value":"application/json","private":true,"visibility":"hidden"},"AMY":{"key":"Authorization","private":true,"doc":"See here for how to generate the base64 authorization header: http://paul-testing-4.bubbleapps.io/base64_authorization","visibility":"secret"}},"initialized":true,"no_types":true},"APN":{"name":"Clip asset (MUX)","method":"post","publish_as":"data","should_reinitialize":true,"url":"https://api.mux.com/video/v1/assets","headers":{"APO":{"key":"Content-Type","value":"application/json","private":true,"visibility":"hidden"},"APP":{"key":"Authorization","private":true,"visibility":"secret","doc":"See here for how to generate the base64 authorization header: http://paul-testing-4.bubbleapps.io/base64_authorization"}},"body":"{\n\t\"input\": [\n\t\t{\n\t\t\t\"url\": \"mux://assets/<Asset_id>\",\n\t\t\t\"start_time\": <Start_time>,\n\t\t\t\"end_time\": <End_time>\n\t\t}\n\t],\n\t\"playback_policy\": [\n\t\t\"<Playback_policy>\"\n\t],\n    \"mp4_support\": \"standard\"\n}","body_params":{"APg":{"key":"Asset_id","value":"","private":true,"doc":"This should be an asset ID which you want to clip (it will be cloned to produce a new one)."},"APh":{"key":"Start_time","value":"0","private":true,"doc":"This is the time offset in seconds from the beginning of the video, indicating the clip's start marker. The default value is 0 when not included."},"APi":{"key":"End_time","value":"","private":true,"doc":"This is the time offset in seconds from the beginning of the video, indicating the clip's end marker. The default value is the duration of the video when not included."},"APj":{"key":"Playback_policy","value":"public","private":true,"doc":"This option can be one of 2 values: public or signed."}},"initialized":true,"types":"{\"plugin_api.APN\":{\"caption\":\"Clip asset\",\"fields\":{\"_p_data.test\":{\"ret_value\":\"boolean\",\"caption\":\"test\",\"sample_value\":true,\"path\":[\"data\",\"test\"]},\"_p_data.status\":{\"ret_value\":\"text\",\"caption\":\"status\",\"sample_value\":\"preparing\",\"path\":[\"data\",\"status\"]},\"_p_data.source_asset_id\":{\"ret_value\":\"text\",\"caption\":\"source_asset_id\",\"sample_value\":\"rXvqNlqpvqp9yo81ej01CACitQ76wx02vEqGExnT7101IU\",\"path\":[\"data\",\"source_asset_id\"]},\"_p_data.playback_ids\":{\"ret_value\":\"list.api.1608469100580x213930232373051400.plugin_api.APN.data.playback_ids\",\"caption\":\"playback_ids\",\"path\":[\"data\",\"playback_ids\"]},\"_p_data.mp4_support\":{\"ret_value\":\"text\",\"caption\":\"mp4_support\",\"sample_value\":\"standard\",\"path\":[\"data\",\"mp4_support\"]},\"_p_data.master_access\":{\"ret_value\":\"text\",\"caption\":\"master_access\",\"sample_value\":\"none\",\"path\":[\"data\",\"master_access\"]},\"_p_data.id\":{\"ret_value\":\"text\",\"caption\":\"id\",\"sample_value\":\"vZUCHM701iThXLqu1RkNkqylunsU2ahwR8B8PcAGPyzQ\",\"path\":[\"data\",\"id\"]},\"_p_data.created_at\":{\"ret_value\":\"text\",\"caption\":\"created_at\",\"sample_value\":\"1619697663\",\"path\":[\"data\",\"created_at\"]}}},\"plugin_api.APN.data.playback_ids\":{\"caption\":\"Clip asset data playback_id\",\"fields\":{\"_p_policy\":{\"ret_value\":\"text\",\"caption\":\"policy\",\"sample_value\":\"public\"},\"_p_id\":{\"ret_value\":\"text\",\"caption\":\"id\",\"sample_value\":\"mlUPR8Wo5hJY4ysOjNEvcGTM1VFzOVvAn2z4eiAtxEY\"}}}}","ret_value":"api.1608469100580x213930232373051400.plugin_api.APN"},"APy":{"name":"Clip asset (MUX)","method":"post","publish_as":"action","should_reinitialize":true,"url":"https://api.mux.com/video/v1/assets","headers":{"APz":{"key":"Content-Type","value":"application/json","private":true,"visibility":"hidden"},"AQA":{"key":"Authorization","private":true,"visibility":"secret","doc":"See here for how to generate the base64 authorization header: http://paul-testing-4.bubbleapps.io/base64_authorization"}},"body":"{\n\t\"input\": [\n\t\t{\n\t\t\t\"url\": \"mux://assets/<Asset_id>\",\n\t\t\t\"start_time\": <Start_time>,\n\t\t\t\"end_time\": <End_time>\n\t\t}\n\t],\n\t\"playback_policy\": [\n\t\t\"<Playback_policy>\"\n\t],\n    \"mp4_support\": \"standard\"\n}","body_params":{"AQB":{"key":"Asset_id","value":"","private":true,"doc":"This should be an asset ID which you want to clip (it will be cloned to produce a new one)."},"AQC":{"key":"Start_time","value":"0","private":true,"doc":"This is the time offset in seconds from the beginning of the video, indicating the clip's start marker. The default value is 0 when not included."},"AQD":{"key":"End_time","value":"","private":true,"doc":"This is the time offset in seconds from the beginning of the video, indicating the clip's end marker. The default value is the duration of the video when not included."},"AQE":{"key":"Playback_policy","value":"public","private":true,"doc":"This option can be one of 2 values: public or signed."}},"initialized":true,"types":"{\"plugin_api.APy\":{\"caption\":\"Clip asset\",\"fields\":{\"_p_data.test\":{\"ret_value\":\"boolean\",\"caption\":\"test\",\"sample_value\":true,\"path\":[\"data\",\"test\"]},\"_p_data.status\":{\"ret_value\":\"text\",\"caption\":\"status\",\"sample_value\":\"preparing\",\"path\":[\"data\",\"status\"]},\"_p_data.source_asset_id\":{\"ret_value\":\"text\",\"caption\":\"source_asset_id\",\"sample_value\":\"rXvqNlqpvqp9yo81ej01CACitQ76wx02vEqGExnT7101IU\",\"path\":[\"data\",\"source_asset_id\"]},\"_p_data.playback_ids\":{\"ret_value\":\"list.api.1608469100580x213930232373051400.plugin_api.APy.data.playback_ids\",\"caption\":\"playback_ids\",\"path\":[\"data\",\"playback_ids\"]},\"_p_data.mp4_support\":{\"ret_value\":\"text\",\"caption\":\"mp4_support\",\"sample_value\":\"standard\",\"path\":[\"data\",\"mp4_support\"]},\"_p_data.master_access\":{\"ret_value\":\"text\",\"caption\":\"master_access\",\"sample_value\":\"none\",\"path\":[\"data\",\"master_access\"]},\"_p_data.id\":{\"ret_value\":\"text\",\"caption\":\"id\",\"sample_value\":\"8GjE18UBX8AHrXZU8wnSDLKvNCv2jygVscF7rW88wrE\",\"path\":[\"data\",\"id\"]},\"_p_data.created_at\":{\"ret_value\":\"text\",\"caption\":\"created_at\",\"sample_value\":\"1619697792\",\"path\":[\"data\",\"created_at\"]}}},\"plugin_api.APy.data.playback_ids\":{\"caption\":\"Clip asset data playback_id\",\"fields\":{\"_p_policy\":{\"ret_value\":\"text\",\"caption\":\"policy\",\"sample_value\":\"public\"},\"_p_id\":{\"ret_value\":\"text\",\"caption\":\"id\",\"sample_value\":\"izYOhjiPCXDLKOzpKjDx5P01u4ZdAfozq96m01iuOEgp4\"}}}}","ret_value":"api.1608469100580x213930232373051400.plugin_api.APy"},"ARk":{"name":"Create Live Stream (MUX)","method":"post","publish_as":"data","should_reinitialize":true,"url":"https://api.mux.com/video/v1/live-streams","headers":{"ARl":{"key":"Content-Type","value":"application/json","private":true,"visibility":"hidden"},"ARm":{"key":"Authorization","value":"","private":true,"doc":"See here for how to generate the base64 authorization header: http://paul-testing-4.bubbleapps.io/base64_authorization"}},"body":"{\n    \"low_latency\": <Low_latency>,\n    \"reduced_latency\": <Reduced_latency>,\n    \"playback_policy\": \"<Playback_policy>\",\n    \"new_asset_settings\": {\n        \"playback_policy\": \"<Playback_policy>\",\n        \"mp4_support\": \"standard\"\n    },\n    \"audio_only\": <Audio_only>\n}","initialized":true,"types":"{\"plugin_api.ARk\":{\"caption\":\"Create Live Stream (MUX)\",\"fields\":{\"_p_data.stream_key\":{\"ret_value\":\"text\",\"caption\":\"stream_key\",\"sample_value\":\"64ce289a-a237-c213-394b-31181fd80f4c\",\"path\":[\"data\",\"stream_key\"]},\"_p_data.status\":{\"ret_value\":\"text\",\"caption\":\"status\",\"sample_value\":\"idle\",\"path\":[\"data\",\"status\"]},\"_p_data.playback_ids\":{\"ret_value\":\"list.api.1608469100580x213930232373051400.plugin_api.ARk.data.playback_ids\",\"caption\":\"playback_ids\",\"path\":[\"data\",\"playback_ids\"]},\"_p_data.new_asset_settings.playback_policies\":{\"ret_value\":\"list.text\",\"caption\":\"new_asset_settings playback_policies\",\"sample_value\":\"public\",\"path\":[\"data\",\"new_asset_settings\",\"playback_policies\"]},\"_p_data.new_asset_settings.mp4_support\":{\"ret_value\":\"text\",\"caption\":\"new_asset_settings mp4_support\",\"sample_value\":\"standard\",\"path\":[\"data\",\"new_asset_settings\",\"mp4_support\"]},\"_p_data.max_continuous_duration\":{\"ret_value\":\"number\",\"caption\":\"max_continuous_duration\",\"sample_value\":43200,\"path\":[\"data\",\"max_continuous_duration\"]},\"_p_data.low_latency\":{\"ret_value\":\"boolean\",\"caption\":\"low_latency\",\"sample_value\":true,\"path\":[\"data\",\"low_latency\"]},\"_p_data.latency_mode\":{\"ret_value\":\"text\",\"caption\":\"latency_mode\",\"sample_value\":\"low\",\"path\":[\"data\",\"latency_mode\"]},\"_p_data.id\":{\"ret_value\":\"text\",\"caption\":\"id\",\"sample_value\":\"fBRnOplD1GcV5u2X001xCC2pKpWX2GnVM00PEo00GpI6tE\",\"path\":[\"data\",\"id\"]},\"_p_data.created_at\":{\"ret_value\":\"text\",\"caption\":\"created_at\",\"sample_value\":\"1652158931\",\"path\":[\"data\",\"created_at\"]}}},\"plugin_api.ARk.data.playback_ids\":{\"caption\":\"Create Live Stream (MUX) data playback_id\",\"fields\":{\"_p_policy\":{\"ret_value\":\"text\",\"caption\":\"policy\",\"sample_value\":\"public\"},\"_p_id\":{\"ret_value\":\"text\",\"caption\":\"id\",\"sample_value\":\"zhwCGYgjrewuxDeozLqn3kMTCoWd4XN3xzowgg901Fnw\"}}}}","ret_value":"api.1608469100580x213930232373051400.plugin_api.ARk","body_params":{"Aas":{"key":"Playback_policy","value":"public","private":true,"doc":"This option can be one of 2 values: public or signed. Note, when using signed, you will also need to run the 'VideoJS - Generate JSON Web Token' action which will generate a token that will need to be present in the playback URL using the token parameter."},"AbF":{"key":"Audio_only","value":"false","private":true,"doc":"If you want to stream audio only then set this option to true."},"Afe":{"key":"Low_latency","value":"true","private":true,"doc":"Similar to the 'reduced latency' option, this option reduces the glass-to-glass latency to as low as 4 seconds but the latency can vary depending on your viewer's geographical location and internet connectivity. When this option is set to true, reduced latency must be set to false."},"Ajd":{"key":"Reduced_latency","value":"false","private":true,"doc":"When this option is set to true, MUX treat any live streams a little differently. The latency reduces to about 10-15 seconds compared to 30 seconds typically without enabling this option. You may want to set this to true when attempting video chats. When this option is set to true, low latency must be set to false."}}},"ARo":{"name":"Create Live Stream (MUX)","method":"post","publish_as":"action","should_reinitialize":true,"url":"https://api.mux.com/video/v1/live-streams","headers":{"ARp":{"key":"Content-Type","value":"application/json","private":true,"visibility":"hidden"},"ARq":{"key":"Authorization","value":"","private":true,"doc":"See here for how to generate the base64 authorization header: http://paul-testing-4.bubbleapps.io/base64_authorization"}},"body":"{\n    \"low_latency\": <Low_latency>,\n    \"reduced_latency\": <Reduced_latency>,\n    \"playback_policy\": \"<Playback_policy>\",\n    \"new_asset_settings\": {\n        \"playback_policy\": \"<Playback_policy>\",\n        \"mp4_support\": \"standard\"\n    },\n    \"audio_only\": <Audio_only>\n}","initialized":true,"types":"{\"plugin_api.ARo\":{\"caption\":\"Create Live Stream (MUX)\",\"fields\":{\"_p_data.stream_key\":{\"ret_value\":\"text\",\"caption\":\"stream_key\",\"sample_value\":\"c232a854-0bd5-55ae-d9ad-c9b886ac871f\",\"path\":[\"data\",\"stream_key\"]},\"_p_data.status\":{\"ret_value\":\"text\",\"caption\":\"status\",\"sample_value\":\"idle\",\"path\":[\"data\",\"status\"]},\"_p_data.playback_ids\":{\"ret_value\":\"list.api.1608469100580x213930232373051400.plugin_api.ARo.data.playback_ids\",\"caption\":\"playback_ids\",\"path\":[\"data\",\"playback_ids\"]},\"_p_data.new_asset_settings.playback_policies\":{\"ret_value\":\"list.text\",\"caption\":\"new_asset_settings playback_policies\",\"sample_value\":\"public\",\"path\":[\"data\",\"new_asset_settings\",\"playback_policies\"]},\"_p_data.new_asset_settings.mp4_support\":{\"ret_value\":\"text\",\"caption\":\"new_asset_settings mp4_support\",\"sample_value\":\"standard\",\"path\":[\"data\",\"new_asset_settings\",\"mp4_support\"]},\"_p_data.low_latency\":{\"ret_value\":\"boolean\",\"caption\":\"low_latency\",\"sample_value\":true,\"path\":[\"data\",\"low_latency\"]},\"_p_data.latency_mode\":{\"ret_value\":\"text\",\"caption\":\"latency_mode\",\"sample_value\":\"low\",\"path\":[\"data\",\"latency_mode\"]},\"_p_data.id\":{\"ret_value\":\"text\",\"caption\":\"id\",\"sample_value\":\"kmMq8GTcPl2U3K2xey9BywUS4QGlIEWa1bkIrxRftkI\",\"path\":[\"data\",\"id\"]},\"_p_data.created_at\":{\"ret_value\":\"text\",\"caption\":\"created_at\",\"sample_value\":\"1645011519\",\"path\":[\"data\",\"created_at\"]}}},\"plugin_api.ARo.data.playback_ids\":{\"caption\":\"Create Live Stream (MUX) data playback_id\",\"fields\":{\"_p_policy\":{\"ret_value\":\"text\",\"caption\":\"policy\",\"sample_value\":\"public\"},\"_p_id\":{\"ret_value\":\"text\",\"caption\":\"id\",\"sample_value\":\"wlPpjezjnShsOyiI1Ef9Df4bdyuiOwW5GW3VzJuETFE\"}}}}","ret_value":"api.1608469100580x213930232373051400.plugin_api.ARo","body_params":{"AbG":{"key":"Playback_policy","value":"public","private":true,"doc":"This option can be one of 2 values: public or signed. Note, when using signed, you will also need to run the 'VideoJS - Generate JSON Web Token' action which will generate a token that will need to be present in the playback URL using the token parameter."},"AbT":{"key":"Audio_only","value":"false","private":true,"doc":"If you want to stream audio only then set this option to true."},"Aff":{"key":"Low_latency","value":"true","private":true,"doc":"Similar to the 'reduced latency' option, this option reduces the glass-to-glass latency to as low as 4 seconds but the latency can vary depending on your viewer's geographical location and internet connectivity. You may want to set this to true when attempting video chats."},"Aje":{"key":"Reduced_latency","value":"false","private":true,"doc":"When this option is set to true, MUX treat any live streams a little differently. The latency reduces to about 10-15 seconds compared to 30 seconds typically without enabling this option. You may want to set this to true when attempting video chats."}}},"ATg":{"name":"Get medias list data (wistia)","method":"get","publish_as":"data","should_reinitialize":true,"url":"https://api.wistia.com/v1/medias.json?page=[page]&per_page=10","url_params":{"ATi":{"key":"page","value":"1","private":true,"doc":"If you're returning more than 10 projects in one request, you can change the page number here."}},"initialized":true,"types":"{\"plugin_api.ATg\":{\"caption\":\"Get medias list data (wistia)\",\"fields\":{\"_p_id\":{\"ret_value\":\"text\",\"caption\":\"id\",\"sample_value\":68900804},\"_p_name\":{\"ret_value\":\"text\",\"caption\":\"name\",\"sample_value\":\"Big Buck Bunny\"},\"_p_type\":{\"ret_value\":\"text\",\"caption\":\"type\",\"sample_value\":\"Video\"},\"_p_created\":{\"ret_value\":\"text\",\"caption\":\"created\",\"sample_value\":\"2021-02-18T14:30:21+00:00\"},\"_p_updated\":{\"ret_value\":\"text\",\"caption\":\"updated\",\"sample_value\":\"2021-05-22T04:57:06+00:00\"},\"_p_duration\":{\"ret_value\":\"number\",\"caption\":\"duration\",\"sample_value\":60},\"_p_hashed_id\":{\"ret_value\":\"text\",\"caption\":\"hashed_id\",\"sample_value\":\"khuace7itk\"},\"_p_description\":{\"ret_value\":\"text\",\"caption\":\"description\",\"sample_value\":\"\"},\"_p_progress\":{\"ret_value\":\"number\",\"caption\":\"progress\",\"sample_value\":1},\"_p_status\":{\"ret_value\":\"text\",\"caption\":\"status\",\"sample_value\":\"ready\"},\"_p_thumbnail.url\":{\"ret_value\":\"text\",\"caption\":\"thumbnail url\",\"sample_value\":\"https://embed-ssl.wistia.com/deliveries/43b7e26e02e1dbaaca1f4e5f7137941a6a30bbd8.jpg?image_crop_resized=200x120\",\"path\":[\"thumbnail\",\"url\"]},\"_p_thumbnail.width\":{\"ret_value\":\"number\",\"caption\":\"thumbnail width\",\"sample_value\":200,\"path\":[\"thumbnail\",\"width\"]},\"_p_thumbnail.height\":{\"ret_value\":\"number\",\"caption\":\"thumbnail height\",\"sample_value\":120,\"path\":[\"thumbnail\",\"height\"]},\"_p_project.id\":{\"ret_value\":\"number\",\"caption\":\"project id\",\"sample_value\":5645169,\"path\":[\"project\",\"id\"]},\"_p_project.name\":{\"ret_value\":\"text\",\"caption\":\"project name\",\"sample_value\":\"Paul's first project\",\"path\":[\"project\",\"name\"]},\"_p_project.hashed_id\":{\"ret_value\":\"text\",\"caption\":\"project hashed_id\",\"sample_value\":\"4y6nqui8on\",\"path\":[\"project\",\"hashed_id\"]},\"_p_assets\":{\"ret_value\":\"list.api.1608469100580x213930232373051400.plugin_api.ATg.assets\",\"caption\":\"assets\"},\"_p_embedCode\":{\"ret_value\":\"text\",\"caption\":\"embedCode\",\"sample_value\":\"<object id=\\\"wistia_68900804\\\" classid=\\\"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\\\" width=\\\"640\\\" height=\\\"360\\\"><param name=\\\"allowfullscreen\\\" value=\\\"true\\\" /><param name=\\\"allowscriptaccess\\\" value=\\\"always\\\" /><param name=\\\"wmode\\\" value=\\\"opaque\\\" /><param name=\\\"flashvars\\\" value=\\\"videoUrl=http://embed.wistia.com/deliveries/6ce3d4d47ed528b8318e914c00723b00d7c8cbc4.bin&stillUrl=http://embed.wistia.com/deliveries/43b7e26e02e1dbaaca1f4e5f7137941a6a30bbd8.bin&playButtonVisible=true&controlsVisibleOnLoad=false&unbufferedSeek=false&autoLoad=false&autoPlay=false&endVideoBehavior=default&embedServiceURL=http://distillery.wistia.com/x&accountKey=wistia-production_1225710&mediaID=wistia-production_68900804&mediaDuration=60.0\\\" /><param name=\\\"movie\\\" value=\\\"http://embed.wistia.com/flash/embed_player_v2.0.swf\\\" /><embed src=\\\"http://embed.wistia.com/flash/embed_player_v2.0.swf\\\" name=\\\"wistia_68900804\\\" type=\\\"application/x-shockwave-flash\\\" width=\\\"640\\\" height=\\\"360\\\" allowfullscreen=\\\"true\\\" allowscriptaccess=\\\"always\\\" wmode=\\\"opaque\\\" flashvars=\\\"videoUrl=http://embed.wistia.com/deliveries/6ce3d4d47ed528b8318e914c00723b00d7c8cbc4.bin&stillUrl=http://embed.wistia.com/deliveries/43b7e26e02e1dbaaca1f4e5f7137941a6a30bbd8.bin&playButtonVisible=true&controlsVisibleOnLoad=false&unbufferedSeek=false&autoLoad=false&autoPlay=false&endVideoBehavior=default&embedServiceURL=http://distillery.wistia.com/x&accountKey=wistia-production_1225710&mediaID=wistia-production_68900804&mediaDuration=60.0\\\"></embed></object><script src=\\\"http://embed.wistia.com/embeds/v.js\\\"></script><script>if(!navigator.mimeTypes['application/x-shockwave-flash'] || navigator.userAgent.match(/Android/i)!==null)Wistia.VideoEmbed('wistia_68900804','640','360',{videoUrl:'http://embed.wistia.com/deliveries/7fdc45e175381f7a0a07706f484c9a42e47de51f.bin',stillUrl:'http://embed.wistia.com/deliveries/43b7e26e02e1dbaaca1f4e5f7137941a6a30bbd8.bin',distilleryUrl:'http://distillery.wistia.com/x',accountKey:'wistia-production_1225710',mediaId:'wistia-production_68900804',mediaDuration:60.0})</script>\"}}},\"plugin_api.ATg.assets\":{\"caption\":\"Get medias list data (wistia) asset\",\"fields\":{\"_p_url\":{\"ret_value\":\"text\",\"caption\":\"url\",\"sample_value\":\"http://embed.wistia.com/deliveries/e9e970b3f461a4ed54ba0496636b9632.bin\"},\"_p_width\":{\"ret_value\":\"number\",\"caption\":\"width\",\"sample_value\":640},\"_p_height\":{\"ret_value\":\"number\",\"caption\":\"height\",\"sample_value\":360},\"_p_fileSize\":{\"ret_value\":\"number\",\"caption\":\"fileSize\",\"sample_value\":5510872},\"_p_contentType\":{\"ret_value\":\"text\",\"caption\":\"contentType\",\"sample_value\":\"video/mp4\"},\"_p_type\":{\"ret_value\":\"text\",\"caption\":\"type\",\"sample_value\":\"OriginalFile\"}}}}","is_list":true,"ret_value":"api.1608469100580x213930232373051400.plugin_api.ATg","headers":{"AnN":{"key":"Authorization","private":true,"visibility":"secret","doc":"This is your Wistia bearer token. Type the word Bearer before the key so it should be like this: Bearer kBrPx32df3jZeEfrt4THgtk"}}},"ATj":{"name":"Get medias list data (wistia)","method":"get","publish_as":"action","should_reinitialize":true,"url":"https://api.wistia.com/v1/medias.json?page=[page]&per_page=10","url_params":{"ATl":{"key":"page","value":"1","private":true,"doc":"If you're returning more than 10 projects in one request, you can change the page number here."}},"initialized":true,"types":"{\"plugin_api.ATj\":{\"caption\":\"Get medias list data (wistia)\",\"fields\":{\"_p_id\":{\"ret_value\":\"text\",\"caption\":\"id\",\"sample_value\":68900804},\"_p_name\":{\"ret_value\":\"text\",\"caption\":\"name\",\"sample_value\":\"Big Buck Bunny\"},\"_p_type\":{\"ret_value\":\"text\",\"caption\":\"type\",\"sample_value\":\"Video\"},\"_p_created\":{\"ret_value\":\"text\",\"caption\":\"created\",\"sample_value\":\"2021-02-18T14:30:21+00:00\"},\"_p_updated\":{\"ret_value\":\"text\",\"caption\":\"updated\",\"sample_value\":\"2021-05-22T04:57:06+00:00\"},\"_p_duration\":{\"ret_value\":\"number\",\"caption\":\"duration\",\"sample_value\":60},\"_p_hashed_id\":{\"ret_value\":\"text\",\"caption\":\"hashed_id\",\"sample_value\":\"khuace7itk\"},\"_p_description\":{\"ret_value\":\"text\",\"caption\":\"description\",\"sample_value\":\"\"},\"_p_progress\":{\"ret_value\":\"number\",\"caption\":\"progress\",\"sample_value\":1},\"_p_status\":{\"ret_value\":\"text\",\"caption\":\"status\",\"sample_value\":\"ready\"},\"_p_thumbnail.url\":{\"ret_value\":\"text\",\"caption\":\"thumbnail url\",\"sample_value\":\"https://embed-ssl.wistia.com/deliveries/43b7e26e02e1dbaaca1f4e5f7137941a6a30bbd8.jpg?image_crop_resized=200x120\",\"path\":[\"thumbnail\",\"url\"]},\"_p_thumbnail.width\":{\"ret_value\":\"number\",\"caption\":\"thumbnail width\",\"sample_value\":200,\"path\":[\"thumbnail\",\"width\"]},\"_p_thumbnail.height\":{\"ret_value\":\"number\",\"caption\":\"thumbnail height\",\"sample_value\":120,\"path\":[\"thumbnail\",\"height\"]},\"_p_project.id\":{\"ret_value\":\"number\",\"caption\":\"project id\",\"sample_value\":5645169,\"path\":[\"project\",\"id\"]},\"_p_project.name\":{\"ret_value\":\"text\",\"caption\":\"project name\",\"sample_value\":\"Paul's first project\",\"path\":[\"project\",\"name\"]},\"_p_project.hashed_id\":{\"ret_value\":\"text\",\"caption\":\"project hashed_id\",\"sample_value\":\"4y6nqui8on\",\"path\":[\"project\",\"hashed_id\"]},\"_p_assets\":{\"ret_value\":\"list.api.1608469100580x213930232373051400.plugin_api.ATj.assets\",\"caption\":\"assets\"},\"_p_embedCode\":{\"ret_value\":\"text\",\"caption\":\"embedCode\",\"sample_value\":\"<object id=\\\"wistia_68900804\\\" classid=\\\"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\\\" width=\\\"640\\\" height=\\\"360\\\"><param name=\\\"allowfullscreen\\\" value=\\\"true\\\" /><param name=\\\"allowscriptaccess\\\" value=\\\"always\\\" /><param name=\\\"wmode\\\" value=\\\"opaque\\\" /><param name=\\\"flashvars\\\" value=\\\"videoUrl=http://embed.wistia.com/deliveries/6ce3d4d47ed528b8318e914c00723b00d7c8cbc4.bin&stillUrl=http://embed.wistia.com/deliveries/43b7e26e02e1dbaaca1f4e5f7137941a6a30bbd8.bin&playButtonVisible=true&controlsVisibleOnLoad=false&unbufferedSeek=false&autoLoad=false&autoPlay=false&endVideoBehavior=default&embedServiceURL=http://distillery.wistia.com/x&accountKey=wistia-production_1225710&mediaID=wistia-production_68900804&mediaDuration=60.0\\\" /><param name=\\\"movie\\\" value=\\\"http://embed.wistia.com/flash/embed_player_v2.0.swf\\\" /><embed src=\\\"http://embed.wistia.com/flash/embed_player_v2.0.swf\\\" name=\\\"wistia_68900804\\\" type=\\\"application/x-shockwave-flash\\\" width=\\\"640\\\" height=\\\"360\\\" allowfullscreen=\\\"true\\\" allowscriptaccess=\\\"always\\\" wmode=\\\"opaque\\\" flashvars=\\\"videoUrl=http://embed.wistia.com/deliveries/6ce3d4d47ed528b8318e914c00723b00d7c8cbc4.bin&stillUrl=http://embed.wistia.com/deliveries/43b7e26e02e1dbaaca1f4e5f7137941a6a30bbd8.bin&playButtonVisible=true&controlsVisibleOnLoad=false&unbufferedSeek=false&autoLoad=false&autoPlay=false&endVideoBehavior=default&embedServiceURL=http://distillery.wistia.com/x&accountKey=wistia-production_1225710&mediaID=wistia-production_68900804&mediaDuration=60.0\\\"></embed></object><script src=\\\"http://embed.wistia.com/embeds/v.js\\\"></script><script>if(!navigator.mimeTypes['application/x-shockwave-flash'] || navigator.userAgent.match(/Android/i)!==null)Wistia.VideoEmbed('wistia_68900804','640','360',{videoUrl:'http://embed.wistia.com/deliveries/7fdc45e175381f7a0a07706f484c9a42e47de51f.bin',stillUrl:'http://embed.wistia.com/deliveries/43b7e26e02e1dbaaca1f4e5f7137941a6a30bbd8.bin',distilleryUrl:'http://distillery.wistia.com/x',accountKey:'wistia-production_1225710',mediaId:'wistia-production_68900804',mediaDuration:60.0})</script>\"}}},\"plugin_api.ATj.assets\":{\"caption\":\"Get medias list data (wistia) asset\",\"fields\":{\"_p_url\":{\"ret_value\":\"text\",\"caption\":\"url\",\"sample_value\":\"http://embed.wistia.com/deliveries/e9e970b3f461a4ed54ba0496636b9632.bin\"},\"_p_width\":{\"ret_value\":\"number\",\"caption\":\"width\",\"sample_value\":640},\"_p_height\":{\"ret_value\":\"number\",\"caption\":\"height\",\"sample_value\":360},\"_p_fileSize\":{\"ret_value\":\"number\",\"caption\":\"fileSize\",\"sample_value\":5510872},\"_p_contentType\":{\"ret_value\":\"text\",\"caption\":\"contentType\",\"sample_value\":\"video/mp4\"},\"_p_type\":{\"ret_value\":\"text\",\"caption\":\"type\",\"sample_value\":\"OriginalFile\"}}}}","is_list":true,"ret_value":"api.1608469100580x213930232373051400.plugin_api.ATj","headers":{"AnO":{"key":"Authorization","private":true,"visibility":"secret","doc":"This is your Wistia bearer token. Type the word Bearer before the key so it should be like this: Bearer kBrPx32df3jZeEfrt4THgtk"}}},"ATm":{"name":"Get media show data (wistia)","method":"get","publish_as":"data","should_reinitialize":true,"url":"https://api.wistia.com/v1/medias/[wistia_id].json","url_params":{"ATn":{"key":"wistia_id","value":"","private":true,"doc":"Enter a valid Wistia video Id here."}},"initialized":true,"types":"{\"plugin_api.ATm\":{\"caption\":\"Get media show data (wistia)\",\"fields\":{\"_p_id\":{\"ret_value\":\"text\",\"caption\":\"id\",\"sample_value\":68900804},\"_p_name\":{\"ret_value\":\"text\",\"caption\":\"name\",\"sample_value\":\"Big Buck Bunny\"},\"_p_type\":{\"ret_value\":\"text\",\"caption\":\"type\",\"sample_value\":\"Video\"},\"_p_created\":{\"ret_value\":\"text\",\"caption\":\"created\",\"sample_value\":\"2021-02-18T14:30:21+00:00\"},\"_p_updated\":{\"ret_value\":\"text\",\"caption\":\"updated\",\"sample_value\":\"2021-05-22T04:57:06+00:00\"},\"_p_duration\":{\"ret_value\":\"number\",\"caption\":\"duration\",\"sample_value\":60},\"_p_hashed_id\":{\"ret_value\":\"text\",\"caption\":\"hashed_id\",\"sample_value\":\"khuace7itk\"},\"_p_description\":{\"ret_value\":\"text\",\"caption\":\"description\",\"sample_value\":\"\"},\"_p_progress\":{\"ret_value\":\"number\",\"caption\":\"progress\",\"sample_value\":1},\"_p_status\":{\"ret_value\":\"text\",\"caption\":\"status\",\"sample_value\":\"ready\"},\"_p_thumbnail.url\":{\"ret_value\":\"text\",\"caption\":\"thumbnail url\",\"sample_value\":\"https://embed-ssl.wistia.com/deliveries/43b7e26e02e1dbaaca1f4e5f7137941a6a30bbd8.jpg?image_crop_resized=200x120\",\"path\":[\"thumbnail\",\"url\"]},\"_p_thumbnail.width\":{\"ret_value\":\"number\",\"caption\":\"thumbnail width\",\"sample_value\":200,\"path\":[\"thumbnail\",\"width\"]},\"_p_thumbnail.height\":{\"ret_value\":\"number\",\"caption\":\"thumbnail height\",\"sample_value\":120,\"path\":[\"thumbnail\",\"height\"]},\"_p_project.id\":{\"ret_value\":\"number\",\"caption\":\"project id\",\"sample_value\":5645169,\"path\":[\"project\",\"id\"]},\"_p_project.name\":{\"ret_value\":\"text\",\"caption\":\"project name\",\"sample_value\":\"Paul's first project\",\"path\":[\"project\",\"name\"]},\"_p_project.hashed_id\":{\"ret_value\":\"text\",\"caption\":\"project hashed_id\",\"sample_value\":\"4y6nqui8on\",\"path\":[\"project\",\"hashed_id\"]},\"_p_assets\":{\"ret_value\":\"list.api.1608469100580x213930232373051400.plugin_api.ATm.assets\",\"caption\":\"assets\"},\"_p_embedCode\":{\"ret_value\":\"text\",\"caption\":\"embedCode\",\"sample_value\":\"<object id=\\\"wistia_68900804\\\" classid=\\\"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\\\" width=\\\"640\\\" height=\\\"360\\\"><param name=\\\"allowfullscreen\\\" value=\\\"true\\\" /><param name=\\\"allowscriptaccess\\\" value=\\\"always\\\" /><param name=\\\"wmode\\\" value=\\\"opaque\\\" /><param name=\\\"flashvars\\\" value=\\\"videoUrl=http://embed.wistia.com/deliveries/6ce3d4d47ed528b8318e914c00723b00d7c8cbc4.bin&stillUrl=http://embed.wistia.com/deliveries/43b7e26e02e1dbaaca1f4e5f7137941a6a30bbd8.bin&playButtonVisible=true&controlsVisibleOnLoad=false&unbufferedSeek=false&autoLoad=false&autoPlay=false&endVideoBehavior=default&embedServiceURL=http://distillery.wistia.com/x&accountKey=wistia-production_1225710&mediaID=wistia-production_68900804&mediaDuration=60.0\\\" /><param name=\\\"movie\\\" value=\\\"http://embed.wistia.com/flash/embed_player_v2.0.swf\\\" /><embed src=\\\"http://embed.wistia.com/flash/embed_player_v2.0.swf\\\" name=\\\"wistia_68900804\\\" type=\\\"application/x-shockwave-flash\\\" width=\\\"640\\\" height=\\\"360\\\" allowfullscreen=\\\"true\\\" allowscriptaccess=\\\"always\\\" wmode=\\\"opaque\\\" flashvars=\\\"videoUrl=http://embed.wistia.com/deliveries/6ce3d4d47ed528b8318e914c00723b00d7c8cbc4.bin&stillUrl=http://embed.wistia.com/deliveries/43b7e26e02e1dbaaca1f4e5f7137941a6a30bbd8.bin&playButtonVisible=true&controlsVisibleOnLoad=false&unbufferedSeek=false&autoLoad=false&autoPlay=false&endVideoBehavior=default&embedServiceURL=http://distillery.wistia.com/x&accountKey=wistia-production_1225710&mediaID=wistia-production_68900804&mediaDuration=60.0\\\"></embed></object><script src=\\\"http://embed.wistia.com/embeds/v.js\\\"></script><script>if(!navigator.mimeTypes['application/x-shockwave-flash'] || navigator.userAgent.match(/Android/i)!==null)Wistia.VideoEmbed('wistia_68900804','640','360',{videoUrl:'http://embed.wistia.com/deliveries/7fdc45e175381f7a0a07706f484c9a42e47de51f.bin',stillUrl:'http://embed.wistia.com/deliveries/43b7e26e02e1dbaaca1f4e5f7137941a6a30bbd8.bin',distilleryUrl:'http://distillery.wistia.com/x',accountKey:'wistia-production_1225710',mediaId:'wistia-production_68900804',mediaDuration:60.0})</script>\"}}},\"plugin_api.ATm.assets\":{\"caption\":\"Get media show data (wistia) asset\",\"fields\":{\"_p_url\":{\"ret_value\":\"text\",\"caption\":\"url\",\"sample_value\":\"http://embed.wistia.com/deliveries/e9e970b3f461a4ed54ba0496636b9632.bin\"},\"_p_width\":{\"ret_value\":\"number\",\"caption\":\"width\",\"sample_value\":640},\"_p_height\":{\"ret_value\":\"number\",\"caption\":\"height\",\"sample_value\":360},\"_p_fileSize\":{\"ret_value\":\"number\",\"caption\":\"fileSize\",\"sample_value\":5510872},\"_p_contentType\":{\"ret_value\":\"text\",\"caption\":\"contentType\",\"sample_value\":\"video/mp4\"},\"_p_type\":{\"ret_value\":\"text\",\"caption\":\"type\",\"sample_value\":\"OriginalFile\"}}}}","ret_value":"api.1608469100580x213930232373051400.plugin_api.ATm","headers":{"AnP":{"key":"Authorization","private":true,"visibility":"secret","doc":"This is your Wistia bearer token. Type the word Bearer before the key so it should be like this: Bearer kBrPx32df3jZeEfrt4THgtk"}}},"ATp":{"name":"Get media show data (wistia)","method":"get","publish_as":"action","should_reinitialize":true,"url":"https://api.wistia.com/v1/medias/[wistia_id].json","url_params":{"ATq":{"key":"wistia_id","value":"","private":true,"doc":"Enter a valid Wistia video Id here."}},"initialized":true,"types":"{\"plugin_api.ATp\":{\"caption\":\"Get media show data (wistia)\",\"fields\":{\"_p_id\":{\"ret_value\":\"text\",\"caption\":\"id\",\"sample_value\":68900804},\"_p_name\":{\"ret_value\":\"text\",\"caption\":\"name\",\"sample_value\":\"Big Buck Bunny\"},\"_p_type\":{\"ret_value\":\"text\",\"caption\":\"type\",\"sample_value\":\"Video\"},\"_p_created\":{\"ret_value\":\"text\",\"caption\":\"created\",\"sample_value\":\"2021-02-18T14:30:21+00:00\"},\"_p_updated\":{\"ret_value\":\"text\",\"caption\":\"updated\",\"sample_value\":\"2021-05-22T04:57:06+00:00\"},\"_p_duration\":{\"ret_value\":\"number\",\"caption\":\"duration\",\"sample_value\":60},\"_p_hashed_id\":{\"ret_value\":\"text\",\"caption\":\"hashed_id\",\"sample_value\":\"khuace7itk\"},\"_p_description\":{\"ret_value\":\"text\",\"caption\":\"description\",\"sample_value\":\"\"},\"_p_progress\":{\"ret_value\":\"number\",\"caption\":\"progress\",\"sample_value\":1},\"_p_status\":{\"ret_value\":\"text\",\"caption\":\"status\",\"sample_value\":\"ready\"},\"_p_thumbnail.url\":{\"ret_value\":\"text\",\"caption\":\"thumbnail url\",\"sample_value\":\"https://embed-ssl.wistia.com/deliveries/43b7e26e02e1dbaaca1f4e5f7137941a6a30bbd8.jpg?image_crop_resized=200x120\",\"path\":[\"thumbnail\",\"url\"]},\"_p_thumbnail.width\":{\"ret_value\":\"number\",\"caption\":\"thumbnail width\",\"sample_value\":200,\"path\":[\"thumbnail\",\"width\"]},\"_p_thumbnail.height\":{\"ret_value\":\"number\",\"caption\":\"thumbnail height\",\"sample_value\":120,\"path\":[\"thumbnail\",\"height\"]},\"_p_project.id\":{\"ret_value\":\"number\",\"caption\":\"project id\",\"sample_value\":5645169,\"path\":[\"project\",\"id\"]},\"_p_project.name\":{\"ret_value\":\"text\",\"caption\":\"project name\",\"sample_value\":\"Paul's first project\",\"path\":[\"project\",\"name\"]},\"_p_project.hashed_id\":{\"ret_value\":\"text\",\"caption\":\"project hashed_id\",\"sample_value\":\"4y6nqui8on\",\"path\":[\"project\",\"hashed_id\"]},\"_p_assets\":{\"ret_value\":\"list.api.1608469100580x213930232373051400.plugin_api.ATp.assets\",\"caption\":\"assets\"},\"_p_embedCode\":{\"ret_value\":\"text\",\"caption\":\"embedCode\",\"sample_value\":\"<object id=\\\"wistia_68900804\\\" classid=\\\"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\\\" width=\\\"640\\\" height=\\\"360\\\"><param name=\\\"allowfullscreen\\\" value=\\\"true\\\" /><param name=\\\"allowscriptaccess\\\" value=\\\"always\\\" /><param name=\\\"wmode\\\" value=\\\"opaque\\\" /><param name=\\\"flashvars\\\" value=\\\"videoUrl=http://embed.wistia.com/deliveries/6ce3d4d47ed528b8318e914c00723b00d7c8cbc4.bin&stillUrl=http://embed.wistia.com/deliveries/43b7e26e02e1dbaaca1f4e5f7137941a6a30bbd8.bin&playButtonVisible=true&controlsVisibleOnLoad=false&unbufferedSeek=false&autoLoad=false&autoPlay=false&endVideoBehavior=default&embedServiceURL=http://distillery.wistia.com/x&accountKey=wistia-production_1225710&mediaID=wistia-production_68900804&mediaDuration=60.0\\\" /><param name=\\\"movie\\\" value=\\\"http://embed.wistia.com/flash/embed_player_v2.0.swf\\\" /><embed src=\\\"http://embed.wistia.com/flash/embed_player_v2.0.swf\\\" name=\\\"wistia_68900804\\\" type=\\\"application/x-shockwave-flash\\\" width=\\\"640\\\" height=\\\"360\\\" allowfullscreen=\\\"true\\\" allowscriptaccess=\\\"always\\\" wmode=\\\"opaque\\\" flashvars=\\\"videoUrl=http://embed.wistia.com/deliveries/6ce3d4d47ed528b8318e914c00723b00d7c8cbc4.bin&stillUrl=http://embed.wistia.com/deliveries/43b7e26e02e1dbaaca1f4e5f7137941a6a30bbd8.bin&playButtonVisible=true&controlsVisibleOnLoad=false&unbufferedSeek=false&autoLoad=false&autoPlay=false&endVideoBehavior=default&embedServiceURL=http://distillery.wistia.com/x&accountKey=wistia-production_1225710&mediaID=wistia-production_68900804&mediaDuration=60.0\\\"></embed></object><script src=\\\"http://embed.wistia.com/embeds/v.js\\\"></script><script>if(!navigator.mimeTypes['application/x-shockwave-flash'] || navigator.userAgent.match(/Android/i)!==null)Wistia.VideoEmbed('wistia_68900804','640','360',{videoUrl:'http://embed.wistia.com/deliveries/7fdc45e175381f7a0a07706f484c9a42e47de51f.bin',stillUrl:'http://embed.wistia.com/deliveries/43b7e26e02e1dbaaca1f4e5f7137941a6a30bbd8.bin',distilleryUrl:'http://distillery.wistia.com/x',accountKey:'wistia-production_1225710',mediaId:'wistia-production_68900804',mediaDuration:60.0})</script>\"}}},\"plugin_api.ATp.assets\":{\"caption\":\"Get media show data (wistia) asset\",\"fields\":{\"_p_url\":{\"ret_value\":\"text\",\"caption\":\"url\",\"sample_value\":\"http://embed.wistia.com/deliveries/e9e970b3f461a4ed54ba0496636b9632.bin\"},\"_p_width\":{\"ret_value\":\"number\",\"caption\":\"width\",\"sample_value\":640},\"_p_height\":{\"ret_value\":\"number\",\"caption\":\"height\",\"sample_value\":360},\"_p_fileSize\":{\"ret_value\":\"number\",\"caption\":\"fileSize\",\"sample_value\":5510872},\"_p_contentType\":{\"ret_value\":\"text\",\"caption\":\"contentType\",\"sample_value\":\"video/mp4\"},\"_p_type\":{\"ret_value\":\"text\",\"caption\":\"type\",\"sample_value\":\"OriginalFile\"}}}}","ret_value":"api.1608469100580x213930232373051400.plugin_api.ATp","headers":{"AnQ":{"key":"Authorization","private":true,"visibility":"secret","doc":"This is your Wistia bearer token. Type the word Bearer before the key so it should be like this: Bearer kBrPx32df3jZeEfrt4THgtk"}}},"ATs":{"name":"Get customizations show data (wistia)","method":"get","publish_as":"data","should_reinitialize":true,"url":"https://api.wistia.com/v1/medias/[wistia_id]/customizations.json","url_params":{"ATt":{"key":"wistia_id","value":"","private":true,"doc":"Enter a valid Wistia video Id here."}},"initialized":true,"types":"{\"plugin_api.ATs\":{\"caption\":\"Get customizations show data (wistia)\",\"fields\":{\"_p_branding\":{\"ret_value\":\"text\",\"caption\":\"branding\",\"sample_value\":\"true\"},\"_p_playerColor\":{\"ret_value\":\"text\",\"caption\":\"playerColor\",\"sample_value\":\"22e739\"},\"_p_showCustomerLogo\":{\"ret_value\":\"text\",\"caption\":\"showCustomerLogo\",\"sample_value\":\"false\"},\"_p_audioDescriptionIsRequired\":{\"ret_value\":\"text\",\"caption\":\"audioDescriptionIsRequired\",\"sample_value\":\"false\"},\"_p_autoPlay\":{\"ret_value\":\"text\",\"caption\":\"autoPlay\",\"sample_value\":\"true\"},\"_p_endVideoBehavior\":{\"ret_value\":\"text\",\"caption\":\"endVideoBehavior\",\"sample_value\":\"loop\"},\"_p_controlsVisibleOnLoad\":{\"ret_value\":\"text\",\"caption\":\"controlsVisibleOnLoad\",\"sample_value\":\"true\"},\"_p_bpbTime\":{\"ret_value\":\"text\",\"caption\":\"bpbTime\",\"sample_value\":\"false\"},\"_p_volumeControl\":{\"ret_value\":\"text\",\"caption\":\"volumeControl\",\"sample_value\":\"true\"},\"_p_muted\":{\"ret_value\":\"text\",\"caption\":\"muted\",\"sample_value\":\"true\"},\"_p_playbackRateControl\":{\"ret_value\":\"text\",\"caption\":\"playbackRateControl\",\"sample_value\":\"true\"},\"_p_qualityControl\":{\"ret_value\":\"text\",\"caption\":\"qualityControl\",\"sample_value\":\"true\"},\"_p_fullscreenButton\":{\"ret_value\":\"text\",\"caption\":\"fullscreenButton\",\"sample_value\":\"true\"},\"_p_plugin.thumbnailTextOverlay-v2.on\":{\"ret_value\":\"text\",\"caption\":\"plugin thumbnailTextOverlay-v2 on\",\"sample_value\":\"false\",\"path\":[\"plugin\",\"thumbnailTextOverlay-v2\",\"on\"]},\"_p_plugin.requireEmail-v1.topText\":{\"ret_value\":\"text\",\"caption\":\"plugin requireEmail-v1 topText\",\"sample_value\":\"Enter your email address to view this video.\",\"path\":[\"plugin\",\"requireEmail-v1\",\"topText\"]},\"_p_plugin.requireEmail-v1.bottomText\":{\"ret_value\":\"text\",\"caption\":\"plugin requireEmail-v1 bottomText\",\"sample_value\":\"\",\"path\":[\"plugin\",\"requireEmail-v1\",\"bottomText\"]},\"_p_plugin.requireEmail-v1.time\":{\"ret_value\":\"text\",\"caption\":\"plugin requireEmail-v1 time\",\"sample_value\":\"before\",\"path\":[\"plugin\",\"requireEmail-v1\",\"time\"]},\"_p_plugin.requireEmail-v1.askName\":{\"ret_value\":\"text\",\"caption\":\"plugin requireEmail-v1 askName\",\"sample_value\":\"true\",\"path\":[\"plugin\",\"requireEmail-v1\",\"askName\"]},\"_p_plugin.requireEmail-v1.allowSkip\":{\"ret_value\":\"text\",\"caption\":\"plugin requireEmail-v1 allowSkip\",\"sample_value\":\"true\",\"path\":[\"plugin\",\"requireEmail-v1\",\"allowSkip\"]},\"_p_plugin.requireEmail-v1.persistentTurnstile\":{\"ret_value\":\"text\",\"caption\":\"plugin requireEmail-v1 persistentTurnstile\",\"sample_value\":\"true\",\"path\":[\"plugin\",\"requireEmail-v1\",\"persistentTurnstile\"]},\"_p_plugin.requireEmail-v1.on\":{\"ret_value\":\"text\",\"caption\":\"plugin requireEmail-v1 on\",\"sample_value\":\"true\",\"path\":[\"plugin\",\"requireEmail-v1\",\"on\"]},\"_p_plugin.requireEmail-v1.async\":{\"ret_value\":\"text\",\"caption\":\"plugin requireEmail-v1 async\",\"sample_value\":\"false\",\"path\":[\"plugin\",\"requireEmail-v1\",\"async\"]},\"_p_plugin.requireEmail-v1.conversionOpportunityKey\":{\"ret_value\":\"text\",\"caption\":\"plugin requireEmail-v1 conversionOpportunityKey\",\"sample_value\":\"wistia-production_5600700\",\"path\":[\"plugin\",\"requireEmail-v1\",\"conversionOpportunityKey\"]},\"_p_private.show_comments\":{\"ret_value\":\"text\",\"caption\":\"private show_comments\",\"sample_value\":\"true\",\"path\":[\"private\",\"show_comments\"]}}}}","ret_value":"api.1608469100580x213930232373051400.plugin_api.ATs","wrap_error":false,"headers":{"AnR":{"key":"Authorization","private":true,"visibility":"secret","doc":"This is your Wistia bearer token. Type the word Bearer before the key so it should be like this: Bearer kBrPx32df3jZeEfrt4THgtk"}}},"ATv":{"name":"Get customizations show data (wistia)","method":"get","publish_as":"action","should_reinitialize":true,"url":"https://api.wistia.com/v1/medias/[wistia_id]/customizations.json","url_params":{"ATw":{"key":"wistia_id","value":"","private":true,"doc":"Enter a valid Wistia video Id here."}},"initialized":true,"types":"{\"plugin_api.ATv\":{\"caption\":\"Get customizations show data (wistia)\",\"fields\":{\"_p_branding\":{\"ret_value\":\"text\",\"caption\":\"branding\",\"sample_value\":\"true\"},\"_p_playerColor\":{\"ret_value\":\"text\",\"caption\":\"playerColor\",\"sample_value\":\"22e739\"},\"_p_showCustomerLogo\":{\"ret_value\":\"text\",\"caption\":\"showCustomerLogo\",\"sample_value\":\"false\"},\"_p_audioDescriptionIsRequired\":{\"ret_value\":\"text\",\"caption\":\"audioDescriptionIsRequired\",\"sample_value\":\"false\"},\"_p_autoPlay\":{\"ret_value\":\"text\",\"caption\":\"autoPlay\",\"sample_value\":\"true\"},\"_p_endVideoBehavior\":{\"ret_value\":\"text\",\"caption\":\"endVideoBehavior\",\"sample_value\":\"loop\"},\"_p_controlsVisibleOnLoad\":{\"ret_value\":\"text\",\"caption\":\"controlsVisibleOnLoad\",\"sample_value\":\"true\"},\"_p_bpbTime\":{\"ret_value\":\"text\",\"caption\":\"bpbTime\",\"sample_value\":\"false\"},\"_p_volumeControl\":{\"ret_value\":\"text\",\"caption\":\"volumeControl\",\"sample_value\":\"true\"},\"_p_muted\":{\"ret_value\":\"text\",\"caption\":\"muted\",\"sample_value\":\"true\"},\"_p_playbackRateControl\":{\"ret_value\":\"text\",\"caption\":\"playbackRateControl\",\"sample_value\":\"true\"},\"_p_qualityControl\":{\"ret_value\":\"text\",\"caption\":\"qualityControl\",\"sample_value\":\"true\"},\"_p_fullscreenButton\":{\"ret_value\":\"text\",\"caption\":\"fullscreenButton\",\"sample_value\":\"true\"},\"_p_plugin.thumbnailTextOverlay-v2.on\":{\"ret_value\":\"text\",\"caption\":\"plugin thumbnailTextOverlay-v2 on\",\"sample_value\":\"false\",\"path\":[\"plugin\",\"thumbnailTextOverlay-v2\",\"on\"]},\"_p_plugin.requireEmail-v1.topText\":{\"ret_value\":\"text\",\"caption\":\"plugin requireEmail-v1 topText\",\"sample_value\":\"Enter your email address to view this video.\",\"path\":[\"plugin\",\"requireEmail-v1\",\"topText\"]},\"_p_plugin.requireEmail-v1.bottomText\":{\"ret_value\":\"text\",\"caption\":\"plugin requireEmail-v1 bottomText\",\"sample_value\":\"\",\"path\":[\"plugin\",\"requireEmail-v1\",\"bottomText\"]},\"_p_plugin.requireEmail-v1.time\":{\"ret_value\":\"text\",\"caption\":\"plugin requireEmail-v1 time\",\"sample_value\":\"before\",\"path\":[\"plugin\",\"requireEmail-v1\",\"time\"]},\"_p_plugin.requireEmail-v1.askName\":{\"ret_value\":\"text\",\"caption\":\"plugin requireEmail-v1 askName\",\"sample_value\":\"true\",\"path\":[\"plugin\",\"requireEmail-v1\",\"askName\"]},\"_p_plugin.requireEmail-v1.allowSkip\":{\"ret_value\":\"text\",\"caption\":\"plugin requireEmail-v1 allowSkip\",\"sample_value\":\"true\",\"path\":[\"plugin\",\"requireEmail-v1\",\"allowSkip\"]},\"_p_plugin.requireEmail-v1.persistentTurnstile\":{\"ret_value\":\"text\",\"caption\":\"plugin requireEmail-v1 persistentTurnstile\",\"sample_value\":\"true\",\"path\":[\"plugin\",\"requireEmail-v1\",\"persistentTurnstile\"]},\"_p_plugin.requireEmail-v1.on\":{\"ret_value\":\"text\",\"caption\":\"plugin requireEmail-v1 on\",\"sample_value\":\"true\",\"path\":[\"plugin\",\"requireEmail-v1\",\"on\"]},\"_p_plugin.requireEmail-v1.async\":{\"ret_value\":\"text\",\"caption\":\"plugin requireEmail-v1 async\",\"sample_value\":\"false\",\"path\":[\"plugin\",\"requireEmail-v1\",\"async\"]},\"_p_plugin.requireEmail-v1.conversionOpportunityKey\":{\"ret_value\":\"text\",\"caption\":\"plugin requireEmail-v1 conversionOpportunityKey\",\"sample_value\":\"wistia-production_5600700\",\"path\":[\"plugin\",\"requireEmail-v1\",\"conversionOpportunityKey\"]},\"_p_private.show_comments\":{\"ret_value\":\"text\",\"caption\":\"private show_comments\",\"sample_value\":\"true\",\"path\":[\"private\",\"show_comments\"]}}}}","ret_value":"api.1608469100580x213930232373051400.plugin_api.ATv","headers":{"AnS":{"key":"Authorization","private":true,"visibility":"secret","doc":"This is your Wistia bearer token. Type the word Bearer before the key so it should be like this: Bearer kBrPx32df3jZeEfrt4THgtk"}}},"AVz":{"name":"Create asset (MUX)","method":"post","publish_as":"data","should_reinitialize":true,"url":"https://api.mux.com/video/v1/assets","headers":{"AWA":{"key":"Content-Type","value":"application/json","private":true,"visibility":"hidden"},"AWB":{"key":"Authorization","private":true,"visibility":"secret","doc":"See here for how to generate the base64 authorization header: http://paul-testing-4.bubbleapps.io/base64_authorization"}},"body":"{\n\t\"input\": \"<Video_URL>\",\n\t\"playback_policy\": [\n\t\t\"<Playback_policy>\"\n\t],\n    \"passthrough\": \"<Passthrough>\",\n    \"mp4_support\": \"standard\"\n}","body_params":{"AWD":{"key":"Video_URL","value":"","private":true,"doc":"Enter a URL to a media file which you want to upload to MUX."},"AWE":{"key":"Playback_policy","value":"public","private":true,"doc":"This option can be one of 2 values: public or signed."},"AWK":{"key":"Passthrough","value":"12345","private":true,"doc":"A passthrough value can be sent with this request. When using the backend workflow in Bubble, this passthrough value can then be accessed when the data is returned from MUX in a webhook."}},"initialized":true,"types":"{\"plugin_api.AVz\":{\"caption\":\"Create asset (MUX)\",\"fields\":{\"_p_data.test\":{\"ret_value\":\"boolean\",\"caption\":\"test\",\"sample_value\":true,\"path\":[\"data\",\"test\"]},\"_p_data.status\":{\"ret_value\":\"text\",\"caption\":\"status\",\"sample_value\":\"preparing\",\"path\":[\"data\",\"status\"]},\"_p_data.playback_ids\":{\"ret_value\":\"list.api.1608469100580x213930232373051400.plugin_api.AVz.data.playback_ids\",\"caption\":\"playback_ids\",\"path\":[\"data\",\"playback_ids\"]},\"_p_data.passthrough\":{\"ret_value\":\"text\",\"caption\":\"passthrough\",\"sample_value\":\"12345\",\"path\":[\"data\",\"passthrough\"]},\"_p_data.mp4_support\":{\"ret_value\":\"text\",\"caption\":\"mp4_support\",\"sample_value\":\"standard\",\"path\":[\"data\",\"mp4_support\"]},\"_p_data.master_access\":{\"ret_value\":\"text\",\"caption\":\"master_access\",\"sample_value\":\"none\",\"path\":[\"data\",\"master_access\"]},\"_p_data.id\":{\"ret_value\":\"text\",\"caption\":\"id\",\"sample_value\":\"LhJUvWsgavZkC02qXUfUdgMQyLRnCO9zd9jwK028O1aZw\",\"path\":[\"data\",\"id\"]},\"_p_data.created_at\":{\"ret_value\":\"text\",\"caption\":\"created_at\",\"sample_value\":\"1627474350\",\"path\":[\"data\",\"created_at\"]}}},\"plugin_api.AVz.data.playback_ids\":{\"caption\":\"Create asset (MUX) data playback_id\",\"fields\":{\"_p_policy\":{\"ret_value\":\"text\",\"caption\":\"policy\",\"sample_value\":\"public\"},\"_p_id\":{\"ret_value\":\"text\",\"caption\":\"id\",\"sample_value\":\"lZRkJArcmardzm2K100Qawn5E02odvfYG14zpj7iq02uas\"}}}}","ret_value":"api.1608469100580x213930232373051400.plugin_api.AVz"},"AWF":{"name":"Create asset (MUX)","method":"post","publish_as":"action","should_reinitialize":true,"url":"https://api.mux.com/video/v1/assets","headers":{"AWG":{"key":"Content-Type","value":"application/json","private":true,"visibility":"hidden"},"AWH":{"key":"Authorization","private":true,"visibility":"secret","doc":"See here for how to generate the base64 authorization header: http://paul-testing-4.bubbleapps.io/base64_authorization"}},"body":"{\n\t\"input\": \"<Video_URL>\",\n\t\"playback_policy\": [\n\t\t\"<Playback_policy>\"\n\t],\n    \"passthrough\": \"<Passthrough>\",\n    \"mp4_support\": \"standard\"\n}","body_params":{"AWI":{"key":"Video_URL","value":"","private":true,"doc":"Enter a URL to a media file which you want to upload to MUX."},"AWJ":{"key":"Playback_policy","value":"public","private":true,"doc":"This option can be one of 2 values: public or signed."},"AWL":{"key":"Passthrough","value":"12345","private":true,"doc":"A passthrough value can be sent with this request. When using the backend workflow in Bubble, this passthrough value can then be accessed when the data is returned from MUX in a webhook."}},"initialized":true,"types":"{\"plugin_api.AWF\":{\"caption\":\"Create asset (MUX)\",\"fields\":{\"_p_data.test\":{\"ret_value\":\"boolean\",\"caption\":\"test\",\"sample_value\":true,\"path\":[\"data\",\"test\"]},\"_p_data.status\":{\"ret_value\":\"text\",\"caption\":\"status\",\"sample_value\":\"preparing\",\"path\":[\"data\",\"status\"]},\"_p_data.playback_ids\":{\"ret_value\":\"list.api.1608469100580x213930232373051400.plugin_api.AWF.data.playback_ids\",\"caption\":\"playback_ids\",\"path\":[\"data\",\"playback_ids\"]},\"_p_data.passthrough\":{\"ret_value\":\"text\",\"caption\":\"passthrough\",\"sample_value\":\"12345\",\"path\":[\"data\",\"passthrough\"]},\"_p_data.mp4_support\":{\"ret_value\":\"text\",\"caption\":\"mp4_support\",\"sample_value\":\"standard\",\"path\":[\"data\",\"mp4_support\"]},\"_p_data.master_access\":{\"ret_value\":\"text\",\"caption\":\"master_access\",\"sample_value\":\"none\",\"path\":[\"data\",\"master_access\"]},\"_p_data.id\":{\"ret_value\":\"text\",\"caption\":\"id\",\"sample_value\":\"Eo402vLSWkJ9vaCjemg2HIzUEH01rTfTW4Gke8x00Fzfv00\",\"path\":[\"data\",\"id\"]},\"_p_data.created_at\":{\"ret_value\":\"text\",\"caption\":\"created_at\",\"sample_value\":\"1627474304\",\"path\":[\"data\",\"created_at\"]}}},\"plugin_api.AWF.data.playback_ids\":{\"caption\":\"Create asset (MUX) data playback_id\",\"fields\":{\"_p_policy\":{\"ret_value\":\"text\",\"caption\":\"policy\",\"sample_value\":\"public\"},\"_p_id\":{\"ret_value\":\"text\",\"caption\":\"id\",\"sample_value\":\"3scvS3VFeKaIUNi02ga29CBLtzX01uaWBtnOURbVvsuqo\"}}}}","ret_value":"api.1608469100580x213930232373051400.plugin_api.AWF"},"AWV":{"name":"List all metric values (MUX)","method":"get","publish_as":"data","url":"https://api.mux.com/data/v1/metrics/comparison","should_reinitialize":true,"headers":{"AWW":{"key":"Content-Type","value":"application/json","private":true,"visibility":"hidden"},"AWX":{"key":"Authorization","private":true,"visibility":"secret","doc":"See here for how to generate the base64 authorization header: http://paul-testing-4.bubbleapps.io/base64_authorization"}},"initialized":true,"types":"{\"plugin_api.AWV\":{\"caption\":\"List all metric values (MUX)\",\"fields\":{\"_p_total_row_count\":{\"ret_value\":\"text\",\"caption\":\"total_row_count\",\"sample_value\":null},\"_p_timeframe\":{\"ret_value\":\"list.number\",\"caption\":\"timeframe\",\"sample_value\":1628059233},\"_p_data\":{\"ret_value\":\"list.api.1608469100580x213930232373051400.plugin_api.AWV.data\",\"caption\":\"data\"}}},\"plugin_api.AWV.data\":{\"caption\":\"List all metric values (MUX) data\",\"fields\":{\"_p_watch_time\":{\"ret_value\":\"text\",\"caption\":\"watch_time\",\"sample_value\":null},\"_p_view_count\":{\"ret_value\":\"number\",\"caption\":\"view_count\",\"sample_value\":0},\"_p_unique_viewers\":{\"ret_value\":\"number\",\"caption\":\"unique_viewers\",\"sample_value\":0},\"_p_total_playing_time\":{\"ret_value\":\"text\",\"caption\":\"total_playing_time\",\"sample_value\":null},\"_p_started_views\":{\"ret_value\":\"number\",\"caption\":\"started_views\",\"sample_value\":0},\"_p_name\":{\"ret_value\":\"text\",\"caption\":\"name\",\"sample_value\":\"totals\"},\"_p_ended_views\":{\"ret_value\":\"number\",\"caption\":\"ended_views\",\"sample_value\":0},\"_p_value\":{\"ret_value\":\"number\",\"caption\":\"value\",\"sample_value\":0},\"_p_type\":{\"ret_value\":\"text\",\"caption\":\"type\",\"sample_value\":\"number\"},\"_p_metric\":{\"ret_value\":\"text\",\"caption\":\"metric\",\"sample_value\":\"views\"},\"_p_items\":{\"ret_value\":\"list.api.1608469100580x213930232373051400.plugin_api.AWV.items\",\"caption\":\"items\"}}},\"plugin_api.AWV.items\":{\"caption\":\"List all metric values (MUX) item\",\"fields\":{\"_p_value\":{\"ret_value\":\"number\",\"caption\":\"value\",\"sample_value\":0},\"_p_type\":{\"ret_value\":\"text\",\"caption\":\"type\",\"sample_value\":\"number\"},\"_p_name\":{\"ret_value\":\"text\",\"caption\":\"name\",\"sample_value\":\"Unique Viewers\"},\"_p_metric\":{\"ret_value\":\"text\",\"caption\":\"metric\",\"sample_value\":\"unique_viewers\"},\"_p_measurement\":{\"ret_value\":\"text\",\"caption\":\"measurement\",\"sample_value\":\"count\"}}}}","ret_value":"api.1608469100580x213930232373051400.plugin_api.AWV"},"AWY":{"name":"List all metric values (MUX)","method":"get","publish_as":"action","should_reinitialize":true,"url":"https://api.mux.com/data/v1/metrics/comparison","headers":{"AWZ":{"key":"Content-Type","value":"application/json","private":true,"visibility":"hidden"},"AWa":{"key":"Authorization","private":true,"visibility":"secret","doc":"See here for how to generate the base64 authorization header: http://paul-testing-4.bubbleapps.io/base64_authorization"}},"initialized":true,"types":"{\"plugin_api.AWY\":{\"caption\":\"List all metric values (MUX)\",\"fields\":{\"_p_total_row_count\":{\"ret_value\":\"text\",\"caption\":\"total_row_count\",\"sample_value\":null},\"_p_timeframe\":{\"ret_value\":\"list.number\",\"caption\":\"timeframe\",\"sample_value\":1628065145},\"_p_data\":{\"ret_value\":\"list.api.1608469100580x213930232373051400.plugin_api.AWY.data\",\"caption\":\"data\"}}},\"plugin_api.AWY.data\":{\"caption\":\"List all metric values (MUX) data\",\"fields\":{\"_p_watch_time\":{\"ret_value\":\"number\",\"caption\":\"watch_time\",\"sample_value\":228205},\"_p_view_count\":{\"ret_value\":\"number\",\"caption\":\"view_count\",\"sample_value\":7},\"_p_unique_viewers\":{\"ret_value\":\"number\",\"caption\":\"unique_viewers\",\"sample_value\":1},\"_p_total_playing_time\":{\"ret_value\":\"number\",\"caption\":\"total_playing_time\",\"sample_value\":142780},\"_p_started_views\":{\"ret_value\":\"number\",\"caption\":\"started_views\",\"sample_value\":7},\"_p_name\":{\"ret_value\":\"text\",\"caption\":\"name\",\"sample_value\":\"totals\"},\"_p_ended_views\":{\"ret_value\":\"number\",\"caption\":\"ended_views\",\"sample_value\":7},\"_p_value\":{\"ret_value\":\"number\",\"caption\":\"value\",\"sample_value\":7},\"_p_type\":{\"ret_value\":\"text\",\"caption\":\"type\",\"sample_value\":\"number\"},\"_p_metric\":{\"ret_value\":\"text\",\"caption\":\"metric\",\"sample_value\":\"views\"},\"_p_items\":{\"ret_value\":\"list.api.1608469100580x213930232373051400.plugin_api.AWY.items\",\"caption\":\"items\"}}},\"plugin_api.AWY.items\":{\"caption\":\"List all metric values (MUX) item\",\"fields\":{\"_p_value\":{\"ret_value\":\"number\",\"caption\":\"value\",\"sample_value\":1},\"_p_type\":{\"ret_value\":\"text\",\"caption\":\"type\",\"sample_value\":\"number\"},\"_p_name\":{\"ret_value\":\"text\",\"caption\":\"name\",\"sample_value\":\"Unique Viewers\"},\"_p_metric\":{\"ret_value\":\"text\",\"caption\":\"metric\",\"sample_value\":\"unique_viewers\"},\"_p_measurement\":{\"ret_value\":\"text\",\"caption\":\"measurement\",\"sample_value\":\"count\"}}}}","ret_value":"api.1608469100580x213930232373051400.plugin_api.AWY"},"AWb":{"name":"List Insights (MUX)","method":"get","publish_as":"data","should_reinitialize":true,"url":"https://api.mux.com/data/v1/metrics/[Metric_ID]/insights?measurement=[Measurement]","url_params":{"AXW":{"key":"Metric_ID","value":"views","private":true,"doc":"ID of the metric, possible values are: aggregate_startup_time, downscale_percentage, exits_before_video_start, max_downscale_percentage, max_upscale_percentage, page_load_time, playback_failure_percentage, playback_failure_score, player_startup_time, playing_time, rebuffer_count, rebuffer_duration, rebuffer_frequency, rebuffer_percentage, rebuffer_score, requests_for_first_preroll, seek_latency, startup_time_score, unique_viewers, upscale_percentage, video_quality_score, video_startup_preroll_load_time, video_startup_preroll_request_time, video_startup_time, viewer_experience_score, views, weighted_average_bitrate"},"AXj":{"key":"Measurement","value":"count","private":true,"doc":"Measurement for the provided metric, possible values are 95th, median, avg, count, sum."}},"headers":{"AXU":{"key":"Content-Type","value":"application/json","private":true,"visibility":"hidden"},"AXV":{"key":"Authorization","private":true,"visibility":"secret","doc":"See here for how to generate the base64 authorization header: http://paul-testing-4.bubbleapps.io/base64_authorization"}},"initialized":true,"types":"{\"plugin_api.AWb\":{\"caption\":\"List Insights (MUX)\",\"fields\":{\"_p_total_row_count\":{\"ret_value\":\"number\",\"caption\":\"total_row_count\",\"sample_value\":35},\"_p_timeframe\":{\"ret_value\":\"list.number\",\"caption\":\"timeframe\",\"sample_value\":1628078245},\"_p_meta.aggregation\":{\"ret_value\":\"text\",\"caption\":\"meta aggregation\",\"sample_value\":\"view_start\",\"path\":[\"meta\",\"aggregation\"]},\"_p_data\":{\"ret_value\":\"list.api.1608469100580x213930232373051400.plugin_api.AWb.data\",\"caption\":\"data\"}}},\"plugin_api.AWb.data\":{\"caption\":\"List Insights (MUX) data\",\"fields\":{\"_p_total_watch_time\":{\"ret_value\":\"number\",\"caption\":\"total_watch_time\",\"sample_value\":232853},\"_p_total_views\":{\"ret_value\":\"number\",\"caption\":\"total_views\",\"sample_value\":8},\"_p_total_playing_time\":{\"ret_value\":\"number\",\"caption\":\"total_playing_time\",\"sample_value\":146677},\"_p_negative_impact_score\":{\"ret_value\":\"number\",\"caption\":\"negative_impact_score\",\"sample_value\":0},\"_p_metric\":{\"ret_value\":\"number\",\"caption\":\"metric\",\"sample_value\":8},\"_p_filter_value\":{\"ret_value\":\"text\",\"caption\":\"filter_value\",\"sample_value\":\"my-bubble-app\"},\"_p_filter_column\":{\"ret_value\":\"text\",\"caption\":\"filter_column\",\"sample_value\":\"experiment_name\"}}}}","ret_value":"api.1608469100580x213930232373051400.plugin_api.AWb"},"AXX":{"name":"List Insights (MUX)","method":"get","publish_as":"action","should_reinitialize":true,"url":"https://api.mux.com/data/v1/metrics/[Metric_ID]/insights?measurement=[Measurement]","url_params":{"AXY":{"key":"Metric_ID","value":"views","private":true,"doc":"ID of the metric, possible values are: aggregate_startup_time, downscale_percentage, exits_before_video_start, max_downscale_percentage, max_upscale_percentage, page_load_time, playback_failure_percentage, playback_failure_score, player_startup_time, playing_time, rebuffer_count, rebuffer_duration, rebuffer_frequency, rebuffer_percentage, rebuffer_score, requests_for_first_preroll, seek_latency, startup_time_score, unique_viewers, upscale_percentage, video_quality_score, video_startup_preroll_load_time, video_startup_preroll_request_time, video_startup_time, viewer_experience_score, views, weighted_average_bitrate"},"AXi":{"key":"Measurement","value":"count","private":true,"doc":"Measurement for the provided metric, possible values are 95th, median, avg, count, sum."}},"headers":{"AXZ":{"key":"Content-Type","value":"application/json","private":true,"visibility":"hidden"},"AXa":{"key":"Authorization","private":true,"visibility":"secret","doc":"See here for how to generate the base64 authorization header: http://paul-testing-4.bubbleapps.io/base64_authorization"}},"initialized":true,"types":"{\"plugin_api.AXX\":{\"caption\":\"List Insights (MUX)\",\"fields\":{\"_p_total_row_count\":{\"ret_value\":\"number\",\"caption\":\"total_row_count\",\"sample_value\":35},\"_p_timeframe\":{\"ret_value\":\"list.number\",\"caption\":\"timeframe\",\"sample_value\":1628078216},\"_p_meta.aggregation\":{\"ret_value\":\"text\",\"caption\":\"meta aggregation\",\"sample_value\":\"view_start\",\"path\":[\"meta\",\"aggregation\"]},\"_p_data\":{\"ret_value\":\"list.api.1608469100580x213930232373051400.plugin_api.AXX.data\",\"caption\":\"data\"}}},\"plugin_api.AXX.data\":{\"caption\":\"List Insights (MUX) data\",\"fields\":{\"_p_total_watch_time\":{\"ret_value\":\"number\",\"caption\":\"total_watch_time\",\"sample_value\":232853},\"_p_total_views\":{\"ret_value\":\"number\",\"caption\":\"total_views\",\"sample_value\":8},\"_p_total_playing_time\":{\"ret_value\":\"number\",\"caption\":\"total_playing_time\",\"sample_value\":146677},\"_p_negative_impact_score\":{\"ret_value\":\"number\",\"caption\":\"negative_impact_score\",\"sample_value\":0},\"_p_metric\":{\"ret_value\":\"number\",\"caption\":\"metric\",\"sample_value\":8},\"_p_filter_value\":{\"ret_value\":\"text\",\"caption\":\"filter_value\",\"sample_value\":\"my-bubble-app\"},\"_p_filter_column\":{\"ret_value\":\"text\",\"caption\":\"filter_column\",\"sample_value\":\"experiment_name\"}}}}","ret_value":"api.1608469100580x213930232373051400.plugin_api.AXX"},"AcD":{"name":"List video views (MUX)","method":"get","publish_as":"action","url":"https://api.mux.com/data/v1/video-views","should_reinitialize":true,"headers":{"AcE":{"key":"Content-Type","value":"application/json","private":true,"visibility":"hidden"},"AcF":{"key":"Authorization","private":true,"doc":"See here for how to generate the base64 authorization header: http://paul-testing-4.bubbleapps.io/base64_authorization","visibility":"secret"}},"initialized":true,"types":"{\"plugin_api.AcD\":{\"caption\":\"List video views (MUX)\",\"fields\":{\"_p_total_row_count\":{\"ret_value\":\"text\",\"caption\":\"total_row_count\",\"sample_value\":1},\"_p_timeframe\":{\"ret_value\":\"list.number\",\"caption\":\"timeframe\",\"sample_value\":1649497960},\"_p_data\":{\"ret_value\":\"list.api.1608469100580x213930232373051400.plugin_api.AcD.data\",\"caption\":\"data\"}}},\"plugin_api.AcD.data\":{\"caption\":\"List video views (MUX) data\",\"fields\":{\"_p_viewer_os_family\":{\"ret_value\":\"text\",\"caption\":\"viewer_os_family\",\"sample_value\":\"Windows\"},\"_p_viewer_application_name\":{\"ret_value\":\"text\",\"caption\":\"viewer_application_name\",\"sample_value\":\"Chrome\"},\"_p_view_start\":{\"ret_value\":\"text\",\"caption\":\"view_start\",\"sample_value\":\"2022-04-10T09:50:27Z\"},\"_p_view_end\":{\"ret_value\":\"text\",\"caption\":\"view_end\",\"sample_value\":\"2022-04-10T09:51:07Z\"},\"_p_video_title\":{\"ret_value\":\"text\",\"caption\":\"video_title\",\"sample_value\":\"My Awesome Video\"},\"_p_total_row_count\":{\"ret_value\":\"number\",\"caption\":\"total_row_count\",\"sample_value\":1},\"_p_player_error_message\":{\"ret_value\":\"text\",\"caption\":\"player_error_message\",\"sample_value\":null},\"_p_player_error_code\":{\"ret_value\":\"text\",\"caption\":\"player_error_code\",\"sample_value\":null},\"_p_id\":{\"ret_value\":\"text\",\"caption\":\"id\",\"sample_value\":\"AVxPj9ecZ4j2NAI33LcBZZiw9etGME7pmjbR\"},\"_p_error_type_id\":{\"ret_value\":\"text\",\"caption\":\"error_type_id\",\"sample_value\":null},\"_p_country_code\":{\"ret_value\":\"text\",\"caption\":\"country_code\",\"sample_value\":\"GB\"}}}}","ret_value":"api.1608469100580x213930232373051400.plugin_api.AcD"},"Aha":{"name":"Enable master access (MUX)","method":"put","publish_as":"data","should_reinitialize":true,"url":"https://api.mux.com/video/v1/assets/[Asset_id]/master-access","url_params":{"Ahc":{"key":"Asset_id","value":"","private":true,"doc":"Enter the asset Id of the video file."}},"initialized":true,"headers":{"Ahd":{"key":"Content-Type","value":"application/json","private":true,"visibility":"hidden"},"Ahe":{"key":"Authorization","private":true,"doc":"See here for how to generate the base64 authorization header: http://paul-testing-4.bubbleapps.io/base64_authorization","visibility":"secret"}},"body":"{\n    \"master_access\": \"temporary\"\n}","types":"{\"plugin_api.Aha\":{\"caption\":\"Enable master access (MUX)\",\"fields\":{\"_p_data.tracks\":{\"ret_value\":\"list.api.1608469100580x213930232373051400.plugin_api.Aha.data.tracks\",\"caption\":\"tracks\",\"path\":[\"data\",\"tracks\"]},\"_p_data.status\":{\"ret_value\":\"text\",\"caption\":\"status\",\"sample_value\":\"ready\",\"path\":[\"data\",\"status\"]},\"_p_data.recording_times\":{\"ret_value\":\"list.api.1608469100580x213930232373051400.plugin_api.Aha.data.recording_times\",\"caption\":\"recording_times\",\"path\":[\"data\",\"recording_times\"]},\"_p_data.playback_ids\":{\"ret_value\":\"list.api.1608469100580x213930232373051400.plugin_api.Aha.data.playback_ids\",\"caption\":\"playback_ids\",\"path\":[\"data\",\"playback_ids\"]},\"_p_data.mp4_support\":{\"ret_value\":\"text\",\"caption\":\"mp4_support\",\"sample_value\":\"none\",\"path\":[\"data\",\"mp4_support\"]},\"_p_data.max_stored_resolution\":{\"ret_value\":\"text\",\"caption\":\"max_stored_resolution\",\"sample_value\":\"SD\",\"path\":[\"data\",\"max_stored_resolution\"]},\"_p_data.max_stored_frame_rate\":{\"ret_value\":\"number\",\"caption\":\"max_stored_frame_rate\",\"sample_value\":29.083,\"path\":[\"data\",\"max_stored_frame_rate\"]},\"_p_data.master_access\":{\"ret_value\":\"text\",\"caption\":\"master_access\",\"sample_value\":\"temporary\",\"path\":[\"data\",\"master_access\"]},\"_p_data.master.status\":{\"ret_value\":\"text\",\"caption\":\"master status\",\"sample_value\":\"preparing\",\"path\":[\"data\",\"master\",\"status\"]},\"_p_data.live_stream_id\":{\"ret_value\":\"text\",\"caption\":\"live_stream_id\",\"sample_value\":\"mLeEO4ZDkO4XuNVG019O1zRcv3LMgznEDj37jxp02kQCQ\",\"path\":[\"data\",\"live_stream_id\"]},\"_p_data.id\":{\"ret_value\":\"text\",\"caption\":\"id\",\"sample_value\":\"veRsmv00xgaZlEN8cE026WQG00TJUAgfEHioMKYjXobcfE\",\"path\":[\"data\",\"id\"]},\"_p_data.duration\":{\"ret_value\":\"number\",\"caption\":\"duration\",\"sample_value\":12.088444,\"path\":[\"data\",\"duration\"]},\"_p_data.created_at\":{\"ret_value\":\"text\",\"caption\":\"created_at\",\"sample_value\":\"1636550418\",\"path\":[\"data\",\"created_at\"]},\"_p_data.aspect_ratio\":{\"ret_value\":\"text\",\"caption\":\"aspect_ratio\",\"sample_value\":\"4:3\",\"path\":[\"data\",\"aspect_ratio\"]}}},\"plugin_api.Aha.data.tracks\":{\"caption\":\"Enable master access (MUX) data track\",\"fields\":{\"_p_type\":{\"ret_value\":\"text\",\"caption\":\"type\",\"sample_value\":\"video\"},\"_p_max_width\":{\"ret_value\":\"number\",\"caption\":\"max_width\",\"sample_value\":640},\"_p_max_height\":{\"ret_value\":\"number\",\"caption\":\"max_height\",\"sample_value\":480},\"_p_max_frame_rate\":{\"ret_value\":\"number\",\"caption\":\"max_frame_rate\",\"sample_value\":29.083},\"_p_id\":{\"ret_value\":\"text\",\"caption\":\"id\",\"sample_value\":\"wy6uUC01rUA8CpBmbqiz4UNGjY1j00KDt2QPt8pa1k5cI\"},\"_p_max_channels\":{\"ret_value\":\"number\",\"caption\":\"max_channels\",\"sample_value\":1},\"_p_max_channel_layout\":{\"ret_value\":\"text\",\"caption\":\"max_channel_layout\",\"sample_value\":\"mono\"}}},\"plugin_api.Aha.data.recording_times\":{\"caption\":\"Enable master access (MUX) data recording_time\",\"fields\":{\"_p_started_at\":{\"ret_value\":\"text\",\"caption\":\"started_at\",\"sample_value\":\"2021-11-10T13:20:15.650Z\"},\"_p_duration\":{\"ret_value\":\"number\",\"caption\":\"duration\",\"sample_value\":12.028}}},\"plugin_api.Aha.data.playback_ids\":{\"caption\":\"Enable master access (MUX) data playback_id\",\"fields\":{\"_p_policy\":{\"ret_value\":\"text\",\"caption\":\"policy\",\"sample_value\":\"public\"},\"_p_id\":{\"ret_value\":\"text\",\"caption\":\"id\",\"sample_value\":\"U6L7KZ5wnaVSbjDnmT2UKFtGVLSmaRmmaSItS5tO00YQ\"}}}}","ret_value":"api.1608469100580x213930232373051400.plugin_api.Aha"},"Ahf":{"name":"Enable master access (MUX)","method":"put","publish_as":"action","should_reinitialize":true,"url":"https://api.mux.com/video/v1/assets/[Asset_id]/master-access","url_params":{"Ahg":{"key":"Asset_id","value":"","private":true,"doc":"Enter the asset Id of the video file."}},"headers":{"Ahh":{"key":"Content-Type","value":"application/json","private":true,"visibility":"hidden"},"Ahi":{"key":"Authorization","private":true,"visibility":"secret","doc":"See here for how to generate the base64 authorization header: http://paul-testing-4.bubbleapps.io/base64_authorization"}},"initialized":true,"body":"{\n    \"master_access\": \"temporary\"\n}","types":"{\"plugin_api.Ahf\":{\"caption\":\"Enable master access (MUX)\",\"fields\":{\"_p_data.upload_id\":{\"ret_value\":\"text\",\"caption\":\"upload_id\",\"sample_value\":\"GsnSMmeRwi01Smj01MmseTN00b00bDOeJ6Mw019X5WlwTWow\",\"path\":[\"data\",\"upload_id\"]},\"_p_data.tracks\":{\"ret_value\":\"list.api.1608469100580x213930232373051400.plugin_api.Ahf.data.tracks\",\"caption\":\"tracks\",\"path\":[\"data\",\"tracks\"]},\"_p_data.status\":{\"ret_value\":\"text\",\"caption\":\"status\",\"sample_value\":\"ready\",\"path\":[\"data\",\"status\"]},\"_p_data.static_renditions.status\":{\"ret_value\":\"text\",\"caption\":\"static_renditions status\",\"sample_value\":\"ready\",\"path\":[\"data\",\"static_renditions\",\"status\"]},\"_p_data.static_renditions.files\":{\"ret_value\":\"list.api.1608469100580x213930232373051400.plugin_api.Ahf.data.static_renditions.files\",\"caption\":\"static_renditions files\",\"path\":[\"data\",\"static_renditions\",\"files\"]},\"_p_data.playback_ids\":{\"ret_value\":\"list.api.1608469100580x213930232373051400.plugin_api.Ahf.data.playback_ids\",\"caption\":\"playback_ids\",\"path\":[\"data\",\"playback_ids\"]},\"_p_data.passthrough\":{\"ret_value\":\"text\",\"caption\":\"passthrough\",\"sample_value\":\"56031668807580407607\",\"path\":[\"data\",\"passthrough\"]},\"_p_data.mp4_support\":{\"ret_value\":\"text\",\"caption\":\"mp4_support\",\"sample_value\":\"standard\",\"path\":[\"data\",\"mp4_support\"]},\"_p_data.max_stored_resolution\":{\"ret_value\":\"text\",\"caption\":\"max_stored_resolution\",\"sample_value\":\"HD\",\"path\":[\"data\",\"max_stored_resolution\"]},\"_p_data.max_stored_frame_rate\":{\"ret_value\":\"number\",\"caption\":\"max_stored_frame_rate\",\"sample_value\":24.116,\"path\":[\"data\",\"max_stored_frame_rate\"]},\"_p_data.master_access\":{\"ret_value\":\"text\",\"caption\":\"master_access\",\"sample_value\":\"temporary\",\"path\":[\"data\",\"master_access\"]},\"_p_data.master.status\":{\"ret_value\":\"text\",\"caption\":\"master status\",\"sample_value\":\"preparing\",\"path\":[\"data\",\"master\",\"status\"]},\"_p_data.id\":{\"ret_value\":\"text\",\"caption\":\"id\",\"sample_value\":\"pllnR2x01R5GqJ9VbC1BvlV9FDv5NPwBpYTXzo00vQ01Jk\",\"path\":[\"data\",\"id\"]},\"_p_data.duration\":{\"ret_value\":\"number\",\"caption\":\"duration\",\"sample_value\":17.333333,\"path\":[\"data\",\"duration\"]},\"_p_data.created_at\":{\"ret_value\":\"text\",\"caption\":\"created_at\",\"sample_value\":\"1634361774\",\"path\":[\"data\",\"created_at\"]},\"_p_data.aspect_ratio\":{\"ret_value\":\"text\",\"caption\":\"aspect_ratio\",\"sample_value\":\"16:9\",\"path\":[\"data\",\"aspect_ratio\"]}}},\"plugin_api.Ahf.data.tracks\":{\"caption\":\"Enable master access (MUX) data track\",\"fields\":{\"_p_type\":{\"ret_value\":\"text\",\"caption\":\"type\",\"sample_value\":\"video\"},\"_p_max_width\":{\"ret_value\":\"number\",\"caption\":\"max_width\",\"sample_value\":1920},\"_p_max_height\":{\"ret_value\":\"number\",\"caption\":\"max_height\",\"sample_value\":1080},\"_p_max_frame_rate\":{\"ret_value\":\"number\",\"caption\":\"max_frame_rate\",\"sample_value\":24.116},\"_p_id\":{\"ret_value\":\"text\",\"caption\":\"id\",\"sample_value\":\"Vac46VNDzGB2Yh01GkXxSisITFgKoXB3MvAJsYmlYdwQ\"},\"_p_duration\":{\"ret_value\":\"number\",\"caption\":\"duration\",\"sample_value\":17.25}}},\"plugin_api.Ahf.data.static_renditions.files\":{\"caption\":\"Enable master access (MUX) data static_renditions file\",\"fields\":{\"_p_width\":{\"ret_value\":\"number\",\"caption\":\"width\",\"sample_value\":640},\"_p_name\":{\"ret_value\":\"text\",\"caption\":\"name\",\"sample_value\":\"low.mp4\"},\"_p_height\":{\"ret_value\":\"number\",\"caption\":\"height\",\"sample_value\":360},\"_p_filesize\":{\"ret_value\":\"text\",\"caption\":\"filesize\",\"sample_value\":\"1521790\"},\"_p_ext\":{\"ret_value\":\"text\",\"caption\":\"ext\",\"sample_value\":\"mp4\"},\"_p_bitrate\":{\"ret_value\":\"number\",\"caption\":\"bitrate\",\"sample_value\":702336}}},\"plugin_api.Ahf.data.playback_ids\":{\"caption\":\"Enable master access (MUX) data playback_id\",\"fields\":{\"_p_policy\":{\"ret_value\":\"text\",\"caption\":\"policy\",\"sample_value\":\"public\"},\"_p_id\":{\"ret_value\":\"text\",\"caption\":\"id\",\"sample_value\":\"tEyZkfAlNY79EFnsrKRjK4ZDZRJGlL01mglMgk2RoVWw\"}}}}","ret_value":"api.1608469100580x213930232373051400.plugin_api.Ahf"},"AjD":{"name":"Create playback restriction (MUX)","method":"post","publish_as":"data","should_reinitialize":true,"headers":{"AjE":{"key":"Content-Type","value":"application/json","private":true,"visibility":"hidden"},"AjF":{"key":"Authorization","private":true,"visibility":"secret","doc":"See here for how to generate the base64 authorization header: http://paul-testing-4.bubbleapps.io/base64_authorization"}},"url":"https://api.mux.com/video/v1/playback-restrictions","body":"{\n  \"referrer\": {\n    \"allowed_domains\": [\n      <Allowed_Domains>\n    ],\n    \"allow_no_referrer\": true\n  }\n}  ","body_params":{"AjI":{"key":"Allowed_Domains","value":"\"*.example.com\", \"foo.com\"","private":true,"doc":"List of domains allowed to play videos. You must wrap each domain in double quotes (\") and separate multiple domains with a comma as shown in the example value. This will accept wildcards.","allow_blank":false}},"initialized":true,"types":"{\"plugin_api.AjD\":{\"caption\":\"Create playback restriction (MUX)\",\"fields\":{\"_p_data.updated_at\":{\"ret_value\":\"text\",\"caption\":\"updated_at\",\"sample_value\":\"1658951797\",\"path\":[\"data\",\"updated_at\"]},\"_p_data.referrer.allowed_domains\":{\"ret_value\":\"list.text\",\"caption\":\"referrer allowed_domains\",\"sample_value\":\"*.example.com\",\"path\":[\"data\",\"referrer\",\"allowed_domains\"]},\"_p_data.referrer.allow_no_referrer\":{\"ret_value\":\"boolean\",\"caption\":\"referrer allow_no_referrer\",\"sample_value\":true,\"path\":[\"data\",\"referrer\",\"allow_no_referrer\"]},\"_p_data.id\":{\"ret_value\":\"text\",\"caption\":\"id\",\"sample_value\":\"DyeI43uG4M2E00A0098kCNK45npeSpqoCIMS7SUnY001k00\",\"path\":[\"data\",\"id\"]},\"_p_data.created_at\":{\"ret_value\":\"text\",\"caption\":\"created_at\",\"sample_value\":\"1658951797\",\"path\":[\"data\",\"created_at\"]}}}}","ret_value":"api.1608469100580x213930232373051400.plugin_api.AjD"},"AjJ":{"name":"Create playback restriction (MUX)","method":"post","publish_as":"action","should_reinitialize":true,"url":"https://api.mux.com/video/v1/playback-restrictions","headers":{"AjK":{"key":"Content-Type","value":"application/json","private":true,"visibility":"hidden"},"AjL":{"key":"Authorization","private":true,"visibility":"secret","doc":"See here for how to generate the base64 authorization header: http://paul-testing-4.bubbleapps.io/base64_authorization"}},"body":"{\n  \"referrer\": {\n    \"allowed_domains\": [\n      <Allowed_Domains>\n    ],\n    \"allow_no_referrer\": <Allow_No_Referrer>\n  }\n}  ","body_params":{"AjM":{"key":"Allowed_Domains","value":"\"*.example.com\", \"example.com\"","private":true,"doc":"List of domains allowed to play videos. You must wrap each domain in double quotes (\") and separate multiple domains with a comma as shown in the example value. This will accept wildcards."},"Aoj":{"key":"Allow_No_Referrer","value":"true","private":true,"doc":"The Referer HTTP header is only sent by web browsers, while native iOS and Android applications do not send this header. Therefore, Mux cannot perform domain validations on any requests from native iOS and Android applications. For this reason, you can configure the Playback Restrictions to allow or deny all HTTP requests without the Referer HTTP header by setting the allow_no_referrer boolean parameter. You should only set the allow_no_referrer parameter value to true if you are using a native iOS and/or Android applications."}},"initialized":true,"types":"{\"plugin_api.AjJ\":{\"caption\":\"Create playback restriction (MUX)\",\"fields\":{\"_p_data.updated_at\":{\"ret_value\":\"text\",\"caption\":\"updated_at\",\"sample_value\":\"1659709950\",\"path\":[\"data\",\"updated_at\"]},\"_p_data.referrer.allowed_domains\":{\"ret_value\":\"list.text\",\"caption\":\"referrer allowed_domains\",\"sample_value\":\"*.example.com\",\"path\":[\"data\",\"referrer\",\"allowed_domains\"]},\"_p_data.referrer.allow_no_referrer\":{\"ret_value\":\"boolean\",\"caption\":\"referrer allow_no_referrer\",\"sample_value\":true,\"path\":[\"data\",\"referrer\",\"allow_no_referrer\"]},\"_p_data.id\":{\"ret_value\":\"text\",\"caption\":\"id\",\"sample_value\":\"4pcOtCxsm01000202T01JpF596tzDyD2ZC666MRXZaTrQtD00\",\"path\":[\"data\",\"id\"]},\"_p_data.created_at\":{\"ret_value\":\"text\",\"caption\":\"created_at\",\"sample_value\":\"1659709950\",\"path\":[\"data\",\"created_at\"]}}}}","ret_value":"api.1608469100580x213930232373051400.plugin_api.AjJ"},"AjN":{"name":"List playback restrictions (MUX)","method":"get","publish_as":"data","should_reinitialize":true,"url":"https://api.mux.com/video/v1/playback-restrictions","headers":{"AjO":{"key":"Content-Type","value":"application/json","private":true,"visibility":"hidden"},"AjP":{"key":"Authorization","private":true,"visibility":"secret","doc":"See here for how to generate the base64 authorization header: http://paul-testing-4.bubbleapps.io/base64_authorization"}},"initialized":true,"types":"{\"plugin_api.AjN\":{\"caption\":\"List playback restrictions (MUX)\",\"fields\":{\"_p_data\":{\"ret_value\":\"list.api.1608469100580x213930232373051400.plugin_api.AjN.data\",\"caption\":\"data\"}}},\"plugin_api.AjN.data\":{\"caption\":\"List playback restrictions (MUX) data\",\"fields\":{\"_p_updated_at\":{\"ret_value\":\"text\",\"caption\":\"updated_at\",\"sample_value\":\"1658951863\"},\"_p_referrer.allowed_domains\":{\"ret_value\":\"list.text\",\"caption\":\"referrer allowed_domains\",\"sample_value\":\"*.example.com\",\"path\":[\"referrer\",\"allowed_domains\"]},\"_p_referrer.allow_no_referrer\":{\"ret_value\":\"boolean\",\"caption\":\"referrer allow_no_referrer\",\"sample_value\":true,\"path\":[\"referrer\",\"allow_no_referrer\"]},\"_p_id\":{\"ret_value\":\"text\",\"caption\":\"id\",\"sample_value\":\"6dFYucM33J014D24v5JRw4YHJG7tF024l5aoZIoJa024R8\"},\"_p_created_at\":{\"ret_value\":\"text\",\"caption\":\"created_at\",\"sample_value\":\"1658951863\"}}}}","ret_value":"api.1608469100580x213930232373051400.plugin_api.AjN"},"AjQ":{"name":"List playback restrictions (MUX)","method":"get","publish_as":"action","should_reinitialize":true,"url":"https://api.mux.com/video/v1/playback-restrictions","headers":{"AjR":{"key":"Content-Type","value":"application/json","private":true,"visibility":"hidden"},"AjS":{"key":"Authorization","private":true,"visibility":"secret","doc":"See here for how to generate the base64 authorization header: http://paul-testing-4.bubbleapps.io/base64_authorization"}},"initialized":true,"types":"{\"plugin_api.AjQ\":{\"caption\":\"List playback restrictions (MUX)\",\"fields\":{\"_p_data\":{\"ret_value\":\"list.api.1608469100580x213930232373051400.plugin_api.AjQ.data\",\"caption\":\"data\"}}},\"plugin_api.AjQ.data\":{\"caption\":\"List playback restrictions (MUX) data\",\"fields\":{\"_p_updated_at\":{\"ret_value\":\"text\",\"caption\":\"updated_at\",\"sample_value\":\"1659709800\"},\"_p_referrer.allowed_domains\":{\"ret_value\":\"list.text\",\"caption\":\"referrer allowed_domains\",\"sample_value\":\"*.paul-testing-4.bubbleapps.io\",\"path\":[\"referrer\",\"allowed_domains\"]},\"_p_referrer.allow_no_referrer\":{\"ret_value\":\"boolean\",\"caption\":\"referrer allow_no_referrer\",\"sample_value\":true,\"path\":[\"referrer\",\"allow_no_referrer\"]},\"_p_id\":{\"ret_value\":\"text\",\"caption\":\"id\",\"sample_value\":\"QyrSNRRVQF4yapqlrdrQV7L023w8X02G02l8RwctVza4hs\"},\"_p_created_at\":{\"ret_value\":\"text\",\"caption\":\"created_at\",\"sample_value\":\"1659709800\"}}}}","ret_value":"api.1608469100580x213930232373051400.plugin_api.AjQ"},"AjT":{"name":"Delete playback restrictions (MUX)","method":"delete_method","publish_as":"data","should_reinitialize":true,"url":"https://api.mux.com/video/v1/playback-restrictions/[Restriction ID]","url_params":{"AjV":{"key":"Restriction ID","value":"DyeI43uG4M2E00A0098kCNK45npeSpqoCIMS7SUnY001k00","private":true,"doc":"Enter the playback restriction ID that you get when creating the restriction."}},"headers":{"AjW":{"key":"Content-Type","value":"application/json","private":true,"visibility":"hidden"},"AjX":{"key":"Authorization","private":true,"visibility":"secret","doc":"See here for how to generate the base64 authorization header: http://paul-testing-4.bubbleapps.io/base64_authorization"}},"initialized":true,"data_type":"empty","no_types":true},"AjY":{"name":"Delete playback restrictions (MUX)","method":"delete_method","publish_as":"action","should_reinitialize":true,"url":"https://api.mux.com/video/v1/playback-restrictions/[Restriction ID]","url_params":{"AjZ":{"key":"Restriction ID","value":"","private":true,"doc":"Enter the playback restriction ID that you got when creating the restriction."}},"headers":{"Aja":{"key":"Content-Type","value":"application/json","private":true,"visibility":"hidden"},"Ajb":{"key":"Authorization","private":true,"visibility":"secret","doc":"See here for how to generate the base64 authorization header: http://paul-testing-4.bubbleapps.io/base64_authorization"}},"data_type":"empty","initialized":true,"no_types":true},"AlT":{"name":"Get video view (MUX)","method":"get","publish_as":"data","should_reinitialize":true,"url":"https://api.mux.com/data/v1/video-views/[Video_view_id]","url_params":{"AlV":{"key":"Video_view_id","value":"g0BMzZpidV6wqeHjm4CqZ7I6K5CPb1lwYbAW","private":true,"doc":"ID of the video view which can be seen within the 'id' field when running the 'List video views (MUX)' request."}},"headers":{"AlX":{"key":"Content-Type","value":"application/json","private":true,"visibility":"hidden"},"AlY":{"key":"Authorization","private":true,"visibility":"secret","doc":"See here for how to generate the base64 authorization header: http://paul-testing-4.bubbleapps.io/base64_authorization"}},"initialized":true,"types":"{\"plugin_api.AlT\":{\"caption\":\"Get video view (MUX)\",\"fields\":{\"_p_total_row_count\":{\"ret_value\":\"text\",\"caption\":\"total_row_count\",\"sample_value\":null},\"_p_timeframe\":{\"ret_value\":\"list.number\",\"caption\":\"timeframe\",\"sample_value\":1649499782},\"_p_data.player_height\":{\"ret_value\":\"number\",\"caption\":\"player_height\",\"sample_value\":354,\"path\":[\"data\",\"player_height\"]},\"_p_data.short_time\":{\"ret_value\":\"text\",\"caption\":\"short_time\",\"sample_value\":\"10:19am Etc/UTC 2022-04-10\",\"path\":[\"data\",\"short_time\"]},\"_p_data.live_stream_id\":{\"ret_value\":\"text\",\"caption\":\"live_stream_id\",\"sample_value\":null,\"path\":[\"data\",\"live_stream_id\"]},\"_p_data.video_duration\":{\"ret_value\":\"text\",\"caption\":\"video_duration\",\"sample_value\":null,\"path\":[\"data\",\"video_duration\"]},\"_p_data.viewer_application_version\":{\"ret_value\":\"text\",\"caption\":\"viewer_application_version\",\"sample_value\":\"99.0.4844.84\",\"path\":[\"data\",\"viewer_application_version\"]},\"_p_data.watch_time\":{\"ret_value\":\"number\",\"caption\":\"watch_time\",\"sample_value\":40689,\"path\":[\"data\",\"watch_time\"]},\"_p_data.viewer_device_model\":{\"ret_value\":\"text\",\"caption\":\"viewer_device_model\",\"sample_value\":null,\"path\":[\"data\",\"viewer_device_model\"]},\"_p_data.player_language\":{\"ret_value\":\"text\",\"caption\":\"player_language\",\"sample_value\":\"en\",\"path\":[\"data\",\"player_language\"]},\"_p_data.custom_5\":{\"ret_value\":\"text\",\"caption\":\"custom_5\",\"sample_value\":null,\"path\":[\"data\",\"custom_5\"]},\"_p_data.view_max_upscale_percentage\":{\"ret_value\":\"text\",\"caption\":\"view_max_upscale_percentage\",\"sample_value\":\"0\",\"path\":[\"data\",\"view_max_upscale_percentage\"]},\"_p_data.view_seek_duration\":{\"ret_value\":\"number\",\"caption\":\"view_seek_duration\",\"sample_value\":133,\"path\":[\"data\",\"view_seek_duration\"]},\"_p_data.player_source_duration\":{\"ret_value\":\"number\",\"caption\":\"player_source_duration\",\"sample_value\":40209,\"path\":[\"data\",\"player_source_duration\"]},\"_p_data.long_rebuffering\":{\"ret_value\":\"text\",\"caption\":\"long_rebuffering\",\"sample_value\":null,\"path\":[\"data\",\"long_rebuffering\"]},\"_p_data.asn\":{\"ret_value\":\"number\",\"caption\":\"asn\",\"sample_value\":9105,\"path\":[\"data\",\"asn\"]},\"_p_data.view_max_downscale_percentage\":{\"ret_value\":\"text\",\"caption\":\"view_max_downscale_percentage\",\"sample_value\":\"0.75364584\",\"path\":[\"data\",\"view_max_downscale_percentage\"]},\"_p_data.region\":{\"ret_value\":\"text\",\"caption\":\"region\",\"sample_value\":\"England\",\"path\":[\"data\",\"region\"]},\"_p_data.video_series\":{\"ret_value\":\"text\",\"caption\":\"video_series\",\"sample_value\":null,\"path\":[\"data\",\"video_series\"]},\"_p_data.mux_api_version\":{\"ret_value\":\"text\",\"caption\":\"mux_api_version\",\"sample_value\":\"2.1\",\"path\":[\"data\",\"mux_api_version\"]},\"_p_data.view_end\":{\"ret_value\":\"text\",\"caption\":\"view_end\",\"sample_value\":\"2022-04-10T10:21:37Z\",\"path\":[\"data\",\"view_end\"]},\"_p_data.mux_viewer_id\":{\"ret_value\":\"text\",\"caption\":\"mux_viewer_id\",\"sample_value\":\"e956c098-3139-42eb-a669-986eaaef9afe\",\"path\":[\"data\",\"mux_viewer_id\"]},\"_p_data.preroll_requested\":{\"ret_value\":\"boolean\",\"caption\":\"preroll_requested\",\"sample_value\":false,\"path\":[\"data\",\"preroll_requested\"]},\"_p_data.player_source_domain\":{\"ret_value\":\"text\",\"caption\":\"player_source_domain\",\"sample_value\":\"akamaihd.net\",\"path\":[\"data\",\"player_source_domain\"]},\"_p_data.view_max_request_latency\":{\"ret_value\":\"text\",\"caption\":\"view_max_request_latency\",\"sample_value\":null,\"path\":[\"data\",\"view_max_request_latency\"]},\"_p_data.video_variant_id\":{\"ret_value\":\"text\",\"caption\":\"video_variant_id\",\"sample_value\":null,\"path\":[\"data\",\"video_variant_id\"]},\"_p_data.player_load_time\":{\"ret_value\":\"text\",\"caption\":\"player_load_time\",\"sample_value\":null,\"path\":[\"data\",\"player_load_time\"]},\"_p_data.longitude\":{\"ret_value\":\"text\",\"caption\":\"longitude\",\"sample_value\":\"-1.4\",\"path\":[\"data\",\"longitude\"]},\"_p_data.custom_3\":{\"ret_value\":\"text\",\"caption\":\"custom_3\",\"sample_value\":null,\"path\":[\"data\",\"custom_3\"]},\"_p_data.buffering_rate\":{\"ret_value\":\"text\",\"caption\":\"buffering_rate\",\"sample_value\":\"2.4576668e-5\",\"path\":[\"data\",\"buffering_rate\"]},\"_p_data.view_total_content_playback_time\":{\"ret_value\":\"number\",\"caption\":\"view_total_content_playback_time\",\"sample_value\":29428,\"path\":[\"data\",\"view_total_content_playback_time\"]},\"_p_data.asn_name\":{\"ret_value\":\"text\",\"caption\":\"asn_name\",\"sample_value\":\"TISCALI-UK TalkTalk Communications Limited (AS9105)\",\"path\":[\"data\",\"asn_name\"]},\"_p_data.mux_embed_version\":{\"ret_value\":\"text\",\"caption\":\"mux_embed_version\",\"sample_value\":\"4.7.0\",\"path\":[\"data\",\"mux_embed_version\"]},\"_p_data.player_instance_id\":{\"ret_value\":\"text\",\"caption\":\"player_instance_id\",\"sample_value\":\"e0d69824-82b1-4c0d-b8ef-46cd01befe54\",\"path\":[\"data\",\"player_instance_id\"]},\"_p_data.country_name\":{\"ret_value\":\"text\",\"caption\":\"country_name\",\"sample_value\":\"United Kingdom\",\"path\":[\"data\",\"country_name\"]},\"_p_data.view_session_id\":{\"ret_value\":\"text\",\"caption\":\"view_session_id\",\"sample_value\":null,\"path\":[\"data\",\"view_session_id\"]},\"_p_data.view_error_id\":{\"ret_value\":\"text\",\"caption\":\"view_error_id\",\"sample_value\":null,\"path\":[\"data\",\"view_error_id\"]},\"_p_data.city\":{\"ret_value\":\"text\",\"caption\":\"city\",\"sample_value\":\"Southampton\",\"path\":[\"data\",\"city\"]},\"_p_data.error_type_id\":{\"ret_value\":\"text\",\"caption\":\"error_type_id\",\"sample_value\":null,\"path\":[\"data\",\"error_type_id\"]},\"_p_data.viewer_os_architecture\":{\"ret_value\":\"text\",\"caption\":\"viewer_os_architecture\",\"sample_value\":\"x64\",\"path\":[\"data\",\"viewer_os_architecture\"]},\"_p_data.view_total_downscaling\":{\"ret_value\":\"text\",\"caption\":\"view_total_downscaling\",\"sample_value\":\"22178.29\",\"path\":[\"data\",\"view_total_downscaling\"]},\"_p_data.view_playing_time\":{\"ret_value\":\"text\",\"caption\":\"view_playing_time\",\"sample_value\":\"40197\",\"path\":[\"data\",\"view_playing_time\"]},\"_p_data.platform_summary\":{\"ret_value\":\"text\",\"caption\":\"platform_summary\",\"sample_value\":\"Chrome on Windows\",\"path\":[\"data\",\"platform_summary\"]},\"_p_data.video_encoding_variant\":{\"ret_value\":\"text\",\"caption\":\"video_encoding_variant\",\"sample_value\":null,\"path\":[\"data\",\"video_encoding_variant\"]},\"_p_data.page_load_time\":{\"ret_value\":\"number\",\"caption\":\"page_load_time\",\"sample_value\":20080,\"path\":[\"data\",\"page_load_time\"]},\"_p_data.used_fullscreen\":{\"ret_value\":\"boolean\",\"caption\":\"used_fullscreen\",\"sample_value\":false,\"path\":[\"data\",\"used_fullscreen\"]},\"_p_data.player_error_message\":{\"ret_value\":\"text\",\"caption\":\"player_error_message\",\"sample_value\":null,\"path\":[\"data\",\"player_error_message\"]},\"_p_data.player_preload\":{\"ret_value\":\"boolean\",\"caption\":\"player_preload\",\"sample_value\":true,\"path\":[\"data\",\"player_preload\"]},\"_p_data.rebuffer_percentage\":{\"ret_value\":\"text\",\"caption\":\"rebuffer_percentage\",\"sample_value\":\"0.0074221534\",\"path\":[\"data\",\"rebuffer_percentage\"]},\"_p_data.video_variant_name\":{\"ret_value\":\"text\",\"caption\":\"video_variant_name\",\"sample_value\":null,\"path\":[\"data\",\"video_variant_name\"]},\"_p_data.view_average_request_latency\":{\"ret_value\":\"text\",\"caption\":\"view_average_request_latency\",\"sample_value\":null,\"path\":[\"data\",\"view_average_request_latency\"]},\"_p_data.viewer_user_id\":{\"ret_value\":\"text\",\"caption\":\"viewer_user_id\",\"sample_value\":\"pork1977gm\",\"path\":[\"data\",\"viewer_user_id\"]},\"_p_data.video_startup_preroll_load_time\":{\"ret_value\":\"text\",\"caption\":\"video_startup_preroll_load_time\",\"sample_value\":null,\"path\":[\"data\",\"video_startup_preroll_load_time\"]},\"_p_data.asset_id\":{\"ret_value\":\"text\",\"caption\":\"asset_id\",\"sample_value\":null,\"path\":[\"data\",\"asset_id\"]},\"_p_data.latitude\":{\"ret_value\":\"text\",\"caption\":\"latitude\",\"sample_value\":\"50.8\",\"path\":[\"data\",\"latitude\"]},\"_p_data.isp\":{\"ret_value\":\"text\",\"caption\":\"isp\",\"sample_value\":null,\"path\":[\"data\",\"isp\"]},\"_p_data.player_source_height\":{\"ret_value\":\"number\",\"caption\":\"player_source_height\",\"sample_value\":1080,\"path\":[\"data\",\"player_source_height\"]},\"_p_data.property_id\":{\"ret_value\":\"number\",\"caption\":\"property_id\",\"sample_value\":39739,\"path\":[\"data\",\"property_id\"]},\"_p_data.inserted_at\":{\"ret_value\":\"text\",\"caption\":\"inserted_at\",\"sample_value\":\"2022-04-10T10:19:31Z\",\"path\":[\"data\",\"inserted_at\"]},\"_p_data.events\":{\"ret_value\":\"list.api.1608469100580x213930232373051400.plugin_api.AlT.data.events\",\"caption\":\"events\",\"path\":[\"data\",\"events\"]},\"_p_data.view_max_playhead_position\":{\"ret_value\":\"text\",\"caption\":\"view_max_playhead_position\",\"sample_value\":\"40209\",\"path\":[\"data\",\"view_max_playhead_position\"]},\"_p_data.player_mux_plugin_version\":{\"ret_value\":\"text\",\"caption\":\"player_mux_plugin_version\",\"sample_value\":\"4.6.3\",\"path\":[\"data\",\"player_mux_plugin_version\"]},\"_p_data.time_to_first_frame\":{\"ret_value\":\"number\",\"caption\":\"time_to_first_frame\",\"sample_value\":150,\"path\":[\"data\",\"time_to_first_frame\"]},\"_p_data.player_source_stream_type\":{\"ret_value\":\"text\",\"caption\":\"player_source_stream_type\",\"sample_value\":null,\"path\":[\"data\",\"player_source_stream_type\"]},\"_p_data.player_startup_time\":{\"ret_value\":\"number\",\"caption\":\"player_startup_time\",\"sample_value\":-10140,\"path\":[\"data\",\"player_startup_time\"]},\"_p_data.weighted_average_bitrate\":{\"ret_value\":\"text\",\"caption\":\"weighted_average_bitrate\",\"sample_value\":null,\"path\":[\"data\",\"weighted_average_bitrate\"]},\"_p_data.buffering_duration\":{\"ret_value\":\"number\",\"caption\":\"buffering_duration\",\"sample_value\":302,\"path\":[\"data\",\"buffering_duration\"]},\"_p_data.video_content_type\":{\"ret_value\":\"text\",\"caption\":\"video_content_type\",\"sample_value\":null,\"path\":[\"data\",\"video_content_type\"]},\"_p_data.player_remote_played\":{\"ret_value\":\"boolean\",\"caption\":\"player_remote_played\",\"sample_value\":false,\"path\":[\"data\",\"player_remote_played\"]},\"_p_data.view_id\":{\"ret_value\":\"text\",\"caption\":\"view_id\",\"sample_value\":\"506b5eb8-9ed2-463b-9856-db034967e5a4\",\"path\":[\"data\",\"view_id\"]},\"_p_data.viewer_os_family\":{\"ret_value\":\"text\",\"caption\":\"viewer_os_family\",\"sample_value\":\"Windows\",\"path\":[\"data\",\"viewer_os_family\"]},\"_p_data.metro\":{\"ret_value\":\"text\",\"caption\":\"metro\",\"sample_value\":null,\"path\":[\"data\",\"metro\"]},\"_p_data.platform_description\":{\"ret_value\":\"text\",\"caption\":\"platform_description\",\"sample_value\":null,\"path\":[\"data\",\"platform_description\"]},\"_p_data.player_source_url\":{\"ret_value\":\"text\",\"caption\":\"player_source_url\",\"sample_value\":\"//easportsassets-a.akamaihd.net/pulse.content.easports.com/web/OnlineAssets/easports/2017/easports17-video-reel.webm\",\"path\":[\"data\",\"player_source_url\"]},\"_p_data.continent_code\":{\"ret_value\":\"text\",\"caption\":\"continent_code\",\"sample_value\":\"EU\",\"path\":[\"data\",\"continent_code\"]},\"_p_data.requests_for_first_preroll\":{\"ret_value\":\"text\",\"caption\":\"requests_for_first_preroll\",\"sample_value\":null,\"path\":[\"data\",\"requests_for_first_preroll\"]},\"_p_data.page_type\":{\"ret_value\":\"text\",\"caption\":\"page_type\",\"sample_value\":null,\"path\":[\"data\",\"page_type\"]},\"_p_data.viewer_application_name\":{\"ret_value\":\"text\",\"caption\":\"viewer_application_name\",\"sample_value\":\"Chrome\",\"path\":[\"data\",\"viewer_application_name\"]},\"_p_data.preroll_ad_asset_hostname\":{\"ret_value\":\"text\",\"caption\":\"preroll_ad_asset_hostname\",\"sample_value\":null,\"path\":[\"data\",\"preroll_ad_asset_hostname\"]},\"_p_data.preroll_ad_tag_hostname\":{\"ret_value\":\"text\",\"caption\":\"preroll_ad_tag_hostname\",\"sample_value\":null,\"path\":[\"data\",\"preroll_ad_tag_hostname\"]},\"_p_data.player_poster\":{\"ret_value\":\"text\",\"caption\":\"player_poster\",\"sample_value\":null,\"path\":[\"data\",\"player_poster\"]},\"_p_data.player_source_host_name\":{\"ret_value\":\"text\",\"caption\":\"player_source_host_name\",\"sample_value\":\"easportsassets-a.akamaihd.net\",\"path\":[\"data\",\"player_source_host_name\"]},\"_p_data.player_source_type\":{\"ret_value\":\"text\",\"caption\":\"player_source_type\",\"sample_value\":\"video/webm\",\"path\":[\"data\",\"player_source_type\"]},\"_p_data.video_producer\":{\"ret_value\":\"text\",\"caption\":\"video_producer\",\"sample_value\":null,\"path\":[\"data\",\"video_producer\"]},\"_p_data.player_mux_plugin_name\":{\"ret_value\":\"text\",\"caption\":\"player_mux_plugin_name\",\"sample_value\":\"videojs-mux\",\"path\":[\"data\",\"player_mux_plugin_name\"]},\"_p_data.player_error_code\":{\"ret_value\":\"text\",\"caption\":\"player_error_code\",\"sample_value\":null,\"path\":[\"data\",\"player_error_code\"]},\"_p_data.player_width\":{\"ret_value\":\"number\",\"caption\":\"player_width\",\"sample_value\":473,\"path\":[\"data\",\"player_width\"]},\"_p_data.player_view_count\":{\"ret_value\":\"number\",\"caption\":\"player_view_count\",\"sample_value\":1,\"path\":[\"data\",\"player_view_count\"]},\"_p_data.player_software\":{\"ret_value\":\"text\",\"caption\":\"player_software\",\"sample_value\":\"Video.js\",\"path\":[\"data\",\"player_software\"]},\"_p_data.quality_score\":{\"ret_value\":\"text\",\"caption\":\"quality_score\",\"sample_value\":\"1\",\"path\":[\"data\",\"quality_score\"]},\"_p_data.player_name\":{\"ret_value\":\"text\",\"caption\":\"player_name\",\"sample_value\":\"VideoJS (Bubble)\",\"path\":[\"data\",\"player_name\"]},\"_p_data.cdn\":{\"ret_value\":\"text\",\"caption\":\"cdn\",\"sample_value\":\"//easportsassets-a.akamaihd.net/pulse.content.easports.com/web/OnlineAssets/easports/2017/easports17-video-reel.webm\",\"path\":[\"data\",\"cdn\"]},\"_p_data.viewer_experience_score\":{\"ret_value\":\"text\",\"caption\":\"viewer_experience_score\",\"sample_value\":\"0.95763856\",\"path\":[\"data\",\"viewer_experience_score\"]},\"_p_data.country_code\":{\"ret_value\":\"text\",\"caption\":\"country_code\",\"sample_value\":\"GB\",\"path\":[\"data\",\"country_code\"]},\"_p_data.viewer_application_engine\":{\"ret_value\":\"text\",\"caption\":\"viewer_application_engine\",\"sample_value\":null,\"path\":[\"data\",\"viewer_application_engine\"]},\"_p_data.sub_property_id\":{\"ret_value\":\"text\",\"caption\":\"sub_property_id\",\"sample_value\":null,\"path\":[\"data\",\"sub_property_id\"]},\"_p_data.rebuffering_score\":{\"ret_value\":\"text\",\"caption\":\"rebuffering_score\",\"sample_value\":\"0.9114466\",\"path\":[\"data\",\"rebuffering_score\"]},\"_p_data.playback_score\":{\"ret_value\":\"text\",\"caption\":\"playback_score\",\"sample_value\":\"1\",\"path\":[\"data\",\"playback_score\"]},\"_p_data.startup_score\":{\"ret_value\":\"text\",\"caption\":\"startup_score\",\"sample_value\":\"0.9815951\",\"path\":[\"data\",\"startup_score\"]},\"_p_data.custom_4\":{\"ret_value\":\"text\",\"caption\":\"custom_4\",\"sample_value\":null,\"path\":[\"data\",\"custom_4\"]},\"_p_data.view_total_upscaling\":{\"ret_value\":\"text\",\"caption\":\"view_total_upscaling\",\"sample_value\":\"0\",\"path\":[\"data\",\"view_total_upscaling\"]},\"_p_data.buffering_count\":{\"ret_value\":\"number\",\"caption\":\"buffering_count\",\"sample_value\":1,\"path\":[\"data\",\"buffering_count\"]},\"_p_data.viewer_user_agent\":{\"ret_value\":\"text\",\"caption\":\"viewer_user_agent\",\"sample_value\":\"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.84 Safari/537.36\",\"path\":[\"data\",\"viewer_user_agent\"]},\"_p_data.viewer_device_category\":{\"ret_value\":\"text\",\"caption\":\"viewer_device_category\",\"sample_value\":\"desktop\",\"path\":[\"data\",\"viewer_device_category\"]},\"_p_data.session_id\":{\"ret_value\":\"text\",\"caption\":\"session_id\",\"sample_value\":\"6ee477c4-729d-48cc-bfc0-c91a6ceda87a\",\"path\":[\"data\",\"session_id\"]},\"_p_data.id\":{\"ret_value\":\"text\",\"caption\":\"id\",\"sample_value\":\"eff3c4ec-ddb7-493c-8e20-5ee803f99100\",\"path\":[\"data\",\"id\"]},\"_p_data.live_stream_latency\":{\"ret_value\":\"text\",\"caption\":\"live_stream_latency\",\"sample_value\":null,\"path\":[\"data\",\"live_stream_latency\"]},\"_p_data.view_start\":{\"ret_value\":\"text\",\"caption\":\"view_start\",\"sample_value\":\"2022-04-10T10:19:31Z\",\"path\":[\"data\",\"view_start\"]},\"_p_data.watched\":{\"ret_value\":\"boolean\",\"caption\":\"watched\",\"sample_value\":true,\"path\":[\"data\",\"watched\"]},\"_p_data.viewer_connection_type\":{\"ret_value\":\"text\",\"caption\":\"viewer_connection_type\",\"sample_value\":null,\"path\":[\"data\",\"viewer_connection_type\"]},\"_p_data.video_title\":{\"ret_value\":\"text\",\"caption\":\"video_title\",\"sample_value\":\"My Awesome Video\",\"path\":[\"data\",\"video_title\"]},\"_p_data.player_autoplay\":{\"ret_value\":\"boolean\",\"caption\":\"player_autoplay\",\"sample_value\":false,\"path\":[\"data\",\"player_autoplay\"]},\"_p_data.view_average_request_throughput\":{\"ret_value\":\"text\",\"caption\":\"view_average_request_throughput\",\"sample_value\":null,\"path\":[\"data\",\"view_average_request_throughput\"]},\"_p_data.player_software_version\":{\"ret_value\":\"text\",\"caption\":\"player_software_version\",\"sample_value\":\"7.18.1\",\"path\":[\"data\",\"player_software_version\"]},\"_p_data.player_version\":{\"ret_value\":\"text\",\"caption\":\"player_version\",\"sample_value\":\"7.18.1\",\"path\":[\"data\",\"player_version\"]},\"_p_data.video_id\":{\"ret_value\":\"text\",\"caption\":\"video_id\",\"sample_value\":\"My_video_Id\",\"path\":[\"data\",\"video_id\"]},\"_p_data.playback_id\":{\"ret_value\":\"text\",\"caption\":\"playback_id\",\"sample_value\":null,\"path\":[\"data\",\"playback_id\"]},\"_p_data.long_resume\":{\"ret_value\":\"text\",\"caption\":\"long_resume\",\"sample_value\":null,\"path\":[\"data\",\"long_resume\"]},\"_p_data.experiment_name\":{\"ret_value\":\"text\",\"caption\":\"experiment_name\",\"sample_value\":null,\"path\":[\"data\",\"experiment_name\"]},\"_p_data.video_startup_preroll_request_time\":{\"ret_value\":\"text\",\"caption\":\"video_startup_preroll_request_time\",\"sample_value\":null,\"path\":[\"data\",\"video_startup_preroll_request_time\"]},\"_p_data.custom_2\":{\"ret_value\":\"text\",\"caption\":\"custom_2\",\"sample_value\":null,\"path\":[\"data\",\"custom_2\"]},\"_p_data.view_seek_count\":{\"ret_value\":\"number\",\"caption\":\"view_seek_count\",\"sample_value\":1,\"path\":[\"data\",\"view_seek_count\"]},\"_p_data.video_stream_type\":{\"ret_value\":\"text\",\"caption\":\"video_stream_type\",\"sample_value\":null,\"path\":[\"data\",\"video_stream_type\"]},\"_p_data.updated_at\":{\"ret_value\":\"text\",\"caption\":\"updated_at\",\"sample_value\":\"2022-04-10T10:21:37Z\",\"path\":[\"data\",\"updated_at\"]},\"_p_data.exit_before_video_start\":{\"ret_value\":\"boolean\",\"caption\":\"exit_before_video_start\",\"sample_value\":false,\"path\":[\"data\",\"exit_before_video_start\"]},\"_p_data.video_language\":{\"ret_value\":\"text\",\"caption\":\"video_language\",\"sample_value\":null,\"path\":[\"data\",\"video_language\"]},\"_p_data.player_source_width\":{\"ret_value\":\"number\",\"caption\":\"player_source_width\",\"sample_value\":1920,\"path\":[\"data\",\"player_source_width\"]},\"_p_data.custom_1\":{\"ret_value\":\"text\",\"caption\":\"custom_1\",\"sample_value\":null,\"path\":[\"data\",\"custom_1\"]},\"_p_data.viewer_os_version\":{\"ret_value\":\"text\",\"caption\":\"viewer_os_version\",\"sample_value\":\"10\",\"path\":[\"data\",\"viewer_os_version\"]},\"_p_data.page_url\":{\"ret_value\":\"text\",\"caption\":\"page_url\",\"sample_value\":\"https://paul-testing-4.bubbleapps.io/version-test/web_videos\",\"path\":[\"data\",\"page_url\"]},\"_p_data.viewer_device_name\":{\"ret_value\":\"text\",\"caption\":\"viewer_device_name\",\"sample_value\":null,\"path\":[\"data\",\"viewer_device_name\"]},\"_p_data.preroll_played\":{\"ret_value\":\"boolean\",\"caption\":\"preroll_played\",\"sample_value\":false,\"path\":[\"data\",\"preroll_played\"]},\"_p_data.viewer_device_manufacturer\":{\"ret_value\":\"text\",\"caption\":\"viewer_device_manufacturer\",\"sample_value\":null,\"path\":[\"data\",\"viewer_device_manufacturer\"]}}},\"plugin_api.AlT.data.events\":{\"caption\":\"Get video view (MUX) data event\",\"fields\":{\"_p_viewer_time\":{\"ret_value\":\"number\",\"caption\":\"viewer_time\",\"sample_value\":1649585951127},\"_p_playback_time\":{\"ret_value\":\"number\",\"caption\":\"playback_time\",\"sample_value\":0},\"_p_name\":{\"ret_value\":\"text\",\"caption\":\"name\",\"sample_value\":\"playerready\"},\"_p_event_time\":{\"ret_value\":\"number\",\"caption\":\"event_time\",\"sample_value\":1649585971668}}}}","ret_value":"api.1608469100580x213930232373051400.plugin_api.AlT"},"AlU":{"name":"Get video view (MUX)","method":"get","publish_as":"action","should_reinitialize":true,"url":"https://api.mux.com/data/v1/video-views/[Video_view_id]","url_params":{"AlW":{"key":"Video_view_id","value":"g0BMzZpidV6wqeHjm4CqZ7I6K5CPb1lwYbAW","private":true,"doc":"ID of the video view which can be seen within the 'id' field when running the 'List video views (MUX)' request."}},"headers":{"AlZ":{"key":"Content-Type","value":"application/json","private":true,"visibility":"hidden"},"Ala":{"key":"Authorization","private":true,"visibility":"secret","doc":"See here for how to generate the base64 authorization header: http://paul-testing-4.bubbleapps.io/base64_authorization"}},"initialized":true,"types":"{\"plugin_api.AlU\":{\"caption\":\"Get video view (MUX)\",\"fields\":{\"_p_total_row_count\":{\"ret_value\":\"text\",\"caption\":\"total_row_count\",\"sample_value\":null},\"_p_timeframe\":{\"ret_value\":\"list.number\",\"caption\":\"timeframe\",\"sample_value\":1649499796},\"_p_data.player_height\":{\"ret_value\":\"number\",\"caption\":\"player_height\",\"sample_value\":354,\"path\":[\"data\",\"player_height\"]},\"_p_data.short_time\":{\"ret_value\":\"text\",\"caption\":\"short_time\",\"sample_value\":\"10:19am Etc/UTC 2022-04-10\",\"path\":[\"data\",\"short_time\"]},\"_p_data.live_stream_id\":{\"ret_value\":\"text\",\"caption\":\"live_stream_id\",\"sample_value\":null,\"path\":[\"data\",\"live_stream_id\"]},\"_p_data.video_duration\":{\"ret_value\":\"text\",\"caption\":\"video_duration\",\"sample_value\":null,\"path\":[\"data\",\"video_duration\"]},\"_p_data.viewer_application_version\":{\"ret_value\":\"text\",\"caption\":\"viewer_application_version\",\"sample_value\":\"99.0.4844.84\",\"path\":[\"data\",\"viewer_application_version\"]},\"_p_data.watch_time\":{\"ret_value\":\"number\",\"caption\":\"watch_time\",\"sample_value\":40689,\"path\":[\"data\",\"watch_time\"]},\"_p_data.viewer_device_model\":{\"ret_value\":\"text\",\"caption\":\"viewer_device_model\",\"sample_value\":null,\"path\":[\"data\",\"viewer_device_model\"]},\"_p_data.player_language\":{\"ret_value\":\"text\",\"caption\":\"player_language\",\"sample_value\":\"en\",\"path\":[\"data\",\"player_language\"]},\"_p_data.custom_5\":{\"ret_value\":\"text\",\"caption\":\"custom_5\",\"sample_value\":null,\"path\":[\"data\",\"custom_5\"]},\"_p_data.view_max_upscale_percentage\":{\"ret_value\":\"text\",\"caption\":\"view_max_upscale_percentage\",\"sample_value\":\"0\",\"path\":[\"data\",\"view_max_upscale_percentage\"]},\"_p_data.view_seek_duration\":{\"ret_value\":\"number\",\"caption\":\"view_seek_duration\",\"sample_value\":133,\"path\":[\"data\",\"view_seek_duration\"]},\"_p_data.player_source_duration\":{\"ret_value\":\"number\",\"caption\":\"player_source_duration\",\"sample_value\":40209,\"path\":[\"data\",\"player_source_duration\"]},\"_p_data.long_rebuffering\":{\"ret_value\":\"text\",\"caption\":\"long_rebuffering\",\"sample_value\":null,\"path\":[\"data\",\"long_rebuffering\"]},\"_p_data.asn\":{\"ret_value\":\"number\",\"caption\":\"asn\",\"sample_value\":9105,\"path\":[\"data\",\"asn\"]},\"_p_data.view_max_downscale_percentage\":{\"ret_value\":\"text\",\"caption\":\"view_max_downscale_percentage\",\"sample_value\":\"0.75364584\",\"path\":[\"data\",\"view_max_downscale_percentage\"]},\"_p_data.region\":{\"ret_value\":\"text\",\"caption\":\"region\",\"sample_value\":\"England\",\"path\":[\"data\",\"region\"]},\"_p_data.video_series\":{\"ret_value\":\"text\",\"caption\":\"video_series\",\"sample_value\":null,\"path\":[\"data\",\"video_series\"]},\"_p_data.mux_api_version\":{\"ret_value\":\"text\",\"caption\":\"mux_api_version\",\"sample_value\":\"2.1\",\"path\":[\"data\",\"mux_api_version\"]},\"_p_data.view_end\":{\"ret_value\":\"text\",\"caption\":\"view_end\",\"sample_value\":\"2022-04-10T10:21:37Z\",\"path\":[\"data\",\"view_end\"]},\"_p_data.mux_viewer_id\":{\"ret_value\":\"text\",\"caption\":\"mux_viewer_id\",\"sample_value\":\"e956c098-3139-42eb-a669-986eaaef9afe\",\"path\":[\"data\",\"mux_viewer_id\"]},\"_p_data.preroll_requested\":{\"ret_value\":\"boolean\",\"caption\":\"preroll_requested\",\"sample_value\":false,\"path\":[\"data\",\"preroll_requested\"]},\"_p_data.player_source_domain\":{\"ret_value\":\"text\",\"caption\":\"player_source_domain\",\"sample_value\":\"akamaihd.net\",\"path\":[\"data\",\"player_source_domain\"]},\"_p_data.view_max_request_latency\":{\"ret_value\":\"text\",\"caption\":\"view_max_request_latency\",\"sample_value\":null,\"path\":[\"data\",\"view_max_request_latency\"]},\"_p_data.video_variant_id\":{\"ret_value\":\"text\",\"caption\":\"video_variant_id\",\"sample_value\":null,\"path\":[\"data\",\"video_variant_id\"]},\"_p_data.player_load_time\":{\"ret_value\":\"text\",\"caption\":\"player_load_time\",\"sample_value\":null,\"path\":[\"data\",\"player_load_time\"]},\"_p_data.longitude\":{\"ret_value\":\"text\",\"caption\":\"longitude\",\"sample_value\":\"-1.4\",\"path\":[\"data\",\"longitude\"]},\"_p_data.custom_3\":{\"ret_value\":\"text\",\"caption\":\"custom_3\",\"sample_value\":null,\"path\":[\"data\",\"custom_3\"]},\"_p_data.buffering_rate\":{\"ret_value\":\"text\",\"caption\":\"buffering_rate\",\"sample_value\":\"2.4576668e-5\",\"path\":[\"data\",\"buffering_rate\"]},\"_p_data.view_total_content_playback_time\":{\"ret_value\":\"number\",\"caption\":\"view_total_content_playback_time\",\"sample_value\":29428,\"path\":[\"data\",\"view_total_content_playback_time\"]},\"_p_data.asn_name\":{\"ret_value\":\"text\",\"caption\":\"asn_name\",\"sample_value\":\"TISCALI-UK TalkTalk Communications Limited (AS9105)\",\"path\":[\"data\",\"asn_name\"]},\"_p_data.mux_embed_version\":{\"ret_value\":\"text\",\"caption\":\"mux_embed_version\",\"sample_value\":\"4.7.0\",\"path\":[\"data\",\"mux_embed_version\"]},\"_p_data.player_instance_id\":{\"ret_value\":\"text\",\"caption\":\"player_instance_id\",\"sample_value\":\"e0d69824-82b1-4c0d-b8ef-46cd01befe54\",\"path\":[\"data\",\"player_instance_id\"]},\"_p_data.country_name\":{\"ret_value\":\"text\",\"caption\":\"country_name\",\"sample_value\":\"United Kingdom\",\"path\":[\"data\",\"country_name\"]},\"_p_data.view_session_id\":{\"ret_value\":\"text\",\"caption\":\"view_session_id\",\"sample_value\":null,\"path\":[\"data\",\"view_session_id\"]},\"_p_data.view_error_id\":{\"ret_value\":\"text\",\"caption\":\"view_error_id\",\"sample_value\":null,\"path\":[\"data\",\"view_error_id\"]},\"_p_data.city\":{\"ret_value\":\"text\",\"caption\":\"city\",\"sample_value\":\"Southampton\",\"path\":[\"data\",\"city\"]},\"_p_data.error_type_id\":{\"ret_value\":\"text\",\"caption\":\"error_type_id\",\"sample_value\":null,\"path\":[\"data\",\"error_type_id\"]},\"_p_data.viewer_os_architecture\":{\"ret_value\":\"text\",\"caption\":\"viewer_os_architecture\",\"sample_value\":\"x64\",\"path\":[\"data\",\"viewer_os_architecture\"]},\"_p_data.view_total_downscaling\":{\"ret_value\":\"text\",\"caption\":\"view_total_downscaling\",\"sample_value\":\"22178.29\",\"path\":[\"data\",\"view_total_downscaling\"]},\"_p_data.view_playing_time\":{\"ret_value\":\"text\",\"caption\":\"view_playing_time\",\"sample_value\":\"40197\",\"path\":[\"data\",\"view_playing_time\"]},\"_p_data.platform_summary\":{\"ret_value\":\"text\",\"caption\":\"platform_summary\",\"sample_value\":\"Chrome on Windows\",\"path\":[\"data\",\"platform_summary\"]},\"_p_data.video_encoding_variant\":{\"ret_value\":\"text\",\"caption\":\"video_encoding_variant\",\"sample_value\":null,\"path\":[\"data\",\"video_encoding_variant\"]},\"_p_data.page_load_time\":{\"ret_value\":\"number\",\"caption\":\"page_load_time\",\"sample_value\":20080,\"path\":[\"data\",\"page_load_time\"]},\"_p_data.used_fullscreen\":{\"ret_value\":\"boolean\",\"caption\":\"used_fullscreen\",\"sample_value\":false,\"path\":[\"data\",\"used_fullscreen\"]},\"_p_data.player_error_message\":{\"ret_value\":\"text\",\"caption\":\"player_error_message\",\"sample_value\":null,\"path\":[\"data\",\"player_error_message\"]},\"_p_data.player_preload\":{\"ret_value\":\"boolean\",\"caption\":\"player_preload\",\"sample_value\":true,\"path\":[\"data\",\"player_preload\"]},\"_p_data.rebuffer_percentage\":{\"ret_value\":\"text\",\"caption\":\"rebuffer_percentage\",\"sample_value\":\"0.0074221534\",\"path\":[\"data\",\"rebuffer_percentage\"]},\"_p_data.video_variant_name\":{\"ret_value\":\"text\",\"caption\":\"video_variant_name\",\"sample_value\":null,\"path\":[\"data\",\"video_variant_name\"]},\"_p_data.view_average_request_latency\":{\"ret_value\":\"text\",\"caption\":\"view_average_request_latency\",\"sample_value\":null,\"path\":[\"data\",\"view_average_request_latency\"]},\"_p_data.viewer_user_id\":{\"ret_value\":\"text\",\"caption\":\"viewer_user_id\",\"sample_value\":\"pork1977gm\",\"path\":[\"data\",\"viewer_user_id\"]},\"_p_data.video_startup_preroll_load_time\":{\"ret_value\":\"text\",\"caption\":\"video_startup_preroll_load_time\",\"sample_value\":null,\"path\":[\"data\",\"video_startup_preroll_load_time\"]},\"_p_data.asset_id\":{\"ret_value\":\"text\",\"caption\":\"asset_id\",\"sample_value\":null,\"path\":[\"data\",\"asset_id\"]},\"_p_data.latitude\":{\"ret_value\":\"text\",\"caption\":\"latitude\",\"sample_value\":\"50.8\",\"path\":[\"data\",\"latitude\"]},\"_p_data.isp\":{\"ret_value\":\"text\",\"caption\":\"isp\",\"sample_value\":null,\"path\":[\"data\",\"isp\"]},\"_p_data.player_source_height\":{\"ret_value\":\"number\",\"caption\":\"player_source_height\",\"sample_value\":1080,\"path\":[\"data\",\"player_source_height\"]},\"_p_data.property_id\":{\"ret_value\":\"number\",\"caption\":\"property_id\",\"sample_value\":39739,\"path\":[\"data\",\"property_id\"]},\"_p_data.inserted_at\":{\"ret_value\":\"text\",\"caption\":\"inserted_at\",\"sample_value\":\"2022-04-10T10:19:31Z\",\"path\":[\"data\",\"inserted_at\"]},\"_p_data.events\":{\"ret_value\":\"list.api.1608469100580x213930232373051400.plugin_api.AlU.data.events\",\"caption\":\"events\",\"path\":[\"data\",\"events\"]},\"_p_data.view_max_playhead_position\":{\"ret_value\":\"text\",\"caption\":\"view_max_playhead_position\",\"sample_value\":\"40209\",\"path\":[\"data\",\"view_max_playhead_position\"]},\"_p_data.player_mux_plugin_version\":{\"ret_value\":\"text\",\"caption\":\"player_mux_plugin_version\",\"sample_value\":\"4.6.3\",\"path\":[\"data\",\"player_mux_plugin_version\"]},\"_p_data.time_to_first_frame\":{\"ret_value\":\"number\",\"caption\":\"time_to_first_frame\",\"sample_value\":150,\"path\":[\"data\",\"time_to_first_frame\"]},\"_p_data.player_source_stream_type\":{\"ret_value\":\"text\",\"caption\":\"player_source_stream_type\",\"sample_value\":null,\"path\":[\"data\",\"player_source_stream_type\"]},\"_p_data.player_startup_time\":{\"ret_value\":\"number\",\"caption\":\"player_startup_time\",\"sample_value\":-10140,\"path\":[\"data\",\"player_startup_time\"]},\"_p_data.weighted_average_bitrate\":{\"ret_value\":\"text\",\"caption\":\"weighted_average_bitrate\",\"sample_value\":null,\"path\":[\"data\",\"weighted_average_bitrate\"]},\"_p_data.buffering_duration\":{\"ret_value\":\"number\",\"caption\":\"buffering_duration\",\"sample_value\":302,\"path\":[\"data\",\"buffering_duration\"]},\"_p_data.video_content_type\":{\"ret_value\":\"text\",\"caption\":\"video_content_type\",\"sample_value\":null,\"path\":[\"data\",\"video_content_type\"]},\"_p_data.player_remote_played\":{\"ret_value\":\"boolean\",\"caption\":\"player_remote_played\",\"sample_value\":false,\"path\":[\"data\",\"player_remote_played\"]},\"_p_data.view_id\":{\"ret_value\":\"text\",\"caption\":\"view_id\",\"sample_value\":\"506b5eb8-9ed2-463b-9856-db034967e5a4\",\"path\":[\"data\",\"view_id\"]},\"_p_data.viewer_os_family\":{\"ret_value\":\"text\",\"caption\":\"viewer_os_family\",\"sample_value\":\"Windows\",\"path\":[\"data\",\"viewer_os_family\"]},\"_p_data.metro\":{\"ret_value\":\"text\",\"caption\":\"metro\",\"sample_value\":null,\"path\":[\"data\",\"metro\"]},\"_p_data.platform_description\":{\"ret_value\":\"text\",\"caption\":\"platform_description\",\"sample_value\":null,\"path\":[\"data\",\"platform_description\"]},\"_p_data.player_source_url\":{\"ret_value\":\"text\",\"caption\":\"player_source_url\",\"sample_value\":\"//easportsassets-a.akamaihd.net/pulse.content.easports.com/web/OnlineAssets/easports/2017/easports17-video-reel.webm\",\"path\":[\"data\",\"player_source_url\"]},\"_p_data.continent_code\":{\"ret_value\":\"text\",\"caption\":\"continent_code\",\"sample_value\":\"EU\",\"path\":[\"data\",\"continent_code\"]},\"_p_data.requests_for_first_preroll\":{\"ret_value\":\"text\",\"caption\":\"requests_for_first_preroll\",\"sample_value\":null,\"path\":[\"data\",\"requests_for_first_preroll\"]},\"_p_data.page_type\":{\"ret_value\":\"text\",\"caption\":\"page_type\",\"sample_value\":null,\"path\":[\"data\",\"page_type\"]},\"_p_data.viewer_application_name\":{\"ret_value\":\"text\",\"caption\":\"viewer_application_name\",\"sample_value\":\"Chrome\",\"path\":[\"data\",\"viewer_application_name\"]},\"_p_data.preroll_ad_asset_hostname\":{\"ret_value\":\"text\",\"caption\":\"preroll_ad_asset_hostname\",\"sample_value\":null,\"path\":[\"data\",\"preroll_ad_asset_hostname\"]},\"_p_data.preroll_ad_tag_hostname\":{\"ret_value\":\"text\",\"caption\":\"preroll_ad_tag_hostname\",\"sample_value\":null,\"path\":[\"data\",\"preroll_ad_tag_hostname\"]},\"_p_data.player_poster\":{\"ret_value\":\"text\",\"caption\":\"player_poster\",\"sample_value\":null,\"path\":[\"data\",\"player_poster\"]},\"_p_data.player_source_host_name\":{\"ret_value\":\"text\",\"caption\":\"player_source_host_name\",\"sample_value\":\"easportsassets-a.akamaihd.net\",\"path\":[\"data\",\"player_source_host_name\"]},\"_p_data.player_source_type\":{\"ret_value\":\"text\",\"caption\":\"player_source_type\",\"sample_value\":\"video/webm\",\"path\":[\"data\",\"player_source_type\"]},\"_p_data.video_producer\":{\"ret_value\":\"text\",\"caption\":\"video_producer\",\"sample_value\":null,\"path\":[\"data\",\"video_producer\"]},\"_p_data.player_mux_plugin_name\":{\"ret_value\":\"text\",\"caption\":\"player_mux_plugin_name\",\"sample_value\":\"videojs-mux\",\"path\":[\"data\",\"player_mux_plugin_name\"]},\"_p_data.player_error_code\":{\"ret_value\":\"text\",\"caption\":\"player_error_code\",\"sample_value\":null,\"path\":[\"data\",\"player_error_code\"]},\"_p_data.player_width\":{\"ret_value\":\"number\",\"caption\":\"player_width\",\"sample_value\":473,\"path\":[\"data\",\"player_width\"]},\"_p_data.player_view_count\":{\"ret_value\":\"number\",\"caption\":\"player_view_count\",\"sample_value\":1,\"path\":[\"data\",\"player_view_count\"]},\"_p_data.player_software\":{\"ret_value\":\"text\",\"caption\":\"player_software\",\"sample_value\":\"Video.js\",\"path\":[\"data\",\"player_software\"]},\"_p_data.quality_score\":{\"ret_value\":\"text\",\"caption\":\"quality_score\",\"sample_value\":\"1\",\"path\":[\"data\",\"quality_score\"]},\"_p_data.player_name\":{\"ret_value\":\"text\",\"caption\":\"player_name\",\"sample_value\":\"VideoJS (Bubble)\",\"path\":[\"data\",\"player_name\"]},\"_p_data.cdn\":{\"ret_value\":\"text\",\"caption\":\"cdn\",\"sample_value\":\"//easportsassets-a.akamaihd.net/pulse.content.easports.com/web/OnlineAssets/easports/2017/easports17-video-reel.webm\",\"path\":[\"data\",\"cdn\"]},\"_p_data.viewer_experience_score\":{\"ret_value\":\"text\",\"caption\":\"viewer_experience_score\",\"sample_value\":\"0.95763856\",\"path\":[\"data\",\"viewer_experience_score\"]},\"_p_data.country_code\":{\"ret_value\":\"text\",\"caption\":\"country_code\",\"sample_value\":\"GB\",\"path\":[\"data\",\"country_code\"]},\"_p_data.viewer_application_engine\":{\"ret_value\":\"text\",\"caption\":\"viewer_application_engine\",\"sample_value\":null,\"path\":[\"data\",\"viewer_application_engine\"]},\"_p_data.sub_property_id\":{\"ret_value\":\"text\",\"caption\":\"sub_property_id\",\"sample_value\":null,\"path\":[\"data\",\"sub_property_id\"]},\"_p_data.rebuffering_score\":{\"ret_value\":\"text\",\"caption\":\"rebuffering_score\",\"sample_value\":\"0.9114466\",\"path\":[\"data\",\"rebuffering_score\"]},\"_p_data.playback_score\":{\"ret_value\":\"text\",\"caption\":\"playback_score\",\"sample_value\":\"1\",\"path\":[\"data\",\"playback_score\"]},\"_p_data.startup_score\":{\"ret_value\":\"text\",\"caption\":\"startup_score\",\"sample_value\":\"0.9815951\",\"path\":[\"data\",\"startup_score\"]},\"_p_data.custom_4\":{\"ret_value\":\"text\",\"caption\":\"custom_4\",\"sample_value\":null,\"path\":[\"data\",\"custom_4\"]},\"_p_data.view_total_upscaling\":{\"ret_value\":\"text\",\"caption\":\"view_total_upscaling\",\"sample_value\":\"0\",\"path\":[\"data\",\"view_total_upscaling\"]},\"_p_data.buffering_count\":{\"ret_value\":\"number\",\"caption\":\"buffering_count\",\"sample_value\":1,\"path\":[\"data\",\"buffering_count\"]},\"_p_data.viewer_user_agent\":{\"ret_value\":\"text\",\"caption\":\"viewer_user_agent\",\"sample_value\":\"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.84 Safari/537.36\",\"path\":[\"data\",\"viewer_user_agent\"]},\"_p_data.viewer_device_category\":{\"ret_value\":\"text\",\"caption\":\"viewer_device_category\",\"sample_value\":\"desktop\",\"path\":[\"data\",\"viewer_device_category\"]},\"_p_data.session_id\":{\"ret_value\":\"text\",\"caption\":\"session_id\",\"sample_value\":\"6ee477c4-729d-48cc-bfc0-c91a6ceda87a\",\"path\":[\"data\",\"session_id\"]},\"_p_data.id\":{\"ret_value\":\"text\",\"caption\":\"id\",\"sample_value\":\"eff3c4ec-ddb7-493c-8e20-5ee803f99100\",\"path\":[\"data\",\"id\"]},\"_p_data.live_stream_latency\":{\"ret_value\":\"text\",\"caption\":\"live_stream_latency\",\"sample_value\":null,\"path\":[\"data\",\"live_stream_latency\"]},\"_p_data.view_start\":{\"ret_value\":\"text\",\"caption\":\"view_start\",\"sample_value\":\"2022-04-10T10:19:31Z\",\"path\":[\"data\",\"view_start\"]},\"_p_data.watched\":{\"ret_value\":\"boolean\",\"caption\":\"watched\",\"sample_value\":true,\"path\":[\"data\",\"watched\"]},\"_p_data.viewer_connection_type\":{\"ret_value\":\"text\",\"caption\":\"viewer_connection_type\",\"sample_value\":null,\"path\":[\"data\",\"viewer_connection_type\"]},\"_p_data.video_title\":{\"ret_value\":\"text\",\"caption\":\"video_title\",\"sample_value\":\"My Awesome Video\",\"path\":[\"data\",\"video_title\"]},\"_p_data.player_autoplay\":{\"ret_value\":\"boolean\",\"caption\":\"player_autoplay\",\"sample_value\":false,\"path\":[\"data\",\"player_autoplay\"]},\"_p_data.view_average_request_throughput\":{\"ret_value\":\"text\",\"caption\":\"view_average_request_throughput\",\"sample_value\":null,\"path\":[\"data\",\"view_average_request_throughput\"]},\"_p_data.player_software_version\":{\"ret_value\":\"text\",\"caption\":\"player_software_version\",\"sample_value\":\"7.18.1\",\"path\":[\"data\",\"player_software_version\"]},\"_p_data.player_version\":{\"ret_value\":\"text\",\"caption\":\"player_version\",\"sample_value\":\"7.18.1\",\"path\":[\"data\",\"player_version\"]},\"_p_data.video_id\":{\"ret_value\":\"text\",\"caption\":\"video_id\",\"sample_value\":\"My_video_Id\",\"path\":[\"data\",\"video_id\"]},\"_p_data.playback_id\":{\"ret_value\":\"text\",\"caption\":\"playback_id\",\"sample_value\":null,\"path\":[\"data\",\"playback_id\"]},\"_p_data.long_resume\":{\"ret_value\":\"text\",\"caption\":\"long_resume\",\"sample_value\":null,\"path\":[\"data\",\"long_resume\"]},\"_p_data.experiment_name\":{\"ret_value\":\"text\",\"caption\":\"experiment_name\",\"sample_value\":null,\"path\":[\"data\",\"experiment_name\"]},\"_p_data.video_startup_preroll_request_time\":{\"ret_value\":\"text\",\"caption\":\"video_startup_preroll_request_time\",\"sample_value\":null,\"path\":[\"data\",\"video_startup_preroll_request_time\"]},\"_p_data.custom_2\":{\"ret_value\":\"text\",\"caption\":\"custom_2\",\"sample_value\":null,\"path\":[\"data\",\"custom_2\"]},\"_p_data.view_seek_count\":{\"ret_value\":\"number\",\"caption\":\"view_seek_count\",\"sample_value\":1,\"path\":[\"data\",\"view_seek_count\"]},\"_p_data.video_stream_type\":{\"ret_value\":\"text\",\"caption\":\"video_stream_type\",\"sample_value\":null,\"path\":[\"data\",\"video_stream_type\"]},\"_p_data.updated_at\":{\"ret_value\":\"text\",\"caption\":\"updated_at\",\"sample_value\":\"2022-04-10T10:21:37Z\",\"path\":[\"data\",\"updated_at\"]},\"_p_data.exit_before_video_start\":{\"ret_value\":\"boolean\",\"caption\":\"exit_before_video_start\",\"sample_value\":false,\"path\":[\"data\",\"exit_before_video_start\"]},\"_p_data.video_language\":{\"ret_value\":\"text\",\"caption\":\"video_language\",\"sample_value\":null,\"path\":[\"data\",\"video_language\"]},\"_p_data.player_source_width\":{\"ret_value\":\"number\",\"caption\":\"player_source_width\",\"sample_value\":1920,\"path\":[\"data\",\"player_source_width\"]},\"_p_data.custom_1\":{\"ret_value\":\"text\",\"caption\":\"custom_1\",\"sample_value\":null,\"path\":[\"data\",\"custom_1\"]},\"_p_data.viewer_os_version\":{\"ret_value\":\"text\",\"caption\":\"viewer_os_version\",\"sample_value\":\"10\",\"path\":[\"data\",\"viewer_os_version\"]},\"_p_data.page_url\":{\"ret_value\":\"text\",\"caption\":\"page_url\",\"sample_value\":\"https://paul-testing-4.bubbleapps.io/version-test/web_videos\",\"path\":[\"data\",\"page_url\"]},\"_p_data.viewer_device_name\":{\"ret_value\":\"text\",\"caption\":\"viewer_device_name\",\"sample_value\":null,\"path\":[\"data\",\"viewer_device_name\"]},\"_p_data.preroll_played\":{\"ret_value\":\"boolean\",\"caption\":\"preroll_played\",\"sample_value\":false,\"path\":[\"data\",\"preroll_played\"]},\"_p_data.viewer_device_manufacturer\":{\"ret_value\":\"text\",\"caption\":\"viewer_device_manufacturer\",\"sample_value\":null,\"path\":[\"data\",\"viewer_device_manufacturer\"]}}},\"plugin_api.AlU.data.events\":{\"caption\":\"Get video view (MUX) data event\",\"fields\":{\"_p_viewer_time\":{\"ret_value\":\"number\",\"caption\":\"viewer_time\",\"sample_value\":1649585951127},\"_p_playback_time\":{\"ret_value\":\"number\",\"caption\":\"playback_time\",\"sample_value\":0},\"_p_name\":{\"ret_value\":\"text\",\"caption\":\"name\",\"sample_value\":\"playerready\"},\"_p_event_time\":{\"ret_value\":\"number\",\"caption\":\"event_time\",\"sample_value\":1649585971668}}}}","ret_value":"api.1608469100580x213930232373051400.plugin_api.AlU"},"AoI":{"name":"Scraper API","method":"get","publish_as":"data","should_reinitialize":true,"url":"https://api.scraperapi.com/?api_key=588b114448ed05f8120618fe52a4ac4d&url=[url]","initialized":true,"data_type":"text","get_headers":false,"types":"{\"plugin_api.AoI\":{\"caption\":\"Scraper API\",\"fields\":{\"_p_body\":{\"ret_value\":\"text\",\"caption\":\"body\",\"sample_value\":\"(value too large to save 12565 bytes)\"},\"_p_headers.date\":{\"ret_value\":\"text\",\"caption\":\"headers date\",\"sample_value\":\"Wed, 08 Jun 2022 11:34:36 GMT\",\"path\":[\"headers\",\"date\"]},\"_p_headers.content-type\":{\"ret_value\":\"text\",\"caption\":\"headers content-type\",\"sample_value\":\"text/html; charset=utf-8\",\"path\":[\"headers\",\"content-type\"]},\"_p_headers.transfer-encoding\":{\"ret_value\":\"text\",\"caption\":\"headers transfer-encoding\",\"sample_value\":\"chunked\",\"path\":[\"headers\",\"transfer-encoding\"]},\"_p_headers.connection\":{\"ret_value\":\"text\",\"caption\":\"headers connection\",\"sample_value\":\"keep-alive\",\"path\":[\"headers\",\"connection\"]},\"_p_headers.x-powered-by\":{\"ret_value\":\"text\",\"caption\":\"headers x-powered-by\",\"sample_value\":\"Express\",\"path\":[\"headers\",\"x-powered-by\"]},\"_p_headers.access-control-allow-origin\":{\"ret_value\":\"text\",\"caption\":\"headers access-control-allow-origin\",\"sample_value\":\"undefined\",\"path\":[\"headers\",\"access-control-allow-origin\"]},\"_p_headers.access-control-allow-headers\":{\"ret_value\":\"text\",\"caption\":\"headers access-control-allow-headers\",\"sample_value\":\"Origin, X-Requested-With, Content-Type, Accept\",\"path\":[\"headers\",\"access-control-allow-headers\"]},\"_p_headers.access-control-allow-methods\":{\"ret_value\":\"text\",\"caption\":\"headers access-control-allow-methods\",\"sample_value\":\"HEAD,GET,POST,DELETE,OPTIONS,PUT\",\"path\":[\"headers\",\"access-control-allow-methods\"]},\"_p_headers.access-control-allow-credentials\":{\"ret_value\":\"text\",\"caption\":\"headers access-control-allow-credentials\",\"sample_value\":\"true\",\"path\":[\"headers\",\"access-control-allow-credentials\"]},\"_p_headers.x-robots-tag\":{\"ret_value\":\"text\",\"caption\":\"headers x-robots-tag\",\"sample_value\":\"none\",\"path\":[\"headers\",\"x-robots-tag\"]},\"_p_headers.set-cookie\":{\"ret_value\":\"list.text\",\"caption\":\"headers set-cookie\",\"sample_value\":\"loom_anon_comment=2aa2bbdcc63745339949f50333aebaeb; Domain=www.loom.com; Path=/; Secure; SameSite=None\",\"path\":[\"headers\",\"set-cookie\"]},\"_p_headers.sa-final-url\":{\"ret_value\":\"text\",\"caption\":\"headers sa-final-url\",\"sample_value\":\"https://www.loom.com/embed/0281766fa2d04bb788eaf19e65135184\",\"path\":[\"headers\",\"sa-final-url\"]},\"_p_headers.sa-statuscode\":{\"ret_value\":\"text\",\"caption\":\"headers sa-statuscode\",\"sample_value\":\"200\",\"path\":[\"headers\",\"sa-statuscode\"]},\"_p_headers.etag\":{\"ret_value\":\"text\",\"caption\":\"headers etag\",\"sample_value\":\"W/\\\"3119-/sbafFUZtuwuG8/85sq0jKLHXYE\\\"\",\"path\":[\"headers\",\"etag\"]},\"_p_headers.vary\":{\"ret_value\":\"text\",\"caption\":\"headers vary\",\"sample_value\":\"Accept-Encoding\",\"path\":[\"headers\",\"vary\"]},\"_p_headers.content-encoding\":{\"ret_value\":\"text\",\"caption\":\"headers content-encoding\",\"sample_value\":\"gzip\",\"path\":[\"headers\",\"content-encoding\"]}}}}","ret_value":"api.1608469100580x213930232373051400.plugin_api.AoI","url_params":{"AoO":{"key":"url","value":"https://www.loom.com/embed/0281766fa2d04bb788eaf19e65135184","private":true,"doc":"Supply a URL to scrape and the data will be returned as text in the response."}},"no_types":true},"AoL":{"name":"Scraper API","method":"get","publish_as":"action","should_reinitialize":true,"data_type":"text","url":"https://api.scraperapi.com/?api_key=588b114448ed05f8120618fe52a4ac4d&url=[url]","initialized":true,"url_params":{"AoN":{"key":"url","value":"https://www.tiktok.com/embed/v2/6718335390845095173","private":true}},"get_headers":false,"types":"{\"plugin_api.AoL\":{\"caption\":\"Scraper API\",\"fields\":{\"_p_body\":{\"ret_value\":\"text\",\"caption\":\"body\",\"sample_value\":\"(value too large to save 12565 bytes)\"},\"_p_headers.date\":{\"ret_value\":\"text\",\"caption\":\"headers date\",\"sample_value\":\"Wed, 08 Jun 2022 06:27:49 GMT\",\"path\":[\"headers\",\"date\"]},\"_p_headers.content-type\":{\"ret_value\":\"text\",\"caption\":\"headers content-type\",\"sample_value\":\"text/html; charset=utf-8\",\"path\":[\"headers\",\"content-type\"]},\"_p_headers.transfer-encoding\":{\"ret_value\":\"text\",\"caption\":\"headers transfer-encoding\",\"sample_value\":\"chunked\",\"path\":[\"headers\",\"transfer-encoding\"]},\"_p_headers.connection\":{\"ret_value\":\"text\",\"caption\":\"headers connection\",\"sample_value\":\"keep-alive\",\"path\":[\"headers\",\"connection\"]},\"_p_headers.x-powered-by\":{\"ret_value\":\"text\",\"caption\":\"headers x-powered-by\",\"sample_value\":\"Express\",\"path\":[\"headers\",\"x-powered-by\"]},\"_p_headers.access-control-allow-origin\":{\"ret_value\":\"text\",\"caption\":\"headers access-control-allow-origin\",\"sample_value\":\"undefined\",\"path\":[\"headers\",\"access-control-allow-origin\"]},\"_p_headers.access-control-allow-headers\":{\"ret_value\":\"text\",\"caption\":\"headers access-control-allow-headers\",\"sample_value\":\"Origin, X-Requested-With, Content-Type, Accept\",\"path\":[\"headers\",\"access-control-allow-headers\"]},\"_p_headers.access-control-allow-methods\":{\"ret_value\":\"text\",\"caption\":\"headers access-control-allow-methods\",\"sample_value\":\"HEAD,GET,POST,DELETE,OPTIONS,PUT\",\"path\":[\"headers\",\"access-control-allow-methods\"]},\"_p_headers.access-control-allow-credentials\":{\"ret_value\":\"text\",\"caption\":\"headers access-control-allow-credentials\",\"sample_value\":\"true\",\"path\":[\"headers\",\"access-control-allow-credentials\"]},\"_p_headers.x-robots-tag\":{\"ret_value\":\"text\",\"caption\":\"headers x-robots-tag\",\"sample_value\":\"none\",\"path\":[\"headers\",\"x-robots-tag\"]},\"_p_headers.set-cookie\":{\"ret_value\":\"list.text\",\"caption\":\"headers set-cookie\",\"sample_value\":\"loom_anon_comment=01a7291908174e2689c5e618aea4c1b6; Domain=www.loom.com; Path=/; Secure; SameSite=None\",\"path\":[\"headers\",\"set-cookie\"]},\"_p_headers.sa-final-url\":{\"ret_value\":\"text\",\"caption\":\"headers sa-final-url\",\"sample_value\":\"https://www.loom.com/embed/0281766fa2d04bb788eaf19e65135184\",\"path\":[\"headers\",\"sa-final-url\"]},\"_p_headers.sa-statuscode\":{\"ret_value\":\"text\",\"caption\":\"headers sa-statuscode\",\"sample_value\":\"200\",\"path\":[\"headers\",\"sa-statuscode\"]},\"_p_headers.etag\":{\"ret_value\":\"text\",\"caption\":\"headers etag\",\"sample_value\":\"W/\\\"3119-N1/+yXJwsayT3BnFbcbeMgsHTL8\\\"\",\"path\":[\"headers\",\"etag\"]},\"_p_headers.vary\":{\"ret_value\":\"text\",\"caption\":\"headers vary\",\"sample_value\":\"Accept-Encoding\",\"path\":[\"headers\",\"vary\"]},\"_p_headers.content-encoding\":{\"ret_value\":\"text\",\"caption\":\"headers content-encoding\",\"sample_value\":\"gzip\",\"path\":[\"headers\",\"content-encoding\"]}}}}","ret_value":"api.1608469100580x213930232373051400.plugin_api.AoL","no_types":true},"Aoa":{"name":"Retrieve upload info (MUX)","method":"get","publish_as":"data","should_reinitialize":true,"url":"https://api.mux.com/video/v1/uploads/[Upload ID]","headers":{"Aod":{"key":"Content-Type","value":"application/json","private":true,"visibility":"hidden"},"Aoe":{"key":"Authorization","private":true,"visibility":"secret","doc":"See here for how to generate the base64 authorization header: http://paul-testing-4.bubbleapps.io/base64_authorization"}},"url_params":{"Aoc":{"key":"Upload ID","value":"","private":true,"doc":"ID of the Upload."}},"initialized":true,"types":"{\"plugin_api.Aoa\":{\"caption\":\"Retrieve upload info\",\"fields\":{\"_p_data.timeout\":{\"ret_value\":\"number\",\"caption\":\"timeout\",\"sample_value\":3600,\"path\":[\"data\",\"timeout\"]},\"_p_data.status\":{\"ret_value\":\"text\",\"caption\":\"status\",\"sample_value\":\"asset_created\",\"path\":[\"data\",\"status\"]},\"_p_data.new_asset_settings.playback_policies\":{\"ret_value\":\"list.text\",\"caption\":\"new_asset_settings playback_policies\",\"sample_value\":\"signed\",\"path\":[\"data\",\"new_asset_settings\",\"playback_policies\"]},\"_p_data.new_asset_settings.passthrough\":{\"ret_value\":\"text\",\"caption\":\"new_asset_settings passthrough\",\"sample_value\":\"93027293006640511215\",\"path\":[\"data\",\"new_asset_settings\",\"passthrough\"]},\"_p_data.new_asset_settings.mp4_support\":{\"ret_value\":\"text\",\"caption\":\"new_asset_settings mp4_support\",\"sample_value\":\"standard\",\"path\":[\"data\",\"new_asset_settings\",\"mp4_support\"]},\"_p_data.id\":{\"ret_value\":\"text\",\"caption\":\"id\",\"sample_value\":\"pwtmoNPpbcFc8m4TQct6diiPEBbnn9yC324NcmMv6YA\",\"path\":[\"data\",\"id\"]},\"_p_data.cors_origin\":{\"ret_value\":\"text\",\"caption\":\"cors_origin\",\"sample_value\":\"*\",\"path\":[\"data\",\"cors_origin\"]},\"_p_data.asset_id\":{\"ret_value\":\"text\",\"caption\":\"asset_id\",\"sample_value\":\"Oazp4xJ2kI5v69LgdHfQJejLPAJtMSuOvq2g01v01HYm8\",\"path\":[\"data\",\"asset_id\"]}}}}","ret_value":"api.1608469100580x213930232373051400.plugin_api.Aoa"},"Aof":{"name":"Retrieve upload info (MUX)","method":"get","publish_as":"action","should_reinitialize":true,"url":"https://api.mux.com/video/v1/uploads/[Upload ID]","url_params":{"Aog":{"key":"Upload ID","value":"","private":true,"doc":"ID of the Upload."}},"headers":{"Aoh":{"key":"Content-Type","value":"application/json","private":true,"visibility":"hidden"},"Aoi":{"key":"Authorization","private":true,"visibility":"secret","doc":"See here for how to generate the base64 authorization header: http://paul-testing-4.bubbleapps.io/base64_authorization"}},"initialized":true,"types":"{\"plugin_api.Aof\":{\"caption\":\"Retrieve upload info (MUX)\",\"fields\":{\"_p_data.timeout\":{\"ret_value\":\"number\",\"caption\":\"timeout\",\"sample_value\":3600,\"path\":[\"data\",\"timeout\"]},\"_p_data.status\":{\"ret_value\":\"text\",\"caption\":\"status\",\"sample_value\":\"asset_created\",\"path\":[\"data\",\"status\"]},\"_p_data.new_asset_settings.playback_policies\":{\"ret_value\":\"list.text\",\"caption\":\"new_asset_settings playback_policies\",\"sample_value\":\"signed\",\"path\":[\"data\",\"new_asset_settings\",\"playback_policies\"]},\"_p_data.new_asset_settings.passthrough\":{\"ret_value\":\"text\",\"caption\":\"new_asset_settings passthrough\",\"sample_value\":\"93027293006640511215\",\"path\":[\"data\",\"new_asset_settings\",\"passthrough\"]},\"_p_data.new_asset_settings.mp4_support\":{\"ret_value\":\"text\",\"caption\":\"new_asset_settings mp4_support\",\"sample_value\":\"standard\",\"path\":[\"data\",\"new_asset_settings\",\"mp4_support\"]},\"_p_data.id\":{\"ret_value\":\"text\",\"caption\":\"id\",\"sample_value\":\"pwtmoNPpbcFc8m4TQct6diiPEBbnn9yC324NcmMv6YA\",\"path\":[\"data\",\"id\"]},\"_p_data.cors_origin\":{\"ret_value\":\"text\",\"caption\":\"cors_origin\",\"sample_value\":\"*\",\"path\":[\"data\",\"cors_origin\"]},\"_p_data.asset_id\":{\"ret_value\":\"text\",\"caption\":\"asset_id\",\"sample_value\":\"Oazp4xJ2kI5v69LgdHfQJejLPAJtMSuOvq2g01v01HYm8\",\"path\":[\"data\",\"asset_id\"]}}}}","ret_value":"api.1608469100580x213930232373051400.plugin_api.Aof"}},"auth":"none"},"shared_keys":{"AJX":{"caption":"Google Drive","type":"client_safe"},"Aki":{"caption":"MUX Environment Key","type":"client_safe"}},"plugin_elements":{"AAC":{"display":"VideoJS Player","property_applications":{"resizable":true,"MinWidth":true,"Background":true,"Border":true,"Padding":true,"BoxShadow":true,"Font":false},"add_hover_pressed":true,"add_is_visible":true,"support_autobinding":false,"has_reset_fn":false,"can_fit_width":true,"can_fit_height":true,"fields":{"AAF":{"caption":"Media file (single)","name":"media_file_single","rank":3,"editor":"DynamicValue","value":"text","optional":true},"AAG":{"caption":"Poster","name":"poster","rank":20,"editor":"DynamicValue","value":"image","optional":true},"AAH":{"caption":"VideoJS controls","name":"controls_videojs","rank":25,"editor":"DynamicValue","value":"boolean","default_val":true,"optional":true},"AAI":{"caption":"Autoplay","name":"autoplay","rank":31,"editor":"DynamicValue","value":"boolean","default_val":false,"optional":true},"AAJ":{"caption":"Loop","name":"loop","rank":32,"editor":"DynamicValue","value":"boolean","default_val":false,"optional":true},"AAK":{"caption":"Muted","name":"muted","rank":35,"editor":"DynamicValue","value":"boolean","default_val":false,"optional":true},"AAL":{"caption":"Preload","name":"preload","rank":47,"editor":"Dropdown","default_val":"Auto","optional":false},"AAV":{"caption":"Viewport autoplay","name":"auto_play_when_in_view","rank":53,"editor":"DynamicValue","value":"boolean","default_val":false,"optional":true},"AAf":{"caption":"Theme","name":"theme","rank":68,"editor":"Dropdown","optional":false,"in_style":false,"default_val":"Base"},"AAv":{"caption":"Centre play button","name":"centre_play","rank":70,"editor":"DynamicValue","value":"boolean","default_val":false,"optional":true},"ACb":{"caption":"Playback rate","name":"playback_rate","rank":38,"editor":"DynamicValue","value":"number","default_val":1},"AEF":{"caption":"Use MUX","name":"use_mux","rank":15,"editor":"DynamicValue","optional":false,"value":"boolean","default_val":false},"AFq":{"caption":"Custom CSS (skin file)","name":"css_skin_file","rank":69,"editor":"DynamicValue","optional":true,"value":"file"},"AHS":{"caption":"Disable pause on click","name":"disable_click_pause","rank":73,"editor":"Checkbox","value":"boolean","default_val":false},"AHT":{"caption":"Aspect ratio","name":"aspect_ratio","rank":50,"editor":"DynamicValue","value":"text","default_val":"4:3","optional":true},"AHU":{"caption":"Disable play on click","name":"disable_click_play","rank":74,"editor":"Checkbox","default_val":false},"AIw":{"caption":"Exit fullscreen on click","name":"click_exit_fullscreen","rank":76,"editor":"Checkbox","default_val":false},"AJJ":{"caption":"Use Vimeo player","name":"use_vimeo_player","rank":5,"editor":"DynamicValue","value":"boolean","default_val":false,"optional":false},"AJK":{"caption":"Disable fullscreen","name":"disable_fullscreen","rank":77,"editor":"Checkbox","default_val":false},"AJV":{"caption":"MIME type","name":"mime_type_single","rank":4,"editor":"DynamicValue","value":"text","default_val":"","optional":true},"AKd":{"caption":"Show play button on pause","name":"show_button_on_pause","rank":71,"editor":"Checkbox","default_val":false},"ALy":{"caption":"Enable scrubbing interface onload","name":"enable_scrubbing_onload","rank":82,"editor":"Checkbox","value":"boolean","optional":true,"default_val":false},"ALz":{"caption":"Spritesheet","name":"sprite_sheet","rank":83,"editor":"DynamicValue","value":"file","optional":true},"AMA":{"caption":"Number of tiles","name":"number_of_tiles","rank":84,"editor":"DynamicValue","value":"number","optional":true},"AMB":{"caption":"Slider width","name":"slider_width","rank":85,"editor":"DynamicValue","value":"number","default_val":2,"optional":true},"AMC":{"caption":"Slider show onload","name":"slider_show_onload","rank":86,"editor":"DynamicValue","value":"boolean","default_val":true,"optional":true},"AMD":{"caption":"Slider color","name":"slider_color","rank":87,"editor":"Color","default_val":"rgba(245, 97, 5, 1)","optional":true},"AME":{"caption":"Slider stay visible","name":"slider_stay_visible","rank":88,"editor":"DynamicValue","value":"boolean","default_val":false,"optional":true},"AMG":{"caption":"Scrubber hide on click","name":"scrubber_hide_on_click","rank":89,"editor":"DynamicValue","value":"boolean","default_val":false,"optional":true},"AMf":{"caption":"Poster reload","name":"poster_reload","rank":22,"editor":"Checkbox","default_val":false},"AQb":{"caption":"Disable right click","name":"disable_right_click","rank":24,"editor":"DynamicValue","value":"boolean","default_val":false},"ARx":{"caption":"Use Wistia player","name":"use_wistia_player","rank":6,"editor":"DynamicValue","value":"boolean","default_val":false},"AUA":{"caption":"Object-fit","name":"object_fit","rank":48,"editor":"Dropdown","default_val":"Contain"},"AUc":{"caption":"Control bar opacity","name":"control_bar_opacity","rank":28,"editor":"DynamicValue","value":"number","default_val":1,"optional":true},"AUe":{"caption":"Disable loading spinner","name":"disable_spinner","rank":72,"editor":"Checkbox","value":"boolean","optional":false,"default_val":false},"AUz":{"caption":"-----------------------------------------------------------------------------","name":"line","rank":80,"editor":"Label"},"AVA":{"caption":"This section adds a scrubbing interface over the entire video. You can use the \"Create Spritesheet\" action to generate the spritesheet which should contain images that are of equal width and height as the player/video. Note that this feature is not responsive so your video element should be at a fixed width. You can also load this using the 'Load scrubbing interface' action.","name":"info","rank":81,"editor":"Label"},"AVB":{"caption":"Spritesheet","name":"mux_sprite_sheet","rank":62,"editor":"DynamicValue","value":"text","optional":true},"AVK":{"caption":"-----------------------------------------------------------------------------","name":"line","rank":60,"editor":"Label"},"AVL":{"caption":"Spritesheet width","name":"mux_sprite_sheet_width","rank":63,"editor":"DynamicValue","value":"number","optional":true},"AVM":{"caption":"Spritesheet height","name":"mux_sprite_sheet_height","rank":64,"editor":"DynamicValue","value":"number","optional":true},"AVO":{"caption":"-----------------------------------------------------------------------------","name":"line","rank":67,"editor":"Label"},"AVP":{"caption":"This section enables the scrubber thumbnails which you see when hovering over the progress bar. There are 2 ways to do this depending on where your videos are stored. If you're using MUX to host videos then the data within this section can be retrieved by running the \"Get MUX Spritesheet\" action. These are called Storyboards in MUX. If you're not using MUX then you can attempt to run the \"Create Spritesheet\" action which uses CloudConvert and FFMPEG to return the details needed below. You can also load these using the 'Load scrubber thumbnails' action.","name":"info","rank":61,"editor":"Label"},"AVS":{"caption":"Spritesheet interval","name":"mux_sprite_sheet_interval","rank":65,"editor":"DynamicValue","value":"number","optional":true},"AVi":{"caption":"Scale factor","name":"mux_sprite_sheet_scale_factor","rank":66,"editor":"DynamicValue","value":"number","optional":true},"AWU":{"caption":"Auto hide controls","name":"auto_hide_control_bar","rank":29,"editor":"DynamicValue","value":"boolean","default_val":true},"AXq":{"caption":"Supress console errors","name":"suppress_console_errors","rank":78,"editor":"Checkbox","default_val":false},"AcV":{"caption":"Background color","name":"background_color","rank":49,"editor":"Color","default_val":"rgba(0, 0, 0, 1)"},"AeR":{"caption":"Poster always visible","name":"poster_always_visible","rank":23,"editor":"Checkbox","value":"boolean","default_val":false},"Afh":{"caption":"Zoom","name":"zoom","rank":57,"editor":"DynamicValue","value":"number","default_val":1},"Afi":{"caption":"Rotate","name":"rotate","rank":58,"editor":"DynamicValue","value":"number","default_val":0},"AgL":{"caption":"Flip","name":"flip","rank":59,"editor":"DynamicValue","value":"text","default_val":"right"},"Aga":{"caption":"Play on hover","name":"play_on_hover","rank":75,"editor":"Checkbox","default_val":false},"Agl":{"caption":"Show big play button","name":"big_play_button","rank":27,"editor":"DynamicValue","value":"boolean","default_val":true},"Aip":{"caption":"Volume","name":"volume","rank":34,"editor":"DynamicValue","value":"number","default_val":1},"Aiq":{"caption":"Playback time","name":"playback_time_1","rank":39,"editor":"DynamicValue","value":"number","optional":true},"Akd":{"caption":"Viewport RG Id","name":"auto_play_when_in_view_rg","rank":55,"editor":"DynamicValue","value":"text","optional":true},"Akj":{"caption":"-----------------------------------------------------------------------------","name":"line","rank":13,"editor":"Label"},"Akk":{"caption":"-----------------------------------------------------------------------------","name":"line","rank":19,"editor":"Label"},"Akl":{"caption":"MUX video Id","name":"mux_video_id","rank":16,"editor":"DynamicValue","value":"text","optional":true,"default_val":"My video Id"},"Akm":{"caption":"MUX video title","name":"mux_video_title","rank":17,"editor":"DynamicValue","value":"text","optional":true,"default_val":"My awesome video!"},"Akn":{"caption":"MUX viewer user Id","name":"mux_viewer_user_id","rank":18,"editor":"DynamicValue","value":"text","optional":true},"Ako":{"caption":"MUX is capable of receiving metadata from playing videos and can record the data to be used for reporting purposes. This is a paid-for feature through MUX. The fields below are the most important to have configured, although the majority of metadata is recorded automatically. The complete list of configurable metadata fields are available inside the 'Load media file' action which you can use when a new video is loaded by supplying various data about that video. For further information on this, you can refer to MUX's documentation at: https://docs.mux.com/guides/data/make-your-data-actionable-with-metadata#metadata-details","name":"info","rank":14,"editor":"Label"},"Alr":{"caption":"Playback time (range) 1","name":"playback_time_2","rank":41,"editor":"DynamicValue","value":"number_range","optional":true,"default_val":0},"AmT":{"caption":"Play from min value","name":"play_from_min_value","rank":43,"editor":"DynamicValue","value":"boolean","default_val":false},"AmU":{"caption":"-----------------------------------------------------------------------------","name":"line","rank":36,"editor":"Label"},"AmV":{"caption":"Playback controls/scrubbing","name":"info","rank":37,"editor":"Label"},"AmW":{"caption":"-----------------------------------------------------------------------------","name":"line","rank":46,"editor":"Label"},"AmX":{"caption":"Playback time (range) 2","name":"playback_time_3","rank":42,"editor":"DynamicValue","value":"number_range","optional":true},"AmZ":{"caption":"Min value scrubbing","name":"min_value_scrubbing","rank":44,"editor":"DynamicValue","value":"number","optional":true},"Ama":{"caption":"Max value scrubbing","name":"max_value_scrubbing","rank":45,"editor":"DynamicValue","value":"number","optional":true},"AoP":{"caption":"Format time","name":"format_time","rank":30,"editor":"DynamicValue","value":"boolean","default_val":true},"Aoy":{"caption":"Fix height","name":"fix_height","rank":79,"editor":"DynamicValue","value":"boolean","default_val":false},"ApT":{"caption":"Viewport tolerance","name":"viewport_tolerance","rank":56,"editor":"DynamicValue","value":"number","optional":false,"default_val":20},"Apc":{"caption":"Supports all HTLM5 playable formats, YouTube, Wistia and Vimeo (partially becuase of changes they have made). Also supports web audio files, image files and other direct sources like Airtable. You may have to specify the MIME type below if the URL doesn't contain the file name and extension. Vimeo videos can also be played using the API request built into this plugin called \"Get data (vimeo)\" BUT that will not work if you're attempting to get details for a video made after Oct 2022. Vimeo have recently made some changes where I can no longer extract the MP4 file so you will need to be on a plan which supports usage of their 'get video file' API request. Media fragments are supported, these are added to the end of a URL, such as #t=5 but you must set the MIME type appropriately. Not doing so will cause the video to not load. Please note, whilst YouTube videos will play in the YouTube player, this loads within an iframe which prohibits some of the other features working correctly like fullscreen (on iOS) and object-fit settings. Make use of the 'is ready' event before running actions, this will ensure the player is available and ready to be integrated with.","name":"info","rank":0,"editor":"Label"},"Apd":{"caption":"Media file (list)","name":"media_file_list","rank":9,"editor":"DynamicValue","value":"text","optional":true,"is_list":true},"Ape":{"caption":"Labels (list)","name":"labels_list","rank":11,"editor":"DynamicValue","value":"text","is_list":true,"optional":true},"Apf":{"caption":"MIME type (list)","name":"mime_type_list","rank":10,"editor":"DynamicValue","value":"text","is_list":true,"optional":true},"Apg":{"caption":"-----------------------------------------------------------------------------","name":"line","rank":1,"editor":"Label"},"Aph":{"caption":"-----------------------------------------------------------------------------","name":"line","rank":7,"editor":"Label"},"Api":{"caption":"Single media file options. These take precedence over the multiple media files section below.","name":"info","rank":2,"editor":"Label"},"Apj":{"caption":"Multiple media file options. When using the fields below, make sure the 'Media file (single)' field above is left empty. Although the options below can be set dynamically, if the data sources were to change, the video player will not update itself. To do that, you can run the 'Load media file' action.","name":"info","rank":8,"editor":"Label"},"Apr":{"caption":"Default","name":"default_list","rank":12,"editor":"DynamicValue","value":"text","optional":true},"AqA":{"caption":"Pause before scrub","name":"pause_before_scrub","rank":40,"editor":"DynamicValue","value":"boolean","default_val":false},"AqN":{"caption":"YouTube controls","name":"controls_youtube","rank":26,"editor":"DynamicValue","value":"boolean","default_val":true},"AqO":{"caption":"Disable auto resize","name":"disable_auto_resize","rank":52,"editor":"DynamicValue","value":"boolean","default_val":false},"AqP":{"caption":"Poster object fit","name":"poster_object_fit","rank":21,"editor":"Dropdown","default_val":"Contain"},"AqU":{"caption":"Fluid mode","name":"fluid_mode","rank":51,"editor":"DynamicValue","value":"boolean","default_val":false},"AqW":{"caption":"Loop after","name":"loop_after","rank":33,"editor":"DynamicValue","value":"number","optional":true},"AqX":{"caption":"Viewport (action)","name":"auto_play_action","rank":54,"editor":"Dropdown","default_val":"Pause"}},"states":{"AAQ":{"caption":"Duration","name":"duration","value":"number","initialization_code":{"fn":"function(properties, context) {\n\n\n\n}"}},"AAc":{"caption":"Current time (secs)","name":"current_time","value":"number","initialization_code":{"fn":"function(properties, context) {\n\n\n\n}"}},"AAd":{"caption":"Current time remaining (secs)","name":"current_time_remaining","value":"number","initialization_code":{"fn":"function(properties, context) {\n\n\n\n}"}},"AAy":{"caption":"Media URL","name":"media_url","value":"text","initialization_code":{"fn":"function(properties, context) {\n\n\n\n}"}},"AAz":{"caption":"Poster","name":"poster","value":"image","initialization_code":{"fn":"function(properties, context) {\n\n\n\n}"}},"ABA":{"caption":"Controls enabled (VideoJS)","name":"videojs_controls_enabled","value":"boolean","initialization_code":{"fn":"function(properties, context) {\n\n\n\n}"}},"ABB":{"caption":"Autoplay","name":"autoplay","value":"boolean","initialization_code":{"fn":"function(properties, context) {\n\n\n\n}"}},"ABC":{"caption":"Loop","name":"loop","value":"boolean","initialization_code":{"fn":"function(properties, context) {\n\n\n\n}"}},"ABD":{"caption":"Muted","name":"muted","value":"boolean","initialization_code":{"fn":"function(properties, context) {\n\n\n\n}"}},"ABF":{"caption":"Preload","name":"preload","value":"text","initialization_code":{"fn":"function(properties, context) {\n\n\n\n}"}},"ABH":{"caption":"Layout","name":"layout","value":"text","initialization_code":{"fn":"function(properties, context) {\n\n\n\n}"}},"ABI":{"caption":"Viewport autoplay","name":"auto_play_when_in_view","value":"boolean","initialization_code":{"fn":"function(properties, context) {\n\n\n\n}"}},"ABJ":{"caption":"Theme","name":"theme","value":"text","initialization_code":{"fn":"function(properties, context) {\n\n\n\n}"}},"ABK":{"caption":"Centre play button","name":"centre_play","value":"boolean","initialization_code":{"fn":"function(properties, context) {\n\n\n\n}"}},"ABL":{"caption":"File extension","name":"file_extension","value":"text","initialization_code":{"fn":"function(properties, context) {\n\n\n\n}"}},"ABV":{"caption":"Loaded data","name":"loadeddata","value":"boolean","initialization_code":{"fn":"function(properties, context) {\n\n\n\n}"}},"ABW":{"caption":"Loaded meta data","name":"loadedmetadata","value":"boolean","initialization_code":{"fn":"function(properties, context) {\n\n\n\n}"}},"ABa":{"caption":"Is playing","name":"is_playing","value":"boolean","initialization_code":{"fn":"function(properties, context) {\n\n\n\n}"}},"ABz":{"caption":"Controls enabled (YouTube)","name":"youtube_controls_enabled","value":"boolean","initialization_code":{"fn":"function(properties, context) {\n\n\n\n}"}},"ACB":{"caption":"Full screen icon (YouTube)","name":"youtube_fullscreen_icon","value":"boolean","initialization_code":{"fn":"function(properties, context) {\n\n\n\n}"}},"ACC":{"caption":"Progress bar colour (YouTube)","name":"youtube_color","value":"text","initialization_code":{"fn":"function(properties, context) {\n\n\n\n}"}},"ACD":{"caption":"Preferred language (YouTube)","name":"youtube_lang_pref","value":"text","initialization_code":{"fn":"function(properties, context) {\n\n\n\n}"}},"ACE":{"caption":"CC load policy (YouTube)","name":"youtube_cc_load_policy","value":"boolean","initialization_code":{"fn":"function(properties, context) {\n\n\n\n}"}},"ACF":{"caption":"Disable keyboard (YouTube)","name":"youtube_disable_kb","value":"boolean","initialization_code":{"fn":"function(properties, context) {\n\n\n\n}"}},"ACG":{"caption":"Interface language (YouTube)","name":"youtube_interface_lang","value":"text","initialization_code":{"fn":"function(properties, context) {\n\n\n\n}"}},"ACH":{"caption":"IV load policy (YouTube)","name":"youtube_iv_load_policy","value":"boolean","initialization_code":{"fn":"function(properties, context) {\n\n\n\n}"}},"ACI":{"caption":"Disable logo (YouTube)","name":"youtube_modestbranding","value":"boolean","initialization_code":{"fn":"function(properties, context) {\n\n\n\n}"}},"ACJ":{"caption":"Playsinline (YouTube)","name":"youtube_playsinline","value":"boolean","initialization_code":{"fn":"function(properties, context) {\n\n\n\n}"}},"ACa":{"caption":"Playback rate","name":"playback_rate","value":"number","initialization_code":{"fn":"function(properties, context) {\n\n\n\n}"}},"ACf":{"caption":"Volume","name":"volume","value":"number","initialization_code":{"fn":"function(properties, context) {\n\n\n\n}"}},"ACj":{"caption":"Percentage played","name":"percentage_played","value":"number","initialization_code":{"fn":"function(properties, context) {\n\n\n\n}"}},"ADz":{"caption":"Is scrubbing","name":"scrubbing","value":"boolean","initialization_code":{"fn":"function(properties, context) {\n\n\n\n}"}},"AEA":{"caption":"Is seeking","name":"seeking","value":"boolean","initialization_code":{"fn":"function(properties, context) {\n\n\n\n}"}},"AEC":{"caption":"All element Id's","name":"element_ids","value":"text","initialization_code":{"fn":"function(properties, context) {\n\n\n\n}"},"is_list":true},"AEI":{"caption":"Mouse (X) coordinates","name":"mouse_x_coords","value":"number","initialization_code":{"fn":"function(properties, context) {\n\n\n\n}"}},"AEJ":{"caption":"Mouse (Y) coordinates","name":"mouse_y_coords","value":"number","initialization_code":{"fn":"function(properties, context) {\n\n\n\n}"}},"AFa":{"caption":"Subtitles source","name":"subtitles","value":"file","initialization_code":{"fn":"function(properties, context) {\n\n\n\n}"}},"AFt":{"caption":"Media type","name":"media_type","value":"text","initialization_code":{"fn":"function(properties, context) {\n\n\n\n}"}},"AHQ":{"caption":"This element Id","name":"element_id","value":"text","initialization_code":{"fn":"function(properties, context) {\n\n\n\n}"}},"AHW":{"caption":"Aspect ratio","name":"aspect_ratio","value":"text","initialization_code":{"fn":"function(properties, context) {\n\n\n\n}"}},"AHX":{"caption":"Loading time events","name":"loading_time_events","value":"boolean","initialization_code":{"fn":"function(properties, context) {\n\n\n\n}"}},"AIv":{"caption":"Is fullscreen","name":"is_fullscreen","value":"boolean","initialization_code":{"fn":"function(properties, context) {\n\n\n\n}"}},"AIx":{"caption":"Duration (formatted)","name":"duration_text","value":"text","initialization_code":{"fn":"function(properties, context) {\n\n\n\n}"}},"AIy":{"caption":"Current time (formatted)","name":"current_time_text","value":"text","initialization_code":{"fn":"function(properties, context) {\n\n\n\n}"}},"AIz":{"caption":"Current time remaining (formatted)","name":"current_time_remaining_text","value":"text","initialization_code":{"fn":"function(properties, context) {\n\n\n\n}"}},"AJA":{"caption":"Browser user agent","name":"browser_user_agent","value":"text","initialization_code":{"fn":"function(properties, context) {\n\n\n\n}"}},"AJZ":{"caption":"Media is loading","name":"media_is_loading","value":"boolean","initialization_code":{"fn":"function(properties, context) {\n\n\n\n}"}},"AJu":{"caption":"MUX upload progress","name":"mux_upload_progress","value":"number","initialization_code":{"fn":"function(properties, context) {\n\n\n\n}"}},"AKX":{"caption":"MUX upload error","name":"mux_upload_error","value":"text","initialization_code":{"fn":"function(properties, context) {\n\n\n\n}"}},"AKY":{"caption":"MUX upload attempt failure","name":"mux_upload_attempt_failure","value":"text","initialization_code":{"fn":"function(properties, context) {\n\n\n\n}"}},"AKZ":{"caption":"MUX upload completed","name":"mux_upload_complete","value":"boolean","initialization_code":{"fn":"function(properties, context) {\n\n\n\n}"}},"AKi":{"caption":"MUX current file size","name":"mux_selected_file_size","value":"number","initialization_code":{"fn":"function(properties, context) {\n\n\n\n}"}},"ALh":{"caption":"MUX current file name","name":"mux_selected_file_name","value":"text","initialization_code":{"fn":"function(properties, context) {\n\n\n\n}"}},"ALi":{"caption":"MUX current file duration","name":"mux_selected_file_duration","value":"number","initialization_code":{"fn":"function(properties, context) {\n\n\n\n}"}},"ALj":{"caption":"MUX current file poster","name":"mux_selected_file_poster","value":"image","initialization_code":{"fn":"function(properties, context) {\n\n\n\n}"}},"ALp":{"caption":"MUX upload paused","name":"mux_upload_paused","value":"boolean","initialization_code":{"fn":"function(properties, context) {\n\n\n\n}"}},"AMH":{"caption":"Selected text","name":"selected_text","value":"text","initialization_code":{"fn":"function(properties, context) {\n\n\n\n}"}},"AMK":{"caption":"Subtitles formatted","name":"subtitles_formatted","value":"text","initialization_code":{"fn":"function(properties, context) {\n\n\n\n}"}},"AMO":{"caption":"Subtitles start times (list formatted)","name":"subtitles_starttimes_formatted","value":"text","initialization_code":{"fn":"function(properties, context) {\n\n\n\n}"},"is_list":true},"AMP":{"caption":"Subtitles end times (list formatted)","name":"subtitles_endtimes_formatted","value":"text","initialization_code":{"fn":"function(properties, context) {\n\n\n\n}"},"is_list":true},"AMQ":{"caption":"Subtitles captions (list)","name":"subtitles_captions","value":"text","initialization_code":{"fn":"function(properties, context) {\n\n\n\n}"},"is_list":true},"AMa":{"caption":"Subtitles raw vtt","name":"subtitles_raw_vtt","value":"text","initialization_code":{"fn":"function(properties, context) {\n\n\n\n}"}},"AMh":{"caption":"Subtitles current caption","name":"subtitles_current_caption","value":"text","initialization_code":{"fn":"function(properties, context) {\n\n\n\n}"}},"AMi":{"caption":"Subtitles current start time (formatted)","name":"subtitles_current_starttime_text","value":"text","initialization_code":{"fn":"function(properties, context) {\n\n\n\n}"}},"AMj":{"caption":"Subtitles current end time (formatted)","name":"subtitles_current_endtime_text","value":"text","initialization_code":{"fn":"function(properties, context) {\n\n\n\n}"}},"AMk":{"caption":"Subtitles current start time","name":"subtitles_current_starttime","value":"number","initialization_code":{"fn":"function(properties, context) {\n\n\n\n}"}},"AMl":{"caption":"Subtitles current end time","name":"subtitles_current_endtime","value":"number","initialization_code":{"fn":"function(properties, context) {\n\n\n\n}"}},"AMm":{"caption":"Subtitles start times (list number)","name":"subtitles_starttimes","value":"number","initialization_code":{"fn":"function(properties, context) {\n\n\n\n}"},"is_list":true},"AMn":{"caption":"Subtitles end times (list number)","name":"subtitles_endtimes","value":"number","initialization_code":{"fn":"function(properties, context) {\n\n\n\n}"},"is_list":true},"AMp":{"caption":"Buffer percentage","name":"buffer_percentage","value":"number","initialization_code":{"fn":"function(properties, context) {\n\n\n\n}"}},"ATX":{"caption":"Current time (ms)","name":"current_time_ms","value":"number","initialization_code":{"fn":"function(properties, context) {\n\n\n\n}"}},"ATY":{"caption":"Current time remaining (ms)","name":"current_time_remaining_ms","value":"number","initialization_code":{"fn":"function(properties, context) {\n\n\n\n}"}},"ATy":{"caption":"Sound wave generating","name":"sound_wave_generating","value":"boolean","initialization_code":{"fn":"function(properties, context) {\n\n\n\n}"}},"AUD":{"caption":"MUX current file","name":"mux_selected_file","value":"file","initialization_code":{"fn":"function(properties, context) {\n\n\n\n}"}},"AUg":{"caption":"Files selected count","name":"files_selected_count","value":"number","initialization_code":{"fn":"function(properties, context) {\n\n\n\n}"}},"AUi":{"caption":"Player width","name":"player_width","value":"number","initialization_code":{"fn":"function(properties, context) {\n\n\n\n}"}},"AUj":{"caption":"Player height","name":"player_height","value":"number","initialization_code":{"fn":"function(properties, context) {\n\n\n\n}"}},"AVj":{"caption":"MUX total file size (multiple files)","name":"mux_total_file_size","value":"number","initialization_code":{"fn":"function(properties, context) {\n\n\n\n}"}},"AXn":{"caption":"Media error description","name":"media_error_description","value":"text","initialization_code":{"fn":"function(properties, context) {\n\n\n\n}"}},"AXo":{"caption":"Media error type","name":"media_error_type","value":"text","initialization_code":{"fn":"function(properties, context) {\n\n\n\n}"}},"AXp":{"caption":"Media error code","name":"media_error_code","value":"number","initialization_code":{"fn":"function(properties, context) {\n\n\n\n}"}},"Aeu":{"caption":"Is picture in picture","name":"pip","value":"boolean","initialization_code":{"fn":"function(properties, context) {\n\n\n\n}"}},"AiJ":{"caption":"Subtitles current filename","name":"subtitles_current_filename","value":"text","initialization_code":{"fn":"function(properties, context) {\n\n\n\n}"}},"AiK":{"caption":"Subtitles current label","name":"subtitles_current_label","value":"text","initialization_code":{"fn":"function(properties, context) {\n\n\n\n}"}},"AkW":{"caption":"Control bar visible","name":"control_bar_visible","value":"boolean","initialization_code":{"fn":"function(properties, context) {\n\n\n\n}"}},"AnW":{"caption":"Playback range 1 difference","name":"playback_range_1_difference","value":"number","initialization_code":{"fn":"function(properties, context) {\n\n\n\n}"}},"Ana":{"caption":"Playback range 2 difference","name":"playback_range_2_difference","value":"number","initialization_code":{"fn":"function(properties, context) {\n\n\n\n}"}},"Anb":{"caption":"Playback range 1 difference (formatted)","name":"playback_range_1_formatted","value":"text","initialization_code":{"fn":"function(properties, context) {\n\n\n\n}"}},"Anc":{"caption":"Playback range 2 difference (formatted)","name":"playback_range_2_formatted","value":"text","initialization_code":{"fn":"function(properties, context) {\n\n\n\n}"}},"Anf":{"caption":"Video width","name":"video_width","value":"number","initialization_code":{"fn":"function(properties, context) {\n\n\n\n}"}},"Ang":{"caption":"Video height","name":"video_height","value":"number","initialization_code":{"fn":"function(properties, context) {\n\n\n\n}"}},"AoU":{"caption":"File name","name":"file_name","value":"text","initialization_code":{"fn":"function(properties, context) {\n\n\n\n}"}},"Aoz":{"caption":"Sound wave loading percentage","name":"sound_wave_loading_percentage","value":"number","initialization_code":{"fn":"function(properties, context) {\n\n\n\n}"}},"ApM":{"caption":"Waveform data","name":"waveform_data","value":"text","initialization_code":{"fn":"function(properties, context) {\n\n\n\n}"}},"ApV":{"caption":"Video has ended","name":"video_has_ended","value":"boolean","initialization_code":{"fn":"function(properties, context) {\n\n\n\n}"}},"Apk":{"caption":"Media label","name":"media_label","value":"text","initialization_code":{"fn":"function(properties, context) {\n\n\n\n}"}}},"events":{"AAN":{"caption":"has started","name":"media_started"},"AAO":{"caption":"has ended","name":"media_ended"},"AAP":{"caption":"has been paused","name":"media_paused"},"ABS":{"caption":"has loaded data","name":"loadeddata"},"ABT":{"caption":"has loaded metadata","name":"loadedmetadata"},"ABU":{"caption":"has updated the time","name":"timeupdate"},"ACe":{"caption":"has changed the volume","name":"volumechange"},"ACg":{"caption":"has errored","name":"error"},"ACh":{"caption":"user is active","name":"useractive"},"ACi":{"caption":"user inactive","name":"userinactive"},"ADW":{"caption":"is in viewport","name":"in_viewport"},"ADX":{"caption":"is out of viewport","name":"out_viewport"},"ADu":{"caption":"reaches a specified time","name":"time_event"},"AEK":{"caption":"coordinates are changed","name":"coordinates_changed"},"AKa":{"caption":"MUX upload has errored","name":"mux_upload_error"},"AKb":{"caption":"MUX upload has completed","name":"mux_upload_complete"},"AKg":{"caption":"MUX upload has started","name":"mux_upload_started"},"AMF":{"caption":"scrubber has been clicked","name":"scrubber_clicked"},"AMg":{"caption":"text has been highlighted","name":"text_highlighted"},"AUL":{"caption":"entered full screen","name":"entered_fullscreen"},"AUM":{"caption":"exited full screen","name":"exited_fullscreen"},"AUY":{"caption":"files have been selected","name":"files_selected"},"AeA":{"caption":"has enabled a sound wave","name":"enabled_soundwave"},"AeB":{"caption":"has disabled a soundwave","name":"disabled_soundwave"},"Agr":{"caption":"big play button has been clicked","name":"big_play_button_clicked"},"AhD":{"caption":"first Ad has started","name":"first_ad_started"},"AhE":{"caption":"second Ad has started","name":"second_ad_started"},"AhF":{"caption":"third Ad has started","name":"third_ad_started"},"AhG":{"caption":"first Ad has ended","name":"first_ad_ended"},"AhH":{"caption":"second Ad has ended","name":"second_ad_ended"},"AhI":{"caption":"third Ad has ended","name":"third_ad_ended"},"AiL":{"caption":"subtitles have changed","name":"subtitles_changed"},"AiR":{"caption":"audio track has changed","name":"audio_track_changed"},"Aji":{"caption":"is ready","name":"is_ready"},"Ami":{"caption":"offset times have changed","name":"offset_times_changed"},"ApP":{"caption":"has retrieved sound wave data","name":"sound_wave_data"},"AqB":{"caption":"quality has been selected","name":"quality_selected"},"AqG":{"caption":"chromecast connected","name":"chromecast_connected"},"AqH":{"caption":"chromecast disconnected","name":"chromecast_disconnected"},"AqI":{"caption":"chromecast devices available","name":"chromecast_devices_available"},"AqJ":{"caption":"chromecast devices unavailable","name":"chromecast_devices_unavailable"},"AqK":{"caption":"chromecast requested","name":"chromecast_requested"},"AqV":{"caption":"has been clicked","name":"has_been_clicked"}},"actions":{"AAR":{"caption":"Play (with options)","code":{"fn":"function(instance, properties, context) {\n\n    // when videoJS is ready\n    instance.data.videoJSReady().then(function() {\n\n        // get data\n        var videoPlayer = instance.data.videoPlayer;\n        var start_time = properties.start_time ? properties.start_time : 0;\n        var loop = properties.loop;\n\n        // set loop and playback values\n        if (loop) {\n            videoPlayer.loop(true);\n            instance.publishState(\"loop\", true);\n        } else {\n            videoPlayer.loop(false);\n            instance.publishState(\"loop\", false);\n        }\n\n        videoPlayer.one(\"timeupdate\", function () {\n            videoPlayer.currentTime(start_time);\n        });\n\n        videoPlayer.play();\n\n    });\n\n}"},"fields":{"AAU":{"caption":"Start Time (secs)","name":"start_time","rank":0,"editor":"DynamicValue","value":"number","default_val":0,"optional":false},"ABQ":{"caption":"Loop","name":"loop","rank":1,"editor":"DynamicValue","value":"boolean","default_val":false,"optional":false}}},"AAS":{"caption":"Pause","code":{"fn":"function(instance, properties, context) {\n\n    // when videoJS is ready\n    instance.data.videoJSReady().then(function() {\n\n        // get data\n        var videoPlayer = instance.data.videoPlayer;\n\n        // pause video\n        videoPlayer.pause();\n\n        // this variable will make the viewport autoplay feature not start playing the video again when the video has been manually paused and the page scrolls\n        instance.data.viewport_hasPausedOnce = true;\n\n    });\n\n}"}},"AAT":{"caption":"Restart","code":{"fn":"function(instance, properties, context) {\n\n    // when videoJS is ready\n    instance.data.videoJSReady().then(function() {\n\n        // get data\n        var videoPlayer = instance.data.videoPlayer;\n        var play = properties.play;\n\n        // get playing status\n        var isPaused = videoPlayer.paused();\n\n        // reset time\n        videoPlayer.currentTime(0);\n\n        // control video\n        if (play) {\n            if (isPaused) {\n                videoPlayer.play();\n            }\n        }\n\n        // update states since the video may not have played yet, meaning the timeupdate event wouldn't be setup\n        if (Number.isFinite(videoPlayer.duration())) {\n            instance.publishState(\"duration\", videoPlayer.duration());\n        }\n        if (Number.isFinite(videoPlayer.currentTime())) {\n            instance.publishState(\"current_time\", videoPlayer.currentTime());\n            instance.publishState(\"current_time_ms\", videoPlayer.currentTime() * 1000);\n        }\n        if (Number.isFinite(videoPlayer.remainingTime())) {\n            instance.publishState(\"current_time_remaining\", videoPlayer.remainingTime());\n            instance.publishState(\"current_time_remaining_ms\", videoPlayer.remainingTime() * 1000);\n        }\n\n    });\n\n}"},"fields":{"ABR":{"caption":"Play","name":"play","rank":0,"editor":"DynamicValue","value":"boolean","default_val":true}}},"ABM":{"caption":"Set play back time","code":{"fn":"function(instance, properties, context) {\n\n    // when videoJS is ready\n    instance.data.videoJSReady().then(function() {\n\n        // get data\n        var videoPlayer = instance.data.videoPlayer;\n        var time = properties.time;\n        var play = properties.play;\n\n        // get playing status\n        var isPaused = videoPlayer.paused();\n\n        // control video\n        if (play) {\n\n            videoPlayer.one(\"timeupdate\", function () {\n                videoPlayer.play();\n            })\n\n            setTimeout(function() {\n                if (time >= 0) {\n                    videoPlayer.currentTime(time);\n                } else {\n                    videoPlayer.currentTime(0);\n                }\n            }, 100);\n\n        } else {\n\n            if (!isPaused) {\n                videoPlayer.one(\"timeupdate\", function () {\n                    videoPlayer.pause();\n                })\n            }\n\n            setTimeout(function() {\n                if (Math.floor(videoPlayer.currentTime()) != time) {\n                    if (time >= 0) {\n                        videoPlayer.currentTime(time);\n                    } else {\n                        videoPlayer.currentTime(0);\n                    }\n                }\n            }, 100);\n\n        }\n\n        // update states since the video may not have played yet, meaning the timeupdate event wouldn't be setup\n        if (Number.isFinite(videoPlayer.duration())) {\n            instance.publishState(\"duration\", videoPlayer.duration());\n        }\n        if (Number.isFinite(videoPlayer.currentTime())) {\n            instance.publishState(\"current_time\", videoPlayer.currentTime());\n            instance.publishState(\"current_time_ms\", videoPlayer.currentTime() * 1000);\n        }\n        if (Number.isFinite(videoPlayer.remainingTime())) {\n            instance.publishState(\"current_time_remaining\", videoPlayer.remainingTime());\n            instance.publishState(\"current_time_remaining_ms\", videoPlayer.remainingTime() * 1000);\n        }\n\n    });\n\n}"},"fields":{"ABN":{"caption":"Time (in seconds)","name":"time","rank":0,"editor":"DynamicValue","value":"number","default_val":0},"ABO":{"caption":"Play","name":"play","rank":1,"editor":"DynamicValue","value":"boolean","default_val":true,"optional":false}}},"ABZ":{"caption":"Play","code":{"fn":"function(instance, properties, context) {\n\n    // when videoJS is ready\n    instance.data.videoJSReady().then(function() {\n\n        // get data\n        var videoPlayer = instance.data.videoPlayer;\n\n        // play video\n        videoPlayer.play();\n\n    });\n\n}"}},"ABb":{"caption":"Loop","code":{"fn":"function(instance, properties, context) {\n\n    // when videoJS is ready\n    instance.data.videoJSReady().then(function() {\n\n        // get data\n        var videoPlayer = instance.data.videoPlayer;\n        var loop = properties.loop;\n\n        // set loop value and update state\n        if (loop) {\n            videoPlayer.loop(true);\n            instance.publishState(\"loop\", true);\n        } else {\n            videoPlayer.loop(false);\n            instance.publishState(\"loop\", false);\n        }\n\n    });\n\n}"},"fields":{"ABc":{"caption":"Loop","name":"loop","rank":0,"editor":"DynamicValue","value":"boolean","default_val":true}}},"ABe":{"caption":"Mute","code":{"fn":"function(instance, properties, context) {\n\n    // when videoJS is ready\n    instance.data.videoJSReady().then(function() {\n\n        // get data\n        var videoPlayer = instance.data.videoPlayer;\n        var mute = properties.mute;\n\n        // set loop value and update state\n        if (mute) {\n            videoPlayer.muted(true);\n            instance.publishState(\"muted\", true);\n        } else {\n            videoPlayer.muted(false);\n            instance.publishState(\"muted\", false);\n        }\n\n    });\n\n}"},"fields":{"ABg":{"caption":"Mute","name":"mute","rank":0,"editor":"DynamicValue","value":"boolean","default_val":true}}},"ABh":{"caption":"Centre play button","code":{"fn":"function(instance, properties, context) {\n\n    // when videoJS is ready\n    instance.data.videoJSReady().then(function() {\n\n        // get data\n        var videoPlayer = instance.data.videoPlayer;\n        var centre_button = properties.centre_button;\n        var videoContainer = document.getElementById(instance.data.elementId);\n\n        // centre button\n        if (centre_button) {\n            videoContainer.classList.add(\"vjs-big-play-centered\");\n            instance.publishState(\"centre_play\", true);\n        } else {\n            videoContainer.classList.remove(\"vjs-big-play-centered\");\n            instance.publishState(\"centre_play\", false);\n        }\n\n    });\n\n}"},"fields":{"ABi":{"caption":"Centre play button","name":"centre_button","rank":0,"editor":"DynamicValue","value":"boolean","default_val":true}}},"ABj":{"caption":"Toggle VideoJS controls","code":{"fn":"function(instance, properties, context) {\n\n    // when videoJS is ready\n    instance.data.videoJSReady().then(function() {\n\n        // get data\n        var videoPlayer = instance.data.videoPlayer;\n        var show_controls = properties.show_videojs_controls;\n\n        // toggle controls\n        if (show_controls) {\n            videoPlayer.controls(true);\n            instance.publishState('control_bar_visible', true);\n            instance.publishState(\"videojs_controls_enabled\", true);\n        } else {\n            videoPlayer.controls(false);\n            instance.publishState('control_bar_visible', false);\n            instance.publishState(\"videojs_controls_enabled\", false);\n        }\n\n    });\n\n}"},"fields":{"ABk":{"caption":"Show controls","name":"show_videojs_controls","rank":0,"editor":"DynamicValue","value":"boolean","default_val":true}}},"ABl":{"caption":"Load media file","code":{"fn":"function(instance, properties, context) {\n\n    // get list data (has to happen before anything else)\n    var url_list = properties.media_file_list ? properties.media_file_list.get(0, properties.media_file_list.length()) : url_list = [];\n    var mime_type_list = properties.mime_type_list ? properties.mime_type_list.get(0, properties.mime_type_list.length()) : mime_type_list = [];\n    var labels_list = properties.labels_list ? properties.labels_list.get(0, properties.labels_list.length()) : labels_list = [];\n    var default_list = properties.default_list;\n\n    // when videoJS is ready\n    instance.data.videoJSReady().then(function() {\n\n        // get data\n        var videoPlayer = instance.data.videoPlayer;\n        var url = properties.media_file_single;\n        var local_file = properties.local_file;\n        var mime_type = properties.mime_type_single;\n        var poster = properties.poster;\n        var play = properties.play;\n\n        var currentUrl = videoPlayer.currentSrc();\n        var use_mux = properties.use_mux;\n        var video_id = properties.video_id ? properties.video_id : videoPlayer.id();\n        var video_title = properties.video_title ? properties.video_title : 'My Excellent Video!';\n        var viewer_user_id = properties.viewer_user_id;\n        var experiment_name = properties.experiment_name;\n        var page_type = properties.page_type;\n        var sub_property_id = properties.sub_property_id;\n        var content_type = properties.content_type;\n        var encoding_variant = properties.encoding_variant;\n        var video_language = properties.video_language;\n        var producer = properties.producer;\n        var series = properties.series;\n        var video_stream_type = properties.video_stream_type;\n        var variant_name = properties.variant_name;\n        var variant_id = properties.variant_id;\n        var view_session_id = properties.view_session_id;\n\n        var ext;\n        var id;\n\n        // reset loaded events\n        instance.publishState(\"loadedmetadata\", false);\n        instance.publishState(\"loadeddata\", false);\n        instance.publishState(\"media_is_loading\", true);\n\n        // reset this global quality selector array\n        instance.data.srcArray = [];\n\n        // play video once loaded\n        if (play) {\n            videoPlayer.one('loadedmetadata', function() {\n                videoPlayer.play();\n            });\n        }\n\n        // reset the YouTube control states if the current video isn't already a YouTube video\n        // this is because it's difficult to maintain the controls when switching\n        if (currentUrl) {\n            if (!currentUrl.includes(\"youtube\")) {\n                instance.publishState(\"youtube_controls_enabled\", false);\n                instance.publishState(\"youtube_fullscreen_icon\", false);\n                instance.publishState(\"youtube_color\", \"red\");\n                instance.publishState(\"youtube_lang_pref\", \"\");\n                instance.publishState(\"youtube_cc_load_policy\", false);\n                instance.publishState(\"youtube_disable_kb\", false);\n                instance.publishState(\"youtube_interface_lang\", \"\");\n                instance.publishState(\"youtube_iv_load_policy\", false);\n                instance.publishState(\"youtube_modestbranding\", false);\n                instance.publishState(\"youtube_playsinline\", false);\n            }\n        }\n\n        // set cookie\n        function setCookie(cname, cvalue, exdays) {\n            var d = new Date();\n            d.setTime(d.getTime() + (exdays * 24 * 60 * 60 * 1000));\n            var expires = \"expires=\" + d.toUTCString();\n            document.cookie = cname + \"=\" + cvalue + \";\" + expires + \";path=/\";\n        }\n\n        // get cookie\n        function getCookie(cname) {\n            var name = cname + \"=\";\n            var ca = document.cookie.split(';');\n            for (var i = 0; i < ca.length; i++) {\n                var c = ca[i];\n                while (c.charAt(0) == ' ') {\n                    c = c.substring(1);\n                }\n                if (c.indexOf(name) == 0) {\n                    return c.substring(name.length, c.length);\n                }\n            }\n            return \"\";\n        }\n\n        var scraperApiKey = \"588b114448ed05f8120618fe52a4ac4d\"; // gmail account, with subscription\n        // var scraperApiKey = \"2a9405b35d5a0c17a07d9d7975dca961\"; // hotmail account, free 1000 requests per month\n\n        // get the mp4 url from the vimeo link\n        function getMp4Vimeo(id) {\n            $.getJSON(\"https://api.scraperapi.com/?api_key=\" + scraperApiKey + \"&url=https://player.vimeo.com/video/\" + id + \"/config\", function (json_data) {\n\n                let files = json_data.request.files.progressive;\n                for (var i = 0; i < files.length; i++) {\n\n                    // looks for 1080p and 720p versions\n                    if (files[i].quality == \"1080p\") {\n                        console.log(\"1080p - id is \" + id + \", url is \" + files[i].url);\n                        var sourceObject = {\n                            src: files[i].url, type: 'video/mp4'\n                        };\n                        videoPlayer.src(sourceObject);\n                        setCookie(id, files[i].url, 30);\n                        var found = \"yes\";\n                        instance.publishState(\"media_url\", files[i].url);\n                        instance.publishState(\"media_type\", \"video\");\n                        videoPlayer.poster('');\n                        break;\n\n                    } else if (files[i].quality == \"720p\") {\n                        console.log(\"720p - id is \" + id + \", url is \" + files[i].url);\n                        var sourceObject = {\n                            src: files[i].url, type: 'video/mp4'\n                        };\n                        videoPlayer.src(sourceObject);\n                        setCookie(id, files[i].url, 30);\n                        var found = \"yes\";\n                        instance.publishState(\"media_url\", files[i].url);\n                        instance.publishState(\"media_type\", \"video\");\n                        videoPlayer.poster('');\n                        break;\n\n                    } else if (files[i].quality) {\n                        console.log(files[i].quality + \" - id is \" + id + \", url is \" + files[i].url);\n                        var sourceObject = {\n                            src: files[i].url, type: 'video/mp4'\n                        };\n                        videoPlayer.src(sourceObject);\n                        setCookie(id, files[i].url, 30);\n                        var found = \"yes\";\n                        instance.publishState(\"media_url\", files[i].url);\n                        instance.publishState(\"media_type\", \"video\");\n                        break;\n\n                    }\n\n                }\n                if (!found) {\n                    console.log(\"Attempted to get vimeo mp4 file but couldn't find a version available, reach out to pork1977 on the forum\");\n                }\n\n            });\n        }\n\n        // function to load the media file\n        function loadMediaFile(url) {\n\n            // image formats\n            if (ext === \"svg\" || ext === \"jpg\" || ext === \"jpeg\" || ext === \"bmp\" || ext === \"png\" || ext === \"gif\") {\n                var isImage = true;\n                instance.publishState(\"media_url\", url);\n                instance.publishState(\"media_type\", \"image\");\n                instance.publishState(\"poster\", url);\n                instance.publishState(\"videojs_controls_enabled\", false);\n                videoPlayer.poster(url);\n                videoPlayer.controls(false);\n\n                // audio formats\n            } else if (ext === \"mp3\") {\n                var sourceObject = {\n                    src: url, type: 'audio/mp3'\n                };\n                instance.publishState(\"media_url\", url);\n                instance.publishState(\"media_type\", \"audio\");\n                videoPlayer.src(sourceObject);\n\n            } else if (ext === \"wav\") {\n                var sourceObject = {\n                    src: url, type: 'audio/wav'\n                };\n                instance.publishState(\"media_url\", url);\n                instance.publishState(\"media_type\", \"audio\");\n                videoPlayer.src(sourceObject);\n\n            } else if (ext === \"aac\") {\n                var sourceObject = {\n                    src: url, type: 'audio/aac'\n                };\n                instance.publishState(\"media_url\", url);\n                instance.publishState(\"media_type\", \"audio\");\n                videoPlayer.src(sourceObject);\n\n            } else if (ext === \"m3u\") {\n                var sourceObject = {\n                    src: url, type: 'audio/x-mpegURL'\n                };\n                instance.publishState(\"media_url\", url);\n                instance.publishState(\"media_type\", \"audio\");\n                videoPlayer.src(sourceObject);\n\n            } else if (ext === \"flac\") {\n                var sourceObject = {\n                    src: url, type: 'audio/flac'\n                };\n                instance.publishState(\"media_url\", url);\n                instance.publishState(\"media_type\", \"audio\");\n                videoPlayer.src(sourceObject);\n\n                // video formats\n            } else if (ext === \"m3u8\") {\n                var sourceObject = {\n                    src: url, type: 'application/x-mpegURL'\n                };\n                instance.publishState(\"media_url\", url);\n                instance.publishState(\"media_type\", \"video\");\n                videoPlayer.src(sourceObject);\n\n            } else if (ext === \"mpd\") {\n                var sourceObject = {\n                    src: url, type: 'application/dash+xml'\n                };\n                instance.publishState(\"media_url\", url);\n                instance.publishState(\"media_type\", \"video\");\n                videoPlayer.src(sourceObject);\n\n            } else if (ext === \"mov\") {\n                var sourceObject = {\n                    src: url, type: 'video/mp4'\n                };\n                instance.publishState(\"media_url\", url);\n                instance.publishState(\"media_type\", \"video\");\n                videoPlayer.src(sourceObject);\n\n            } else if (ext === \"mp4\") {\n                var sourceObject = {\n                    src: url, type: 'video/mp4'\n                };\n                instance.publishState(\"media_url\", url);\n                instance.publishState(\"media_type\", \"video\");\n                videoPlayer.src(sourceObject);\n\n                // this plays dropbox/github videos (needs further work as it assumes mp4)\n            } else if ((ext.includes(\"raw=1\")) || (ext.includes(\"dl=0\")) || (ext.includes(\"dl=1\"))) {\n                ext = \"mp4\";\n                var sourceObject = {\n                    src: url, type: 'video/mp4'\n                };\n                instance.publishState(\"media_url\", url);\n                instance.publishState(\"media_type\", \"video\");\n                videoPlayer.src(sourceObject);\n\n            } else if (ext === \"mkv\") {\n                var sourceObject = {\n                    src: url, type: 'video/mp4'\n                };\n                instance.publishState(\"media_url\", url);\n                instance.publishState(\"media_type\", \"video\");\n                videoPlayer.src(sourceObject);\n\n            } else if (ext === \"f4m\") {\n                var sourceObject = {\n                    src: url, type: 'application/adobe-f4m'\n                };\n                instance.publishState(\"media_url\", url);\n                instance.publishState(\"media_type\", \"video\");\n                videoPlayer.src(sourceObject);\n\n            } else if (ext === \"webm\") {\n                var sourceObject = {\n                    src: url, type: 'video/webm'\n                };\n                instance.publishState(\"media_url\", url);\n                instance.publishState(\"media_type\", \"video\");\n                videoPlayer.src(sourceObject);\n\n            } else if (ext === \"ogg\") {\n                var sourceObject = {\n                    src: url, type: 'video/ogg'\n                };\n                instance.publishState(\"media_url\", url);\n                instance.publishState(\"media_type\", \"video\");\n                videoPlayer.src(sourceObject);\n\n            } else if (ext === \"flv\") {\n                var sourceObject = {\n                    src: url, type: 'video/flv'\n                };\n                instance.publishState(\"media_url\", url);\n                instance.publishState(\"media_type\", \"video\");\n                videoPlayer.src(sourceObject);\n\n            } else if ((!url.includes(\"//\")) && (!url.includes(\"www.\"))) {\n                ext = \"wistia\";\n\n                var newUrl = \"https://fast.wistia.net/embed/medias/\" + url + \".m3u8\";\n                var sourceObject = {\n                    src: newUrl, type: 'application/x-mpegURL'\n                };\n                instance.publishState(\"media_url\", newUrl);\n                instance.publishState(\"media_type\", \"video\");\n                videoPlayer.src(sourceObject);\n\n                //check if youtube/vimeo/wistia\n            } else if (url.match(/(http:|https:|)\\/\\/(player.|www.|home.|fast.)?(wistia\\.com|wi\\.st|drive\\.google\\.com|vimeo\\.com|vimeo\\.com\\/video|youtu(be\\.com|\\.be|be\\.googleapis\\.com))\\/(video\\/|medias\\/|embed\\/iframe\\/|embed\\/|file\\/d\\/|watch\\?v=|v\\/)?([A-Za-z0-9._%-]*)(\\&\\S+)?/)) {\n\n                // match supports the following formats:\n                //\t youtube\n                //     - http(s)://www.youtube.com/watch?v=My2FRPA3Gf8\n                //     - http(s)://youtu.be/My2FRPA3Gf8\n                //     - http(s)://youtube.googleapis.com/v/My2FRPA3Gf8\n                //   vimeo\n                //     - http(s)://vimeo.com/25451551\n                //     - http(s)://player.vimeo.com/video/25451551\n                //   wistia\n                //     - http(s)://wistia.com/medias/26sk4lmiix\n                //     - http(s)://wistia.com/embed/26sk4lmiix\n                //     - http(s)://wi.st/medias/26sk4lmiix\n                //     - http(s)://wi.st/embed/26sk4lmiix\n                //     - http(s)://fast.wistia.com/embed/iframe/26sk4lmiix\n                //     - http(s)://home.wistia.com/medias/26sk4lmiix\n                //   google drive\n                //     - https://drive.google.com/file/d/1nuSYI4ibo7ee8UcF48R3-ehH1JpEmrgd/view?usp=sharing\n                //     - https://drive.google.com/file/d/1nuSYI4ibo7ee8UcF48R3-ehH1JpEmrgd/preview\n\n                if (RegExp.$3.indexOf('youtu') > - 1) {\n                    ext = \"youtube\";\n                    id = RegExp.$6;\n\n                    var newUrl = \"https://youtube.com/embed/\" + id + \"?origin=\" + window.location.protocol + \"//\" + window.location.host + \"\";\n                    var sourceObject = {\n                        src: newUrl, type: 'video/youtube'\n                    };\n                    instance.publishState(\"media_url\", newUrl);\n                    instance.publishState(\"media_type\", \"video\");\n                    videoPlayer.src(sourceObject);\n\n                } else if (RegExp.$3.indexOf('wi') > - 1) {\n                    ext = \"wistia\";\n                    id = RegExp.$6;\n\n                    // using wistia player\n                    if (instance.data.use_wistia_player) {\n                        var sourceObject = {\n                            src: url, type: 'video/wistia'\n                        };\n                        videoPlayer.src(sourceObject);\n\n                        // not using wistia player\n                    } else {\n                        var newUrl = \"https://fast.wistia.net/embed/medias/\" + id + \".m3u8\";\n                        var sourceObject = {\n                            src: newUrl, type: 'application/x-mpegURL'\n                        };\n                        instance.publishState(\"media_url\", newUrl);\n                        instance.publishState(\"media_type\", \"video\");\n                        videoPlayer.src(sourceObject);\n                    }\n\n                } else if (RegExp.$3.indexOf('vimeo') > - 1) {\n                    ext = \"vimeo\";\n                    id = RegExp.$6;\n\n                    // using vimeo player\n                    if (instance.data.use_vimeo_player) {\n                        var sourceObject = {\n                            src: url, type: 'video/vimeo'\n                        };\n                        videoPlayer.src(sourceObject);\n\n                        // not using vimeo player\n                    } else {\n\n                        // when the vimeo id from the regex is 'external' it can play directly through the player as an mp4\n                        if (id == 'external') {\n                            var sourceObject = {\n                                src: url, type: 'video/mp4'\n                            };\n                            videoPlayer.src(sourceObject);\n                        } else {\n\n                            // get the mp4 url only if not already attempted, to keep the requests down to a minimum\n                            // to see requests go to https://www.scraperapi.com/dashboard\n                            id = RegExp.$6;\n                            var cookie = getCookie(id);\n\n                            if (!cookie.includes(id)) {\n                                getMp4Vimeo(id);\n\n                            } else {\n\n                                // test the url first because sometime it ceases to exist after some time has passed\n                                $.get(cookie).done(function () {\n                                    console.log(\"Cookie exists for this vimeo video (\" + id + \") so we'll use the value which contains the mp4 url rather than wasting another request to grab it\");\n                                    var sourceObject = {\n                                        src: cookie, type: 'video/mp4'\n                                    };\n                                    videoPlayer.src(sourceObject);\n                                }).fail(function () {\n                                    console.log(\"Cookie exists for this vimeo video (\" + id + \") but for some reason is no longer available so we'll request it again\");\n                                    getMp4Vimeo(id);\n                                });\n\n                                instance.publishState(\"media_url\", cookie);\n                                instance.publishState(\"media_type\", \"video\");\n                            }\n\n                        }\n\n                    }\n\n                } else if (RegExp.$3.indexOf('drive.google.com') > - 1) {\n                    var key = context.keys[\"Google Drive\"];\n                    ext = \"google\";\n                    id = RegExp.$6;\n\n                    if (mime_type) {\n                        if (key) {\n                            var newUrl = \"https://www.googleapis.com/drive/v3/files/\" + id + \"?alt=media&key=\" + key + \"\";\n                        } else {\n                            var newUrl = \"https://drive.google.com/uc?export=download&id=\" + id + \"\";\n                        }\n                        var sourceObject = {\n                            src: newUrl, type: mime_type\n                        };\n                        instance.publishState(\"media_url\", newUrl);\n                        instance.publishState(\"media_type\", \"video\");\n                        videoPlayer.src(sourceObject);\n                    } else {\n                        alert(\"Google drive URL recognised, you must set a valid MIME type for this\")\n                    }\n\n                }\n\n                // no file extension and no mime type then try with video/mp4\n            } else if (!ext && !mime_type) {\n                var sourceObject = {\n                    src: url, type: 'video/mp4'\n                };\n                instance.publishState(\"media_url\", url);\n                instance.publishState(\"media_type\", \"video\");\n                videoPlayer.src(sourceObject);\n\n                // if mime type\n            } else {\n                if (mime_type) {\n\n                    // mime type as video/quicktime then set to video/mp4\n                    if (mime_type.toLowerCase() === \"video/quicktime\") {\n                        var sourceObject = {\n                            src: url, type: \"video/mp4\"\n                        };\n                        videoPlayer.src(sourceObject);\n\n                        // otherwise use the entered mime type\n                    } else {\n                        var sourceObject = {\n                            src: url, type: mime_type\n                        };\n                        videoPlayer.src(sourceObject);\n                    }\n\n                    instance.publishState(\"media_url\", url);\n\n                    if (url.includes(\"ucarecdn\")) {\n                        instance.publishState(\"media_type\", \"uploadcare\");\n                    } else {\n                        instance.publishState(\"media_type\", \"undefined\");\n                    }\n\n                } else {\n                    console.log(\"Media type not defined, reach out to pork1977 on the forum\");\n                }            \n            }\n\n        }\n\n        // local file\n        if (local_file) {\n\n            // open file dialog\n            var input = document.createElement('input');\n            input.style.display = 'none';\n            document.body.appendChild(input);\n\n            input.type = 'file';\n            input.onchange = e => {\n                ext = instance.data.getExtension(e.target.files[0].name).toLowerCase();\n                videoPlayer.poster('');\n                videoPlayer.pause();\n                var URL = window.URL || window.webkitURL\n                var file = e.target.files[0];\n                url = URL.createObjectURL(file);\n                loadMediaFile(url);\n                document.body.removeChild(input);\n            }\n            input.click();\n\n        } else if (url) {\n\n            // set the sourceObjects and states\n            if (url) {\n                instance.publishState(\"file_name\", url.substring(url.lastIndexOf('/')+1));\n                ext = instance.data.getExtension(url).toLowerCase();\n                videoPlayer.poster('');\n                videoPlayer.pause();\n                loadMediaFile(url);\n            }  else {\n                console.log(\"You must have a URL loaded\");\n            }\n\n        } else if (!url && (url_list.length > 0 && mime_type_list.length > 0 && labels_list.length > 0)) {\n\n            var srcObject;\n            var srcArray = [];\n\n            instance.publishState(\"loadedmetadata\", false);\n            instance.publishState(\"loadeddata\", false);\n\n            for (var i = 0; i < url_list.length; i++) {\n                srcObject = {\n                    src: url_list[i],\n                    type: mime_type_list[i],\n                    label: labels_list[i]\n                }\n                if (default_list == labels_list[i]) {\n                    srcObject.selected = \"true\";\n                }\n                srcArray.push(srcObject);\n            }\n\n            // store array into global variable to be accessed through event within intialize\n            // this gets reset at the top\n            instance.data.srcArray = srcArray;\n\n            // load the source object\n            videoPlayer.src(srcArray);\n\n        }\n\n        // enables scrubber thumbnails on the progress bar\n        if (instance.data.mux_sprite_sheet) {\n            instance.data.spriteThumbs(videoPlayer, {\n                url: \"\" + instance.data.mux_sprite_sheet + \"\",\n                interval: instance.data.mux_sprite_sheet_interval,\n                width: instance.data.mux_sprite_sheet_width,\n                height: instance.data.mux_sprite_sheet_height,\n                scaleFactor: instance.data.mux_sprite_sheet_scale_factor\n            });\n        }\n\n        // load a poster\n        if (poster) {\n            videoPlayer.poster(poster);\n            document.getElementById('' + instance.data.elementId + '_html5_api').setAttribute('poster', poster);\n            instance.publishState(\"poster\", poster);\n        }\n\n        // set mux details\n        if (use_mux) {\n            var playerInitTime = Date.now();\n\n            // first initialize\n            if (!instance.data.initMux) {\n                videoPlayer.mux({\n                    debug: false,\n                    data: {\n                        env_key: \"\" + context.keys[\"MUX Environment Key\"] + \"\",\n\n                        // high priority configurable metadata\n                        video_id: \"\" + video_id + \"\",\n                        video_title: \"\" + video_title + \"\",\n                        viewer_user_id: \"\" + viewer_user_id + \"\",\n\n                        // optional configurable metadata\n                        experiment_name: \"\" + experiment_name + \"\",\n                        page_type: \"\" + page_type + \"\",\n                        player_init_time: playerInitTime,\n                        player_name: \"VideoJS (Bubble)\",\n                        player_version: \"7.18.1\",\n                        sub_property_id: \"\" + sub_property_id + \"\",\n                        video_cdn: \"\" + url + \"\",\n                        video_content_type: \"\" + content_type + \"\",\n                        video_duration: \"\" + videoPlayer.duration() + \"\",\n                        video_encoding_variant: \"\" + encoding_variant + \"\",\n                        video_language_code: \"\" + video_language + \"\",\n                        video_producer: \"\" + producer + \"\",\n                        video_series: \"\" + series + \"\",\n                        video_stream_type: \"\" + video_stream_type + \"\",\n                        video_variant_name: \"\" + variant_name + \"\",\n                        video_variant_id: \"\" + variant_id + \"\",\n                        view_session_id: \"\" + view_session_id + \"\"\n                    }\n                });\n                instance.data.initMux = true;\n\n                // initialized and video source changed\n            } else {\n                videoPlayer.mux.emit('videochange', {\n\n                    // high priority configurable metadata\n                    video_id: \"\" + video_id + \"\",\n                    video_title: \"\" + video_title + \"\",\n                    viewer_user_id: \"\" + viewer_user_id + \"\",\n\n                    // optional configurable metadata\n                    experiment_name: \"\" + experiment_name + \"\",\n                    page_type: \"\" + page_type + \"\",\n                    player_init_time: playerInitTime,\n                    player_name: \"VideoJS (Bubble)\",\n                    player_version: \"7.18.1\",\n                    sub_property_id: \"\" + sub_property_id + \"\",\n                    video_cdn: \"\" + url + \"\",\n                    video_content_type: \"\" + content_type + \"\",\n                    video_duration: \"\" + videoPlayer.duration() + \"\",\n                    video_encoding_variant: \"\" + encoding_variant + \"\",\n                    video_language_code: \"\" + video_language + \"\",\n                    video_producer: \"\" + producer + \"\",\n                    video_series: \"\" + series + \"\",\n                    video_stream_type: \"\" + video_stream_type + \"\",\n                    video_variant_name: \"\" + variant_name + \"\",\n                    video_variant_id: \"\" + variant_id + \"\",\n                    view_session_id: \"\" + view_session_id + \"\"\n\n                });\n            }\n\n        }\n\n        // publish extension states\n        instance.publishState(\"file_extension\", ext);\n\n    });\n\n}"},"fields":{"ABm":{"caption":"Media file (single)","name":"media_file_single","rank":1,"editor":"DynamicValue","value":"text","optional":true},"AJW":{"caption":"MIME type","name":"mime_type_single","rank":3,"editor":"DynamicValue","value":"text","optional":true},"AJY":{"caption":"Play","name":"play","rank":11,"editor":"DynamicValue","value":"boolean","default_val":false},"Akp":{"caption":"-----------------------------------------------------------------------------","name":"line","rank":12,"editor":"Label"},"Akq":{"caption":"Use the fields below to configure the metadata which you want to record in MUX. These will be updated everytime this action runs (new video is loaded). More details on this can be seen here: https://docs.mux.com/guides/data/make-your-data-actionable-with-metadata","name":"info","rank":13,"editor":"Label"},"Akr":{"caption":"Use MUX","name":"use_mux","rank":14,"editor":"DynamicValue","value":"boolean","default_val":false},"Aks":{"caption":"High Priority Configurable Metadata","name":"info","rank":15,"editor":"Label"},"Akt":{"caption":"Video Id","name":"video_id","rank":16,"editor":"DynamicValue","value":"text","optional":true,"default_val":"My video Id"},"Aku":{"caption":"Video title","name":"video_title","rank":17,"editor":"DynamicValue","value":"text","optional":true,"default_val":"My excellent video!"},"Akv":{"caption":"Viewer user Id","name":"viewer_user_id","rank":18,"editor":"DynamicValue","value":"text","optional":true},"Akw":{"caption":"Optional Configurable Metadata","name":"info","rank":19,"editor":"Label"},"Akx":{"caption":"Experiment name","name":"experiment_name","rank":20,"editor":"DynamicValue","value":"text","optional":true},"Aky":{"caption":"Page type","name":"page_type","rank":21,"editor":"DynamicValue","value":"text","optional":true},"Akz":{"caption":"Sub property Id","name":"sub_property_id","rank":22,"editor":"DynamicValue","value":"text","optional":true},"AlA":{"caption":"Content type","name":"content_type","rank":23,"editor":"DynamicValue","value":"text","optional":true},"AlB":{"caption":"Encoding variant","name":"encoding_variant","rank":24,"editor":"DynamicValue","value":"text","optional":true},"AlC":{"caption":"Video language","name":"video_language","rank":25,"editor":"DynamicValue","value":"text","optional":true},"AlD":{"caption":"Producer","name":"producer","rank":26,"editor":"DynamicValue","value":"text","optional":true},"AlE":{"caption":"Series","name":"series","rank":27,"editor":"DynamicValue","value":"text","optional":true},"AlF":{"caption":"Video stream type","name":"video_stream_type","rank":28,"editor":"DynamicValue","value":"text","optional":true},"AlG":{"caption":"Variant name","name":"variant_name","rank":29,"editor":"DynamicValue","value":"text","optional":true},"AlH":{"caption":"Variant Id","name":"variant_id","rank":30,"editor":"DynamicValue","value":"text","optional":true},"AlI":{"caption":"View session Id","name":"view_session_id","rank":31,"editor":"DynamicValue","value":"text","optional":true},"Alt":{"caption":"Local file","name":"local_file","rank":2,"editor":"Checkbox","default_val":false},"AnV":{"caption":"Poster","name":"poster","rank":4,"editor":"DynamicValue","value":"image","optional":true},"Apl":{"caption":"Single media file options. These take precedence over the multiple media files section below.","name":"info","rank":0,"editor":"Label"},"Apm":{"caption":"-----------------------------------------------------------------------------","name":"line","rank":5,"editor":"Label"},"Apn":{"caption":"Multiple media file options. When using the fields below, make sure the 'Media file (single)' field above is left empty.","name":"info","rank":6,"editor":"Label"},"Apo":{"caption":"Media file (list)","name":"media_file_list","rank":7,"editor":"DynamicValue","value":"text","is_list":true,"optional":true},"App":{"caption":"MIME type (list)","name":"mime_type_list","rank":8,"editor":"DynamicValue","value":"text","is_list":true,"optional":true},"Apq":{"caption":"Labels (list)","name":"labels_list","rank":9,"editor":"DynamicValue","value":"text","is_list":true,"optional":true},"Aps":{"caption":"Default","name":"default_list","rank":10,"editor":"DynamicValue","value":"text","optional":true}}},"ABn":{"caption":"Set YouTube controls","code":{"fn":"function(instance, properties, context) {\n\n    // there's a couple of issues using this\n    // when running for a second time on a video that was different from the first time it ran, it loads the first video again\n\n    // it's because you're using videoElement.src and it doesn't update after loading a new video\n    // running this action will also stop some videoJS events to not fire!\n\n    // I don't think videoJS likes you touching the elements URL at all\n\n    // when videoJS is ready\n    instance.data.videoJSReady().then(function() {\n\n        // get data\n        var videoPlayer = instance.data.videoPlayer;\n        var videoElement = document.getElementById(instance.data.elementId + \"_youtube_api\");\n        if (videoElement) {\n            var url = videoElement.src;                \n        }\n\n        var controls = properties.controls;\n        var fs = properties.fs;\n        var color = properties.color;\n        var cc_lang_pref = properties.cc_lang_pref;\n        var cc_load_policy = properties.cc_load_policy;\n        var disablekb = properties.disablekb;\n        var hl = properties.hl;\n        var iv_load_policy = properties.iv_load_policy;\n        var modestbranding = properties.modestbranding;\n        var playsinline = properties.playsinline;\n\n        // regex patterns\n        var regex_controls = /controls=([^&]*)/;\n        var regex_fs = /fs=([^&]*)/;\n        var regex_color = /color=([^&]*)/;\n        var regex_cc_lang_pref = /cc_lang_pref=([^&]*)/;\n        var regex_cc_load_policy = /cc_load_policy=([^&]*)/;\n        var regex_disablekb = /disablekb=([^&]*)/;\n        var regex_hl = /hl=([^&]*)/;\n        var regex_iv_load_policy = /iv_load_policy=([^&]*)/;\n        var regex_modestbranding = /modestbranding=([^&]*)/;\n        var regex_playsinline = /playsinline=([^&]*)/;\n\n        function controlProperties() {\n\n            // set youtube parameters which are passed into the url\n\n            // controls\n            if (controls) {\n\n                // disable the standard videoJS controls when the YouTube controls are enabled\n                videoPlayer.controls(false);\n                instance.publishState(\"videojs_controls_enabled\", false);\n\n                var paramSearch = url.search(regex_controls) >= 0;\n                if (paramSearch) {\n                    url = url.replace(regex_controls, \"controls=1\");\n                } else {\n                    url += \"&controls=1\";\n                }\n                instance.publishState(\"youtube_controls_enabled\", true);\n            } else {\n                var paramSearch = url.search(regex_controls) >= 0;\n                if (paramSearch) {\n                    url = url.replace(regex_controls, \"controls=0\");\n                } else {\n                    url += \"&controls=0\";\n                }\n                instance.publishState(\"youtube_controls_enabled\", false);\n            }\n\n            // full screen\n            if (fs) {\n                var paramSearch = url.search(regex_fs) >= 0;\n                if (paramSearch) {\n                    url = url.replace(regex_fs, \"fs=1\");\n                } else {\n                    url += \"&fs=1\";\n                }\n                instance.publishState(\"youtube_fullscreen_icon\", true);\n            } else {\n                var paramSearch = url.search(regex_fs) >= 0;\n                if (paramSearch) {\n                    url = url.replace(regex_fs, \"fs=0\");\n                } else {\n                    url += \"&fs=0\";\n                }\n                instance.publishState(\"youtube_fullscreen_icon\", false);\n            }\n\n            // progress bar colour\n            if (color) {\n                color = color.toLowerCase();\n                var paramSearch = url.search(regex_color) >= 0;\n                if (paramSearch) {\n                    url = url.replace(regex_color, \"color=\" + color);\n                } else {\n                    url += \"&color=\" + color;\n                }\n                instance.publishState(\"youtube_color\", color);\n            } else {\n                var paramSearch = url.search(regex_color) >= 0;\n                if (paramSearch) {\n                    url = url.replace(regex_color, \"color=red\");\n                } else {\n                    url += \"&color=red\";\n                }\n                instance.publishState(\"youtube_color\", \"red\");\n            }\n\n            // language preference\n            if (cc_lang_pref) {\n                cc_lang_pref = cc_lang_pref.toLowerCase();\n                var paramSearch = url.search(regex_cc_lang_pref) >= 0;\n                if (paramSearch) {\n                    url = url.replace(regex_cc_lang_pref, \"cc_lang_pref=\" + cc_lang_pref);\n                } else {\n                    url += \"cc_lang_pref=\" + cc_lang_pref;\n                }\n                instance.publishState(\"youtube_lang_pref\", cc_lang_pref);\n            } else {\n                var paramSearch = url.search(regex_cc_lang_pref) >= 0;\n                if (paramSearch) {\n                    url = url.replace(regex_cc_lang_pref, \"cc_lang_pref=\\\"\\\"\");\n                } else {\n                    url += \"&cc_lang_pref=\\\"\\\"\";\n                }\n                instance.publishState(\"youtube_lang_pref\", \"\");\n            }\n\n            // cc load policy\n            if (cc_load_policy) {\n                var paramSearch = url.search(regex_cc_load_policy) >= 0;\n                if (paramSearch) {\n                    url = url.replace(regex_cc_load_policy, \"cc_load_policy=1\");\n                } else {\n                    url += \"&cc_load_policy=1\";\n                }\n                instance.publishState(\"youtube_cc_load_policy\", true);\n            } else {\n                var paramSearch = url.search(regex_cc_load_policy) >= 0;\n                if (paramSearch) {\n                    url = url.replace(regex_cc_load_policy, \"cc_load_policy=0\");\n                } else {\n                    url += \"&cc_load_policy=0\";\n                }\n                instance.publishState(\"youtube_cc_load_policy\", false);\n            }\n\n            // disable keyboard\n            if (disablekb) {\n                var paramSearch = url.search(regex_disablekb) >= 0;\n                if (paramSearch) {\n                    url = url.replace(regex_disablekb, \"disablekb=1\");\n                } else {\n                    url += \"&disablekb=1\";\n                }\n                instance.publishState(\"youtube_disable_kb\", true);\n            } else {\n                var paramSearch = url.search(regex_disablekb) >= 0;\n                if (paramSearch) {\n                    url = url.replace(regex_disablekb, \"disablekb=0\");\n                } else {\n                    url += \"&disablekb=0\";\n                }\n                instance.publishState(\"youtube_disable_kb\", false);\n            }\n\n            // interface language\n            if (hl) {\n                hl = hl.toLowerCase();\n                var paramSearch = url.search(regex_hl) >= 0;\n                if (paramSearch) {\n                    url = url.replace(regex_hl, \"hl=\" + hl);\n                } else {\n                    url += \"hl=\" + hl;\n                }\n                instance.publishState(\"youtube_interface_lang\", hl);\n            } else {\n                var paramSearch = url.search(regex_hl) >= 0;\n                if (paramSearch) {\n                    url = url.replace(regex_hl, \"hl=\\\"\\\"\");\n                } else {\n                    url += \"&hl=\\\"\\\"\";\n                }\n                instance.publishState(\"youtube_interface_lang\", \"\");\n            }\n\n            // iv load policy\n            if (iv_load_policy) {\n                var paramSearch = url.search(regex_iv_load_policy) >= 0;\n                if (paramSearch) {\n                    url = url.replace(regex_iv_load_policy, \"iv_load_policy=1\");\n                } else {\n                    url += \"&iv_load_policy=1\";\n                }\n                instance.publishState(\"youtube_iv_load_policy\", true);\n            } else {\n                var paramSearch = url.search(regex_iv_load_policy) >= 0;\n                if (paramSearch) {\n                    url = url.replace(regex_iv_load_policy, \"iv_load_policy=0\");\n                } else {\n                    url += \"&iv_load_policy=0\";\n                }\n                instance.publishState(\"youtube_iv_load_policy\", false);\n            }\n\n            // modestbranding\n            if (modestbranding) {\n                var paramSearch = url.search(regex_modestbranding) >= 0;\n                if (paramSearch) {\n                    url = url.replace(regex_modestbranding, \"modestbranding=1\");\n                } else {\n                    url += \"&modestbranding=1\";\n                }\n                instance.publishState(\"youtube_modestbranding\", true);\n            } else {\n                var paramSearch = url.search(regex_modestbranding) >= 0;\n                if (paramSearch) {\n                    url = url.replace(regex_modestbranding, \"modestbranding=0\");\n                } else {\n                    url += \"&modestbranding=0\";\n                }\n                instance.publishState(\"youtube_modestbranding\", false);\n            }\n\n            // playsinline\n            if (playsinline) {\n                var paramSearch = url.search(regex_playsinline) >= 0;\n                if (paramSearch) {\n                    url = url.replace(regex_playsinline, \"playsinline=1\");\n                } else {\n                    url += \"&playsinline=1\";\n                }\n                instance.publishState(\"youtube_playsinline\", true);\n            } else {\n                var paramSearch = url.search(regex_playsinline) >= 0;\n                if (paramSearch) {\n                    url = url.replace(regex_playsinline, \"playsinline=0\");\n                } else {\n                    url += \"&playsinline=0\";\n                }\n                instance.publishState(\"youtube_playsinline\", false);\n            }\n\n            // update url\n            var sourceObject = {src: url, type: 'video/youtube'};\n            videoPlayer.src(sourceObject);\n            $(\"#\" + instance.data.elementId + \"_youtube_api\").attr(\"src\", \"\" + url + \"\");\n\n            // remove the annoying spinner\n            setTimeout(function() {\n                $('.vjs-loading-spinner').remove();\n            }, 500);\n        }\n\n        // run when the youtube videoElement is available\n        if (videoElement) {\n            var isPlaying = !videoPlayer.paused();\n            if (isPlaying) {\n                controlProperties();\n            } else {\n                videoPlayer.one(\"play\", controlProperties);\n                videoPlayer.play();\n            }\n        } else {\n            console.log (\"No element found to set controls for, you should have the YouTube player visible and a media loaded\");\n        }\n\n    });\n\n}"},"fields":{"ABo":{"caption":"Show controls","name":"controls","rank":1,"editor":"DynamicValue","value":"boolean","default_val":true},"ABp":{"caption":"Show full screen icon","name":"fs","rank":2,"editor":"DynamicValue","value":"boolean","default_val":true},"ABq":{"caption":"Color","name":"color","rank":3,"editor":"DynamicValue","value":"text","default_val":"red"},"ABs":{"caption":"Language preference","name":"cc_lang_pref","rank":4,"editor":"DynamicValue","value":"text","optional":true},"ABt":{"caption":"CC load policy","name":"cc_load_policy","rank":5,"editor":"DynamicValue","value":"boolean","default_val":false,"optional":false},"ABu":{"caption":"Disable keyboard","name":"disablekb","rank":6,"editor":"DynamicValue","value":"boolean","default_val":false},"ABv":{"caption":"Interface language","name":"hl","rank":7,"editor":"DynamicValue","value":"text","optional":true},"ABw":{"caption":"IV load policy","name":"iv_load_policy","rank":8,"editor":"DynamicValue","value":"boolean","default_val":true},"ABx":{"caption":"Prevent YouTube logo","name":"modestbranding","rank":9,"editor":"DynamicValue","value":"boolean","default_val":true},"ABy":{"caption":"Playsinline","name":"playsinline","rank":10,"editor":"DynamicValue","value":"boolean","default_val":false},"AMo":{"caption":"BE CAREFUL WITH THIS ACTION. YouTube controls cannot be dynamically set when using the YouTube API (which this plugin uses and is a limitation). They are set when the player is first initialized and will automatically appear when a YouTube video is loaded. However, it is possible to manipulate the URL to enable/disable various controls, this is what this action does but the drawback in doing so is that some videoJS events will break. You may not see the isPlaying state update anymore or the isStarted, isEnded or isPaused events trigger if you run this action. I will endeavour to find a solution to this problem.","name":"info","rank":0,"editor":"Label"}}},"ACY":{"caption":"Set playback rate","code":{"fn":"function(instance, properties, context) {\n\n    // when videoJS is ready\n    instance.data.videoJSReady().then(function() {\n\n        // get data\n        var videoPlayer = instance.data.videoPlayer;\n        var playbackRate = properties.playbackRate;\n\n        // set playback rate\n        if (playbackRate) {\n            videoPlayer.playbackRate(playbackRate);\n            instance.publishState(\"playback_rate\", playbackRate);\n        }\n\n    });\n\n}"},"fields":{"ACZ":{"caption":"Playback rate","name":"playbackRate","rank":0,"editor":"DynamicValue","value":"number","default_val":1}}},"ACc":{"caption":"Set volume","code":{"fn":"function(instance, properties, context) {\n\n    // when videoJS is ready\n    instance.data.videoJSReady().then(function() {\n\n        // get data\n        var videoPlayer = instance.data.videoPlayer;\n        var newVolume = properties.volume;\n        var currentVolume = videoPlayer.volume();\n\n        // set playback rate\n        if (newVolume) {\n            videoPlayer.volume(newVolume);\n        }\n\n    });\n\n}"},"fields":{"ACd":{"caption":"Volume","name":"volume","rank":0,"editor":"DynamicValue","value":"number","default_val":0.5}}},"ADc":{"caption":"Execute method","code":{"fn":"function(instance, properties, context) {\n\n    // when videoJS is ready\n    instance.data.videoJSReady().then(function() {\n\n        // get data\n        var videoPlayer = instance.data.videoPlayer;\n        var command = properties.command;\n\n        // run method\n        new Function(\"videojs.players.\" + instance.data.elementId + \".\" + command + \"\")();\n\n    });\n\n}"},"fields":{"ADg":{"caption":"Method","name":"command","rank":1,"editor":"DynamicValue","value":"text"},"AkV":{"caption":"This action allows you to run any of the videoJS methods which are available and documented here under the Methods section: https://docs.videojs.com/player.","name":"info","rank":0}}},"ADe":{"caption":"Play all medias","code":{"fn":"function(instance, properties, context) {\n\n    // when videoJS is ready\n    instance.data.videoJSReady().then(function() {\n\n        var allVideos = document.querySelectorAll('[id^=videoElement_][aria-label=\"Video Player\"]');\n\n        for (var i = 0; i < allVideos.length; i++) {\n            new Function(\"videojs.players.\" + allVideos[i].id + \".play();\")();\n        }\n\n    });\n\n}"},"fields":{"AHb":{"caption":"This action ignores the Element selection above so you can choose any from the list. It finds all video elements on your page and sends a Play command to each.","name":"info","rank":0,"editor":"Label"}}},"ADf":{"caption":"Pause all medias","code":{"fn":"function(instance, properties, context) {\n    \n    // get data\n    var pause_current_player = properties.pause_current_player;\n    \n    // when videoJS is ready\n    instance.data.videoJSReady().then(function() {\n\n        var allVideos = document.querySelectorAll('[id^=videoElement_][aria-label=\"Video Player\"]');\n\n        for (var i = 0; i < allVideos.length; i++) {\n            if (!pause_current_player) {\n                if (allVideos[i].id != instance.data.elementId) {\n                    new Function(\"videojs.players.\" + allVideos[i].id + \".pause();\")();\n                }\n            } else {\n                new Function(\"videojs.players.\" + allVideos[i].id + \".pause();\")();\n            }\n        }\n\n        // this variable will make the viewport autoplay feature not start playing the video again when the video has been manually paused and the page scrolls\n        instance.data.viewport_hasPausedOnce = true;\n\n    });\n\n}"},"fields":{"Aqa":{"caption":"Pause current player","name":"pause_current_player","rank":0,"editor":"DynamicValue","value":"boolean","default_val":true}}},"ADr":{"caption":"Trigger time event (single)","code":{"fn":"function(instance, properties, context) {\n\n    // when videoJS is ready\n    instance.data.videoJSReady().then(function() {\n\n        // get data\n        var videoPlayer = instance.data.videoPlayer;\n        var trigger_using = properties.trigger_using;\n        var interval = properties.interval;\n        var pause = properties.pause;\n        var once = properties.once;\n\n        // set global variable here to make sure the event doesn't trigger multiple times\n        var triggered = false;\n\n        // function to run\n        var timeUpdate = function() {\n\n            if (trigger_using === \"Percentage\") {\n\n                if (((videoPlayer.currentTime() / videoPlayer.duration() * 100) > interval) && (!triggered)) {\n\n                    // set flag to stop firing multiple times\n                    triggered = true;\n\n                    if (pause) {\n                        videoPlayer.pause();\n                    }\n                    instance.triggerEvent('time_event');\n\n                    if (once) {\n                        videoPlayer.off('timeupdate', timeUpdate);\n                    }\n\n                    // when percentage go past the triggered time (by a threshold), then change flag back to false so it refires again                        \n                } else if (((videoPlayer.currentTime() / videoPlayer.duration() * 100) < interval + 0.01) && (triggered)) {\n                    triggered = false;\n                }\n            }\n\n            if (trigger_using === \"Seconds\") {\n\n                if ((videoPlayer.currentTime() > interval) && (!triggered)) {\n\n                    // set flag to stop firing multiple times\n                    triggered = true;\n\n                    if (pause) {\n                        videoPlayer.pause();\n                    }\n                    instance.triggerEvent('time_event');\n\n                    if (once) {\n                        videoPlayer.off('timeupdate', timeUpdate);\n                    }\n\n                    // when seconds go past the triggered time (by a threshold), then change flag back to false so it refires again\n                } else if ((videoPlayer.currentTime() < interval + 0.3) && (triggered)) {\n                    triggered = false;\n                }\n            }\n\n        }\n\n        if ((interval) && (trigger_using)) {\n            videoPlayer.on('timeupdate', timeUpdate);\n        }\n\n    });\n\n}"},"fields":{"ADs":{"caption":"Trigger using","name":"trigger_using","rank":0,"editor":"Dropdown","default_val":"Seconds"},"ADt":{"caption":"Interval (single)","name":"interval","rank":1,"editor":"DynamicValue","value":"number","optional":false},"ADy":{"caption":"Pause","name":"pause","rank":2,"editor":"DynamicValue","value":"boolean","default_val":false},"AGR":{"caption":"One time event","name":"once","rank":3,"editor":"DynamicValue","value":"boolean","default_val":true}}},"AED":{"caption":"Populate state \"Video element Id's\"","code":{"fn":"function(instance, properties, context) {\n\n    // when videoJS is ready\n    instance.data.videoJSReady().then(function() {\n\n        // get cookie\n        function getCookie(cname) {\n            var name = cname + \"=\";\n            var decodedCookie = decodeURIComponent(document.cookie);\n            var ca = decodedCookie.split(';');\n            for(var i = 0; i <ca.length; i++) {\n                var c = ca[i];\n                while (c.charAt(0) == ' ') {\n                    c = c.substring(1);\n                }\n                if (c.indexOf(name) == 0) {\n                    return c.substring(name.length, c.length);\n                }\n            }\n            return \"\";\n        }\n\n        var idArray = getCookie(\"elements\").split(\",\");\n        instance.publishState(\"element_ids\", idArray);\n\n    });\n\n}"}},"AFb":{"caption":"Load subtitles","code":{"fn":"function(instance, properties, context) {\n\n    // when videoJS is ready\n    instance.data.videoJSReady().then(function() {\n\n        // get data\n        var videoPlayer = instance.data.videoPlayer;\n        var src = properties.src;\n        var format = properties.format ? properties.format.toLowerCase() : '';\n        var content = properties.content;\n        var kind = properties.kind.toLowerCase();\n        var label = properties.label ? properties.label.charAt(0).toUpperCase() + properties.label.slice(1) : 'Default';\n        var isdefault = properties.default;\n        var srclang = properties.srclang ? properties.srclang : 'en';\n        var mode = properties.mode;\n        var keep_previous_visible = properties.keep_previous_visible;\n\n        var background_color = properties.background_color ? properties.background_color : 'Black';\n        var background_opacity = properties.background_opacity ? properties.background_opacity : 'Transparent';\n        var text_color = properties.text_color;\n        var edge_style = properties.edge_style;\n        var font_family = properties.font_family;\n        var font_percent = properties.font_percent;\n        var text_opacity = properties.text_opacity;\n        var window_color = properties.window_color;\n        var window_opacity = properties.window_opacity;\n\n        // these are also used within initialize in the textTrack change event\n        instance.data.subBottom = properties.bottom ? properties.bottom : '5px';\n        instance.data.subPadding = properties.padding ? properties.padding : '5px';\n        instance.data.subPosition = properties.position ? properties.position.toLowerCase() : 'bottom';\n        instance.data.subLineHeight = properties.line_height ? properties.line_height : '1.4';\n\n        // set the styling option values\n        if (background_color == \"Black\") {\n            background_color = \"#000\";\n        } else if (background_color == \"Blue\") {\n            background_color = \"#00F\";\n        } else if (background_color == \"Cyan\") {\n            background_color = \"#0FF\";\n        } else if (background_color == \"Green\") {\n            background_color = \"#0F0\";\n        } else if (background_color == \"Magenta\") {\n            background_color = \"#F0F\";\n        } else if (background_color == \"Red\") {\n            background_color = \"#F00\";\n        } else if (background_color == \"White\") {\n            background_color = \"#FFF\";\n        } else if (background_color == \"Yellow\") {\n            background_color = \"#FF0\";\n        }\n\n        if (text_color == \"Black\") {\n            text_color = \"#000\";\n        } else if (text_color == \"Blue\") {\n            text_color = \"#00F\";\n        } else if (text_color == \"Cyan\") {\n            text_color = \"#0FF\";\n        } else if (text_color == \"Green\") {\n            text_color = \"#0F0\";\n        } else if (text_color == \"Magenta\") {\n            text_color = \"#F0F\";\n        } else if (text_color == \"Red\") {\n            text_color = \"#F00\";\n        } else if (text_color == \"White\") {\n            text_color = \"#FFF\";\n        } else if (text_color == \"Yellow\") {\n            text_color = \"#FF0\";\n        }\n\n        if (window_color == \"Black\") {\n            window_color = \"#000\";\n        } else if (window_color == \"Blue\") {\n            window_color = \"#00F\";\n        } else if (window_color == \"Cyan\") {\n            window_color = \"#0FF\";\n        } else if (window_color == \"Green\") {\n            window_color = \"#0F0\";\n        } else if (window_color == \"Magenta\") {\n            window_color = \"#F0F\";\n        } else if (window_color == \"Red\") {\n            window_color = \"#F00\";\n        } else if (window_color == \"White\") {\n            window_color = \"#FFF\";\n        } else if (window_color == \"Yellow\") {\n            window_color = \"#FF0\";\n        }\n\n        if (background_opacity == \"Opaque\") {\n            background_opacity = \"1\";\n        } else if (background_opacity == \"Semi-Transparent\") {\n            background_opacity = \"0.5\";\n        } else if (background_opacity == \"Transparent\") {\n            background_opacity = \"0\";\n        }\n\n        if (text_opacity == \"Opaque\") {\n            text_opacity = \"1\";\n        } else if (text_opacity == \"Semi-Transparent\") {\n            text_opacity = \"0.5\";\n        }\n\n        if (window_opacity == \"Opaque\") {\n            window_opacity = \"1\";i\n        } else if (window_opacity == \"Semi-Transparent\") {\n            window_opacity = \"0.5\";\n        } else if (window_opacity == \"Transparent\") {\n            window_opacity = \"0\";\n        }\n\n        if (font_family == \"Proportional Sans-Serif\") {\n            font_family = \"proportionalSansSerif\";\n        } else if (font_family == \"Monospace Sans-Serif\") {\n            font_family = \"monospaceSansSerif\";\n        } else if (font_family == \"Proportional Serif\") {\n            font_family = \"proportionalSerif\";\n        } else if (font_family == \"Monospace Serif\") {\n            font_family = \"monospaceSerif\";\n        } else if (font_family == \"Casual\") {\n            font_family = \"casual\";\n        } else if (font_family == \"Script\") {\n            font_family = \"script\";\n        } else if (font_family == \"Small Caps\") {\n            font_family = \"small-caps\";\n        }\n\n        if (instance.data.subPosition == \"bottom\") {\n            instance.data.subPosition = \"absolute\";\n        } else if (instance.data.subPosition == \"top\") {\n            instance.data.subPosition = \"initial\";\n        } else if (instance.data.subPosition == \"middle\") {\n            instance.data.subPosition = \"absolute\";\n            instance.data.subHeight = \"50%\";\n        }\n\n        // generate a random id just for the id attribute in the track tag\n        var randomId = Math.floor((Math.random() * 100000) + 1);\n        var trackId = 'track_' + randomId;\n        var source;\n\n        // format time function (00:00:00)\n        function secondsToTime(secs) {\n            var hours = Math.floor(secs/3600);\n            (hours >= 1) ? secs = secs - (hours*3600) : hours = '00';\n            ((hours > 0) && (hours < 10)) ? hours = '0'+hours : hours;\n\n            var min = Math.floor(secs/60);\n            (min >= 1) ? secs = secs - (min*60) : min = '00';\n            ((secs > 0) && (secs < 10)) ? secs = '0'+(secs).toFixed(3) : secs = (secs).toFixed(3);\n            ((min > 0) && (min < 10)) ? min = '0'+min : min;\n\n            return hours+':'+min+':'+secs;\n        };\n\n        // used for converting srt to vtt\n        function convertSrtCue(caption) {\n\n            var cue = \"\";\n            var s = caption.split(/\\n/);\n\n            while (s.length > 3) {\n                for (var i = 3; i < s.length; i++) {\n                    s[2] += \"\\n\" + s[i]\n                }\n                s.splice(3, s.length - 3);\n            }\n\n            var line = 0;\n\n            if (!s[0].match(/\\d+:\\d+:\\d+/) && s[1].match(/\\d+:\\d+:\\d+/)) {\n                cue += s[0].match(/\\w+/) + \"\\n\";\n                line += 1;\n            }\n\n            if (s[line].match(/\\d+:\\d+:\\d+/)) {\n                var m = s[1].match(/(\\d+):(\\d+):(\\d+)(?:,(\\d+))?\\s*--?>\\s*(\\d+):(\\d+):(\\d+)(?:,(\\d+))?/);\n                if (m) {\n                    cue += m[1]+\":\"+m[2]+\":\"+m[3]+\".\"+m[4]+\" --> \"\n                        +m[5]+\":\"+m[6]+\":\"+m[7]+\".\"+m[8]+\"\\n\";\n                    line += 1;\n                } else {\n                    return \"\";\n                }\n            } else {\n                return \"\";\n            }\n\n            if (s[line]) {\n                cue += s[line] + \"\\n\\n\";\n            }\n            return cue;\n        }\n\n        // used for converting srt to vtt\n        function srt2webvtt(data) {\n\n            var srt = data.replace(/\\r+/g, '');\n            srt = srt.replace(/^\\s+|\\s+$/g, '');\n\n            var cuelist = srt.split('\\n\\n');\n            var result = \"\";\n\n            if (cuelist.length > 0) {\n                result += \"WEBVTT\\n\\n\";\n                for (var i = 0; i < cuelist.length; i=i+1) {\n                    result += convertSrtCue(cuelist[i]);\n                }\n            }\n            return result;\n        }\n\n        // function to get file extension\n        function getExtension(path) {\n            var basename = path.split(/[\\\\/]/).pop();\n            var pos = basename.lastIndexOf(\".\");\n            if (basename === \"\" || pos < 1) {\n                return \"\";\n            }\n            return basename.slice(pos + 1); // return ext\n        }\n\n        // get file extension when using the file url, or use the format value\n        if (src) {\n            var ext = getExtension(src).toLowerCase();\n            if (!ext && !format) {\n                alert(\"When supplying a subtitles URL that doesn't contain the filename, you need to select a format of either SRT / VTT\");\n            }\n            if (!ext && format) {\n                ext = format;\n            }\n            if (ext && format) {\n                ext = format;\n            }\n        }\n\n        // main function to process, load and manipulate the subtitles\n        function processSubs(source) {\n\n            // options\n            var trackOptions = {\n                src: \"\" + source + \"\",\n                kind: \"\" + kind + \"\",\n                label: \"\" + label + \"\",\n                default: isdefault,\n                srclang: \"\" + srclang + \"\",\n                mode: \"\" + mode + \"\",\n                id: trackId\n            }\n\n            // disable any subtitle tracks that may already be in place, so the new one becomes active upon loading if keep_previous_visible is false\n            if (!keep_previous_visible) {\n                var textTrack = videoPlayer.textTracks();\n                for (var i = 0; i < textTrack.length; i++) {\n                    var track = textTrack[i];\n                    track.mode = 'disabled';\n                }\n            } else {\n                var textTrack = videoPlayer.textTracks();\n                for (var i = 0; i < textTrack.length; i++) {\n                    var track = textTrack[i];\n                    track.mode = 'showing';\n                }\n            }\n\n            // add new track\n            videoPlayer.addRemoteTextTrack(trackOptions, false);\n\n            // event listener for cue changes, this gets recreated within initiliaze when the track is changed from the control bar\n            textTrack = videoPlayer.textTracks()[0];\n            textTrack.addEventListener('cuechange', () => {\n                var activeCue = textTrack.activeCues[0];\n                try {\n\n                    var currentCaption = activeCue.text;\n\n                    // extracts text between any tags that may exist like <v>xxx</v>\n                    if (currentCaption.match(/(<.*?>)(.*?)(<\\/.*?>)/)) {\n                        currentCaption = currentCaption.match(/(<.*?>)(.*?)(<\\/.*?>)/)[2];\n                    }\n\n                    instance.publishState(\"subtitles_current_caption\", currentCaption);\n                    instance.publishState(\"subtitles_current_starttime\", activeCue.startTime);\n                    instance.publishState(\"subtitles_current_endtime\", activeCue.endTime);\n                    instance.publishState(\"subtitles_current_starttime_text\", secondsToTime(activeCue.startTime));\n                    instance.publishState(\"subtitles_current_endtime_text\", secondsToTime(activeCue.endTime));\n\n                    document.getElementById('' + instance.data.elementId + '').getElementsByClassName('vjs-text-track-cue')[0].style.inset = null;\n                    document.getElementById('' + instance.data.elementId + '').getElementsByClassName('vjs-text-track-cue')[0].style.bottom = \"\" + instance.data.subBottom + \"\";\n                    document.getElementById('' + instance.data.elementId + '').getElementsByClassName('vjs-text-track-cue')[0].style.top = \"\" + instance.data.subHeight + \"\";\n                    document.getElementById('' + instance.data.elementId + '').getElementsByClassName('vjs-text-track-cue')[0].style.padding = \"\" + instance.data.subPadding + \"\";\n                    document.getElementById('' + instance.data.elementId + '').getElementsByClassName('vjs-text-track-cue')[0].style.height = \"\" + instance.data.subHeight + \"\";\n                    document.getElementById('' + instance.data.elementId + '').getElementsByClassName('vjs-text-track-cue')[0].childNodes[0].style.padding = \"\" + instance.data.subPadding + \"\";\n                    document.getElementById('' + instance.data.elementId + '').getElementsByClassName('vjs-text-track-cue')[0].childNodes[0].style.lineHeight = \"\" + instance.data.subLineHeight + \"\";\n                    document.getElementById('' + instance.data.elementId + '').getElementsByClassName('vjs-text-track-cue')[0].style.position = \"\" + instance.data.subPosition + \"\";\n                }\n                catch(err) {\n                    // error occassionally occurs but doesn't stop this from working so we just catch it here\n                }\n            });\n\n            var settings = videoPlayer.textTrackSettings;\n            settings.setValues({\n                \"backgroundColor\": \"\" + background_color + \"\",\n                \"backgroundOpacity\": \"\" + background_opacity + \"\",\n                \"color\": \"\" + text_color + \"\",\n                \"edgeStyle\": \"\" + edge_style + \"\",\n                \"fontFamily\": \"\" + font_family + \"\",\n                \"fontPercent\": font_percent,\n                \"textOpacity\": \"\" + text_opacity + \"\",\n                \"windowColor\": \"\" + window_color + \"\",\n                \"windowOpacity\": \"\" + window_opacity + \"\"\n            });\n            settings.updateDisplay();\n\n            // declare arrays\n            var sections = [];\n            var startTimes_formatted = [];\n            var endTimes_formatted = [];\n            var startTimes = [];\n            var endTimes = [];\n            var captions = [];\n\n            // if you have to modify this section then do the same in the change event within initialize\n            $.get(source, function(data) {\n\n                // read all captions into an array\n                var items = data.split(/\\r?\\n/);\n\n                // add data to state\n                var formatted_subs = '';\n                instance.publishState(\"subtitles_raw_vtt\", data);\n\n                // loop through all lines\n                var lastTextItem = \"\";\n                $.each(items, function( index, value ) {\n\n                    var item = items[index].split(/\\r?\\n/);\n                    var last = index == items.length -1;\n\n                    // filters\n                    item.filter(function(text) {\n\n                        // extracts text between any tags like <v>xxx</v>\n                        if (text.match(/(<.*?>)(.*?)(<\\/.*?>)/)) {\n                            text = text.match(/(<.*?>)(.*?)(<\\/.*?>)/)[2];\n                        }\n\n                        // match the subtitles text, looks at previous text item to add to if neccessary (also matches hebrew/arabic text)\n                        if ((text.match(/[A-Za-z]/) || text.match(/[־׀׃א-״؛-ي٭-ە‏ײַ-ﳝﶈ-ﷺﺂ-ﻼ]/)) && text.match(/^((?!line:).)*$/) && text.match(/^((?!position:).)*$/) && text.match(/^((?!size:).)*$/) && text.match(/^((?!align:).)*$/) && text.match(/^((?!line-).)*$/) && text.match(/^((?!vertical:).)*$/)) {\n                            if ((!text.match(/^[0-9 ]*$/)) && (!text.includes(\"WEBVTT\")) || text.match(/[־׀׃א-״؛-ي٭-ە‏ײַ-ﳝﶈ-ﷺﺂ-ﻼ]/)) {\n\n                                if (lastTextItem) {\n                                    captions[captions.length - 1] = lastTextItem + \"\\n\" + text;\n                                } else {\n                                    captions.push(text);\n                                }\n\n                                lastTextItem = text;\n                                formatted_subs = '' + formatted_subs + ' ' + text + '';\n                            }\n                        } else {\n                            lastTextItem = \"\";\n                        }\n\n                        // match the times, split into start and end times\n                        if (text.match(/^[0-9]*:/)) {\n\n                            var startTime = text.substr(0, text.indexOf('-->')).trim();\n                            var endTime = text.substr(text.indexOf(\"-->\") + 3).trim();\n                            startTimes_formatted.push(startTime);\n                            endTimes_formatted.push(endTime)\n\n                            // these output a list of numbers which can be used to set video playback time\n                            startTimes.push(startTime.split(':').reduce((acc,time) => (60 * acc) + +time).toFixed(3));\n                            endTimes.push(endTime.split(':').reduce((acc,time) => (60 * acc) + +time).toFixed(3));\n                        }\n\n                    });\n\n                    // puts formatted text into state\n                    if (last) {\n                        instance.publishState(\"subtitles_formatted\", formatted_subs.trim());\n                    }\n\n                });\n\n                // add sections to states\n                instance.publishState(\"subtitles_starttimes_formatted\", startTimes_formatted);\n                instance.publishState(\"subtitles_endtimes_formatted\", endTimes_formatted);\n                instance.publishState(\"subtitles_starttimes\", startTimes);\n                instance.publishState(\"subtitles_endtimes\", endTimes);\n                instance.publishState(\"subtitles_captions\", captions);\n\n            });\n\n        }\n\n        // set subtitles source and trigger processSubs function accordingly\n        if (src) {\n\n            if (ext == \"srt\") {\n                function showGetResult (src, callback) {\n                    return $.get(src, {}, callback);\n                }\n                showGetResult(src, function(data) {\n                    var webvtt = srt2webvtt(data);\n                    var vttBlob = new Blob([webvtt], {type : 'text/vtt'});\n                    source = URL.createObjectURL(vttBlob);\n\n                    // launch main function\n                    processSubs(source);\n                });\n            }\n\n            if (ext == \"vtt\") {\n\n                // launch main function\n                processSubs(src);\n            }\n            instance.publishState(\"subtitles\", \"\" + src + \"\");\n\n        } else if (content && !src) {\n            var vttBlob = new Blob([content], {type : 'text/vtt'});\n            source = URL.createObjectURL(vttBlob);\n            instance.publishState(\"subtitles\", \"No file url specified as using Content\");\n\n            // launch main function\n            processSubs(source);\n        }\n\n    });\n\n}"},"fields":{"AFd":{"caption":"Subtitles file","name":"src","rank":1,"editor":"DynamicValue","value":"file","optional":true},"AFe":{"caption":"Kind","name":"kind","rank":6,"editor":"Dropdown","default_val":"Subtitles"},"AFf":{"caption":"Label","name":"label","rank":7,"editor":"DynamicValue","value":"text","optional":true},"AFg":{"caption":"Default","name":"default","rank":8,"editor":"DynamicValue","value":"boolean","default_val":true},"AFh":{"caption":"Language","name":"srclang","rank":9,"editor":"DynamicValue","value":"text","default_val":"en"},"AFi":{"caption":"Mode","name":"mode","rank":10,"editor":"Dropdown","default_val":"showing"},"AMZ":{"caption":"Content","name":"content","rank":4,"editor":"DynamicValue","value":"text","is_list":false,"optional":true},"AcG":{"caption":"-----------------------------------------------------------------------------","name":"line","rank":12,"editor":"Label"},"AcH":{"caption":"STYLING OPTIONS:","name":"info","rank":13,"editor":"Label"},"AcI":{"caption":"Background color","name":"background_color","rank":14,"editor":"Dropdown","value":"text","default_val":"Black"},"AcK":{"caption":"Text color","name":"text_color","rank":16,"editor":"Dropdown","default_val":"White"},"AcL":{"caption":"Edge style","name":"edge_style","rank":17,"editor":"Dropdown","default_val":"Uniform"},"AcM":{"caption":"Font family","name":"font_family","rank":18,"editor":"Dropdown","value":"text","default_val":"Proportional Sans-Serif"},"AcP":{"caption":"Window color","name":"window_color","rank":21,"editor":"Dropdown","default_val":"Black"},"AcR":{"caption":"Background opacity","name":"background_opacity","rank":15,"editor":"Dropdown","default_val":"Transparent"},"AcS":{"caption":"Text opacity","name":"text_opacity","rank":20,"editor":"Dropdown","default_val":"Opaque"},"AcT":{"caption":"Window opacity","name":"window_opacity","rank":22,"editor":"Dropdown","default_val":"Transparent"},"AcU":{"caption":"Font percent","name":"font_percent","rank":19,"editor":"DynamicValue","value":"text","default_val":"1.00"},"AcW":{"caption":"Bottom","name":"bottom","rank":23,"editor":"DynamicValue","value":"text","default_val":"5px"},"AcX":{"caption":"Padding","name":"padding","rank":24,"editor":"DynamicValue","value":"text","default_val":"5px"},"AiF":{"caption":"----------------------------------------------------------------------------","name":"line","rank":3,"editor":"Label"},"AiG":{"caption":"----------------------------------------------------------------------------","name":"line","rank":5,"editor":"Label"},"AiH":{"caption":"Using this action, there are 2 ways to load subtitles. You can either supply the URL to a single SRT/VTT file or load the content directly. When using the Content field, that must be in VTT format. You should run this action after a video has already been loaded. If you want to load multiple versions of subtitles then this action can be run multiple times. Note: When a new video is loaded into the player, all subtitles will be removed.","name":"info","rank":0,"editor":"Label"},"Ail":{"caption":"Position","name":"position","rank":25,"editor":"Dropdown","value":"text","default_val":"Bottom"},"Aim":{"caption":"Line height","name":"line_height","rank":26,"editor":"DynamicValue","value":"text","default_val":"1.4"},"Ais":{"caption":"Keep previous visible","name":"keep_previous_visible","rank":11,"editor":"DynamicValue","value":"boolean","default_val":false},"Ake":{"caption":"Format","name":"format","rank":2,"editor":"Dropdown","optional":true}}},"AFj":{"caption":"Toggle subtitles","code":{"fn":"function(instance, properties, context) {\n\n    // when videoJS is ready\n    instance.data.videoJSReady().then(function() {\n\n        // get data\n        var videoPlayer = instance.data.videoPlayer;\n        var show = properties.show;\n\n        // change the mode for any subtitles\n        var tracks = videoPlayer.textTracks();\n\n        for (let i = 0; i < tracks.length; i++) {\n            var track = tracks[i];\n\n            // you can use this to change the mode based on criteria (if asked for)\n            //if (track.kind === 'captions' && track.language === 'en') {\n            if (show) {\n                track.mode = 'showing';\n            } else {\n                track.mode = 'disabled';\n            }\n            //}\n        }\n\n    });\n\n}"},"fields":{"AFk":{"caption":"Show","name":"show","rank":0,"editor":"DynamicValue","value":"boolean","default_val":false}}},"AFr":{"caption":"Remove subtitles","code":{"fn":"function(instance, properties, context) {\n\n    // when videoJS is ready\n    instance.data.videoJSReady().then(function() {\n\n        // get data\n        var videoPlayer = instance.data.videoPlayer;\n        var label = properties.label.charAt(0).toUpperCase() + properties.label.slice(1);\n\n        // remove the text track by using the label name\n        var tracks = videoPlayer.textTracks();\n\n        for (var i = 0; i < tracks.length; i++) {\n            var track = tracks[i];\n\n            if (track.label == label) {\n                videoPlayer.removeRemoteTextTrack(track)\n                instance.publishState(\"subtitles\", \"\");\n            }\n        }\n\n    });\n\n}"},"fields":{"AFs":{"caption":"Label","name":"label","rank":0,"editor":"DynamicValue","value":"text"}}},"AGS":{"caption":"Trigger time event (list)","code":{"fn":"function(instance, properties, context) {\n\n    // when videoJS is ready\n    instance.data.videoJSReady().then(function() {\n\n        // get data\n        var videoPlayer = instance.data.videoPlayer;\n        var trigger_using = properties.trigger_using;\n        var interval = properties.interval.get(0, properties.interval.length());\n        var pause = properties.pause;\n        var once = properties.once;\n        var ignore_before_time = properties.ignore_before_time;\n\n        // loop through each value in list passed in and create the time update event for each time\n        for (i = 0; i < interval.length; i++) {\n\n            // sets state once loaded (useful for long lists)\n            if (i == interval.length -1) {\n                instance.publishState(\"loading_time_events\", false);\n            } else {\n                instance.publishState(\"loading_time_events\", true);\n            }\n\n            if ((interval[i] > ignore_before_time) || !ignore_before_time) {\n                (function () {\n\n                    var value = interval[i];\n\n                    // set global variable here to make sure the event doesn't trigger multiple times\n                    var triggered = false;\n\n                    // function to run\n                    var timeUpdate = function () {\n\n                        if (trigger_using === \"Percentage\") {\n\n                            if (((videoPlayer.currentTime() / videoPlayer.duration() * 100) > value) && (!triggered)) {\n\n                                // set flag to stop firing multiple times\n                                triggered = true;\n\n                                if (pause) {\n                                    videoPlayer.pause();\n                                }\n                                instance.triggerEvent('time_event');\n\n                                if (once) {\n                                    videoPlayer.off('timeupdate', timeUpdate);\n                                }\n\n                                // when percentage go past the triggered time (by a threshold), then change flag back to false so it refires again                        \n                            } else if (((videoPlayer.currentTime() / videoPlayer.duration() * 100) < value + 0.01) && (triggered)) {\n                                triggered = false;\n                            }\n                        }\n\n                        if (trigger_using === \"Seconds\") {\n\n                            if ((videoPlayer.currentTime() > value) && (!triggered)) {\n\n                                // set flag to stop firing multiple times\n                                triggered = true;\n\n                                if (pause) {\n                                    videoPlayer.pause();\n                                }\n                                instance.triggerEvent('time_event');\n\n                                if (once) {\n                                    videoPlayer.off('timeupdate', timeUpdate);\n                                }\n\n                                // when seconds go past the triggered time (by a threshold), then change flag back to false so it refires again\n                            } else if ((videoPlayer.currentTime() < value + 0.3) && (triggered)) {\n                                triggered = false;\n                            }\n                        }\n\n                    }\n\n                    videoPlayer.on('timeupdate', timeUpdate);\n\n                }());\n            }\n\n        }\n\n    });\n\n}"},"fields":{"AGT":{"caption":"Intervals (list)","name":"interval","rank":1,"editor":"DynamicValue","value":"number","is_list":true},"AGX":{"caption":"Trigger using","name":"trigger_using","rank":0,"editor":"Dropdown","default_val":"Seconds"},"AGY":{"caption":"Pause","name":"pause","rank":2,"editor":"DynamicValue","value":"boolean","default_val":false},"AGZ":{"caption":"One time event","name":"once","rank":3,"editor":"DynamicValue","value":"boolean","default_val":true},"Ajl":{"caption":"Ignore before time","name":"ignore_before_time","rank":4,"editor":"DynamicValue","value":"number","optional":true}}},"AGh":{"caption":"Set VideoJS controls","code":{"fn":"function(instance, properties, context) {\n\n    // when videoJS is ready\n    instance.data.videoJSReady().then(function() {\n\n        // get data\n        var videoPlayer = instance.data.videoPlayer;\n        var seek_enabled = properties.seek_enabled;\n        var seek_back = properties.seek_back;\n        var seek_forward = properties.seek_forward;\n        var remaining_time = properties.remaining_time;\n        var full_screen = properties.full_screen;\n        var progress_control_bar = properties.progress_control_bar;\n        var playback_rate = properties.playback_rate;\n        var use_small_font_size = properties.use_small_font_size;\n        var picture_in_picture = properties.picture_in_picture;\n        var play_button = properties.play_button;\n        var volume_panel = properties.volume_panel;\n        var hls_quality = properties.hls_quality;\n        var control_bar_opacity = properties.control_bar_opacity;\n\n        // this will wait for the control bar to become available\n        if (document.getElementById('' + instance.data.elementId + '').getElementsByClassName('vjs-control-bar').length) {\n\n            // set seek values\n            if (seek_enabled) {\n                if ((seek_back) && (seek_forward)) {\n                    videoPlayer.controlBar.seekBack.hide();\n                    videoPlayer.controlBar.seekForward.hide();\n\n                    videoPlayer.seekButtons( {\n                        forward: seek_forward,\n                        back: seek_back\n                    });\n\n                } else {\n                    videoPlayer.controlBar.seekBack.show();\n                    videoPlayer.controlBar.seekForward.show();\n                }\n            } else {\n                videoPlayer.controlBar.seekBack.hide();\n                videoPlayer.controlBar.seekForward.hide();\n            }\n\n            // set remaining time\n            if (remaining_time) {\n                videoPlayer.controlBar.remainingTimeDisplay.show();\n            } else {\n                videoPlayer.controlBar.remainingTimeDisplay.hide();\n            }\n\n            // set full screen\n            if (full_screen) {\n                videoPlayer.controlBar.fullscreenToggle.show();\n            } else {\n                videoPlayer.controlBar.fullscreenToggle.hide();\n            }\n\n            // set progress control bar\n            if (progress_control_bar) {\n                videoPlayer.controlBar.progressControl.show();\n            } else {\n                videoPlayer.controlBar.progressControl.hide();\n            }\n\n            // set playback rate\n            if (playback_rate) {\n                videoPlayer.controlBar.playbackRateMenuButton.show();\n                if (use_small_font_size) {\n                    $('.vjs-playback-rate-value').css('font-size', '1.1em');\n                    $('.vjs-playback-rate-value').css('line-height', '2.8');\n                }\n            } else {\n                videoPlayer.controlBar.playbackRateMenuButton.hide();\n            }\n\n            // set picture in picture (doesn't work in firefox)\n            if (navigator.userAgent.toLowerCase().indexOf('firefox') > - 1) {\n                console.log(\"Firefox browser detected, disabling the videoJS picture in picture controls since they're not supporting the PiP web API for this right now\")\n            } else {\n                if (picture_in_picture) {\n                    videoPlayer.controlBar.pictureInPictureToggle.show();\n                } else {\n                    videoPlayer.controlBar.pictureInPictureToggle.hide();\n                }\n            }\n\n            // set play button\n            if (play_button) {\n                videoPlayer.controlBar.playToggle.show();\n            } else {\n                videoPlayer.controlBar.playToggle.hide();\n            }\n\n            // set volume panel\n            if (volume_panel) {\n                videoPlayer.controlBar.volumePanel.show();\n            } else {\n                videoPlayer.controlBar.volumePanel.hide();\n            }\n\n            // set hls quality\n            if (hls_quality) {\n                document.getElementById('' + instance.data.elementId + '').getElementsByClassName('vjs-quality-menu-wrapper')[0].style.display = \"block\";\n            } else {\n                document.getElementById('' + instance.data.elementId + '').getElementsByClassName('vjs-quality-menu-wrapper')[0].style.display = \"none\";\n            }\n\n            // set control bar opacity\n            if (control_bar_opacity >= 0) {\n                setTimeout(function () {\n                    document.getElementById('' + instance.data.elementId + '').getElementsByClassName('vjs-control-bar')[0].style.opacity = control_bar_opacity;\n\n                    // control bar not clickable when it's set to 0\n                    if (control_bar_opacity < 0.1) {\n                        document.getElementById('' + instance.data.elementId + '').getElementsByClassName('vjs-control-bar')[0].style.pointerEvents = 'none';\n                        // control bar clikable again\n                    } else {\n                        document.getElementById('' + instance.data.elementId + '').getElementsByClassName('vjs-control-bar')[0].style.pointerEvents = 'auto';\n                    }\n\n                }, 500);\n            }\n\n        } else {\n            alert(\"You're attempting to run the 'Set VideoJS controls' action when the controls are hidden\");\n        }\n\n    });\n\n}\n"},"fields":{"AGi":{"caption":"Seek back","name":"seek_back","rank":2,"editor":"DynamicValue","value":"number","default_val":10},"AGj":{"caption":"Seek forward","name":"seek_forward","rank":3,"editor":"DynamicValue","value":"number","default_val":20},"AGk":{"caption":"Seek enabled","name":"seek_enabled","rank":1,"editor":"DynamicValue","value":"boolean","default_val":true},"AGl":{"caption":"Remaining time","name":"remaining_time","rank":4,"editor":"DynamicValue","value":"boolean","default_val":true},"AGm":{"caption":"Full screen","name":"full_screen","rank":5,"editor":"DynamicValue","value":"boolean","default_val":true},"AGn":{"caption":"Progress control bar","name":"progress_control_bar","rank":6,"editor":"DynamicValue","value":"boolean","default_val":true},"AGo":{"caption":"Playback rate","name":"playback_rate","rank":7,"editor":"DynamicValue","value":"boolean","default_val":false},"AGp":{"caption":"Picture in picture","name":"picture_in_picture","rank":9,"editor":"DynamicValue","value":"boolean","default_val":true},"AGq":{"caption":"Play button","name":"play_button","rank":10,"editor":"DynamicValue","value":"boolean","default_val":true},"AGr":{"caption":"Volume panel","name":"volume_panel","rank":11,"editor":"DynamicValue","value":"boolean","default_val":true},"AKe":{"caption":"Control bar opacity","name":"control_bar_opacity","rank":13,"editor":"DynamicValue","value":"number","default_val":1},"AKv":{"caption":"HLS quality","name":"hls_quality","rank":12,"editor":"DynamicValue","value":"boolean","default_val":true},"AKw":{"caption":"You should try and make sure the video element is visble and the current media metadata has been loaded before running this action. The controls may not get set correctly if running before-hand.","name":"info","rank":0,"editor":"Label"},"AKy":{"caption":"Use small font size","name":"use_small_font_size","rank":8,"editor":"Checkbox","default_val":false}}},"AHI":{"caption":"Add overlay","code":{"fn":"function(instance, properties, context) {\n\n    // when videoJS is ready\n    instance.data.videoJSReady().then(function() {\n\n        // get data\n        var videoPlayer = instance.data.videoPlayer;\n        var watermark_image = properties.watermark_image;\n        var watermark_width = properties.watermark_width ? properties.watermark_width : '180';\n        var watermark_opacity = properties.watermark_opacity ? properties.watermark_opacity : '0.3';\n        var content = properties.content;\n        var is_video = properties.is_video;\n        var start = properties.start;\n        var end = properties.end;\n        var align = properties.align.toLowerCase();\n        var showbackground = properties.showbackground;\n        var attachtocontrolbar = properties.attachtocontrolbar;\n\n        // if there's a watermark loaded then use that over the content\n        if (watermark_image) {\n            content = '<img src=\"' + watermark_image + '\" style=\"width: '+ watermark_width + 'px; opacity: '+ watermark_opacity +'\" />'\n        }\n\n        setTimeout(function() {\n            // show overlay\n            videoPlayer.overlay({\n                overlays: [{\n                    content: \"\" + content + \"\",\n                    start: start,\n                    end: end,\n                    align: \"\" + align + \"\",\n                    showBackground: showbackground,\n                    attachToControlBar: \"\" + attachtocontrolbar + \"\"\n                }]\n            });\n\n            // manually trigger the timeupdate event if we're not dealing with media that can be played\n            if (!is_video) {\n                videoPlayer.trigger('timeupdate');\n            }\n\n        }, 500);\n\n    });\n\n}"},"fields":{"AHK":{"caption":"Content","name":"content","rank":3,"editor":"DynamicValue","value":"text","optional":true},"AHL":{"caption":"Start","name":"start","rank":5,"editor":"DynamicValue","value":"number"},"AHM":{"caption":"End","name":"end","rank":6,"editor":"DynamicValue","value":"number","optional":true},"AHN":{"caption":"Align","name":"align","rank":7,"editor":"DynamicValue","value":"text","default_val":"top-left"},"AHO":{"caption":"Show background","name":"showbackground","rank":8,"editor":"DynamicValue","value":"boolean","default_val":true},"AHP":{"caption":"Attach to control bar","name":"attachtocontrolbar","rank":9,"editor":"DynamicValue","value":"boolean","default_val":false},"ARZ":{"caption":"Watermark","name":"watermark_image","rank":0,"editor":"DynamicValue","value":"image","optional":true},"ARa":{"caption":"Width","name":"watermark_width","rank":1,"editor":"DynamicValue","value":"number","optional":true,"default_val":180},"ARb":{"caption":"Opacity","name":"watermark_opacity","rank":2,"editor":"DynamicValue","value":"number","default_val":0.3,"optional":true},"AhJ":{"caption":"Is video","name":"is_video","rank":4,"editor":"DynamicValue","value":"boolean","default_val":true}}},"AHf":{"caption":"Load Ad","code":{"fn":"function(instance, properties, context) {\n\n    // when videoJS is ready\n    instance.data.videoJSReady().then(function() {\n\n        // get data\n        var videoPlayer = instance.data.videoPlayer;\n        var videoContainer = document.getElementById(instance.data.elementId);\n        var ad1 = properties.ad1;\n        var ad2 = properties.ad2;\n        var ad3 = properties.ad3;\n        var start_time1 = properties.start_time1;\n        var start_time2 = properties.start_time2;\n        var start_time3 = properties.start_time3;\n        var link1 = properties.link1;\n        var link2 = properties.link2;\n        var link3 = properties.link3;\n        var skippable1 = properties.skippable1;\n        var skippable2 = properties.skippable2;\n        var skippable3 = properties.skippable3;\n        var skippable1_after = properties.skippable1_after < 1 ? 0.5 : properties.skippable1_after;\n        var skippable2_after = properties.skippable2_after < 1 ? 0.5 : properties.skippable2_after;\n        var skippable3_after = properties.skippable3_after < 1 ? 0.5 : properties.skippable3_after;\n        var skippable1_countdown = properties.skippable1_countdown;\n        var skippable2_countdown = properties.skippable2_countdown;\n        var skippable3_countdown = properties.skippable3_countdown;\n        var currentUrl = videoPlayer.currentSrc();\n        var currentType = videoPlayer.currentType();\n\n        // reset\n        videoPlayer.currentTime(0);\n        var triggered1 = false;\n        var triggered2 = false;\n        var triggered3 = false;\n\n        // ad1 has ended\n        var onEndedAd1 = function () {\n            if (triggered1) {\n\n                // load main video at origional playtime\n                videoPlayer.src({\n                    src: \"\" + currentUrl + \"#t=\" + start_time1,\n                    type: currentType\n                });\n\n                // remove previous timeUpdate event and trigger event\n                videoPlayer.off('timeupdate', startTimeAd1);\n                instance.triggerEvent(\"first_ad_ended\");\n\n                // hide ad labels\n                $('.vjs-progress-control').removeClass('disableProgressBar');\n                $('.advertisement').addClass('hide');\n                if (link1) {\n                    $('.visit').addClass('hide');\n                }\n                if (skippable1) {\n                    $('.skip').addClass('hide');\n                }\n                videoPlayer.currentTime(start_time1);\n                videoPlayer.play();\n            }\n        }\n\n        // start ad1 at a specific time\n        var startTimeAd1 = function () {\n            if ((videoPlayer.currentTime() > start_time1) && (!triggered1)) {\n\n                // set flag to stop firing multiple times\n                triggered1 = true;\n\n                // load video\n                videoPlayer.src( {\n                    src: ad1,\n                    type: 'video/mp4'\n                });\n\n                // control classes to enable styling\n                $('.vjs-progress-control').addClass('disableProgressBar');\n                $('.advertisement').removeClass('hide');\n\n                if (link1) {\n                    $('.visit').off('click');\n                    $('.visit').css('cursor', 'pointer');\n                    $('.visit').on('click', function () {\n                        window.open(link1, '_blank');\n                    });\n                    $('.visit').removeClass('hide');\n                }\n\n                // when the ad is skippable\n                if (skippable1) {\n                    $('.skip').off('click');\n                    $('.skip').css('cursor', 'default');\n\n                    // when skippable after has been set\n                    if (skippable1_after) {\n\n                        var time = skippable1_after * 1000\n                        setTimeout(function () {\n\n                            // set the required countdown time in seconds\n                            var timeleft = skippable1_countdown + 1;\n\n                            // start the skip label countdown\n                            var secondsRemaining = $.timer(function () {\n\n                                // when video paused, pause countdown and start again when played\n                                if (videoPlayer.paused()) {\n                                    secondsRemaining.pause();\n                                    videoPlayer.one('play', function () {\n                                        secondsRemaining.play();\n                                    });\n                                }\n\n                                if (timeleft < 1) {\n\n                                    clearInterval(secondsRemaining);\n                                    $('.skip').text(\"Skip\");\n                                    $('.skip').css('cursor', 'pointer');\n\n                                    // stop timer here\n                                    secondsRemaining.stop();\n\n                                    // click function\n                                    $('.skip').on('click', function () {\n\n                                        $('.skip').css('cursor', 'default');\n                                        $('.skip').addClass('hide');\n                                        $('.visit').addClass('hide');\n                                        $('.vjs-progress-control').removeClass('disableProgressBar');\n                                        $('.advertisement').addClass('hide');\n\n                                        videoPlayer.off('timeupdate', startTimeAd1);\n                                        videoPlayer.off('ended', onEndedAd1);\n\n                                        videoPlayer.src( {\n                                            src: \"\" + currentUrl + \"#t=\" + start_time1,\n                                            type: currentType\n                                        });\n                                        videoPlayer.currentTime(start_time1);\n                                        videoPlayer.play();\n                                        instance.triggerEvent(\"first_ad_ended\");\n                                    });\n\n                                } else {\n                                    timeleft = timeleft - 1;\n                                    $('.skip').text(\"Skip in \" + timeleft);\n                                }\n\n                            }, 1000, true); // timer for skip label countdown\n\n                            $('.skip').removeClass('hide');\n\n                        }, time); // timer for skip label to appear at\n\n                    } else {\n                        $('.skip').removeClass('hide');\n                    }\n\n                }\n\n                // create the onEnded event after the ad video starts to play\n                videoPlayer.one('play', function () {\n                    videoPlayer.one('ended', onEndedAd1);\n                });\n                videoPlayer.play();\n                instance.triggerEvent(\"first_ad_started\");\n            }\n        }\n\n        // ad2 has ended\n        var onEndedAd2 = function () {\n            if (triggered2) {\n\n                // load main video\n                videoPlayer.src( {\n                    src: \"\" + currentUrl + \"#t=\" + start_time2,\n                    type: currentType\n                });\n\n                // remove previous timeUpdate event and trigger event\n                videoPlayer.off('timeupdate', startTimeAd2);\n                instance.triggerEvent(\"second_ad_ended\");\n\n                // hide ad labels            \n                $('.vjs-progress-control').removeClass('disableProgressBar');\n                $('.advertisement').addClass('hide');\n                if (link2) {\n                    $('.visit').addClass('hide');\n                }\n                if (skippable2) {\n                    $('.skip').addClass('hide');\n                }\n                videoPlayer.currentTime(start_time2);\n                videoPlayer.play();\n            }\n        }\n\n        // start ad2 at a specific time\n        var startTimeAd2 = function () {\n            if ((videoPlayer.currentTime() > start_time2) && (!triggered2)) {\n\n                // set flag to stop firing multiple times\n                triggered2 = true;\n\n                // load video\n                videoPlayer.src( {\n                    src: ad2,\n                    type: 'video/mp4'\n                });\n\n                // control classes to enable styling\n                $('.vjs-progress-control').addClass('disableProgressBar');\n                $('.advertisement').removeClass('hide');\n\n                if (link2) {\n                    $('.visit').off('click');\n                    $('.visit').css('cursor', 'pointer');\n                    $('.visit').on('click', function () {\n                        window.open(link2, '_blank');\n                    });\n                    $('.visit').removeClass('hide');\n                }\n\n                // when the ad is skippable\n                if (skippable2) {\n                    $('.skip').off('click');\n                    $('.skip').css('cursor', 'default');\n\n                    // when skippable after has been set\n                    if (skippable2_after) {\n\n                        var time = skippable2_after * 1000\n                        setTimeout(function () {\n\n                            // set the required countdown time in seconds\n                            var timeleft = skippable2_countdown + 1;\n\n                            // start the skip label countdown\n                            var secondsRemaining = $.timer(function () {\n\n                                // when video paused, pause countdown and start again when played\n                                if (videoPlayer.paused()) {\n                                    secondsRemaining.pause();\n                                    videoPlayer.one('play', function () {\n                                        secondsRemaining.play();\n                                    });\n                                }\n\n                                if (timeleft < 1) {\n\n                                    clearInterval(secondsRemaining);\n                                    $('.skip').text(\"Skip\");\n                                    $('.skip').css('cursor', 'pointer');\n\n                                    // stop timer here\n                                    secondsRemaining.stop();\n\n                                    // click function\n                                    $('.skip').on('click', function () {\n\n                                        $('.skip').css('cursor', 'default');\n                                        $('.skip').addClass('hide');\n                                        $('.visit').addClass('hide');\n                                        $('.vjs-progress-control').removeClass('disableProgressBar');\n                                        $('.advertisement').addClass('hide');\n\n                                        videoPlayer.off('timeupdate', startTimeAd2);\n                                        videoPlayer.off('ended', onEndedAd2);\n\n                                        videoPlayer.src( {\n                                            src: \"\" + currentUrl + \"#t=\" + start_time2,\n                                            type: currentType\n                                        });\n                                        videoPlayer.currentTime(start_time2);\n                                        videoPlayer.play();\n                                        instance.triggerEvent(\"second_ad_ended\");\n                                    });\n\n                                } else {\n                                    timeleft = timeleft - 1;\n                                    $('.skip').text(\"Skip in \" + timeleft);\n                                }\n\n                            }, 1000, true); // timer for skip label countdown\n\n                            $('.skip').removeClass('hide');\n\n                        }, time); // timer for skip label to appear at\n\n                    } else {\n                        $('.skip').removeClass('hide');\n                    }\n\n                }\n\n                // create the onEnded event after the ad video starts to play\n                videoPlayer.one('play', function () {\n                    videoPlayer.one('ended', onEndedAd2);\n                });\n                videoPlayer.play();\n                instance.triggerEvent(\"second_ad_started\");\n            }\n        }\n\n        // ad3 has ended\n        var onEndedAd3 = function () {\n            if (triggered3) {\n\n                // load main video\n                videoPlayer.src( {\n                    src: \"\" + currentUrl + \"#t=\" + start_time3,\n                    type: currentType\n                });\n\n                // remove previous timeUpdate event and trigger event\n                videoPlayer.off('timeupdate', startTimeAd3);\n                instance.triggerEvent(\"third_ad_ended\");\n\n                // hide ad labels\n                $('.vjs-progress-control').removeClass('disableProgressBar');\n                $('.advertisement').addClass('hide');\n                if (link3) {\n                    $('.visit').addClass('hide');\n                }\n                if (skippable3) {\n                    $('.skip').addClass('hide');\n                }\n                videoPlayer.currentTime(start_time3);\n                videoPlayer.play();\n            }\n        }\n\n        // start ad3 at a specific time\n        var startTimeAd3 = function () {\n            if ((videoPlayer.currentTime() > start_time3) && (!triggered3)) {\n\n                // set flag to stop firing multiple times\n                triggered3 = true;\n\n                // load video\n                videoPlayer.src( {\n                    src: ad3,\n                    type: 'video/mp4'\n                });\n\n                // control classes to enable styling\n                $('.vjs-progress-control').addClass('disableProgressBar');\n                $('.advertisement').removeClass('hide');\n\n                if (link3) {\n                    $('.visit').off('click');\n                    $('.visit').css('cursor', 'pointer');\n                    $('.visit').on('click', function () {\n                        window.open(link3, '_blank');\n                    });\n                    $('.visit').removeClass('hide');\n                }\n\n                // when the ad is skippable\n                if (skippable3) {\n                    $('.skip').off('click');\n                    $('.skip').css('cursor', 'default');\n\n                    // when skippable after has been set\n                    if (skippable3_after) {\n\n                        var time = skippable3_after * 1000\n                        setTimeout(function () {\n\n                            // set the required countdown time in seconds\n                            var timeleft = skippable3_countdown + 1;\n\n                            // start the skip label countdown\n                            var secondsRemaining = $.timer(function () {\n\n                                // when video paused, pause countdown and start again when played\n                                if (videoPlayer.paused()) {\n                                    secondsRemaining.pause();\n                                    videoPlayer.one('play', function () {\n                                        secondsRemaining.play();\n                                    });\n                                }\n\n                                if (timeleft < 1) {\n\n                                    clearInterval(secondsRemaining);\n                                    $('.skip').text(\"Skip\");\n                                    $('.skip').css('cursor', 'pointer');\n\n                                    // stop timer here\n                                    secondsRemaining.stop();\n\n                                    // click function\n                                    $('.skip').on('click', function () {\n\n                                        $('.skip').css('cursor', 'default');\n                                        $('.skip').addClass('hide');\n                                        $('.visit').addClass('hide');\n                                        $('.vjs-progress-control').removeClass('disableProgressBar');\n                                        $('.advertisement').addClass('hide');\n\n                                        videoPlayer.off('timeupdate', startTimeAd3);\n                                        videoPlayer.off('ended', onEndedAd3);\n\n                                        videoPlayer.src( {\n                                            src: \"\" + currentUrl + \"#t=\" + start_time3,\n                                            type: currentType\n                                        });\n                                        videoPlayer.currentTime(start_time3);\n                                        videoPlayer.play();\n                                        instance.triggerEvent(\"third_ad_ended\");\n                                    });\n\n                                } else {\n                                    timeleft = timeleft - 1;\n                                    $('.skip').text(\"Skip in \" + timeleft);\n                                }\n\n                            }, 1000, true); // timer for skip label countdown\n\n                            $('.skip').removeClass('hide');\n\n                        }, time); // timer for skip label to appear at\n\n                    } else {\n                        $('.skip').removeClass('hide');\n                    }\n\n                }\n\n                // create the onEnded event after the ad video starts to play\n                videoPlayer.one('play', function () {\n                    videoPlayer.one('ended', onEndedAd3);\n                });\n                videoPlayer.play();\n                instance.triggerEvent(\"third_ad_started\");\n            }\n        }\n\n        // create timeUpdate event to launch ad1\n        if (ad1) {\n            if ((!currentUrl) && (!currentType)) {\n                alert(\"You must have a video pre-loaded before you can use this event\");\n            } else {\n                if (currentUrl == ad1 || currentUrl == ad2 || currentUrl == ad3) {\n                    alert(\"Current pre-loaded video cannot be one of the Ad videos when this action is first run, make sure you have the main video loaded first\");\n                } else {\n                    videoPlayer.on('timeupdate', startTimeAd1);\n                }\n            }\n        }\n\n        // create timeUpdate event to launch ad2\n        if (ad2) {\n            if ((!currentUrl) && (!currentType)) {\n                alert(\"You must have a video pre-loaded before you can use this event\");\n            } else {\n                if (currentUrl == ad1 || currentUrl == ad2 || currentUrl == ad3) {\n                    alert(\"Current pre-loaded video cannot be one of the Ad videos when this action is first run, make sure you have the main video loaded first\");\n                } else {\n                    videoPlayer.on('timeupdate', startTimeAd2);\n                }\n            }\n        }\n\n        // create timeUpdate event to launch ad3\n        if (ad3) {\n            if ((!currentUrl) && (!currentType)) {\n                alert(\"You must have a video pre-loaded before you can use this event\");\n            } else {\n                if (currentUrl == ad1 || currentUrl == ad2 || currentUrl == ad3) {\n                    alert(\"Current pre-loaded video cannot be one of the Ad videos when this action is first run, make sure you have the main video loaded first\");\n                } else {\n                    videoPlayer.on('timeupdate', startTimeAd3);\n                }\n            }\n        }\n\n    });\n\n}"},"fields":{"AHg":{"caption":"🎬 FIRST AD","name":"ad1","rank":1,"editor":"DynamicValue","value":"file"},"AHh":{"caption":"Start time","name":"start_time1","rank":2,"editor":"DynamicValue","value":"number","default_val":0},"AHi":{"caption":"🎬 SECOND AD","name":"ad2","rank":8,"editor":"DynamicValue","value":"file","optional":true},"AHj":{"caption":"🎬 THIRD AD","name":"ad3","rank":15,"editor":"DynamicValue","value":"file","optional":true},"AHk":{"caption":"Start time","name":"start_time2","rank":9,"editor":"DynamicValue","value":"number","default_val":30,"optional":true},"AHl":{"caption":"Start time","name":"start_time3","rank":16,"editor":"DynamicValue","value":"number","default_val":60,"optional":true},"AHn":{"caption":"Link","name":"link1","rank":3,"editor":"DynamicValue","value":"text","optional":true},"AHo":{"caption":"Link","name":"link2","rank":10,"editor":"DynamicValue","value":"text","optional":true},"AHp":{"caption":"Link","name":"link3","rank":17,"editor":"DynamicValue","value":"text","optional":true},"AHq":{"caption":"ADVERTISEMENT Pre-Roll Videos. You can have up to a maximum of 3 videos that will play when the specified start times are reached during the main video playback. The player interface will change slightly when an Ad video is playing and the labels seen depend on the options specified below. The progress bar will not be clickable during Ad playback and only MP4 videos are supported at the moment. Reach out to pork1977 on the forum if you require further formats.","name":"info","rank":0,"editor":"Label"},"AHt":{"caption":"Is skippable","name":"skippable1","rank":4,"editor":"DynamicValue","value":"boolean","default_val":true},"AHu":{"caption":"Is skippable","name":"skippable2","rank":11,"editor":"DynamicValue","value":"boolean","default_val":true},"AHv":{"caption":"Is skippable","name":"skippable3","rank":18,"editor":"DynamicValue","value":"boolean","default_val":true},"AHw":{"caption":"----------------------------------------------------------------------------","name":"line1","rank":7,"editor":"Label"},"AHx":{"caption":"----------------------------------------------------------------------------","name":"line2","rank":14,"editor":"Label"},"AHz":{"caption":"Is skippable after","name":"skippable1_after","rank":5,"editor":"DynamicValue","value":"number","default_val":0},"AIA":{"caption":"Is skippable after","name":"skippable2_after","rank":12,"editor":"DynamicValue","value":"number","default_val":0},"AIB":{"caption":"Is skippable after","name":"skippable3_after","rank":19,"editor":"DynamicValue","value":"number","default_val":0},"AIC":{"caption":"Skip countdown","name":"skippable1_countdown","rank":6,"editor":"DynamicValue","value":"number","default_val":5},"AID":{"caption":"Skip countdown","name":"skippable2_countdown","rank":13,"editor":"DynamicValue","value":"number","default_val":5},"AIE":{"caption":"Skip countdown","name":"skippable3_countdown","rank":20,"editor":"DynamicValue","value":"number","default_val":5}}},"AKS":{"caption":"Upload media to MUX","code":{"fn":"function(instance, properties, context) {\n\n    // get data\n    var endpoint_url = properties.endpoint_url;\n    var chunk_size = properties.chunk_size ? properties.chunk_size : 10240;\n    var max_file_size = properties.max_file_size ? properties.max_file_size : '';\n    var use_file_selection = properties.use_file_selection;\n    var file_item_number = properties.file_item_number ? properties.file_item_number : '0';\n\n    // main function\n    function create_upload(file) {\n\n        // check the max file size\n        if (max_file_size) {\n            if (Math.round(file.size / 1024) > max_file_size) {\n                instance.publishState(\"mux_upload_error\", \"File selected is too large, max file size allowed is \" + max_file_size + \"kb\");\n                instance.triggerEvent('mux_upload_error');\n                return;\n            }\n        }\n\n        // set states\n        instance.publishState(\"mux_upload_complete\", false);\n        instance.publishState(\"mux_selected_file\", URL.createObjectURL(file));\n        instance.publishState(\"mux_selected_file_size\", Math.round(file.size / 1000));\n        instance.publishState(\"mux_selected_file_name\", file.name);\n        instance.publishState(\"mux_upload_error\", \"\");\n        instance.publishState(\"mux_upload_attempt_failure\", \"\");\n\n        // create a video element and canvas so we can load the video content and get at some values\n        let videoMetaData = (f) => {\n            return new Promise(function(resolve, reject) {\n                let video = document.createElement('video');\n\n                video.addEventListener('canplay', function () {\n                    resolve({\n                        video: video,\n                        duration: Math.round(video.duration),\n                        height: video.videoHeight,\n                        width: video.videoWidth,\n                    })\n                })\n\n                video.addEventListener('onplay', function () {\n                    video.pause();\n                }, {once : true});\n\n                video.src = URL.createObjectURL(f);\n                video.muted = \"muted\";\n                video.currentTime = 5;\n                video.play();\n            })\n        }\n\n        videoMetaData(file).then(function(value) {\n            let videoCanvas = document.createElement('canvas');\n\n            videoCanvas.height = value.height;\n            videoCanvas.width = value.width;\n            videoCanvas.getContext('2d').drawImage(value.video, 0, 0, videoCanvas.width, videoCanvas.height);\n            var snapshot = videoCanvas.toDataURL('image/png');\n\n            var img = new Image();\n\n            // set required states\n            instance.publishState(\"mux_selected_file_duration\", value.video.duration);\n            instance.publishState(\"mux_selected_file_poster\", snapshot);\n        })\n\n        // trigger event upload started\n        instance.triggerEvent(\"mux_upload_started\");\n\n        // upload to mux with options\n        const upload = UpChunk.createUpload({\n            endpoint: endpoint_url,\n            file: file,\n            chunkSize: chunk_size,\n            maxFileSize: max_file_size\n        });\n\n        // subscribe to events\n        upload.on('error', err => {\n            instance.publishState(\"mux_upload_error\", err.detail);\n            instance.triggerEvent('mux_upload_error');\n        });\n\n        upload.on('progress', progress => {\n            instance.publishState(\"mux_upload_progress\", Math.round(progress.detail * 100) / 100);\n        });\n\n        upload.on('attemptFailure', attempt => {\n            instance.publishState(\"mux_upload_attempt_failure\", attempt.detail.message);\n            instance.triggerEvent('mux_upload_error');\n        });\n\n        upload.on('success', data => {\n            console.log(data);\n            instance.publishState(\"mux_upload_complete\", true);\n            instance.triggerEvent('mux_upload_complete');\n            URL.revokeObjectURL(file);\n        });\n\n        instance.data.pause = function pause(action) {\n            if (action === \"pause\") {\n                upload.pause();\n            }\n            if (action === \"resume\") {\n                upload.resume();\n            }\n            if (action === \"abort\") {\n                upload.abort();\n            }\n        };\n\n    }\n\n\n    // run main function using either input dialog or passed in file from the select files action\n    if (use_file_selection) {\n\n        var input = document.createElement('input');\n        input.style.display = 'none';\n        document.body.appendChild(input);\n\n        input.type = 'file';\n        input.accept = \"video/*\";\n        input.onchange = e => {\n            create_upload(e.target.files[0]);\n            document.body.removeChild(input);\n        }\n        input.click();\n\n    } else {\n\n        if (instance.data.files_selected) {\n\n            var input_file = instance.data.files_selected[file_item_number];\n            create_upload(input_file);\n\n        } else {\n\n            alert(\"No files have been selected, make sure you've run the 'Select files' action.\");\n\n        }\n\n    }\n\n}"},"fields":{"AKU":{"caption":"Endpoint URL","name":"endpoint_url","rank":1,"editor":"DynamicValue","value":"text"},"AKV":{"caption":"Chunk size","name":"chunk_size","rank":2,"editor":"DynamicValue","value":"number","default_val":10240},"AOM":{"caption":"Max file size","name":"max_file_size","rank":3,"editor":"DynamicValue","value":"number","optional":true},"AUR":{"caption":"Use file selection","name":"use_file_selection","rank":4,"editor":"DynamicValue","value":"boolean","default_val":true},"AUf":{"caption":"File item number","name":"file_item_number","rank":5,"editor":"DynamicValue","value":"number","optional":true},"AVn":{"caption":"To see an example on how to configure these fields for single/multiple file uploads, take a look at the demo editor: https://bubble.io/page?type=page&name=mux_upload&id=paul-testing-4&tab=tabs-1","name":"info","rank":0,"editor":"Label"}}},"ALm":{"caption":"Pause MUX upload","code":{"fn":"function(instance, properties, context) {\n\n    // set as a function inside upload_media_to_mux\n    try {\n        instance.data.pause(\"pause\");\n        instance.publishState(\"mux_upload_paused\", true);\n    }\n    catch(err) {\n        alert(\"You must start an upload before you can pause.\");\n    }\n\n}"},"fields":{"ALq":{"caption":"Pauses an upload after the current in-flight chunk is finished uploading.","name":"info","rank":0,"editor":"Label"}}},"ALo":{"caption":"Resume MUX upload","code":{"fn":"function(instance, properties, context) {\n\n    // set as a function inside upload_media_to_mux\n    try {\n        instance.data.pause(\"resume\");\n        instance.publishState(\"mux_upload_paused\", false);\n    }\n    catch(err) {\n        alert(\"You must start an upload before you can resume.\");\n    }\n\n}"},"fields":{"ALr":{"caption":"Resumes an upload that was previously paused.","name":"info","rank":0,"editor":"Label"}}},"AMJ":{"caption":"Enable text highlighting","code":{"fn":"function(instance, properties, context) {\n\n    // get data\n    var attribute_id = properties.attribute_id;\n\n    var existCondition = setInterval(function() {\n        if ($('#' + attribute_id).length) {\n\n            clearInterval(existCondition);\n\n            // enables the text selection capture\n            document.getElementById('' + attribute_id + '').addEventListener('pointerup', () => {\n                instance.publishState(\"selected_text\", window.getSelection().toString());\n                instance.triggerEvent(\"text_highlighted\");\n            });\n\n        }\n    }, 100);\n\n}"},"fields":{"AML":{"caption":"Attribute Id","name":"attribute_id","rank":1,"editor":"DynamicValue","value":"text"},"AMM":{"caption":"Provide this action with an attribute Id that has been assigned to some text element. Once the action has run, you'll be able to highlight text and it will be stored in the custom state called \"Selected text\".","name":"info","rank":0,"editor":"Label"}}},"AOL":{"caption":"Cancel MUX upload","code":{"fn":"function(instance, properties, context) {\n\n    // set as a function inside upload_media_to_mux\n    // since there is no cancel event, we just pause and reset the progress state\n    try {\n        instance.data.pause(\"abort\");\n\n        // reset progress states\n        if (properties.reset_progress) {\n            instance.publishState(\"mux_upload_progress\", 0);\n            instance.publishState(\"mux_upload_progress_total\", 0);\n        }\n\n        // reset file count state\n        if (properties.reset_file_count) {\n            instance.publishState(\"files_selected_count\", \"\");\n        }\n\n    }\n    catch(err) {\n        alert(\"You must start an upload before you can cancel.\");\n    }\n\n}"},"fields":{"AON":{"caption":"Reset progress","name":"reset_progress","rank":0,"editor":"DynamicValue","value":"boolean","default_val":false},"AUh":{"caption":"Reset file count","name":"reset_file_count","rank":1,"editor":"DynamicValue","value":"boolean","default_val":false}}},"AQH":{"caption":"Toggle visual sound wave","code":{"fn":"function(instance, properties, context) {\n\n    // when videoJS is ready\n    instance.data.videoJSReady().then(function() {\n\n        // get data\n        var videoPlayer = instance.data.videoPlayer;\n        var waveForm = document.getElementById(\"\" + instance.data.waveformId + \"\");\n        var videoElement = videoPlayer.tech().el();\n\n        var enable = properties.enable;\n        var xhr_options = JSON.parse(properties.xhr_options);\n        var enable_cross_origin = properties.enable_cross_origin;\n        var waveform_data = JSON.parse(properties.waveform_data);\n        var play_when = properties.play_when;\n        var wave_color = properties.wave_color ? properties.wave_color : '#A8DBA8';\n        var progress_color = properties.progress_color ? properties.progress_color : '#43A843';\n        var background_color = properties.background_color ? properties.background_color : '#000000';\n        var remove_background = properties.remove_background;\n        var normalize = properties.normalize;\n        var scroll_parent = properties.scroll_parent;\n        var partial_render = properties.partial_render;\n        var pixel_ratio = properties.pixel_ratio ? properties.pixel_ratio : '1';\n        var interact = properties.interact;\n        var hide_scrollbar = properties.hide_scrollbar;\n        var cursor_width = properties.cursor_width ? properties.cursor_width : '1';\n        var cursor_color = properties.cursor_color ? properties.cursor_color : '#F2F2F2';\n        var bar_width = properties.bar_width;\n        var bar_height = properties.bar_height ? properties.bar_height : '1';\n        var bar_radius = properties.bar_radius ? properties.bar_radius : '0';\n        var responsive = properties.responsive;\n\n        // used to stop a recurring loop in the loadeddata and loadedmetadata events\n        instance.data.triggerEvents = false;\n\n        // set these when responsive is on\n        if (responsive) {\n            scroll_parent = false;\n            hide_scrollbar = true;\n        }\n\n        // enable\n        if (enable) {\n\n            // update the state\n            instance.publishState(\"sound_wave_generating\", true);\n\n            waveForm.style.height = \"100%\";\n\n            // create wavesurfer if not already loaded\n            if (!instance.data.wavesurfer_hasLoaded) {\n\n                var options = {\n                    container: document.querySelector('#' + instance.data.waveformId),\n                    waveColor: '' + wave_color + '',\n                    progressColor: '' + progress_color + '',\n                    backgroundColor: '' + background_color + '',\n                    height: instance.canvas.height(),\n                    pixelRatio: pixel_ratio,\n                    backend: 'MediaElement',\n                    normalize: normalize,\n                    scrollParent: scroll_parent,\n                    hideScrollbar: hide_scrollbar,\n                    partial_render: partial_render,\n                    interact: interact,\n                    cursorWidth: cursor_width,\n                    cursorColor: '' + cursor_color + '',\n                    barWidth: bar_width,\n                    barHeight: bar_height,\n                    barRadius: bar_radius,\n                    responsive: 10\n                }\n\n                // if cors is to be enabled\n                if (xhr_options) {\n                    options.xhr = xhr_options;\n                }\n\n                instance.data.wavesurfer = WaveSurfer.create(options);\n\n                // update loading percentage event\n                instance.data.wavesurfer.on('loading', function(x, evt) {\n                    instance.publishState('sound_wave_loading_percentage', x);\n                });\n\n                // ready events\n                if (play_when === \"Media has loaded\") {\n                    instance.data.wavesurfer.on('ready', function () {\n\n                        // play\n                        instance.publishState(\"sound_wave_generating\", false);\n                        WaveSurferAudioContext.resume().then(() => {\n                            instance.data.wavesurfer.play();\n                        });\n\n                        // set volume\n                        instance.data.wavesurfer.setVolume(instance.data.value_volume);\n\n                        // trigger event\n                        instance.triggerEvent('enabled_soundwave');\n\n                    });\n                }\n\n                if (play_when === \"Sound wave is ready\") {                        \n                    instance.data.wavesurfer.on('waveform-ready', function () {\n\n                        // play\n                        instance.publishState(\"sound_wave_generating\", false);\n                        WaveSurferAudioContext.resume().then(() => {\n                            instance.data.wavesurfer.play();\n                        });\n\n                        // set volume\n                        instance.data.wavesurfer.setVolume(instance.data.value_volume);\n\n                        // trigger event\n                        instance.triggerEvent('enabled_soundwave');\n\n                    });\n                }\n\n                if (play_when === \"Don't play\") {                        \n                    instance.data.wavesurfer.on('waveform-ready', function () {\n\n                        instance.publishState(\"sound_wave_generating\", false);\n\n                        // set volume\n                        instance.data.wavesurfer.setVolume(instance.data.value_volume);\n\n                        // trigger event\n                        instance.triggerEvent('enabled_soundwave');\n\n                    });\n                }\n\n            }\n\n            // load wavesurfer, with or without peaks data\n            if (waveform_data) {\n\n                console.log(\"loaded soundwave with peaks data\");\n\n                if (enable_cross_origin) {\n                    var myAudio = new Audio(videoPlayer.currentSrc());\n                    myAudio.crossOrigin = 'anonymous';\n                    instance.data.wavesurfer.load(myAudio, waveform_data);\n                } else {\n                    instance.data.wavesurfer.load(videoElement, waveform_data);\n                }\n\n                // set the loading percent to 100 because the 'loading' event doesn't trigger when you load from peaks data\n                instance.publishState('sound_wave_loading_percentage', 100);\n\n            } else {\n\n                console.log(\"loaded sound wave by downloading the file, consider using peaks data instead\");\n\n                if (enable_cross_origin) {\n                    var myAudio = new Audio(videoPlayer.currentSrc());\n                    myAudio.crossOrigin = 'anonymous';\n                    instance.data.wavesurfer.load(myAudio);\n                } else {\n                    instance.data.wavesurfer.load(videoElement);\n                }\n\n            }\n\n            // responsive\n            if (responsive) {\n                instance.data.wavesurfer.on('waveform-ready', function () {\n                    var waves = document.getElementById(instance.data.waveformId).getElementsByTagName('wave');\n                    for (var i = 0; i < waves.length; i++) {\n                        waves[i].style.height = '100%';\n                        waves[0].style.position = '';\n                    }\n                });\n            }\n\n            instance.data.wavesurfer_hasLoaded = true;\n\n            // display waveform and set some css\n            $('#' + instance.data.waveformId).css(\"display\", \"block\");\n            $('#' + instance.data.waveformId).css(\"z-index\", \"10\");\n\n            if (hide_scrollbar) {\n                $('#' + instance.data.waveformId).children().css(\"overflow\", \"hidden\");\n            }\n\n            if (remove_background) {\n                $('#' + instance.data.waveformId).css(\"height\", \"0\");\n            }\n\n            //disable\n        } else {\n\n            try {\n                // instance.data.wavesurfer.destroy();  -- this is making the video not appear but the sound continue\n                waveForm.style.display = 'none'\n            } catch(err) {\n                // nothing\n            }\n            instance.data.wavesurfer_hasLoaded = false;\n\n            // update the state and trigger event\n            instance.publishState(\"sound_wave_generating\", false);\n            instance.triggerEvent('disabled_soundwave');\n        }\n\n    });\n\n}"},"fields":{"AQI":{"caption":"Enable","name":"enable","rank":1,"editor":"DynamicValue","value":"boolean","default_val":true},"AQJ":{"caption":"Not all media types are supported with this action and you may run into errors if you attempt to run this against media types that are not part of the standard web supported formats. Ideally, your media files should be loaded from your Bubble storage area so you don't run into any cross origin security related errors.","name":"info","rank":0,"editor":"Label"},"AQL":{"caption":"Wave color","name":"wave_color","rank":7,"editor":"Color","default_val":"rgba(72, 133, 72, 1)"},"AQM":{"caption":"Progress color","name":"progress_color","rank":6,"editor":"Color","default_val":"rgba(118, 245, 8, 1)"},"AQN":{"caption":"Background color","name":"background_color","rank":8,"editor":"Color","default_val":"rgba(0, 0, 0, 1)"},"AQO":{"caption":"Normalize","name":"normalize","rank":10,"editor":"DynamicValue","value":"boolean","default_val":false},"AQP":{"caption":"Scroll parent","name":"scroll_parent","rank":11,"editor":"DynamicValue","value":"boolean","default_val":true},"AQR":{"caption":"Partial render","name":"partial_render","rank":12,"editor":"DynamicValue","value":"boolean","default_val":false},"AQS":{"caption":"Interact","name":"interact","rank":14,"editor":"DynamicValue","value":"boolean","default_val":true},"AQT":{"caption":"Hide scrollbar","name":"hide_scrollbar","rank":15,"editor":"DynamicValue","value":"boolean","default_val":false},"AQU":{"caption":"Cursor width","name":"cursor_width","rank":16,"editor":"DynamicValue","value":"number","default_val":1},"AQV":{"caption":"Cursor color","name":"cursor_color","rank":17,"editor":"Color","default_val":"rgba(242, 242, 242, 1)"},"AQW":{"caption":"Bar height","name":"bar_height","rank":19,"editor":"DynamicValue","value":"number","optional":true,"default_val":1},"AQX":{"caption":"Bar radius","name":"bar_radius","rank":20,"editor":"DynamicValue","optional":true,"value":"number","default_val":0},"AQY":{"caption":"Bar width (enables)","name":"bar_width","rank":18,"editor":"DynamicValue","value":"number","optional":true},"AQa":{"caption":"Play when","name":"play_when","rank":5,"editor":"Dropdown","default_val":"Sound wave is ready"},"Adz":{"caption":"Responsive","name":"responsive","rank":21,"editor":"DynamicValue","value":"boolean","default_val":false,"optional":false},"AeC":{"caption":"Pixel ratio","name":"pixel_ratio","rank":13,"editor":"DynamicValue","value":"number","default_val":1,"optional":true},"AeQ":{"caption":"Remove background","name":"remove_background","rank":9,"editor":"DynamicValue","value":"boolean","default_val":true},"ApI":{"caption":"Waveform data","name":"waveform_data","rank":4,"editor":"DynamicValue","value":"text","optional":true},"ApW":{"caption":"XHR options","name":"xhr_options","rank":2,"editor":"DynamicValue","value":"text","default_val":"","optional":true},"ApX":{"caption":"Enable cross origin","name":"enable_cross_origin","rank":3,"editor":"DynamicValue","value":"boolean","default_val":false}}},"AUN":{"caption":"Select files","code":{"fn":"function(instance, properties, context) {\n\n    // get data\n    var max_file_size = properties.max_file_size ? properties.max_file_size : '';\n    var file_sizes = [];\n\n    // open file dialog\n    var input = document.createElement('input');\n    input.style.display = 'none';\n    document.body.appendChild(input);\n\n    input.type = 'file';\n    input.accept = \"video/*\";\n    input.multiple = 'multiple';\n    input.onchange = e => {\n\n        // variables used in the upload media to mux action\n        instance.data.files_selected = e.target.files;\n\n        // populate state with file count\n        instance.publishState(\"files_selected_count\", e.target.files.length);\n\n        // iterate each file\n        for (i = 0; i < e.target.files.length; i++) {\n\n            // check the max file size\n            if (max_file_size) {\n                if (Math.round(e.target.files[i].size / 1024) > max_file_size) {\n                    instance.publishState(\"mux_upload_error\", \"File selected is too large, max file size allowed is \" + max_file_size + \"kb (\" + max_file_size / 1000 + \"mb)\");\n                    instance.triggerEvent('mux_upload_error');\n                    return;\n                }\n            }\n\n            // push file size into array\n            file_sizes.push(e.target.files[i].size);\n\n            // last item in this loop\n            if ((i + 1) == (e.target.files.length)) {\n                instance.triggerEvent(\"files_selected\");\n            }\n\n        }\n        document.body.removeChild(input);\n\n        // updates the combined file sizes state, used here and in the upload media to mux action for a total progress bar\n        instance.data.totalFileSizes = file_sizes.reduce(function(a, b) { return a + b; }) / 1024;\n        instance.publishState(\"mux_total_file_size\", instance.data.totalFileSizes);\n\n    }\n    input.click();\n\n}"},"fields":{"AUQ":{"caption":"Max file size","name":"max_file_size","rank":1,"editor":"DynamicValue","value":"number","optional":true},"AUT":{"caption":"You'll need the videoJSplayer element somewhere on your page to run this. Opens a file dialog and allows for multiple files to be selected. Selected files are stored in memory as file objects and the state called \"Files selected count\" contains a count of the selected files. You should use this action when you want to pass files into the Upload media to MUX action. The state can be used within a JavascriptToBubble workflow loop.","name":"info","rank":0,"editor":"Label"}}},"AUs":{"caption":"Remove overlay","code":{"fn":"function(instance, properties, context) {\n\n    // when videoJS is ready\n    instance.data.videoJSReady().then(function() {\n\n        // get data\n        var videoPlayer = instance.data.videoPlayer;\n\n        setTimeout(function() {\n            // remove overlay\n            videoPlayer.overlay({\n                overlays: [{\n                    content: \"\",\n                    start: 0,\n                    end: 0,\n                    align: \"center\",\n                    showBackground: false,\n                    attachToControlBar: false\n                }]\n            });\n        }, 500);\n\n    });\n\n}"}},"Adi":{"caption":"Load scrubber thumbnails","code":{"fn":"function(instance, properties, context) {\n\n    // when videoJS is ready\n    instance.data.videoJSReady().then(function() {\n\n        // get data\n        var videoPlayer = instance.data.videoPlayer;\n        var sprite_sheet = properties.sprite_sheet;\n        var sprite_sheet_width = properties.sprite_sheet_width;\n        var sprite_sheet_height = properties.sprite_sheet_height;\n        var sprite_sheet_interval = properties.sprite_sheet_interval;\n        var sprite_sheet_scale_factor = properties.sprite_sheet_scale_factor ? properties.sprite_sheet_scale_factor : 1;\n\n        // enables scrubber thumbnails on the progress bar\n        instance.data.spriteThumbs(videoPlayer, {\n            url: \"\" + sprite_sheet + \"\",\n            interval: sprite_sheet_interval,\n            width: sprite_sheet_width,\n            height: sprite_sheet_height,\n            scaleFactor: sprite_sheet_scale_factor\n        });\n\n    });\n\n}"},"fields":{"Adj":{"caption":"Spritesheet","name":"sprite_sheet","rank":1,"editor":"DynamicValue","value":"text"},"Adk":{"caption":"Spritesheet width","name":"sprite_sheet_width","rank":2,"editor":"DynamicValue","value":"number"},"Adl":{"caption":"Spritesheet height","name":"sprite_sheet_height","rank":3,"editor":"DynamicValue","value":"number"},"Adn":{"caption":"Spritesheet interval","name":"sprite_sheet_interval","rank":4,"editor":"DynamicValue","value":"number"},"Ado":{"caption":"Scale factor","name":"sprite_sheet_scale_factor","rank":5,"editor":"DynamicValue","value":"number"},"Anj":{"caption":"This action loads the scrubber thumbnails which you see when hovering over the progress bar. There are 2 ways to do this depending on where your videos are stored. If you're using MUX to host videos then the information needed below can be retrieved by running the \"Get MUX Spritesheet\" action. These are called Storyboards in MUX. If you're not using MUX then you can attempt to run the \"Create Spritesheet\" action which uses CloudConvert and FFMPEG to return the relevant details.","name":"info","rank":0,"editor":"Label"}}},"Adp":{"caption":"Load scrubbing interface","code":{"fn":"function(instance, properties, context) {\n\n    // when videoJS is ready\n    instance.data.videoJSReady().then(function() {\n\n        // get data\n        var sprite_sheet = properties.sprite_sheet;\n        var number_of_tiles = properties.number_of_tiles;\n        var slider_width = properties.slider_width;\n        var slider_show_onload = properties.slider_show_onload\n        var slider_color = properties.slider_color ? properties.slider_color : '#F56105';\n        var slider_stay_visible = properties.slider_stay_visible;\n        var scrubber_hide_on_click = properties.scrubber_hide_on_click;\n\n        // set the css display value for slider show onload option\n        if (slider_show_onload) {\n            slider_show_onload = 'block';\n        } else {\n            slider_show_onload = 'none';\n        }\n\n        // load\n        if (!document.getElementById(\"scrubbing_interface\")) {\n            $('#' + instance.data.elementId).prepend('<div id=\"scrubbing_interface\" class=\"video-preview\" data-frames=\"' + number_of_tiles + '\" data-source=\"' + sprite_sheet + '\"></div>');\n            instance.data.scrubbing(slider_show_onload,slider_width,slider_color,scrubber_hide_on_click,slider_stay_visible);\n        } else {\n            document.getElementById(\"scrubbing_interface\").remove();\n            $('#' + instance.data.elementId).prepend('<div id=\"scrubbing_interface\" class=\"video-preview\" data-frames=\"' + number_of_tiles + '\" data-source=\"' + sprite_sheet + '\"></div>');\n            instance.data.scrubbing(slider_show_onload,slider_width,slider_color,scrubber_hide_on_click,slider_stay_visible);\n        }\n\n    });\n\n}"},"fields":{"Adq":{"caption":"Spritesheet","name":"sprite_sheet","rank":1,"editor":"DynamicValue","value":"text"},"Adr":{"caption":"Number of tiles","name":"number_of_tiles","rank":2,"editor":"DynamicValue","value":"number"},"Ads":{"caption":"Slider width","name":"slider_width","rank":3,"editor":"DynamicValue","value":"number","default_val":2},"Adt":{"caption":"Slider color","name":"slider_color","rank":5,"editor":"Color","default_val":"rgba(245, 97, 5, 1)"},"Adu":{"caption":"Slider stay visible","name":"slider_stay_visible","rank":6,"editor":"DynamicValue","value":"boolean","default_val":false},"Adv":{"caption":"Scrubber hide on click","name":"scrubber_hide_on_click","rank":7,"editor":"DynamicValue","value":"boolean","default_val":false},"Adw":{"caption":"Slider show onload","name":"slider_show_onload","rank":4,"editor":"DynamicValue","value":"boolean","default_val":true},"Ank":{"caption":"This actions creates a sort of scrubbing interface over the entire video. You can use the \"Create Spritesheet\" action to generate a spritesheet which should contain images that are of equal width and height as the player/video. Note that this feature is not responsive so your video element should be at a fixed width.","name":"info","rank":0,"editor":"Label"}}},"Aet":{"caption":"Picture in picture","code":{"fn":"function(instance, properties, context) {\n\n    // when videoJS is ready\n    instance.data.videoJSReady().then(function() {\n\n        // get data\n        var videoPlayer = instance.data.videoPlayer;\n        var enable = properties.enable;\n\n        // request and exit pip mode\n        if (videoPlayer.currentSrc()) {\n            if (enable) {\n                videoPlayer.requestPictureInPicture();\n            } else {\n                videoPlayer.exitPictureInPicture();\n            }\n        } else {\n            alert(\"Must have a media loaded before you can control picture in picture mode\");\n        }\n\n    });\n\n}"},"fields":{"Aev":{"caption":"Enable","name":"enable","rank":0,"editor":"DynamicValue","value":"boolean","default_val":true}}},"AfC":{"caption":"Load audio track","code":{"fn":"function(instance, properties, context) {\n\n    // when videoJS is ready\n    instance.data.videoJSReady().then(function() {\n\n        // get data\n        var videoPlayer = instance.data.videoPlayer;\n        var videoContainer = document.getElementById(instance.data.elementId);\n        var src = properties.src;\n        var mime_type = properties.mime_type;\n        var kind = properties.kind;\n        var label = properties.label ? properties.label : 'my audio track';\n        var loop = properties.loop;\n        var enabled = properties.enabled;\n        var play_audio = properties.play_audio;\n        var play_video = properties.play_video;\n        var browser_language;\n\n        // get file extension\n        function getExtension(path) {\n            var basename = path.split(/[\\\\/]/).pop();\n            var pos = basename.lastIndexOf(\".\");\n            if (basename === \"\" || pos < 1) {\n                return \"\";\n            }\n            return basename.slice(pos + 1); // return ext\n        }\n        var ext = getExtension(src);\n\n        // set common mime type when mime type field is left empty\n        if (!mime_type && ext) {\n            mime_type = \"audio/\"+ext+\"\";\n        }\n\n        // get browser language\n        browser_language = navigator.language || navigator.userLanguage;\n        browser_language = browser_language.substr(0, 2);\n\n        // generate a random id just for the id attribute in the track tag\n        var randomId = Math.floor((Math.random() * 100000) + 1);\n        var trackId = 'track_' + randomId;\n\n        // create new audio element using trackId, is searched for in the audioTrackList change event defined within initialize\n        var audioElement = document.createElement(\"audio\");\n        audioElement.id = \"\" + trackId + \"\";\n        audioElement.src = \"\" + src + \"\";\n        audioElement.type = \"\" + mime_type + \"\";\n\n        // set loop attribute\n        if (loop) {\n            audioElement.setAttribute('loop', true);\n        }\n\n        // append audioSource to the audioElement\n        videoContainer.appendChild(audioElement);\n\n        // options\n        var trackOptions = new videojs.AudioTrack({\n            src: \"\" + src + \"\",\n            kind: \"\" + kind + \"\",\n            label: \"\" + label + \"\",\n            language: \"\" + browser_language + \"\",\n            enabled: enabled,\n            id: trackId\n        });\n\n        // add new track\n        videoPlayer.audioTracks().addTrack(trackOptions);\n\n        // play audio\n        if (play_audio && enabled) {\n            setTimeout(function() {\n                videoPlayer.muted(true);\n                audioElement.play();\n            }, 100);\n        }\n\n        // play video\n        if (play_video) {\n            videoPlayer.play();\n        }\n\n        // set this to true when action run, used inside play/pause events within initialize\n        instance.data.audioTrack = true;\n\n    });\n\n}"},"fields":{"AfE":{"caption":"Audio file","name":"src","rank":1,"editor":"DynamicValue","value":"file"},"AfF":{"caption":"Kind","name":"kind","rank":3,"editor":"Dropdown","default_val":"None"},"AfG":{"caption":"Label","name":"label","rank":4,"editor":"DynamicValue","value":"text"},"AfH":{"caption":"Enabled","name":"enabled","rank":6,"editor":"DynamicValue","value":"boolean","default_val":true},"AiM":{"caption":"MIME type","name":"mime_type","rank":2,"editor":"DynamicValue","value":"text","optional":true},"AiP":{"caption":"Play audio","name":"play_audio","rank":7,"editor":"DynamicValue","value":"boolean","default_val":false},"AiS":{"caption":"Play video","name":"play_video","rank":8,"editor":"DynamicValue","value":"boolean","default_val":false},"AiT":{"caption":"Tip: You may want to mute the main video when using this action since it creates a separate audio element which plays independently from the main video.","name":"info","rank":0,"editor":"Label"},"Aik":{"caption":"Loop","name":"loop","rank":5,"editor":"DynamicValue","value":"boolean","default_val":false}}},"Ahl":{"caption":"Full screen","code":{"fn":"function(instance, properties, context) {\n\n    // when videoJS is ready\n    instance.data.videoJSReady().then(function() {\n\n        // get data\n        var option = properties.option ? properties.option : 'enter';\n\n        // enter/leave full screen\n        if (option === 'enter') {\n            new Function(\"videojs.players.\" + instance.data.elementId + \".requestFullscreen()\")();\n        }\n\n        if (option === 'leave') {\n            new Function(\"videojs.players.\" + instance.data.elementId + \".exitFullscreen()\")();\n        }\n\n    });\n\n}"},"fields":{"Ahm":{"caption":"Option","name":"option","rank":0,"editor":"DynamicValue","value":"text","default_val":"enter"}}},"AiN":{"caption":"Remove audio track","code":{"fn":"function(instance, properties, context) {\n\n    // when videoJS is ready\n    instance.data.videoJSReady().then(function() {\n\n        // get data\n        var videoPlayer = instance.data.videoPlayer;\n        var label = properties.label;\n        var all = properties.all;\n\n        // remove track and audio element\n        var audioTrackList = videoPlayer.audioTracks();\n\n        for (var i = 0; i < audioTrackList.length; i++) {\n            var track = audioTrackList[i];\n\n            if (!all) {\n                if (track.label == label) {\n                    videoPlayer.audioTracks().removeTrack(track);\n                    document.getElementById(track.id).remove();\n                }\n            } else {\n                videoPlayer.audioTracks().removeTrack(track);\n                document.getElementById(track.id).remove();\n            }\n\n        }\n\n    });\n\n}"},"fields":{"AiO":{"caption":"Label","name":"label","rank":0,"editor":"DynamicValue","value":"text"},"AiQ":{"caption":"All","name":"all","rank":1,"editor":"DynamicValue","value":"boolean","default_val":false}}},"Akf":{"caption":"Change subtitle track","code":{"fn":"function(instance, properties, context) {\n\n    // when videoJS is ready\n    instance.data.videoJSReady().then(function() {\n\n        // get data\n        var videoPlayer = instance.data.videoPlayer;\n        var label = properties.label.charAt(0).toUpperCase() + properties.label.slice(1);\n\n        // change the text track by using the label name\n        var tracks = videoPlayer.textTracks();\n\n        for (var i = 0; i < tracks.length; i++) {\n            var track = tracks[i];\n\n            if (track.label == label) {\n                track.mode = 'showing';\n            } else {\n                track.mode = 'disabled';\n            }\n        }\n\n    });\n\n}"},"fields":{"Akg":{"caption":"Label","name":"label","rank":0,"editor":"DynamicValue","value":"text"}}},"Amd":{"caption":"Set start and end times","code":{"fn":"function(instance, properties, context) {\n\n    // when videoJS is ready\n    instance.data.videoJSReady().then(function() {\n\n        // get data\n        var videoPlayer = instance.data.videoPlayer;\n        var constructor = videoPlayer.constructor;\n        var start_time_offset = properties.start_time_offset ? properties.start_time_offset : 0;\n        var end_time_offset = properties.end_time_offset ? properties.end_time_offset : 0;\n        var trigger_event = properties.trigger_event;\n\n        // remove any previous timeupdate event associated with this action\n        if (instance.data.onPlayerTimeUpdate) {\n            videoPlayer.off('timeupdate', instance.data.onPlayerTimeUpdate);\n        }\n\n        // remove any previous constructor functions that this action may have created because they get assigned to all players\n        delete constructor.__super__;\n\n        // controls the restore of original functions which maintains any references to other objects\n        // this currently overrides the old everytime, meaning to reliably use this action, you need to reset it inbetween running with different times\n        function FunctionSwapper(target, name, newFunction) {\n            var old = target[name];\n            target[name] = newFunction;\n            this.Restore = function() {\n                target[name] = old;\n            }\n        };\n\n        // restore oringal functions when times are empty\n        if (!start_time_offset && !end_time_offset) {\n\n            if (instance.data.functionsChanged) {\n                instance.data.swap_duration.Restore();\n                instance.data.swap_currentTime.Restore();\n                instance.data.swap_remainingTime.Restore();\n                instance.data.swap_buffered.Restore();\n                delete constructor.__super__;\n                delete videoPlayer.startOffset;\n                delete videoPlayer.endOffset;\n            };\n\n            // set the new functions to trim the video\n        } else {\n\n            // indicator to say it's run once\n            instance.data.functionsChanged = true;\n\n            // set times\n            videoPlayer._offsetStart = start_time_offset;\n            videoPlayer._offsetEnd = end_time_offset;\n\n            // new protocols\n            if (!constructor.__super__ || !constructor.__super__.__offsetInit) {\n                constructor.__super__ = {\n                    __offsetInit: true,\n                    duration: constructor.prototype.duration,\n                    currentTime: constructor.prototype.currentTime,\n                    bufferedPercent: constructor.prototype.bufferedPercent,\n                    remainingTime: constructor.prototype.remainingTime,\n                    buffered: constructor.prototype.buffered\n                };\n\n                instance.data.swap_duration = new FunctionSwapper(videoPlayer, 'duration', function() {\n                    if (videoPlayer._offsetEnd !== undefined && videoPlayer._offsetStart !== undefined) {\n                        if (videoPlayer._offsetEnd > 0) {\n                            return videoPlayer._offsetEnd - videoPlayer._offsetStart;\n                        }\n                        return constructor.__super__.duration.apply(videoPlayer, arguments) - videoPlayer._offsetStart;\n                    }\n                    return constructor.__super__.duration.apply(videoPlayer, arguments);\n                });\n\n                instance.data.swap_currentTime = new FunctionSwapper(videoPlayer, 'currentTime', function(seconds) {\n                    if (seconds !== undefined) {\n                        if (videoPlayer._offsetStart !== undefined) {\n                            return constructor.__super__.currentTime\n                                .call(videoPlayer, seconds + videoPlayer._offsetStart);\n                        }\n                        return constructor.__super__.currentTime.call(videoPlayer, seconds);\n                    }\n\n                    if (videoPlayer._offsetStart !== undefined) {\n                        const t = constructor.__super__.currentTime\n                        .apply(videoPlayer) - videoPlayer._offsetStart;\n\n                        videoPlayer.getCache().currentTime = t;\n                        return t;\n                    }\n                    return constructor.__super__.currentTime.apply(videoPlayer);\n                });\n\n                instance.data.swap_remainingTime = new FunctionSwapper(videoPlayer, 'remainingTime', function() {\n                    return videoPlayer.duration() - videoPlayer.currentTime();\n                });\n\n                videoPlayer.startOffset = function() {\n                    return videoPlayer._offsetStart;\n                };\n\n                videoPlayer.endOffset = function() {\n                    if (videoPlayer._offsetEnd > 0) {\n                        return videoPlayer._offsetEnd;\n                    }\n                    return videoPlayer.duration();\n                };\n\n                instance.data.swap_buffered = new FunctionSwapper(videoPlayer, 'buffered', function() {\n                    const buff = constructor.__super__.buffered.call(videoPlayer);\n                    const ranges = [];\n\n                    for (let i = 0; i < buff.length; i++) {\n                        ranges[i] = [\n                            Math.max(0, buff.start(i) - videoPlayer._offsetStart),\n                            Math.min(Math.max(0, buff.end(i) - videoPlayer._offsetStart), videoPlayer.duration())\n                        ];\n                    }\n\n                    return videojs.createTimeRanges(ranges);\n                });\n\n            }\n\n            // timeupdate function this actually sets things into motion\n            instance.data.onPlayerTimeUpdate = function() {\n                if (videoPlayer._offsetEnd > 0 && videoPlayer.currentTime() > (videoPlayer._offsetEnd - videoPlayer._offsetStart)) {\n                    videoPlayer.pause();\n                }\n            };\n\n            // create timeupdate event\n            videoPlayer.one('play', () => {\n                videoPlayer.on('timeupdate', instance.data.onPlayerTimeUpdate);\n            });\n\n            // reset times to beginning\n            videoPlayer.currentTime(0);\n\n        }\n\n        // trigger event\n        if (trigger_event) {\n            instance.triggerEvent('offset_times_changed');\n        }\n\n    });\n\n}"},"fields":{"Ame":{"caption":"Start time offset","name":"start_time_offset","rank":2,"editor":"DynamicValue","value":"number","optional":true},"Amf":{"caption":"End time offset","name":"end_time_offset","rank":3,"editor":"DynamicValue","value":"number","optional":true},"Amg":{"caption":"This action allows you to set new start and end times to an already loaded media file, so you can play a specific portion of it within the player. States such as the duration, remainingTime and currentTime will be re-calculated based upon the times entered, so the correct data is returned when the new times are set. The action can be run with no values to clear any existing time offsets and it will only work with one player at a time. If you want to run this action a second time against a different player, then you must clear any previous offsets first.","name":"info","rank":0,"editor":"Label"},"And":{"caption":"Trigger event","name":"trigger_event","rank":4,"editor":"DynamicValue","value":"boolean","default_val":true},"AqC":{"caption":"Note: There's currently a bug which I haven't got around to fixing yet. When you run this, it backs up 4 of the videoJS functions that are then modified so playback times and other calculations are adjusted for the new times. When you run this a second time, it copies those same functions again but it shouldn't do this because now it's overriten our original versions meaning it can never be reset. For the time being if you're using this, make sure you reset it everytime before you run it with any values. Reach out to pork1977gm on the forum if needed and see the clipping demo page.","name":"info","rank":1,"editor":"Label"}}},"ApN":{"caption":"Get sound wave data","code":{"fn":"function(instance, properties, context) {\n\n    // when videoJS is ready\n    instance.data.videoJSReady().then(function() {\n\n        if (instance.data.wavesurfer_hasLoaded) {\n            var wavedata = instance.data.wavesurfer.exportPCM(null, null, true).then(\n                (result)=> {\n                    instance.publishState('waveform_data', JSON.stringify(result));\n                    instance.triggerEvent('sound_wave_data');\n                }\n            );\n        } else {\n            alert(\"You must have a sound wave loaded before you can get the data\");\n        }\n\n    });\n\n}"},"fields":{"ApQ":{"caption":"This action will retrieve the data for a currently loaded sound wave. It will trigger the 'has retrieved sound wave data' event once complete, and the 'Waveform data' state will be available to use.","name":"info","rank":0,"editor":"Label"}}},"AqY":{"caption":"Mute all medias","code":{"fn":"function(instance, properties, context) {\n    \n    // get data\n    var mute_current_player = properties.mute_current_player;\n    \n    // when videoJS is ready\n    instance.data.videoJSReady().then(function() {\n\n        var allVideos = document.querySelectorAll('[id^=videoElement_][aria-label=\"Video Player\"]');\n\n        for (var i = 0; i < allVideos.length; i++) {\n            if (!mute_current_player) {\n                if (allVideos[i].id != instance.data.elementId) {\n                    new Function(\"videojs.players.\" + allVideos[i].id + \".muted(true);\")();\n                }\n            } else {\n                new Function(\"videojs.players.\" + allVideos[i].id + \".muted(true);\")();\n            }\n        }\n\n    });\n\n}"},"fields":{"Aqb":{"caption":"Mute current player","name":"mute_current_player","rank":0,"editor":"DynamicValue","value":"boolean","default_val":true}}}},"code":{"preview":{"fn":"function(instance, properties) {\n\n    let box = $(`<div></div>`);\n\n    instance.canvas.append(box);\n    box.css(\"height\", properties.bubble.height)\n    box.css(\"width\", properties.bubble.width)\n    box.css(\"background-repeat\", \"no-repeat\")\n    box.css(\"background-position\", \"center\")\n    box.css(\"background-size\", \"cover\")\n\n    if (properties.theme === \"Base\") {\n        box.css(\"background-image\", \"url(//01246d7e30dd8ee862a8dba3b426a683.cdn.bubble.io/f1608652570505x211901659101255230/template_base.png)\")\n    } else if (properties.theme === \"City\") {\n        box.css(\"background-image\", \"url(//01246d7e30dd8ee862a8dba3b426a683.cdn.bubble.io/f1608652579099x219789276336643140/template_city.png)\")\n    } else if (properties.theme === \"Fantasy\") {\n        box.css(\"background-image\", \"url(//01246d7e30dd8ee862a8dba3b426a683.cdn.bubble.io/f1608652588487x687202391116096300/template_fantasy.png)\")\n    } else if (properties.theme === \"Forest\") {\n        box.css(\"background-image\", \"url(//01246d7e30dd8ee862a8dba3b426a683.cdn.bubble.io/f1608652596578x472501672656133060/template_forest.png)\")\n    } else if (properties.theme === \"Sea\") {\n        box.css(\"background-image\", \"url(//01246d7e30dd8ee862a8dba3b426a683.cdn.bubble.io/f1608652604805x108800073407656620/template_sea.png)\")\n    } else if (properties.theme === \"Custom\") {\n        box.css(\"background-image\", \"url(//01246d7e30dd8ee862a8dba3b426a683.cdn.bubble.io/f1608652570505x211901659101255230/template_base.png)\")\n    }\n\n}"},"initialize":{"fn":"function(instance, context) {\n\n    // generate a random id for the element\n    var randomId = Math.floor((Math.random() * 100000) + 1);\n    var elementId = 'videoElement_' + randomId;\n    var waveformId = 'waveForm_' + randomId;\n\n    // used for the inViewport functionality in initialize and update, sets a default value\n    instance.data.tolerance = 0;\n    instance.data.triggerEvents = true;\n\n    // function which returns a promise, used in all actions\n    instance.data.videoJSReady = function videoJSReady() {\n        var timeout = 1000000;\n        var start = Date.now();\n        return new Promise(waitForvideoJS);\n\n        // this function makes the decision whether the condition is met or not, or the timeout has been exceeded\n        function waitForvideoJS(resolve, reject) {\n            if ($('#' + instance.data.elementId).length) {\n                resolve(true);\n            } else if (timeout && (Date.now() - start) >= timeout) {\n                reject(new Error(\"timeout\"));\n            } else {\n                console.log(\"waiting for videojs before executing action\");\n                setTimeout(waitForvideoJS.bind(this, resolve, reject), 30);\n            }\n        }\n    }\n\n    // add the elements, the data-setup which contains the videoJS options is now set in update\n    instance.canvas.append(\"<div style='display:none;z-index:1' id='\" + waveformId + \"'></div><div class='ads'><div class='advertisement hide'>Advertisement</div><div class='skip hide'>Skip</div><div class='visit hide'>Visit</div></div><video id='\" + elementId + \"' data-setup='{}' class='video-js' type='*' playsinline allow='autoplay' style='width:100%;height:100%;background-color:rgba(255, 255, 255, 0)'></video>\");\n    instance.data.elementId = elementId;\n    instance.data.waveformId = waveformId;\n\n    $(document).ready(function() {\n\n        // set a couple of states back to default values for use with in/out viewport events to stop them firing loads of times\n        // the global ones are used when the player is inside an rg, used in update, having both sets allows for page scroll and rg scroll to work\n        var inView = true;\n        var outView = false;\n        instance.data.inView = true;\n        instance.data.outView = false;\n\n        // load video player\n        var videoPlayer;\n        videoPlayer = videojs(elementId);\n\n        // default youtube states\n        instance.publishState(\"youtube_controls_enabled\", true);\n        instance.publishState(\"youtube_fullscreen_icon\", true);\n        instance.publishState(\"youtube_color\", \"red\");\n        instance.publishState(\"youtube_lang_pref\", \"\");\n        instance.publishState(\"youtube_cc_load_policy\", false);\n        instance.publishState(\"youtube_disable_kb\", false);\n        instance.publishState(\"youtube_interface_lang\", \"\");\n        instance.publishState(\"youtube_iv_load_policy\", true);\n        instance.publishState(\"youtube_modestbranding\", true);\n        instance.publishState(\"youtube_playsinline\", true);\n\n        // changes the mouse on ajax start (get vimeo video)\n        $(document).ajaxStart(function() {\n            $(document.body).css({'cursor' : 'wait'});\n        }).ajaxStop(function() {\n            $(document.body).css({'cursor' : 'default'});\n        });\n\n        // resize the player as page size changes to keep aspect ratio\n        instance.data.resizeVideoJS = function resizeVideoJS() {\n            if (instance.data.disable_auto_resize) {\n                return;\n            } else {\n                if (instance.canvas[0].bubble_data.bubble_instance._is_visible) {\n                    var width = document.getElementById(instance.data.elementId).parentElement.offsetWidth;\n                    videoPlayer.width(width);\n                    instance.canvas.css(\"height\", width * instance.data.aspectRatio);\n                }\n            }\n        }\n\n        // if the video is playing still when the element is made not visible, then this will stop it\n        function pauseVideo() {\n            if (!instance.canvas[0].bubble_data.bubble_instance._is_visible) {\n                if (!videoPlayer.paused()) {\n                    videoPlayer.pause();\n                }\n            }\n        }\n        $(window).click(pauseVideo);\n\n        // setup a mutation observer to pause the video when it's not visible and disable the sound wave if it's enabled\n        let observer = new MutationObserver(function (mutations) {\n            mutations.forEach(function (mutation) {\n\n                if (mutation.type == 'attributes') {\n                    var currentDisplay = mutation.target.style.display;\n                    var currentVisibility = mutation.target.style.visibility;\n\n                    if (currentDisplay == 'none' || currentVisibility == 'hidden') {\n                        // console.log(\"display has just changed to none or visibility has changed to hidden\");\n\n                        videoPlayer.pause();\n\n                        // the new responsive engine is not hiding the control bar, not sure why but this will hide it\n                        document.getElementById('' + instance.data.elementId + '').getElementsByClassName('vjs-control-bar')[0].style.opacity = 0;\n                        document.getElementById('' + instance.data.elementId + '').getElementsByClassName('vjs-control-bar')[0].style.pointerEvents = 'none';\n\n                    } else if (currentDisplay == 'block' || currentVisibility == '') {\n                        // console.log(\"display has just changed to block or visibility has changed to visible\");\n\n                        // restore visibility on the control bar, is a problem with new responsive engine\n                        document.getElementById('' + instance.data.elementId + '').getElementsByClassName('vjs-control-bar')[0].style.opacity = instance.data.control_bar_opacity;\n                        document.getElementById('' + instance.data.elementId + '').getElementsByClassName('vjs-control-bar')[0].style.pointerEvents = 'auto';\n\n                        // fixes the height being 0 when running on the old responsive engine and bubble's show/toggle actions are run\n                        // conditionally changing the visibility based upon the value of a state seems to be fine, older engine\n                        // on old responsive engine, you can't run the toggle/hide/show action as it sets the height to 0px\n                        // have seen flicking of the videos on neweer responsive pages which this control may have caused, it shouldn't do though, it is now an option in the player\n                        if (instance.canvas.height() < 1 && instance.data.fix_height) {\n                            instance.canvas.css(\"height\", videoPlayer.videoHeight() + 30);\n                        }\n\n                    }\n\n                    // if you ever need a mutation observer to happen only once, you can add this\n                    // observer.disconnect();\n                }\n\n            });\n        });\n        let observerConfig = {\n            childList: true,\n            subtree: true,\n            attributes: true\n        };\n        observer.observe(instance.canvas[0], {\n            attributes: true\n        });\n\n        // controls the scrubber thumbnails on the progress bar - called from update/load media/load scrubber thumbnails\n        instance.data.spriteThumbs = function spriteThumbs(player, options) {\n            var url = options.url;\n            var height = options.height;\n            var width = options.width;\n            var scaleFactor = options.scaleFactor;\n            var dom = videojs.dom || videojs;\n            var controls = player.controlBar;\n            var progress = controls.progressControl;\n            var seekBar = progress.seekBar;\n            var mouseTimeDisplay = seekBar.mouseTimeDisplay;\n\n            if (url && height && width && mouseTimeDisplay) {\n                var img = dom.createEl('img', {\n                    src: url\n                });\n\n                var tooltipStyle = function tooltipStyle(obj) {\n                    Object.keys(obj).forEach(function (key) {\n                        var val = obj[key];\n                        var ttstyle = mouseTimeDisplay.timeTooltip.el().style;\n\n                        if (val !== '') {\n                            ttstyle.setProperty(key, val);\n                        } else {\n                            ttstyle.removeProperty(key);\n                        }\n                    });\n                };\n\n                var hijackMouseTooltip = function hijackMouseTooltip() {\n                    var imgWidth = img.naturalWidth;\n                    var imgHeight = img.naturalHeight;\n\n                    if (player.controls() && imgWidth && imgHeight) {\n                        var hoverPosition = parseFloat(mouseTimeDisplay.el().style.left);\n                        hoverPosition = player.duration() * (hoverPosition / seekBar.currentWidth());\n\n                        if (!isNaN(hoverPosition)) {\n                            hoverPosition = hoverPosition / options.interval;\n                            var playerWidth = player.currentWidth();\n                            var scaleFactor = options.scaleFactor ? options.scaleFactor : 1;\n                            var columns = imgWidth / width;\n                            var scaledWidth = width * scaleFactor;\n                            var scaledHeight = height * scaleFactor;\n                            var cleft = Math.floor(hoverPosition % columns) * -scaledWidth;\n                            var ctop = Math.floor(hoverPosition / columns) * -scaledHeight;\n                            var bgSize = imgWidth * scaleFactor + 'px ' + imgHeight * scaleFactor + 'px';\n                            var controlsTop = dom.getBoundingClientRect(controls.el()).top;\n                            var seekBarTop = dom.getBoundingClientRect(seekBar.el()).top; // top of seekBar is 0 position\n\n                            var topOffset = -scaledHeight - Math.max(0, seekBarTop - controlsTop);\n                            tooltipStyle({\n                                'width': scaledWidth + 'px',\n                                'height': scaledHeight + 'px',\n                                'background-image': 'url(' + url + ')',\n                                'background-repeat': 'no-repeat',\n                                'background-position': cleft + 'px ' + ctop + 'px',\n                                'background-size': bgSize,\n                                'top': topOffset + 'px',\n                                'color': '#fff',\n                                'text-shadow': '1px 1px #000',\n                                'border': '1px solid #000',\n                                'margin': '0 1px'\n                            });\n                        }\n                    }\n                };\n\n                tooltipStyle({\n                    'width': '',\n                    'height': '',\n                    'background-image': '',\n                    'background-repeat': '',\n                    'background-position': '',\n                    'background-size': '',\n                    'top': '',\n                    'color': '',\n                    'text-shadow': '',\n                    'border': '',\n                    'margin': ''\n                });\t  \n                progress.on('mousemove', hijackMouseTooltip);\n                progress.on('touchmove', hijackMouseTooltip);\n                player.addClass('vjs-sprite-thumbnails');\n            }\n        }\n\n        // controls the scrubbing interface over the video player - called from update/load scrubbing interface\n        instance.data.scrubbing = function scrubbing(sliderShowOnLoad,sliderWidth,sliderColor,hideOnClick,stayVisible) {\n            (function($) {\n                $.fn.videoPreview = function(options) {\n                    return this.each(function() {\n                        var elm = $(this);\n                        var frames = parseFloat(elm.data('frames'));\n\n                        var img = $('<img/>', { 'src': elm.data('source') }).hide().css({\n                            'position': 'absolute',\n                            'cursor': 'pointer'\n                        }).appendTo(elm);\n                        var slider = $('<div/>').hide().css({\n                            'display': '' + sliderShowOnLoad + '',\n                            'width': '' + sliderWidth + 'px',\n                            'left': instance.canvas.width() / 2,\n                            'height': '100%',\n                            'background': '' + instance.data.getHEX(sliderColor).toUpperCase() + '',\n                            'position': 'absolute',\n                            'z-index': '1',\n                            'top': '0',\n                            'opacity': 0.6,\n                            'cursor': 'pointer'\n                        }).appendTo(elm);\n\n                        var width;\n\n                        function defaultPos() {\n                            img.css('left', -width * frames / 4);\n                        }\n\n                        img.load(function() {\n                            $(this).show();\n                            width = this.width / frames;\n                            elm.css('width', width);\n                            defaultPos();\n                        });\n                        elm.click(function(e) {\n                            instance.triggerEvent('scrubber_clicked');\n                            if (hideOnClick) {\n                                elm.hide();\n                                slider.hide();\n                            }\n                        });\n                        elm.mousemove(function(e) {\n                            var left = e.clientX - (window.scrollX + document.querySelector('#' + instance.data.elementId).getBoundingClientRect().left);\n                            slider.show().css('left', left);\n                            img.css('left', -Math.floor((left / width) * frames) * width);\n                        }).mouseleave(function(e) {\n                            if (!stayVisible) {\n                                slider.hide();\n                            }\n                        });\n\n                    });\n                };\n            })(jQuery);\n            $('.video-preview').videoPreview();\n        }\n\n        // set some states to default values on load\n        instance.publishState(\"is_playing\", false);\n        instance.publishState(\"playback_rate\", 1);\n        instance.publishState(\"volume\", 1);\n        instance.publishState(\"loading_time_events\", false);\n        window.isPlayingElementId = elementId;\n\n        // format time function (00:00:00)\n        instance.data.secondsToTime = function secondsToTime(secs, split) {\n            var hours = Math.floor(secs/3600);\n            (hours >= 1) ? secs = secs - (hours*3600) : hours = '';\n            ((hours > 0) && (hours < 10)) ? hours = '0'+hours : hours;\n\n            var min = Math.floor(secs/60);\n            (min >= 1) ? secs = secs - (min*60) : min = '00';\n            if (!split) {\n                ((secs > 0) && (secs < 10)) ? secs = '0'+Math.floor(secs) : secs = Math.floor(secs);\n            } else {\n                ((secs > 0) && (secs < 10)) ? secs = '0'+secs.toFixed(2) : secs = secs.toFixed(2);\n            }\n            ((min > 0) && (min < 10)) ? min = '0'+min : min;\n\n            if (hours < 1) {\n                return min+':'+secs;\n            } else {\n                return hours+':'+min+':'+secs;\n            }\n        };\n\n        // function to return file extension of a url\n        instance.data.getExtension = function getExtension(path) {\n            if (path) {\n                var basename = path.split(/[\\\\/]/).pop(); // extract file name from full path\n                var pos = basename.lastIndexOf(\".\"); // get last position of `.`\n\n                if (basename === \"\" || pos < 1) { // if file name is empty or not `.` return empty ext\n                    return \"\";\n                }\n\n                return basename.slice(pos + 1); // return ext\n            }\n        }\n\n        // used to format the times in control bar\n        function customTimeFormat(seconds, guide) {\n            seconds = seconds < 0 ? 0 : seconds;\n            let s = Math.floor(seconds % 60);\n            let m = Math.floor(seconds / 60 % 60);\n            let h = Math.floor(seconds / 3600);\n            let gm = Math.floor(guide / 60 % 60);\n            let gh = Math.floor(guide / 3600); // handle invalid times\n\n            if (isNaN(seconds) || seconds === Infinity) {\n                // '-' is false for all relational operators (e.g. <, >=) so this setting adds the minimum number of fields specified by the guide\n                h = m = s = '-';\n\n                return h + ':' + s;\n            } // check if we need to show hours\n\n            h = h > 0 || gh > 0 ? h + ':' : ''; // if hours are showing, we may need to add a leading zero\n            m = ((h || gm >= 10) && m < 10 ? '0' + m : m) + ':'; // check if leading zero is need for seconds\n\n            h = parseInt(h) < 10 ? '0' + h : h;\n            s = parseInt(s) < 10 ? '0' + s : s;\n\n            return h + m + s;\n        };\n\n        // stops the poster from zooming when clicked\n        $('.vjs-poster').css('pointer-events','none');\n\n        // trigger events\n        videoPlayer.on('ready', function() {\n\n            // occassionally this may trigger more than once, we don't ever want that\n            if (!instance.data.hasReadyTriggered) {\n\n                // initialize chromecast\n                videoPlayer.chromecast();\n\n                // set the default quality resolution\n                videoPlayer.qualityMenu({\n                    useResolutionLabels: true\n                });\n\n                // enable the quality selector, appears on the control bar when multiple sources loaded\n                videoPlayer.controlBar.addChild('QualitySelector');\n\n                // zoom plugin\n                videoPlayer.zoomrotateflip({\n                    rotate: 0,\n                    zoom: 1,\n                    flip: 1,\n                    debug: false\n                });\n\n                // inside a repeating group, had reports of volume controls within the player options not being set correctly, this fixes them\n                if (instance.data.is_muted) {\n                    videoPlayer.muted(true);\n                }\n\n                if (instance.data.is_volume) {\n                    videoPlayer.volume(instance.data.value_volume);\n                }\n\n                // enable as default some seek controls\n                videoPlayer.seekButtons({\n                    forward: 20,\n                    back: 10,\n                    forwardIndex: 1,\n                    backIndex: 1\n                });\n\n                instance.triggerEvent('is_ready');\n                window.videoJSisReady = true;\n\n                // set global variable to stop this triggering more than once\n                instance.data.hasReadyTriggered = true;\n            }\n\n        });\n\n        videoPlayer.on('chromecastConnected', function() {\n            instance.data.usingChromecast = true;\n            instance.triggerEvent('chromecast_connected');\n        });\n\n        videoPlayer.on('chromecastDisconnected', function() {\n            instance.data.usingChromecast = false;\n            instance.triggerEvent('chromecast_disconnected');\n        });\n\n        videoPlayer.on('chromecastDevicesAvailable', function() {\n            instance.triggerEvent('chromecast_devices_available');\n        });\n\n        videoPlayer.on('chromecastDevicesUnavailable', function() {\n            instance.triggerEvent('chromecast_devices_unavailable');\n        });\n\n        videoPlayer.on('chromecastRequested', function() {\n            instance.triggerEvent('chromecast_requested');\n        });\n\n        videoPlayer.on('qualitySelected', function(event, newSource) {\n\n            // this event triggers for every video that's loaded, the global srcArray is defined/reset inside the update and load media file functions\n            if (instance.data.srcArray.length > 1) {\n                for (var i = 0; i < instance.data.srcArray.length; i++) {\n                    if (instance.data.srcArray[i].src = newSource.src) {\n                        instance.publishState(\"media_url\", newSource.src);\n                        instance.publishState(\"media_label\", newSource.label);\n                        instance.publishState(\"file_name\", newSource.src.substring(newSource.src.lastIndexOf('/')+1));\n                        instance.triggerEvent(\"quality_selected\");\n                        return;\n                    }\n                }\n            }\n\n        });\n\n        videoPlayer.on('ended', function() {\n            instance.publishState(\"is_playing\", false);\n            instance.publishState(\"video_has_ended\", true);\n            instance.triggerEvent('media_ended');\n        });\n\n        videoPlayer.controlBar.progressControl.on('click', function() {\n            if (instance.data.play_from_min_value != null) {\n                instance.data.progress_control_clicked = true;\n            }\n        });\n\n        videoPlayer.controlBar.progressControl.seekBar.on('click', function() {\n            if (instance.data.play_from_min_value != null) {\n                instance.data.progress_control_clicked = true;\n            }\n            instance.triggerEvent('has_been_clicked');\n        });\n\n        videoPlayer.on('play', function() {\n\n            // used inside update for the playback range scrubbing fields\n            if (instance.data.play_from_min_value != null && !instance.data.progress_control_clicked) {\n                videoPlayer.currentTime(instance.data.play_from_min_value);\n            }\n\n            // used in update to make sure the volume event doesn't trigger before the video begins to play\n            instance.data.volumeReady = true;\n\n            // when the audio track action has run, make sure we're playing the correct audio track\n            if (instance.data.audioTrack) {\n                for (var i = 0; i < audioTrackList.length; i++) {\n                    var track = audioTrackList[i];\n                    if (track.enabled) {\n                        var audioElement = document.getElementById(track.id);\n                        if (audioElement) {\n                            audioElement.play();\n                        }\n                        return;\n                    }\n                }\n            }\n\n            // trigger the time update events\n            videoPlayer.on('timeupdate', function() {\n                instance.triggerEvent('timeupdate');\n\n                if (Number.isFinite(this.duration())) {\n                    instance.publishState(\"duration\", this.duration());\n                    instance.publishState(\"duration_text\", instance.data.secondsToTime(this.duration()));\n\n                    if (Number.isFinite(this.currentTime()) && this.currentTime() > 0 && this.duration() > 0) {\n                        instance.publishState(\"percentage_played\", (this.currentTime() / this.duration() * 100).toFixed(2));\n                    }\n\n                };\n\n                if (Number.isFinite(this.currentTime())) {\n                    instance.publishState(\"current_time\", this.currentTime());\n                    instance.publishState(\"current_time_ms\", this.currentTime() * 1000);\n                    instance.publishState(\"current_time_text\", instance.data.secondsToTime(this.currentTime()));\n\n                    // custom looping\n                    if (instance.data.loop) {\n                        if (instance.data.loop_after > 0) {\n                            if (this.currentTime() >= instance.data.loop_after) {\n                                videoPlayer.currentTime(0);\n                            }\n                        }\n                    }\n\n                };\n\n                if (Number.isFinite(this.remainingTime())) {\n                    instance.publishState(\"current_time_remaining\", this.remainingTime());\n                    instance.publishState(\"current_time_remaining_ms\", this.remainingTime() * 1000);\n                    instance.publishState(\"current_time_remaining_text\", instance.data.secondsToTime(this.remainingTime()));\n                }\n\n                // do not publish to these states when using the vimeo player or chromecast\n                if (!instance.data.use_vimeo_player && !instance.data.usingChromecast) {\n                    try {\n                        instance.publishState(\"scrubbing\", videoPlayer.scrubbing());\n                        instance.publishState(\"seeking\", videoPlayer.seeking());\n                    } catch(err) {\n                        // just catches errors when either of these events aren't available through a tech like chromecast/vimeo\n                    }\n                }\n\n            });\n\n            instance.publishState(\"is_playing\", true);\n\n            // reset the has ended event if the video starts to play again but the current time is less than 1 sec\n            if (videoPlayer.currentTime() < 1) {\n                instance.publishState(\"video_has_ended\", false);\n            }\n            instance.triggerEvent('media_started');\n        });\n\n        // get click coordinates\n        function getCoords(event) {\n            var coord= {\n                X: null,\n                Y: null\n            }\n\n            // for touch devices\n            var isTouchSupported = 'ontouchstart' in window;\n            if (isTouchSupported) {\n                if (event.clientX || event.clientX == 0) {\n                    coord.X = event.clientX;\n                    coord.Y = event.clientY;\n                } else {\n                    coord.X = event.touches[0].clientX;\n                    coord.Y = event.touches[0].clientY;\n                }\n                return coord;\n            }\n\n            // for webkit browser like safari and chrome\n            else if (event.offsetX || event.offsetX == 0) {\n                coord.X = event.offsetX;\n                coord.Y = event.offsetY;\n                return coord;\n            }\n\n            // for mozilla firefox\n            else if (event.layerX || event.layerX == 0) {\n                coord.X = event.layerX;\n                coord.Y = event.layerY;\n                return coord;\n            }\n        }\n\n        videoPlayer.bigPlayButton.on('click', function() {\n            instance.triggerEvent('big_play_button_clicked');\n        });\n\n        videoPlayer.on('click', function() {\n\n            // this variable will make the viewport autoplay feature not start playing the video again when the video has been manually paused and the page scrolls\n            // also used on the canvas event below for mobiles\n            instance.data.viewport_hasPausedOnce = true;\n\n            // set the muted state appropriately\n            if (videoPlayer.muted()) {\n                instance.publishState('muted', true);\n            } else {\n                instance.publishState('muted', false);\n            }\n\n        });\n\n        $(instance.canvas).on(\"click touchstart\", function(event) {\n            if ((event.target.tagName === 'VIDEO') || ($('#' + waveformId).css('display') == 'block')) {\n                instance.publishState(\"mouse_x_coords\", getCoords(event).X);\n                instance.publishState(\"mouse_y_coords\", getCoords(event).Y);\n                instance.triggerEvent('coordinates_changed');\n            }\n            instance.data.viewport_hasPausedOnce = true;\n\n            // set the muted state appropriately\n            setTimeout(function() {\n                if (videoPlayer.muted()) {\n                    instance.publishState('muted', true);\n                } else {\n                    instance.publishState('muted', false);\n                }\n            }, 200);\n\n            instance.triggerEvent('has_been_clicked');\n        });\n\n        videoPlayer.on('fullscreenchange', function() {\n            if (document.fullscreenElement) {\n                instance.publishState(\"is_fullscreen\", true);\n                instance.triggerEvent('entered_fullscreen');\n            } else {\n                instance.publishState(\"is_fullscreen\", false);\n                instance.triggerEvent('exited_fullscreen');\n            }\n        });\n\n        videoPlayer.on('pause', function() {\n            instance.publishState(\"is_playing\", false);\n            instance.triggerEvent('media_paused')\n\n            // when the audio track action has run, make sure we also pause any audio tracks\n            if (instance.data.audioTrack) {\n                var audios = document.getElementsByTagName('audio');\n                for (var i = 0, len = audios.length; i < len;i++) {\n                    audios[i].pause();\n                }\n            }\n            \n            // set the muted state appropriately\n            if (videoPlayer.muted()) {\n                instance.publishState('muted', true);\n            } else {\n                instance.publishState('muted', false);\n            }\n\n        });\n\n        videoPlayer.on('loadeddata', function() {\n            // the triggerEvents variable gets set in the 'toggle visual sound wave' action to stop a recurring loop from happening when run inside this event\n            if (instance.data.triggerEvents) {\n\n                // custom time formatting for user to configure in options\n                if (instance.data.format_time) {\n                    videojs.setFormatTime(customTimeFormat);\n                }\n\n                instance.triggerEvent('loadeddata');\n                instance.publishState(\"loadeddata\", true);\n                instance.publishState(\"media_is_loading\", false);\n                instance.publishState(\"percentage_played\");\n\n                // publish video dimensions\n                instance.publishState(\"video_width\", videoPlayer.videoWidth());\n                instance.publishState(\"video_height\", videoPlayer.videoHeight());\n\n                if (Number.isFinite(videoPlayer.duration())) {\n                    instance.publishState(\"duration\", videoPlayer.duration());\n                    instance.publishState(\"duration_text\", instance.data.secondsToTime(videoPlayer.duration()));\n                }\n                instance.data.runMeOnce = true;\n            } else {\n                instance.data.triggerEvents = true;\n            }\n        });\n\n        videoPlayer.textTracks().on(\"change\", function action(event) {\n            var showing = this.tracks_.filter(function (track) {\n                if (track.mode === \"showing\") {\n\n                    instance.publishState(\"subtitles_current_filename\", track.src);\n                    instance.publishState(\"subtitles_current_label\", track.label);\n                    instance.triggerEvent('subtitles_changed');\n\n                    // make sure the styling is set as soon as the control bar option is changed\n                    try {\n                        document.getElementById('' + instance.data.elementId + '').getElementsByClassName('vjs-text-track-cue')[0].style.inset = null;\n                        document.getElementById('' + instance.data.elementId + '').getElementsByClassName('vjs-text-track-cue')[0].style.bottom = \"\" + instance.data.subBottom + \"\";\n                        document.getElementById('' + instance.data.elementId + '').getElementsByClassName('vjs-text-track-cue')[0].style.top = \"\" + instance.data.subHeight + \"\";\n                        document.getElementById('' + instance.data.elementId + '').getElementsByClassName('vjs-text-track-cue')[0].style.padding = \"\" + instance.data.subPadding + \"\";\n                        document.getElementById('' + instance.data.elementId + '').getElementsByClassName('vjs-text-track-cue')[0].style.height = \"\" + instance.data.subHeight + \"\";\n                        document.getElementById('' + instance.data.elementId + '').getElementsByClassName('vjs-text-track-cue')[0].childNodes[0].style.padding = \"\" + instance.data.subPadding + \"\";\n                        document.getElementById('' + instance.data.elementId + '').getElementsByClassName('vjs-text-track-cue')[0].childNodes[0].style.lineHeight = \"\" + instance.data.subLineHeight + \"\";\n                        document.getElementById('' + instance.data.elementId + '').getElementsByClassName('vjs-text-track-cue')[0].style.position = \"\" + instance.data.subPosition + \"\";\n                    }\n                    catch(err) {\n                        // error will occur if subtitles changed from the control bar and they're not currently displayed, this is ok\n                    }\n\n                    // declare arrays\n                    var sections = [];\n                    var startTimes_formatted = [];\n                    var endTimes_formatted = [];\n                    var startTimes = [];\n                    var endTimes = [];\n                    var captions = [];\n\n                    $.get(track.src, function(data) {\n\n                        // read all captions into an array\n                        var items = data.split(/\\r?\\n/);\n\n                        // add data to state\n                        var formatted_subs = '';\n                        instance.publishState(\"subtitles_raw_vtt\", data);\n\n                        // loop through all lines\n                        var lastTextItem = \"\";\n                        $.each(items, function( index, value ) {\n\n                            var item = items[index].split(/\\r?\\n/);\n                            var last = index == items.length -1;\n\n                            // filters\n                            item.filter(function(text) {\n\n                                // extracts text between any tags that may exist like <v>xxx</v>\n                                if (text.match(/(<.*?>)(.*?)(<\\/.*?>)/)) {\n                                    text = text.match(/(<.*?>)(.*?)(<\\/.*?>)/)[2];\n                                }\n\n                                // match the subtitles text, looks at previous text item to add to if neccessary (also matches hebrew/arabic text)\n                                if ((text.match(/[A-Za-z]/) || text.match(/[־׀׃א-״؛-ي٭-ە‏ײַ-ﳝﶈ-ﷺﺂ-ﻼ]/)) && text.match(/^((?!line:).)*$/) && text.match(/^((?!position:).)*$/) && text.match(/^((?!size:).)*$/) && text.match(/^((?!align:).)*$/) && text.match(/^((?!line-).)*$/) && text.match(/^((?!vertical:).)*$/)) {\n                                    if ((!text.match(/^[0-9 ]*$/)) && (!text.includes(\"WEBVTT\")) || text.match(/[־׀׃א-״؛-ي٭-ە‏ײַ-ﳝﶈ-ﷺﺂ-ﻼ]/)) {\n\n                                        if (lastTextItem) {\n                                            captions[captions.length - 1] = lastTextItem + \"\\n\" + text;\n                                        } else {\n                                            captions.push(text);\n                                        }\n\n                                        lastTextItem = text;\n                                        formatted_subs = '' + formatted_subs + ' ' + text + '';\n                                    }\n                                } else {\n                                    lastTextItem = \"\";\n                                }\n\n                                // match the times, split into start and end times\n                                if (text.match(/^[0-9]*:/)) {\n\n                                    var startTime = text.substr(0, text.indexOf('-->')).trim();\n                                    var endTime = text.substr(text.indexOf(\"-->\") + 3).trim();\n                                    startTimes_formatted.push(startTime);\n                                    endTimes_formatted.push(endTime)\n\n                                    // these output a list of numbers which can be used to set video playback time\n                                    startTimes.push(startTime.split(':').reduce((acc,time) => (60 * acc) + +time).toFixed(3));\n                                    endTimes.push(endTime.split(':').reduce((acc,time) => (60 * acc) + +time).toFixed(3));\n                                }\n\n                            });\n\n                            // puts formatted text into state\n                            if (last) {\n                                instance.publishState(\"subtitles_formatted\", formatted_subs.trim());\n                            }\n\n                        });\n\n                        // add sections to states\n                        instance.publishState(\"subtitles_starttimes_formatted\", startTimes_formatted);\n                        instance.publishState(\"subtitles_endtimes_formatted\", endTimes_formatted);\n                        instance.publishState(\"subtitles_starttimes\", startTimes);\n                        instance.publishState(\"subtitles_endtimes\", endTimes);\n                        instance.publishState(\"subtitles_captions\", captions);\n\n                    });\n\n                    // also initialized in the load subtitles action, needs recreating when changing from control bar\n                    track.addEventListener('cuechange', () => {\n                        var activeCue = track.activeCues[0];\n                        try {\n\n                            var currentCaption = activeCue.text;\n\n                            // extracts text between any tags that may exist like <v>xxx</v>\n                            if (currentCaption.match(/(<.*?>)(.*?)(<\\/.*?>)/)) {\n                                currentCaption = currentCaption.match(/(<.*?>)(.*?)(<\\/.*?>)/)[2];\n                            }\n\n                            instance.publishState(\"subtitles_current_caption\", currentCaption);\n                            instance.publishState(\"subtitles_current_starttime\", activeCue.startTime);\n                            instance.publishState(\"subtitles_current_endtime\", activeCue.endTime);\n                            instance.publishState(\"subtitles_current_starttime_text\", instance.data.secondsToTime(activeCue.startTime));\n                            instance.publishState(\"subtitles_current_endtime_text\", instance.data.secondsToTime(activeCue.endTime));\n\n                            document.getElementById('' + instance.data.elementId + '').getElementsByClassName('vjs-text-track-cue')[0].style.inset = null;\n                            document.getElementById('' + instance.data.elementId + '').getElementsByClassName('vjs-text-track-cue')[0].style.bottom = \"\" + instance.data.subBottom + \"\";\n                            document.getElementById('' + instance.data.elementId + '').getElementsByClassName('vjs-text-track-cue')[0].style.top = \"\" + instance.data.subHeight + \"\";\n                            document.getElementById('' + instance.data.elementId + '').getElementsByClassName('vjs-text-track-cue')[0].style.padding = \"\" + instance.data.subPadding + \"\";\n                            document.getElementById('' + instance.data.elementId + '').getElementsByClassName('vjs-text-track-cue')[0].style.height = \"\" + instance.data.subHeight + \"\";\n                            document.getElementById('' + instance.data.elementId + '').getElementsByClassName('vjs-text-track-cue')[0].childNodes[0].style.padding = \"\" + instance.data.subPadding + \"\";\n                            document.getElementById('' + instance.data.elementId + '').getElementsByClassName('vjs-text-track-cue')[0].childNodes[0].style.lineHeight = \"\" + instance.data.subLineHeight + \"\";\n                            document.getElementById('' + instance.data.elementId + '').getElementsByClassName('vjs-text-track-cue')[0].style.position = \"\" + instance.data.subPosition + \"\";\n                        }\n                        catch(err) {\n                            // error occassionally occurs but doesn't stop this from working so we just catch it here\n                        }\n                    })\n\n                };\n            })[0];\n        });\n\n        // trigger event when video is in/out view\n        $(window).scroll(function() {\n            if ($(instance.canvas).is(\":in-viewport(\"+instance.data.tolerance+\")\")) {\n                if (inView) {\n                    instance.triggerEvent('in_viewport');\n                    inView = false;\n                    outView = true;\n                    window.isPlayingElementId = elementId;\n                }\n            } else {\n                if (outView) {\n                    instance.triggerEvent('out_viewport');\n                    outView = false;\n                    inView = true;\n                }\n            }\n        });\n\n        videoPlayer.on('loadedmetadata', function() {\n            // the triggerEvents variable gets set in the 'toggle visual sound wave' action to stop a recurring loop from happening when run inside this event\n            if (instance.data.triggerEvents) {\n\n                // custom time formatting for user to configure in options\n                if (instance.data.format_time) {\n                    videojs.setFormatTime(customTimeFormat);\n                }\n\n                instance.triggerEvent('loadedmetadata');\n                instance.publishState(\"loadedmetadata\", true);\n                instance.publishState(\"media_is_loading\", false);\n                instance.publishState(\"percentage_played\");\n\n                // publish video dimensions\n                instance.publishState(\"video_width\", videoPlayer.videoWidth());\n                instance.publishState(\"video_height\", videoPlayer.videoHeight());\n\n                if (Number.isFinite(videoPlayer.duration())) {\n                    instance.publishState(\"duration\", videoPlayer.duration());\n                    instance.publishState(\"duration_text\", instance.data.secondsToTime(videoPlayer.duration()));\n                }\n\n                // fixes the wistia player size when loading videos\n                setTimeout(function() {\n                    var wistiaDiv = document.getElementById(\"\" + elementId + \"\").getElementsByClassName(\"wistia_embed\")[0];\n                    if (wistiaDiv) {\n                        wistiaDiv.style.height = '';\n                    }\n                }, 500);\n\n            } else {\n                instance.data.triggerEvents = true;\n            }\n        });\n\n        videoPlayer.on('error', function() {\n            instance.triggerEvent('error');\n            var error = videoPlayer.error();\n            instance.publishState(\"media_error_description\", error.message);\n            instance.publishState(\"media_error_code\", error.code);\n            if (error.code === 0) {\n                instance.publishState(\"media_error_type\", \"MEDIA_ERR_CUSTOM\");\n            } else if (error.code === 1) {\n                instance.publishState(\"media_error_type\", \"MEDIA_ERR_ABORTED\");\n            } else if (error.code === 2) {\n                instance.publishState(\"media_error_type\", \"MEDIA_ERR_NETWORK\");\n            } else if (error.code === 3) {\n                instance.publishState(\"media_error_type\", \"MEDIA_ERR_DECODE\");\n            } else if (error.code === 4) {\n                instance.publishState(\"media_error_type\", \"MEDIA_ERR_SRC_NOT_SUPPORTED\");\n            } else if (error.code === 5) {\n                instance.publishState(\"media_error_type\", \"MEDIA_ERR_ENCRYPTED\");\n            }\n        });\n\n        videoPlayer.on('useractive', function() {\n            instance.triggerEvent('useractive');\n            // when auto hide/show mouse option is enabled\n            if (instance.data.auto_hide_control_bar) {\n                document.getElementById('' + elementId + '').getElementsByClassName('vjs-control-bar')[0].style.opacity = instance.data.control_bar_opacity;\n                $(document.body).css({'cursor' : 'default'});\n                // update state\n                if (instance.data.volumeReady) {\n                    instance.publishState('control_bar_visible', true);\n                }\n            }\n        });\n\n        videoPlayer.on('userinactive', function() {\n            instance.triggerEvent('userinactive');\n            // when auto hide/show mouse option is enabled\n            if (instance.data.auto_hide_control_bar) {\n                document.getElementById('' + elementId + '').getElementsByClassName('vjs-control-bar')[0].style.opacity = 0;\n                if (document.getElementById(elementId).matches(':hover')) {\n                    $(document.body).css({'cursor' : 'none'});\n                }\n                // update state\n                if (instance.data.volumeReady) {\n                    instance.publishState('control_bar_visible', false);\n                }\n            }\n        });\n\n        videoPlayer.on('mouseover', function() {\n            // when auto hide/show mouse option is enabled\n            if (instance.data.auto_hide_control_bar) {\n                setTimeout(function () {\n                    document.getElementById('' + elementId + '').getElementsByClassName('vjs-control-bar')[0].style.opacity = instance.data.control_bar_opacity;\n                }, 200);\n                // update state\n                if (instance.data.volumeReady) {\n                    instance.publishState('control_bar_visible', true);\n                }\n            }\n            if (instance.data.play_on_hover) {\n                videoPlayer.play();\n            }\n        })\n\n        videoPlayer.on('mouseout', function() {\n            // when auto hide/show mouse option is enabled\n            if (instance.data.auto_hide_control_bar) {\n                setTimeout(function () {\n                    document.getElementById('' + elementId + '').getElementsByClassName('vjs-control-bar')[0].style.opacity = 0;\n                }, 200);\n                // update state\n                if (instance.data.volumeReady) {\n                    instance.publishState('control_bar_visible', false);\n                }\n            }\n            if (instance.data.play_on_hover) {\n                videoPlayer.pause();\n            }\n        })\n\n        // volume change event with it's frequency capped at 250ms\n        var resizeTimeout;\n        videoPlayer.on('volumechange', function() {\n            if (resizeTimeout) {\n                clearTimeout(resizeTimeout);\n            }\n            resizeTimeout = setTimeout(function() {\n                instance.publishState(\"volume\", videoPlayer.volume());\n                instance.triggerEvent('volumechange');\n            }, 250);\n        });\n\n        videoPlayer.on('progress', function() {\n            if (Number.isFinite(videoPlayer.bufferedPercent())) {\n                var buffPerc = (videoPlayer.bufferedPercent()*100).toFixed(2);\n                instance.publishState(\"buffer_percentage\", buffPerc);\n            }\n        });\n\n        videoPlayer.on('enterpictureinpicture', function() {\n            instance.publishState(\"pip\", true);\n        });\n\n        videoPlayer.on('leavepictureinpicture', function() {\n            instance.publishState(\"pip\", false);\n        });\n\n        var audioTrackList = videoPlayer.audioTracks();\n        audioTrackList.addEventListener('change', function() {\n\n            // pause all audios first!\n            var audios = document.getElementsByTagName('audio');\n            for (var i = 0, len = audios.length; i < len;i++) {\n                audios[i].pause();\n            }\n\n            // search through track list and play enabled one\n            for (var i = 0; i < audioTrackList.length; i++) {\n                var track = audioTrackList[i];\n                if (track.enabled) {\n                    var audioElement = document.getElementById(track.id);\n                    audioElement.play();\n                    return;\n                }\n            }\n            instance.triggerEvent('audio_track_changed');\n\n        });\n\n        instance.data.videoPlayer = videoPlayer;\n\n        // set cookie\n        function setCookie(cname, cvalue, exdays) {\n            var d = new Date();\n            d.setTime(d.getTime() + (exdays * 24 * 60 * 60 * 1000));\n            var expires = \"expires=\" + d.toUTCString();\n            document.cookie = cname + \"=\" + cvalue + \";\" + expires + \";path=/\";\n        }\n\n        // get cookie\n        function getCookie(cname) {\n            var name = cname + \"=\";\n            var ca = document.cookie.split(';');\n            for(var i = 0; i <ca.length; i++) {\n                var c = ca[i];\n                while (c.charAt(0) == ' ') {\n                    c = c.substring(1);\n                }\n                if (c.indexOf(name) == 0) {\n                    return c.substring(name.length, c.length);\n                }\n            }\n            return \"\";\n        }\n\n        // store element id into cookie\n        var elementCookie = getCookie(\"elements\");\n        var comma = \",\";\n        if (!elementCookie) {\n            comma = \"\";\n        }\n        setCookie(\"elements\", \"\" + elementCookie + \"\" + comma + \"\" + elementId + \"\", 30);\n\n        // function to get hex colors\n        instance.data.getHEX = function getHEX(str) {\n            var match = str.match(/rgba?\\((\\d{1,3}), ?(\\d{1,3}), ?(\\d{1,3})\\)?(?:, ?(\\d(?:\\.\\d?))\\))?/);\n            var result = \" \" + match[1] + \",\" + match[2] + \",\" + match[3] + \"\";\n            r = parseInt(match[1]).toString(16);\n            g = parseInt(match[2]).toString(16);\n            b = parseInt(match[3]).toString(16);\n            if (r.length == 1)\n                r = \"0\" + r;\n            if (g.length == 1)\n                g = \"0\" + g;\n            if (b.length == 1)\n                b = \"0\" + b;\n            return \"#\" + r + g + b;\n        }\n\n        // run once variable used for scrubbing function in update\n        instance.data.runOnce = false;\n\n        // run once variable used when setting the MUX option to yes\n        instance.data.initMux = false;\n\n    });\n\n}"},"update":{"fn":"function(instance, properties, context) {\n\n    // get data\n    var url = properties.media_file_single;\n    var mime_type = properties.mime_type_single;\n    var url_list = properties.media_file_list ? properties.media_file_list.get(0, properties.media_file_list.length()) : url_list = [];\n    var mime_type_list = properties.mime_type_list ? properties.mime_type_list.get(0, properties.mime_type_list.length()) : mime_type_list = [];\n    var labels_list = properties.labels_list ? properties.labels_list.get(0, properties.labels_list.length()) : labels_list = [];\n    var default_list = properties.default_list;\n    var mux = properties.use_mux;\n    var poster = properties.poster;\n    var poster_object_fit = properties.poster_object_fit.toLowerCase();\n    var poster_reload = properties.poster_reload;\n    var poster_always_visible = properties.poster_always_visible;\n    var disable_right_click = properties.disable_right_click;\n    var controls_videojs = properties.controls_videojs;\n    var controls_youtube = properties.controls_youtube;\n    var big_play_button = properties.big_play_button;\n    var autoplay = properties.autoplay;\n    var loop = properties.loop;\n    var loop_after = properties.loop_after;\n    var volume = properties.volume;\n    var muted = properties.muted;\n    var playback_rate = properties.playback_rate;\n    var playback_time_1 = properties.playback_time_1;\n    var pause_before_scrub = properties.pause_before_scrub;\n    var playback_time_2 = properties.playback_time_2;\n    var playback_time_3 = properties.playback_time_3;\n    var play_from_min_value = properties.play_from_min_value;\n    var min_value_scrubbing = properties.min_value_scrubbing ? properties.min_value_scrubbing / 1000 : null;\n    var max_value_scrubbing = properties.max_value_scrubbing ? properties.max_value_scrubbing / 1000 : null;\n    var preload = properties.preload.toLowerCase();\n    var object_fit = properties.object_fit.toLowerCase();\n    var background_color = properties.background_color;\n    var aspect_ratio = properties.aspect_ratio;\n    var fluid_mode = properties.fluid_mode;\n    var auto_play_when_in_view = properties.auto_play_when_in_view;\n    var auto_play_action = properties.auto_play_action.toLowerCase();\n    var auto_play_when_in_view_rg = properties.auto_play_when_in_view_rg;\n    var zoom = properties.zoom ? properties.zoom : 1;\n    var rotate = properties.rotate ? properties.rotate : 0;\n    var flip = properties.flip ? properties.flip.toLowerCase() : 'right';\n    var theme = properties.theme;\n    var css_skin_file = properties.css_skin_file;\n    var centre_play = properties.centre_play;\n    var show_button_on_pause = properties.show_button_on_pause;\n    var disable_spinner = properties.disable_spinner;\n    var disable_click_pause = properties.disable_click_pause;\n    var disable_click_play = properties.disable_click_play;\n    var click_exit_fullscreen = properties.click_exit_fullscreen;\n    var disable_fullscreen = properties.disable_fullscreen;\n    var suppress_console_errors = properties.suppress_console_errors;\n    var enable_scrubbing_onload = properties.enable_scrubbing_onload;\n    var sprite_sheet = properties.sprite_sheet;\n    var number_of_tiles = properties.number_of_tiles;\n    var slider_width = properties.slider_width;\n    var slider_show_onload = properties.slider_show_onload;\n    var slider_color = properties.slider_color;\n    var slider_stay_visible = properties.slider_stay_visible;\n    var scrubber_hide_on_click = properties.scrubber_hide_on_click;\n\n    if (controls_youtube) {\n        controls_youtube = 2;\n    } else {\n        controls_youtube = 0;\n    }\n\n    // looping controls, used inside the timeupdate event\n    if (loop) {\n        instance.data.loop = true;\n        if (loop_after > 0) {\n            instance.data.loop_after = loop_after;\n        }\n    } else {\n        instance.data.loop = false;\n    }\n\n    instance.data.control_bar_opacity = properties.control_bar_opacity >= 0 ? properties.control_bar_opacity : 1;\n    instance.data.auto_hide_control_bar = properties.auto_hide_control_bar;\n    instance.data.play_on_hover = properties.play_on_hover;\n    instance.data.use_vimeo_player = properties.use_vimeo_player;\n    instance.data.use_wistia_player = properties.use_wistia_player;\n    instance.data.format_time = properties.format_time;\n    instance.data.fix_height = properties.fix_height;\n    instance.data.tolerance = properties.viewport_tolerance;\n    instance.data.disable_auto_resize = properties.disable_auto_resize;\n\n    instance.data.mux_sprite_sheet = properties.mux_sprite_sheet;\n    instance.data.mux_sprite_sheet_width = properties.mux_sprite_sheet_width;\n    instance.data.mux_sprite_sheet_height = properties.mux_sprite_sheet_height;\n    instance.data.mux_sprite_sheet_interval = properties.mux_sprite_sheet_interval;\n    instance.data.mux_sprite_sheet_scale_factor = properties.mux_sprite_sheet_scale_factor ? properties.mux_sprite_sheet_scale_factor : 1;\n\n    // videoJS options, added as data object to div\n    // youtube controls - https://developers.google.com/youtube/player_parameters#Parameters\n    instance.data.options = {\n        techOrder: instance.data.use_vimeo_player ? ['html5', 'vimeo', 'youtube', 'wistia'] : ['chromecast', 'html5', 'vimeo', 'youtube', 'wistia'],\n        html5: {\n            vhs: {\n                experimentalLLHLS: true\n            },\n            nativeTextTracks: false // this makes subtitle styling possible on iPads\n        },\n        youtube: {\n            ytControls: controls_youtube,\n            autoplay: 0,\n            fs: 1,\n            iv_load_policy: 3, // 3 disables\n            loop: 0,\n            showinfo: 0,\n            modestbranding: 1,\n            playsinline: 1\n        },\n        playbackRates: [0.5, 1, 1.5, 2, 4, 8],\n        liveui: true\n    }\n\n    // add options\n    $('#' + instance.data.elementId).attr('data-setup', JSON.stringify(instance.data.options));\n\n    // reset this global quality selector array\n    instance.data.srcArray = [];\n\n    // need to set this early\n    if (autoplay) {\n        document.getElementById(instance.data.elementId).autoplay = true;\n    } else {\n        document.getElementById(instance.data.elementId).autoplay = false;\n    }\n\n    $(document).ready(function () {\n\n        // set variables\n        var videoPlayer = instance.data.videoPlayer;\n        var videoContainer = document.getElementById(instance.data.elementId);\n        var currentUrl = videoPlayer.currentSrc();\n\n        var mux_video_id = properties.mux_video_id ? properties.mux_video_id : videoPlayer.id();\n        var mux_video_title = properties.mux_video_title ? properties.mux_video_title : 'My Awesome Video';\n        var mux_viewer_user_id = properties.mux_viewer_user_id ? properties.mux_viewer_user_id : Math.floor(Math.random() * 1977 * 1960 * 1977 * 1960).toString();\n\n        // get the browser user agent and store in state\n        instance.publishState(\"browser_user_agent\", navigator.userAgent.toLowerCase());\n\n        // disable tech click (pause/play)\n        if ((disable_click_pause) && (!disable_click_play)) {\n            videoPlayer.player_.handleTechClick_ = function () {\n                if (videoPlayer.paused()) {\n                    videoPlayer.play();\n                }\n            };\n        }\n        if ((!disable_click_pause) && (disable_click_play)) {\n            videoPlayer.player_.handleTechClick_ = function () {\n                if (!videoPlayer.paused()) {\n                    videoPlayer.pause();\n                }\n            };\n        }\n        if ((disable_click_pause) && (disable_click_play)) {\n            videoPlayer.player_.handleTechClick_ = function () {\n            };\n        }\n        if (click_exit_fullscreen) {\n            videoPlayer.player_.handleTechClick_ = function () {\n                if (videoPlayer.isFullscreen()) {\n                    videoPlayer.exitFullscreen();\n                }\n            }\n        }\n\n        // the quality selector can sometimes add multiple gear controls to the control bar, generally happens after swapping from youtube\n        // this will make sure only the one gear control is visible\n        var elements = document.getElementsByClassName('vjs-quality-selector');\n        if (elements.length > 1) {\n            for (var i = 0; i < elements.length; i++) {\n                if (i < elements.length -1) {\n                    elements[i].style.display = 'none';\n                }\n            }\n        }\n\n        // error handling, suppress\n        if (suppress_console_errors) {\n            window.videojs.log.level('off');\n\n            var existCondition = setInterval(function() {\n                if (document.getElementById(instance.data.elementId).getElementsByClassName('vjs-modal-dialog-content').length > 1) {\n                    clearInterval(existCondition);\n\n                    // remove the element which holds the 'no compatible source was found for this media' message\n                    // we're targetting the first class element here, the second one is the captions settings\n                    var dialogs = document.getElementById(instance.data.elementId).getElementsByClassName('vjs-modal-dialog-content');\n                    var len = dialogs.length;\n\n                    for (var i = 0; i < len; i++) {\n                        dialogs[0].remove();\n                    }\n                }\n            }, 100);\n\n        }\n\n        // reset the YouTube control states if the current video isn't already a YouTube video\n        // couldn't previously set these dynamically, no longer an issue now, only the controls are dynamic at the moment\n        if (currentUrl) {\n            if (!currentUrl.includes(\"youtube\")) {\n                instance.publishState(\"youtube_controls_enabled\", controls_youtube);\n                instance.publishState(\"youtube_fullscreen_icon\", false);\n                instance.publishState(\"youtube_color\", \"red\");\n                instance.publishState(\"youtube_lang_pref\", \"\");\n                instance.publishState(\"youtube_cc_load_policy\", false);\n                instance.publishState(\"youtube_disable_kb\", false);\n                instance.publishState(\"youtube_interface_lang\", \"\");\n                instance.publishState(\"youtube_iv_load_policy\", false);\n                instance.publishState(\"youtube_modestbranding\", false);\n                instance.publishState(\"youtube_playsinline\", false);\n            }\n        }\n\n        // set cookie\n        function setCookie(cname, cvalue, exdays) {\n            var d = new Date();\n            d.setTime(d.getTime() + (exdays * 24 * 60 * 60 * 1000));\n            var expires = \"expires=\" + d.toUTCString();\n            document.cookie = cname + \"=\" + cvalue + \";\" + expires + \";path=/\";\n        }\n\n        // get cookie\n        function getCookie(cname) {\n            var name = cname + \"=\";\n            var ca = document.cookie.split(';');\n            for (var i = 0; i < ca.length; i++) {\n                var c = ca[i];\n                while (c.charAt(0) == ' ') {\n                    c = c.substring(1);\n                }\n                if (c.indexOf(name) == 0) {\n                    return c.substring(name.length, c.length);\n                }\n            }\n            return \"\";\n        }\n\n        var scraperApiKey = \"588b114448ed05f8120618fe52a4ac4d\"; // gmail account, with subscription\n        // var scraperApiKey = \"2a9405b35d5a0c17a07d9d7975dca961\"; // hotmail account, free 1000 requests per month\n\n        // get the mp4 url from the vimeo link\n        function getMp4Vimeo(id) {\n            $.getJSON(\"https://api.scraperapi.com/?api_key=\" + scraperApiKey + \"&url=https://player.vimeo.com/video/\" + id + \"/config\", function (json_data) {\n\n                let files = json_data.request.files.progressive;\n                for (var i = 0; i < files.length; i++) {\n\n                    // looks for 1080p and 720p versions\n                    if (files[i].quality == \"1080p\") {\n                        console.log(\"1080p - id is \" + id + \", url is \" + files[i].url);\n                        var sourceObject = {\n                            src: files[i].url, type: 'video/mp4'\n                        };\n                        videoPlayer.src(sourceObject);\n                        setCookie(id, files[i].url, 30);\n                        var found = \"yes\";\n                        instance.publishState(\"media_url\", files[i].url);\n                        instance.publishState(\"media_type\", \"video\");\n                        break;\n\n                    } else if (files[i].quality == \"720p\") {\n                        console.log(\"720p - id is \" + id + \", url is \" + files[i].url);\n                        var sourceObject = {\n                            src: files[i].url, type: 'video/mp4'\n                        };\n                        videoPlayer.src(sourceObject);\n                        setCookie(id, files[i].url, 30);\n                        var found = \"yes\";\n                        instance.publishState(\"media_url\", files[i].url);\n                        instance.publishState(\"media_type\", \"video\");\n                        break;\n\n                    } else if (files[i].quality) {\n                        console.log(files[i].quality + \" - id is \" + id + \", url is \" + files[i].url);\n                        var sourceObject = {\n                            src: files[i].url, type: 'video/mp4'\n                        };\n                        videoPlayer.src(sourceObject);\n                        setCookie(id, files[i].url, 30);\n                        var found = \"yes\";\n                        instance.publishState(\"media_url\", files[i].url);\n                        instance.publishState(\"media_type\", \"video\");\n                        break;\n\n                    }\n\n                }\n                if (!found) {\n                    console.log(\"Attempted to get vimeo mp4 file but couldn't find a version available, Vimeo disbaled this for new videos, reach out to pork1977 on the forum\");\n                }\n\n            });\n        }\n\n        // set the sourceObjects and states\n        // set the file extension/mime types\n        var ext;\n        if ((url) && (url != instance.data.previousUrl) && (!ext)) {\n\n            // this line stops the video loading everytime the page is resized since all of this is in the update function, it's evaluated in this blocks condition\n            instance.data.previousUrl = url;\n\n            ext = instance.data.getExtension(url).toLowerCase();\n            var id;\n\n            if (poster_reload) {\n                videoPlayer.poster('');\n            }\n\n            instance.publishState(\"loadedmetadata\", false);\n            instance.publishState(\"loadeddata\", false);\n            instance.publishState(\"file_name\", url.substring(url.lastIndexOf('/')+1));\n\n            videoPlayer.pause();\n\n            // image formats\n            if (ext === \"svg\" || ext === \"jpg\" || ext === \"jpeg\" || ext === \"bmp\" || ext === \"png\" || ext === \"gif\") {\n                var isImage = true;\n                videoPlayer.hasStarted(false);\n                instance.publishState(\"media_url\", url);\n                instance.publishState(\"media_type\", \"image\");\n                instance.publishState(\"poster\", url);\n                instance.publishState(\"videojs_controls_enabled\", false);\n                videoPlayer.poster(url);\n                videoPlayer.controls(false);\n\n                // audio formats\n            } else if (ext === \"mp3\") {\n                var sourceObject = {\n                    src: url, type: 'audio/mp3'\n                };\n                instance.publishState(\"media_url\", url);\n                instance.publishState(\"media_type\", \"audio\");\n                videoPlayer.src(sourceObject);\n\n            } else if (ext === \"wav\") {\n                var sourceObject = {\n                    src: url, type: 'audio/wav'\n                };\n                instance.publishState(\"media_url\", url);\n                instance.publishState(\"media_type\", \"audio\");\n                videoPlayer.src(sourceObject);\n\n            } else if (ext === \"aac\") {\n                var sourceObject = {\n                    src: url, type: 'audio/aac'\n                };\n                instance.publishState(\"media_url\", url);\n                instance.publishState(\"media_type\", \"audio\");\n                videoPlayer.src(sourceObject);\n\n            } else if (ext === \"m3u\") {\n                var sourceObject = {\n                    src: url, type: 'audio/x-mpegURL'\n                };\n                instance.publishState(\"media_url\", url);\n                instance.publishState(\"media_type\", \"audio\");\n                videoPlayer.src(sourceObject);\n\n            } else if (ext === \"flac\") {\n                var sourceObject = {\n                    src: url, type: 'audio/flac'\n                };\n                instance.publishState(\"media_url\", url);\n                instance.publishState(\"media_type\", \"audio\");\n                videoPlayer.src(sourceObject);\n\n                // video formats\n            } else if (ext === \"m3u8\") {\n                var sourceObject = {\n                    src: url, type: 'application/x-mpegURL'\n                };\n                instance.publishState(\"media_url\", url);\n                instance.publishState(\"media_type\", \"video\");\n                videoPlayer.src(sourceObject);\n\n            } else if (ext === \"mpd\") {\n                var sourceObject = {\n                    src: url, type: 'application/dash+xml'\n                };\n                instance.publishState(\"media_url\", url);\n                instance.publishState(\"media_type\", \"video\");\n                videoPlayer.src(sourceObject);\n\n            } else if (ext === \"mov\") {\n                var sourceObject = {\n                    src: url, type: 'video/mp4'\n                };\n                instance.publishState(\"media_url\", url);\n                instance.publishState(\"media_type\", \"video\");\n                videoPlayer.src(sourceObject);\n\n            } else if ((ext === \"mp4\") || (ext === \"m4v\")) {\n                var sourceObject = {\n                    src: url, type: 'video/mp4'\n                };\n                instance.publishState(\"media_url\", url);\n                instance.publishState(\"media_type\", \"video\");\n                videoPlayer.src(sourceObject);\n\n                // this plays dropbox/github videos (needs further work as it assumes mp4)\n            } else if ((ext.includes(\"raw=1\")) || (ext.includes(\"dl=0\")) || (ext.includes(\"dl=1\"))) {\n                ext = \"mp4\";\n                var sourceObject = {\n                    src: url, type: 'video/mp4'\n                };\n                instance.publishState(\"media_url\", url);\n                instance.publishState(\"media_type\", \"video\");\n                videoPlayer.src(sourceObject);\n\n            } else if (ext === \"mkv\") {\n                var sourceObject = {\n                    src: url, type: 'video/mp4'\n                };\n                instance.publishState(\"media_url\", url);\n                instance.publishState(\"media_type\", \"video\");\n                videoPlayer.src(sourceObject);\n\n            } else if (ext === \"f4m\") {\n                var sourceObject = {\n                    src: url, type: 'application/adobe-f4m'\n                };\n                instance.publishState(\"media_url\", url);\n                instance.publishState(\"media_type\", \"video\");\n                videoPlayer.src(sourceObject);\n\n            } else if (ext === \"webm\") {\n                var sourceObject = {\n                    src: url, type: 'video/webm'\n                };\n                instance.publishState(\"media_url\", url);\n                instance.publishState(\"media_type\", \"video\");\n                videoPlayer.src(sourceObject);\n\n            } else if (ext === \"ogg\") {\n                var sourceObject = {\n                    src: url, type: 'video/ogg'\n                };\n                instance.publishState(\"media_url\", url);\n                instance.publishState(\"media_type\", \"video\");\n                videoPlayer.src(sourceObject);\n\n            } else if (ext === \"flv\") {\n                var sourceObject = {\n                    src: url, type: 'video/flv'\n                };\n                instance.publishState(\"media_url\", url);\n                instance.publishState(\"media_type\", \"video\");\n                videoPlayer.src(sourceObject);\n\n            } else if ((!url.includes(\"//\")) && (!url.includes(\"www.\"))) {\n                ext = \"wistia\";\n\n                var newUrl = \"https://fast.wistia.net/embed/medias/\" + url + \".m3u8\";\n                var sourceObject = {\n                    src: newUrl, type: 'application/x-mpegURL'\n                };\n                instance.publishState(\"media_url\", newUrl);\n                instance.publishState(\"media_type\", \"video\");\n                videoPlayer.src(sourceObject);\n\n                //check if youtube/vimeo/wistia\n            } else if (url.match(/(http:|https:|)\\/\\/(player.|www.|home.|fast.)?(wistia\\.com|wi\\.st|drive\\.google\\.com|vimeo\\.com|vimeo\\.com\\/video|youtu(be\\.com|\\.be|be\\.googleapis\\.com))\\/(video\\/|medias\\/|embed\\/iframe\\/|embed\\/|file\\/d\\/|watch\\?v=|v\\/)?([A-Za-z0-9._%-]*)(\\&\\S+)?/)) {\n\n                // match supports the following formats:\n                //\t youtube\n                //     - http(s)://www.youtube.com/watch?v=My2FRPA3Gf8\n                //     - http(s)://youtu.be/My2FRPA3Gf8\n                //     - http(s)://youtube.googleapis.com/v/My2FRPA3Gf8\n                //   vimeo\n                //     - http(s)://vimeo.com/25451551\n                //     - http(s)://player.vimeo.com/video/25451551\n                //   wistia\n                //     - http(s)://wistia.com/medias/26sk4lmiix\n                //     - http(s)://wistia.com/embed/26sk4lmiix\n                //     - http(s)://wi.st/medias/26sk4lmiix\n                //     - http(s)://wi.st/embed/26sk4lmiix\n                //     - http(s)://fast.wistia.com/embed/iframe/26sk4lmiix\n                //     - http(s)://home.wistia.com/medias/26sk4lmiix\n                //   google drive\n                //     - https://drive.google.com/file/d/1nuSYI4ibo7ee8UcF48R3-ehH1JpEmrgd/view?usp=sharing\n                //     - https://drive.google.com/file/d/1nuSYI4ibo7ee8UcF48R3-ehH1JpEmrgd/preview\n\n                if (RegExp.$3.indexOf('youtu') > - 1) {\n                    ext = \"youtube\";\n                    id = RegExp.$6;\n\n                    var newUrl = \"https://youtube.com/embed/\" + id + \"?origin=\" + window.location.protocol + \"//\" + window.location.host + \"\";\n                    var sourceObject = {\n                        src: newUrl, type: 'video/youtube'\n                    };\n                    instance.publishState(\"media_url\", newUrl);\n                    instance.publishState(\"media_type\", \"video\");\n                    instance.publishState(\"poster\", \"https://img.youtube.com/vi/\" + id + \"/0.jpg\");\n                    videoPlayer.poster('');\n                    videoPlayer.src(sourceObject);\n\n                } else if (RegExp.$3.indexOf('wi') > - 1) {\n                    ext = \"wistia\";\n                    id = RegExp.$6;\n\n                    // using wistia player\n                    if (instance.data.use_wistia_player) {\n                        var sourceObject = {\n                            src: url, type: 'video/wistia'\n                        };\n                        videoPlayer.src(sourceObject);\n\n                        // not using wistia player\n                    } else {\n                        var newUrl = \"https://fast.wistia.net/embed/medias/\" + id + \".m3u8\";\n                        var sourceObject = {\n                            src: newUrl, type: 'application/x-mpegURL'\n                        };\n                        instance.publishState(\"media_url\", newUrl);\n                        instance.publishState(\"media_type\", \"video\");\n                        videoPlayer.src(sourceObject);\n                    }\n\n                } else if (RegExp.$3.indexOf('vimeo') > - 1) {\n                    ext = \"vimeo\";\n                    id = RegExp.$6;\n\n                    // using vimeo player\n                    if (instance.data.use_vimeo_player) {\n                        var sourceObject = {\n                            src: url, type: 'video/vimeo'\n                        };\n                        videoPlayer.reset();\n                        videoPlayer.src(sourceObject);\n\n                        // not using vimeo player\n                    } else {\n\n                        // when the vimeo id from the regex is 'external' it can play directly through the player as an mp4\n                        if (id == 'external') {\n                            var sourceObject = {\n                                src: url, type: 'video/mp4'\n                            };\n                            videoPlayer.src(sourceObject);\n                        } else {\n\n                            // get the mp4 url only if not already attempted, to keep the requests down to a minimum\n                            // to see requests go to https://www.scraperapi.com/dashboard\n                            id = RegExp.$6;\n                            var cookie = getCookie(id);\n\n                            if (!cookie.includes(id)) {\n                                getMp4Vimeo(id);\n\n                            } else {\n\n                                // test the url first because sometime it ceases to exist after some time has passed\n                                $.get(cookie).done(function () {\n                                    console.log(\"Cookie exists for this vimeo video (\" + id + \") so we'll use the value which contains the mp4 url rather than wasting another request to grab it\");\n                                    var sourceObject = {\n                                        src: cookie, type: 'video/mp4'\n                                    };\n                                    videoPlayer.src(sourceObject);\n                                }).fail(function () {\n                                    console.log(\"Cookie exists for this vimeo video (\" + id + \") but for some reason is no longer available so we'll request it again\");\n                                    getMp4Vimeo(id);\n                                });\n\n                                instance.publishState(\"media_url\", cookie);\n                                instance.publishState(\"media_type\", \"video\");\n                            }\n\n                        }\n\n                    }\n\n                } else if (RegExp.$3.indexOf('drive.google.com') > - 1) {\n                    var key = context.keys[\"Google Drive\"];\n                    ext = \"google\";\n                    id = RegExp.$6;\n\n                    if (mime_type) {\n                        if (key) {\n                            var newUrl = \"https://www.googleapis.com/drive/v3/files/\" + id + \"?alt=media&key=\" + key + \"\";\n                        } else {\n                            var newUrl = \"https://drive.google.com/uc?export=download&id=\" + id + \"\";\n                        }\n                        var sourceObject = {\n                            src: newUrl, type: mime_type\n                        };\n                        instance.publishState(\"media_url\", newUrl);\n                        instance.publishState(\"media_type\", \"video\");\n                        videoPlayer.src(sourceObject);\n                    } else {\n                        alert(\"Google drive URL recognised, you must set a valid MIME type for this\")\n                    }\n\n                }\n\n                // no file extension and no mime type then try with video/mp4\n            } else if (!ext && !mime_type) {\n                var sourceObject = {\n                    src: url, type: 'video/mp4'\n                };\n                instance.publishState(\"media_url\", url);\n                instance.publishState(\"media_type\", \"video\");\n                videoPlayer.src(sourceObject);\n\n                // if mime type\n            } else {\n                if (mime_type) {\n\n                    // mime type as video/quicktime then set to video/mp4\n                    if (mime_type.toLowerCase() === \"video/quicktime\") {\n                        var sourceObject = {\n                            src: url, type: \"video/mp4\"\n                        };\n                        videoPlayer.src(sourceObject);\n\n                        // otherwise use the entered mime type\n                    } else {\n                        var sourceObject = {\n                            src: url, type: mime_type\n                        };\n                        videoPlayer.src(sourceObject);\n                    }\n\n                    instance.publishState(\"media_url\", url);\n\n                    if (url.includes(\"ucarecdn\")) {\n                        instance.publishState(\"media_type\", \"uploadcare\");\n                    } else {\n                        instance.publishState(\"media_type\", \"undefined\");\n                    }\n\n                } else {\n                    console.log(\"Media type not defined, reach out to pork1977 on the forum\");\n                }            \n            }\n            instance.publishState(\"file_extension\", ext);\n\n            // emit mux videochange event (metadata)\n            if ((mux) && (instance.data.initMux)) {\n                var playerInitTime = Date.now();\n\n                videoPlayer.mux.emit('videochange', {\n\n                    // site metadata\n                    viewer_user_id: \"\" + mux_viewer_user_id + \"\",\n\n                    // player metadata\n                    player_name: \"VideoJS (Bubble)\",\n                    player_version: \"7.18.1\",\n                    player_init_time: playerInitTime,\n\n                    // video metadata\n                    video_id: \"\" + mux_video_id + \"\",\n                    video_title: \"\" + mux_video_title + \"\",\n                    video_duration: \"\" + videoPlayer.duration() + \"\",\n                    video_cdn: \"\" + url + \"\"\n                });\n            }\n\n        } else if (!url && (url_list.length > 0 && mime_type_list.length > 0 && labels_list.length > 0) && !instance.data.runThisOnce) {\n\n            var srcObject;\n            var srcArray = [];\n\n            instance.data.runThisOnce = true;\n            instance.publishState(\"loadedmetadata\", false);\n            instance.publishState(\"loadeddata\", false);\n\n            for (var i = 0; i < url_list.length; i++) {\n                srcObject = {\n                    src: url_list[i],\n                    type: mime_type_list[i],\n                    label: labels_list[i]\n                }\n                if (default_list == labels_list[i]) {\n                    srcObject.selected = \"true\";\n                }\n                srcArray.push(srcObject);\n            }\n\n            // store array into global variable to be accessed through event within intialize\n            // this gets reset at the top\n            instance.data.srcArray = srcArray;\n\n            // load the source object\n            videoPlayer.src(srcArray);\n\n        }\n\n        // set mux details (metadata)\n        if ((mux) && (!instance.data.initMux)) {\n            var playerInitTime = Date.now();\n            videoPlayer.mux({\n                debug: false,\n                data: {\n                    env_key: \"\" + context.keys[\"MUX Environment Key\"] + \"\",\n\n                    // site metadata\n                    viewer_user_id: \"\" + mux_viewer_user_id + \"\",\n\n                    // player metadata\n                    player_name: \"VideoJS (Bubble)\",\n                    player_version: \"7.18.1\",\n                    player_init_time: playerInitTime,\n\n                    // video metadata\n                    video_id: \"\" + mux_video_id + \"\",\n                    video_title: \"\" + mux_video_title + \"\",\n                    video_duration: \"\" + videoPlayer.duration() + \"\",\n                    video_cdn: \"\" + url + \"\"\n                }\n            });\n            instance.data.initMux = true;\n        }\n\n        // enables scrubber thumbnails on the progress bar\n        if (instance.data.mux_sprite_sheet) {\n            instance.data.spriteThumbs(videoPlayer, {\n                url: \"\" + instance.data.mux_sprite_sheet + \"\",\n                interval: instance.data.mux_sprite_sheet_interval,\n                width: instance.data.mux_sprite_sheet_width,\n                height: instance.data.mux_sprite_sheet_height,\n                scaleFactor: instance.data.mux_sprite_sheet_scale_factor\n            });\n        }\n\n        // publish element dimensions\n        instance.publishState(\"player_width\", instance.canvas.width().toFixed(2));\n        instance.publishState(\"player_height\", instance.canvas.height().toFixed(2));\n\n        // disable right click\n        if (disable_right_click) {\n            videoPlayer.on('contextmenu', function(e) {\n                e.preventDefault();\n            });\n        }\n\n        // disable fullscreen\n        if (disable_fullscreen) {\n            videoPlayer.one('loadedmetadata', function() {\n                videoPlayer.tech_.off('dblclick');\n                videoPlayer.controlBar.fullscreenToggle.hide();\n            });\n        }\n\n        // load the poster (when not using as image viewer)\n        if ((poster) && (!isImage)) {\n            videoPlayer.poster(poster);\n\n            // safe guard, set the poster on the actual video element also\n            var html5_api = document.getElementById('' + instance.data.elementId + '_html5_api');\n            var youtube_api = document.getElementById('' + instance.data.elementId + '_youtube_api');\n\n            if (html5_api) {\n                html5_api.setAttribute('poster', poster);\n            }\n            if (youtube_api) {\n                youtube_api.setAttribute('poster', poster);\n            }\n\n            instance.publishState(\"poster\", poster);\n\n            // if always visible\n            if (poster_always_visible) {\n                $('.vjs-poster').css('display','block');\n            }\n        }\n\n        // big play button\n        if (big_play_button) {\n            videoPlayer.bigPlayButton.show();\n        } else {\n            videoPlayer.bigPlayButton.hide();\n        }\n\n        // autoplay\n        if (autoplay) {\n            videoPlayer.play();\n            instance.publishState(\"autoplay\", true);\n        } else {\n            instance.publishState(\"autoplay\", false);\n        }\n\n        // loop video\n        if (!instance.data.use_vimeo_player) {\n            if (loop) {\n                videoPlayer.loop(true);\n                instance.publishState(\"loop\", true);\n            } else {\n                videoPlayer.loop(false);\n                instance.publishState(\"loop\", false);\n            }\n        }\n\n        // volume\n        if ((instance.data.volumeReady != 'undefined') && volume >= 0) {\n            videoPlayer.volume(volume);\n            instance.data.is_volume = true;\n            instance.data.value_volume = volume;\n        }\n\n        // mute video\n        if (!instance.data.use_vimeo_player) {\n            if (muted) {\n                videoPlayer.muted(true);\n                instance.publishState(\"muted\", true);\n                instance.data.is_muted = true;\n            } else {\n                videoPlayer.muted(false);\n                instance.publishState(\"muted\", false);\n                instance.data.is_muted = false;\n            }\n        }\n\n        // playback rate\n        if (playback_rate) {\n            if (!instance.data.use_vimeo_player) {\n                videoPlayer.one('play', function () {\n                    videoPlayer.playbackRate(playback_rate);\n                });\n                instance.publishState(\"playback_rate\", playback_rate);\n            }\n        }\n\n        // playback controls\n        if (instance.data.volumeReady != 'undefined' && (playback_time_1 || playback_time_2 || playback_time_3)) {\n\n            // get range values (seconds)\n            if (playback_time_3) {\n                var playback_time_min = playback_time_3[0] / 1000;\n                var playback_time_max = playback_time_3[1] / 1000;\n            } else if (playback_time_2) {\n                var playback_time_min = playback_time_2[0] / 1000;\n                var playback_time_max = playback_time_2[1] / 1000;\n            }\n\n            // play from min value\n            if (play_from_min_value) {\n                instance.data.play_from_min_value = playback_time_min;\n            } else {\n                instance.data.play_from_min_value = null;\n            }\n\n            // simple slider\n            if (playback_time_1 != instance.data.pb) {\n                videoPlayer.currentTime(playback_time_1);\n                instance.data.pb = playback_time_1;\n            }\n\n            // pause video before scrubbing\n            if (pause_before_scrub) {\n                if (!videoPlayer.paused()) {\n                    videoPlayer.pause();\n                }\n            }\n\n            // range slider\n            if (playback_time_min != instance.data.pb_min) {\n                if (!min_value_scrubbing) {\n                    videoPlayer.currentTime(playback_time_min);\n                    instance.data.pb_min = playback_time_min;\n                } else {\n                    if ((playback_time_min + min_value_scrubbing) > min_value_scrubbing) {\n                        videoPlayer.currentTime(playback_time_min);\n                        instance.data.pb_min = playback_time_min;\n                    }\n                }\n            }\n            if (playback_time_max != instance.data.pb_max) {\n                if (!max_value_scrubbing) {\n                    videoPlayer.currentTime(playback_time_max);\n                    instance.data.pb_max = playback_time_max;\n                } else {\n                    if ((playback_time_max + min_value_scrubbing) < max_value_scrubbing) {\n                        videoPlayer.currentTime(playback_time_max);\n                        instance.data.pb_max = playback_time_max;\n                    }\n                }\n            }\n\n            //update the range states with the time difference between the min and max values\n            if (playback_time_2) {\n                var playback_range_1_formatted = instance.data.secondsToTime((playback_time_2[1] - playback_time_2[0]) / 1000, true);\n                instance.publishState('playback_range_1_difference', (playback_time_2[1] - playback_time_2[0]) / 1000);\n                instance.publishState('playback_range_1_formatted', playback_range_1_formatted);\n            }\n\n            if (playback_time_3) {\n                var playback_range_2_formatted = instance.data.secondsToTime((playback_time_3[1] - playback_time_3[0]) / 1000, true);\n                instance.publishState('playback_range_2_difference', (playback_time_3[1] - playback_time_3[0]) / 1000);\n                instance.publishState('playback_range_2_formatted', playback_range_2_formatted);\n            }\n\n        }\n\n        // preload, but not for vimeo or youtube because it causes errors\n        if (!instance.data.use_vimeo_player && !videoPlayer.currentSrc().includes('youtu')) {\n            if (preload === \"auto\") {\n                videoPlayer.preload(\"Auto\");\n                instance.publishState(\"preload\", \"Auto\");\n            } else if (preload === \"metadata\") {\n                videoPlayer.preload(\"Metadata\");\n                instance.publishState(\"preload\", \"Metadata\");\n            } else if (preload === \"none\") {\n                videoPlayer.preload(\"None\");\n                instance.publishState(\"preload\", \"None\");\n            }\n        }\n\n        // viewport autoplay (binds and unbinds)\n        if (auto_play_when_in_view) {\n            instance.publishState(\"auto_play_when_in_view\", true);\n            \n            $(instance.canvas).ready(function () {\n                if (muted) {\n                    videoPlayer.muted(true);\n                    instance.publishState(\"muted\", true);\n                } else {\n                    videoPlayer.muted(false);\n                    instance.publishState(\"muted\", false);\n                }\n            });\n            \n            $(window).scroll(function () {\n                if ($(instance.canvas).is(\":in-viewport(\"+instance.data.tolerance+\")\")) {\n                    if (!instance.data.viewport_hasPausedOnce) {\n                        var allVideos = document.querySelectorAll('[id^=videoElement_][aria-label=\"Video Player\"]');\n                        for (var i = 0; i < allVideos.length; i++) {\n                            if (allVideos[i].id != window.isPlayingElementId) {\n                                \n                                if (!videojs(allVideos[i]).paused()) {\n                                    if (auto_play_action == 'pause') {\n                                        videojs(allVideos[i]).pause();\n                                        instance.publishState(\"muted\", false);\n                                    } else if (auto_play_action == 'mute') {\n                                        videojs(allVideos[i]).muted(true);\n                                        instance.publishState(\"muted\", true);\n                                    }\n                                }\n                                \n                            } else {\n                                if (videojs(allVideos[i]).paused()) {\n                                    videojs(allVideos[i]).play();\n                                }\n                            }\n                        }\n                    }\n                } else {\n                    if (!videoPlayer.paused()) {\n                        videoPlayer.pause();\n                    }\n                }\n            });\n            \n            if (auto_play_when_in_view_rg) {\n                $('#' + auto_play_when_in_view_rg).scroll(function () {\n                    if ($(instance.canvas).is(\":in-viewport(\"+instance.data.tolerance+\")\")) {\n                        if (instance.data.inView) {\n                            instance.triggerEvent('in_viewport');\n                            instance.data.inView = false;\n                            instance.data.outView = true;\n                            if (!instance.data.viewport_hasPausedOnce) {\n                                var allVideos = document.querySelectorAll('[id^=videoElement_][aria-label=\"Video Player\"]');\n                                for (var i = 0; i < allVideos.length; i++) {\n                                    if (allVideos[i].id != window.isPlayingElementId) {\n                                        \n                                        if (!videojs(allVideos[i]).paused()) {\n                                            if (auto_play_action == 'pause') {\n                                                videojs(allVideos[i]).pause();\n                                                instance.publishState(\"muted\", false);\n                                            } else if (auto_play_action == 'mute') {\n                                                videojs(allVideos[i]).muted(true);\n                                                instance.publishState(\"muted\", true);\n                                            }\n                                        }\n                                        \n                                    } else {\n                                        if (videojs(allVideos[i]).paused()) {\n                                            videojs(allVideos[i]).play();\n                                        }\n                                    }\n                                }\n                            }\n                        }\n                    } else {\n                        if (instance.data.outView) {\n                            instance.triggerEvent('out_viewport');\n                            instance.data.outView = false;\n                            instance.data.inView = true;\n                            if (!videoPlayer.paused()) {\n                                videoPlayer.pause();\n                            }\n                        }\n                    }\n                });\n            }\n        } else {\n            instance.publishState(\"auto_play_when_in_view\", false);\n        }\n\n        // load theme\n        if (theme === \"Base\") {\n            videoContainer.classList.add(\"vjs-theme-base\");\n            instance.publishState(\"theme\", \"Base\");\n        }\n        else if (theme === \"City\") {\n            videoContainer.classList.add(\"vjs-theme-city\");\n            instance.publishState(\"theme\", \"City\");\n        }\n        else if (theme === \"Fantasy\") {\n            videoContainer.classList.add(\"vjs-theme-fantasy\");\n            instance.publishState(\"theme\", \"Fantasy\");\n        }\n        else if (theme === \"Forest\") {\n            videoContainer.classList.add(\"vjs-theme-forest\");\n            instance.publishState(\"theme\", \"Forest\");\n        }\n        else if (theme === \"Sea\") {\n            videoContainer.classList.add(\"vjs-theme-sea\");\n            instance.publishState(\"theme\", \"Sea\");\n        }\n        else if (theme === \"Custom\") {\n            if (css_skin_file) {\n                var head = document.getElementsByTagName('head')[0];\n                var style = document.createElement('link');\n                style.href = css_skin_file;\n                style.type = 'text/css';\n                style.rel = 'stylesheet';\n                head.append(style);\n                videoContainer.classList.add(\"vjs-theme-custom\");\n            }\n        }\n\n        // control bar opacity\n        try {\n            if (instance.data.control_bar_opacity >= 0) {\n                document.getElementById('' + instance.data.elementId + '').getElementsByClassName('vjs-control-bar')[0].style.opacity = instance.data.control_bar_opacity;\n                // control bar not clickable when it's set to 0\n                if (instance.data.control_bar_opacity < 0.1) {\n                    document.getElementById('' + instance.data.elementId + '').getElementsByClassName('vjs-control-bar')[0].style.pointerEvents = 'none';\n                    // control bar clikable again\n                } else {\n                    document.getElementById('' + instance.data.elementId + '').getElementsByClassName('vjs-control-bar')[0].style.pointerEvents = 'auto';\n                }\n            } else {\n                document.getElementById('' + instance.data.elementId + '').getElementsByClassName('vjs-control-bar')[0].style.opacity = 1;\n            }\n        }\n        catch(err) {\n            // nothing\n        }\n\n        // disable the loading spinner\n        if (disable_spinner) {\n            $('.vjs-loading-spinner').each(function(index, obj) {\n                if (this.parentNode.id === \"\" + instance.data.elementId + \"\") {\n                    this.remove();\n                }\n            });\n        }\n\n        // center play button\n        if (centre_play) {\n            videoContainer.classList.add(\"vjs-big-play-centered\");\n            instance.publishState(\"centre_play\", true);\n        } else {\n            videoContainer.classList.remove(\"vjs-big-play-centered\");\n            instance.publishState(\"centre_play\", false);\n        }\n\n        // show play button on pause\n        if (show_button_on_pause) {\n            videoContainer.classList.add(\"vjs-show-big-play-button-on-pause\");\n            instance.data.showButtonOnPause = true;\n        } else {\n            videoContainer.classList.remove(\"vjs-show-big-play-button-on-pause\");\n            instance.data.showButtonOnPause = false;\n        }\n\n        // show/hide control bar (when not using as image viewer)\n        if (instance.canvas[0]) {\n            try {\n                if (instance.canvas[0].style.visibility == 'hidden') {\n                    videoPlayer.controls(false);\n                    instance.publishState('control_bar_visible', false);\n                    instance.publishState(\"videojs_controls_enabled\", false);\n                } else {\n                    if ((controls_videojs) && (!isImage)) {\n                        videoPlayer.controls(true);\n                        instance.publishState('control_bar_visible', true);\n                        instance.publishState(\"videojs_controls_enabled\", true);\n                    } else {\n                        videoPlayer.controls(false);\n                        instance.publishState('control_bar_visible', false);\n                        instance.publishState(\"videojs_controls_enabled\", false);\n                    }\n                }\n            } catch(err) {\n                // catches a tech error when swapping to youtube which is fine\n            }\n        }\n\n        // object-fit on html5 video sources and the poster\n        if (object_fit) {\n            try {\n                document.getElementById('' + instance.data.elementId + '_html5_api').style.objectFit = object_fit;\n                document.getElementById('' + instance.data.elementId + '').getElementsByClassName('vjs-poster')[0].style.backgroundSize = poster_object_fit;\n            }\n            catch(err) {\n                // nothing\n            }\n        }\n\n        // background color for video and poster\n        if (background_color) {\n            try {\n                document.getElementById('' + instance.data.elementId + '').style.backgroundColor = background_color;\n                document.getElementById('' + instance.data.elementId + '').getElementsByClassName('vjs-poster')[0].style.backgroundColor = background_color;\n            }\n            catch(err) {\n                // nothing\n            }\n        }\n\n        // zoom and rotate\n        if (videoPlayer.zoomrotateflip != 'undefined') {\n            if (flip === 'left') {\n                flip = -1;\n            }\n            if (flip === 'right') {\n                flip = 1;\n            }\n            videoPlayer.zoomrotateflip({\"rotate\": \"\" + rotate + \"\", \"zoom\": \"\" + zoom + \"\", \"flip\": \"\" + flip + \"\", \"debug\": false});\n        }\n\n        // aspect ratio\n        if (aspect_ratio) {\n            try {\n                videoPlayer.aspectRatio('' + aspect_ratio + '');\n                instance.publishState(\"aspect_ratio\", \"\" + aspect_ratio + \"\");\n                var one = aspect_ratio.substring(0, aspect_ratio.indexOf(\":\"));\n                var two = aspect_ratio.split(\":\").pop();\n                instance.data.aspectRatio = two / one;\n                instance.data.resizeVideoJS();\n                window.addEventListener(\"resize\", instance.data.resizeVideoJS());\n            }\n            catch(err) {\n                // nothing\n            }\n        }\n\n        // fluid mode\n        if (fluid_mode) {\n            videoPlayer.fluid(true);\n        } else {\n            videoPlayer.fluid(false);\n        }\n\n        // populates the element Id state\n        instance.publishState(\"element_id\", \"\" + instance.data.elementId + \"\");\n\n        // enables the large scrubbing interface\n        if (enable_scrubbing_onload && number_of_tiles && sprite_sheet) {\n            if (!instance.data.runOnce) {\n                if (slider_show_onload) {\n                    slider_show_onload = 'block';\n                } else {\n                    slider_show_onload = 'none';\n                }\n                $('#' + instance.data.elementId).prepend('<div id=\"scrubbing_interface\" class=\"video-preview\" data-frames=\"' + number_of_tiles + '\" data-source=\"' + sprite_sheet + '\"></div>');\n                instance.data.runOnce = true;\n                instance.data.scrubbing(slider_show_onload,slider_width,slider_color,scrubber_hide_on_click,slider_stay_visible);\n            }\n        }\n\n    });\n\n}","add_debugger":false},"reset":{"fn":"function(instance, context) {\n\n\n\n}"}}},"AQe":{"display":"VideoJS Recorder","property_applications":{"resizable":true,"MinWidth":true,"Background":true,"Border":true,"Padding":true,"BoxShadow":true},"add_hover_pressed":true,"add_is_visible":true,"add_large_file_upload_properties":true,"can_fit_width":true,"can_fit_height":true,"fields":{"AQi":{"caption":"For the recorder to function correctly, you must also have the videoJSplayer element somewhere on your page. Cross browser playback support of recorded videos may not work within Safari, especially if the video was recorded using an alternative browser to begin with. To make these recordings work on Apple devices, you can use the 'convert video' action and select the output to MP4. You can also try checking the 'save as MP4' option and see if that works. See the tools demo page for an example on how to convert videos using Cloud Convert. If all else fails and you're using MUX, then supply an upload URL below which will send the recording directly to them, then you can use that to play anywhere.","name":"info","rank":2,"editor":"Label"},"AQj":{"caption":"Max length","name":"max_length","rank":37,"editor":"DynamicValue","value":"number","optional":true,"default_val":120},"AQk":{"caption":"Display milliseconds","name":"display_milliseconds","rank":38,"editor":"DynamicValue","value":"boolean","default_val":true},"AQl":{"caption":"Picture-in-picture","name":"pip","rank":40,"editor":"DynamicValue","value":"boolean","default_val":true},"AQm":{"caption":"Auto mute device","name":"auto_mute_device","rank":42,"editor":"DynamicValue","value":"boolean","default_val":false},"ARV":{"caption":"Enable video","name":"enable_video","rank":5,"editor":"Checkbox","value":"boolean","default_val":true},"ARY":{"caption":"Enable audio","name":"enable_audio","rank":6,"editor":"Checkbox","value":"boolean","default_val":true},"ARj":{"caption":"Time slice","name":"time_slice","rank":43,"editor":"DynamicValue","value":"number","optional":true},"AUx":{"caption":"Enable controls","name":"enable_controls","rank":27,"editor":"DynamicValue","value":"boolean","default_val":true},"AeD":{"caption":"Video MIME type","name":"video_mime_type","rank":18,"editor":"DynamicValue","value":"text","default_val":"video/mp4;codecs=h264"},"AeE":{"caption":"Audio MIME type","name":"audio_mime_type","rank":23,"editor":"DynamicValue","value":"text","default_val":"auto"},"AeI":{"caption":"Show device icon","name":"show_device_icon","rank":28,"editor":"DynamicValue","value":"boolean","default_val":true},"AeS":{"caption":"Enable image","name":"enable_image","rank":7,"editor":"Checkbox","default_val":false},"Afn":{"caption":"Zoom","name":"zoom","rank":44,"editor":"DynamicValue","value":"number","optional":true,"default_val":1},"Afo":{"caption":"Front camera","name":"front_camera","rank":48,"editor":"Checkbox","value":"boolean","default_val":false},"Afx":{"caption":"Flip","name":"flip","rank":47,"editor":"DynamicValue","value":"text","default_val":"left"},"AgD":{"caption":"Rotate","name":"rotate","rank":46,"editor":"DynamicValue","value":"number","default_val":0},"AgW":{"caption":"Wave color","name":"wave_color","rank":41,"editor":"Color","default_val":"rgba(140, 140, 140, 1)"},"Agn":{"caption":"Mic sensitivity","name":"mic_sensitivity","rank":30,"editor":"DynamicValue","value":"number","default_val":0.8,"optional":true},"Ahp":{"caption":"Capture Mic levels","name":"capture_mic_levels","rank":29,"editor":"DynamicValue","value":"boolean","default_val":false},"Ain":{"caption":"Enable screen share","name":"enable_screen_share","rank":8,"editor":"Checkbox","value":"boolean","default_val":false},"Aiu":{"caption":"Object-fit","name":"object_fit","rank":26,"editor":"Dropdown","default_val":"Contain"},"Aix":{"caption":"Show recording dot","name":"show_recording_dot","rank":39,"editor":"DynamicValue","value":"boolean","default_val":true},"Aiy":{"caption":"Camera resolution width","name":"camera_resolution_width","rank":12,"editor":"StaticNumber","value":"number","default_val":1920},"Aiz":{"caption":"Camera resolution height","name":"camera_resolution_height","rank":13,"editor":"StaticNumber","value":"number","default_val":1080},"AjA":{"caption":"Snapshot width","name":"snapshot_width","rank":16,"editor":"StaticNumber","default_val":640},"AjB":{"caption":"Snapshot height","name":"snapshot_height","rank":17,"editor":"StaticNumber","default_val":480},"AjC":{"caption":"Audio engine","name":"audio_engine","rank":24,"editor":"Dropdown","default_val":"RecordRTC"},"Ajk":{"caption":"Aspect ratio","name":"aspect_ratio","rank":9,"editor":"DynamicValue","value":"text","default_val":"4:3","optional":true},"Alb":{"caption":"Frame width","name":"frame_width","rank":14,"editor":"StaticNumber","value":"number","default_val":1920},"Alc":{"caption":"Frame height","name":"frame_height","rank":15,"editor":"StaticNumber","value":"number","default_val":1080},"Alo":{"caption":"Audio buffer size","name":"audio_buffer_size","rank":31,"editor":"DynamicValue","value":"number","default_val":4096},"Alp":{"caption":"Audio sample rate","name":"audio_sample_rate","rank":32,"editor":"DynamicValue","value":"number","default_val":44100},"Alq":{"caption":"Audio channels","name":"audio_channels","rank":34,"editor":"DynamicValue","value":"number","default_val":2},"AnT":{"caption":"Save as MP4","name":"save_as_mp4","rank":19,"editor":"Checkbox","default_val":false},"AnU":{"caption":"Enable wheel zoom","name":"enable_wheel_zoom","rank":45,"editor":"DynamicValue","value":"boolean","default_val":true,"optional":false},"Anl":{"caption":"Audio bitrate","name":"audio_bitrate","rank":33,"editor":"DynamicValue","value":"number","default_val":128,"optional":true},"Ano":{"caption":"Auto gain control","name":"auto_gain_control","rank":36,"editor":"DynamicValue","value":"boolean","default_val":false},"Anq":{"caption":"Noise suppression","name":"noise_suppression","rank":35,"editor":"DynamicValue","value":"boolean","default_val":true},"Anr":{"caption":"Audio recorder type","name":"audio_recorder_type","rank":25,"editor":"Dropdown","default_val":"auto"},"AoG":{"caption":"Root directory","name":"root_directory","rank":0,"editor":"DynamicValue","value":"text","optional":true},"AoH":{"caption":"Convert recording","name":"convert_recording","rank":22,"editor":"DynamicValue","value":"boolean","default_val":false,"optional":false},"AoQ":{"caption":"Camera device ID","name":"camera_device_id","rank":10,"editor":"DynamicValue","value":"text","optional":true},"AoR":{"caption":"Audio device ID","name":"audio_device_id","rank":11,"editor":"DynamicValue","value":"text","optional":true},"Aou":{"caption":"MUX Upload URL","name":"mux_upload_url","rank":3,"editor":"DynamicValue","value":"text","optional":true},"Aov":{"caption":"-----------------------------------------------------------------------------","name":"line","rank":4,"editor":"Label"},"Apu":{"caption":"Image overlay","name":"image_overlay","rank":20,"editor":"DynamicValue","value":"text","optional":true},"Apv":{"caption":"Image overlay (bot)","name":"image_overlay_bottom","rank":21,"editor":"DynamicValue","value":"number","optional":true},"Apw":{"caption":"The recorder is no longer supported on Bubble's old responsive engine! Make sure you're using the new responsive engine.","name":"info","rank":1,"editor":"Label"}},"states":{"AQn":{"caption":"Is recording","name":"is_recording","value":"boolean","initialization_code":{"fn":"function(properties, context) {\n\n\n\n}"}},"AQs":{"caption":"Device error","name":"device_error","value":"text","initialization_code":{"fn":"function(properties, context) {\n\n\n\n}"}},"AQt":{"caption":"Error","name":"error","value":"text","initialization_code":{"fn":"function(properties, context) {\n\n\n\n}"}},"AQz":{"caption":"URL","name":"url","value":"text","initialization_code":{"fn":"function(properties, context) {\n\n\n\n}"}},"ARO":{"caption":"Device started","name":"device_started","value":"boolean","initialization_code":{"fn":"function(properties, context) {\n\n\n\n}"}},"ARQ":{"caption":"Is paused","name":"is_paused","value":"boolean","initialization_code":{"fn":"function(properties, context) {\n\n\n\n}"}},"ATe":{"caption":"Duration","name":"duration","value":"number","initialization_code":{"fn":"function(properties, context) {\n\n\n\n}"}},"ATf":{"caption":"WebSocket connected","name":"websocket_connected","value":"boolean","initialization_code":{"fn":"function(properties, context) {\n\n\n\n}"}},"AeN":{"caption":"Allowed camera","name":"allowed_camera","value":"boolean","initialization_code":{"fn":"function(properties, context) {\n\n\n\n}"}},"AeO":{"caption":"Allowed microphone","name":"allowed_microphone","value":"boolean","initialization_code":{"fn":"function(properties, context) {\n\n\n\n}"}},"AeT":{"caption":"Snapshot","name":"snapshot","value":"image","initialization_code":{"fn":"function(properties, context) {\n\n\n\n}"}},"Aes":{"caption":"Is picture in picture","name":"pip","value":"boolean","initialization_code":{"fn":"function(properties, context) {\n\n\n\n}"}},"Afp":{"caption":"Devices","name":"devices","value":"text","initialization_code":{"fn":"function(properties, context) {\n\n\n\n}"},"is_list":true},"Agm":{"caption":"Microphone level","name":"microphone_level","value":"number","initialization_code":{"fn":"function(properties, context) {\n\n\n\n}"}},"Agp":{"caption":"Microphone level max","name":"microphone_level_max","value":"number","initialization_code":{"fn":"function(properties, context) {\n\n\n\n}"}},"Ajf":{"caption":"Recording resolution width","name":"recording_resolution_width","value":"number","initialization_code":{"fn":"function(properties, context) {\n\n\n\n}"}},"Ajg":{"caption":"Recording resolution height","name":"recording_resolution_height","value":"number","initialization_code":{"fn":"function(properties, context) {\n\n\n\n}"}},"Ajh":{"caption":"Recording resolution framerate","name":"recording_resolution_framerate","value":"number","initialization_code":{"fn":"function(properties, context) {\n\n\n\n}"}},"Aka":{"caption":"Upload progress","name":"upload_progress","value":"number","initialization_code":{"fn":"function(properties, context) {\n\n\n\n}"}},"Anh":{"caption":"Video width","name":"video_width","value":"number","initialization_code":{"fn":"function(properties, context) {\n\n\n\n}"}},"Ani":{"caption":"Video height","name":"video_height","value":"number","initialization_code":{"fn":"function(properties, context) {\n\n\n\n}"}},"AoS":{"caption":"Current time (secs)","name":"current_time","value":"number","initialization_code":{"fn":"function(properties, context) {\n\n\n\n}"}}},"events":{"AQo":{"caption":"has started recording","name":"started_recording"},"AQp":{"caption":"has finished recording","name":"finished_recording"},"AQq":{"caption":"has errored","name":"error"},"AQr":{"caption":"has a device error","name":"device_error"},"AQy":{"caption":"has been uploaded","name":"saved"},"ARN":{"caption":"has stopped recording","name":"stopped_recording"},"ARR":{"caption":"has paused recording","name":"paused_recording"},"ARS":{"caption":"has resumed recording","name":"resume_recording"},"ART":{"caption":"device is started","name":"device_started"},"ARU":{"caption":"device is stopped","name":"device_stopped"},"AeU":{"caption":"snapshot taken","name":"snapshot_taken"},"Ahq":{"caption":"entered full screen","name":"entered_fullscreen"},"Ahr":{"caption":"exited full screen","name":"exited_fullscreen"},"Aiw":{"caption":"is ready","name":"is_ready"},"Anv":{"caption":"change audio input failed","name":"audio_input_failed"},"Anw":{"caption":"change audio output failed","name":"audio_output_failed"},"Anx":{"caption":"change video input failed","name":"video_input_failed"},"Anz":{"caption":"audio input changed","name":"audio_input_changed"},"AoA":{"caption":"audio output changed","name":"audio_output_changed"},"AoB":{"caption":"video input changed","name":"video_input_changed"},"Aow":{"caption":"uploaded to mux has completed","name":"uploaded_to_mux_success"},"Aox":{"caption":"uploaded to mux has failed","name":"uploaded_to_mux_failed"}},"actions":{"AQv":{"caption":"Upload recording","code":{"fn":"function(instance, properties, context) {\n    \n    if (instance.data.recordedData) {\n        \n        instance.uploadFile(instance.data.recordedData, function(err, url) {\n            if (err) {\n                console.error(err);\n                alert(\"Make sure the new file upload options are set correctly within the recorder's element as large file support has now been added. Check the console for error details\");\n            } else {\n                instance.publishState('url', url);\n                instance.triggerEvent('saved');\n            }\n        }, null, function(progress) {\n            instance.publishState('upload_progress', progress * 100);\n        });\n        \n    } else {\n        alert(\"You haven't recorded anything yet.\");\n    }\n    \n}"},"fields":{"AeG":{"caption":"Allows you to upload a completed recording to your S3 file storage area. For this to work, you must make sure the 'Max file size' and 'File uploads enabled' options are set within the recorder's element properties. The URL will be stored within the videoJSrecorder's URL state and you can access the file upload percentage within the exposed state called 'Upload progress'.","name":"info","rank":0,"editor":"Label"}}},"ARF":{"caption":"Start recording","code":{"fn":"function(instance, properties, context) {\n    \n    var existCondition = setInterval(function() {\n        if (typeof instance.data.videoRecorder != 'undefined') {\n            \n            clearInterval(existCondition);\n            \n         // get data\n            var videoRecorder = instance.data.videoRecorder.record();\n            \n            try {\n                videoRecorder.start();\n                instance.publishState(\"is_paused\", false);\n            }\n            catch(err) {\n                alert(\"Cannot start the recording, is the device switched on?\");\n            }\n            \n        }\n    }, 100);\n    \n}"}},"ARG":{"caption":"Stop recording","code":{"fn":"function(instance, properties, context) {\n    \n    var existCondition = setInterval(function() {\n        if (typeof instance.data.videoRecorder != 'undefined') {\n            \n            clearInterval(existCondition);\n            \n         // get data\n            var videoRecorder = instance.data.videoRecorder.record();\n            \n            try {\n                videoRecorder.stop();\n                instance.publishState(\"is_paused\", false);\n            }\n            catch(err) {\n                alert(\"Cannot stop the recording, is the device switched on?\");\n            }\n            \n        }\n    }, 100);\n    \n}"}},"ARI":{"caption":"Pause recording","code":{"fn":"function(instance, properties, context) {\n    \n    var existCondition = setInterval(function() {\n        if (typeof instance.data.videoRecorder != 'undefined') {\n            \n            clearInterval(existCondition);\n            \n         // get data\n            var videoRecorder = instance.data.videoRecorder.record();\n            \n            videoRecorder.pause();\n            instance.publishState(\"is_paused\", true);\n            instance.triggerEvent(\"paused_recording\");\n            \n        }\n    }, 100);\n    \n}"}},"ARJ":{"caption":"Resume recording","code":{"fn":"function(instance, properties, context) {\n    \n    var existCondition = setInterval(function() {\n        if (typeof instance.data.videoRecorder != 'undefined') {\n            \n            clearInterval(existCondition);\n            \n         // get data\n            var videoRecorder = instance.data.videoRecorder.record();\n            \n            videoRecorder.resume();\n            instance.publishState(\"is_paused\", false);\n            instance.triggerEvent(\"resume_recording\");\n            \n        }\n    }, 100);\n    \n}"}},"ARK":{"caption":"Start device","code":{"fn":"function(instance, properties, context) {\n    \n    var existCondition = setInterval(function() {\n        if (typeof instance.data.videoRecorder != 'undefined') {\n            \n            clearInterval(existCondition);\n            \n         // get data\n            var videoRecorder = instance.data.videoRecorder.record();\n            \n         // start device\n            videoRecorder.getDevice();\n            \n        }\n    }, 100);\n    \n}"}},"ARL":{"caption":"Stop device","code":{"fn":"function(instance, properties, context) {\n    \n    var existCondition = setInterval(function() {\n        if (typeof instance.data.videoRecorder != 'undefined') {\n            \n            clearInterval(existCondition);\n            \n         // get data\n            var videoRecorder = instance.data.videoRecorder.record();\n            \n         // function to stop the microphone levels from updating\n            function stopAudioOnly(stream) {\n                stream.getTracks().forEach(function(track) {\n                    if (track.readyState == 'live' && track.kind === 'audio') {\n                        track.stop();\n                    }\n                });\n            }\n            \n         // run function above passing the audio stream we created just for accessing the microphone levels\n            if (instance.data.stream) {\n                stopAudioOnly(instance.data.stream);\n            }\n            \n         // stop device, update state and trigger event\n            videoRecorder.stopDevice();\n            instance.publishState(\"device_started\", false);\n            instance.triggerEvent(\"device_stopped\");\n            \n        }\n    }, 100);\n    \n}"}},"ARi":{"caption":"Start streaming","code":{"fn":"function(instance, properties, context) {\n    \n    var existCondition = setInterval(function() {\n        if (typeof instance.data.videoRecorder != 'undefined') {\n            \n            clearInterval(existCondition);\n            \n         // get data\n            var videoRecorder = instance.data.videoRecorder;\n            var stream_key = properties.stream_key;\n            var wss_connection = properties.wss_connection;\n            var rtmp_service_url = properties.rtmp_service_url;\n            \n         // only run this when the timeSlice option has been set\n            if (instance.data.timeSlice) {\n                \n                if ((stream_key || rtmp_service_url) && wss_connection) {\n                    \n                    if (!rtmp_service_url) {\n                        \n                     // create a new websocket connection passing the key provided\n                        var wss = new WebSocket(''+wss_connection+'?key='+stream_key+'');\n                        console.log('new WebSocket('+wss_connection+'?key='+stream_key+')');\n                        \n                     // function assigned to listeners\n                        instance.data.timestamp = function timestamp() {\n                            if (videoRecorder.recordedData && videoRecorder.recordedData.length > 0) {\n                                var binaryData = videoRecorder.recordedData[videoRecorder.recordedData.length - 1];\n                                console.log(\"sending binaryData: \" + binaryData);\n                                wss.send(binaryData);\n                            }\n                        }\n                        \n                    } else {\n                        \n                     // create a new websocket connection passing the rtmp service provided\n                        var wss = new WebSocket(''+wss_connection+'?rtmp='+rtmp_service_url+'');\n                        console.log('new WebSocket('+wss_connection+'?rtmp='+rtmp_service_url+')');\n                        \n                     // function assigned to listeners\n                        instance.data.timestamp = function timestamp() {\n                            if (videoRecorder.recordedData && videoRecorder.recordedData.length > 0) {\n                                var binaryData = videoRecorder.recordedData[videoRecorder.recordedData.length - 1];\n                                console.log(\"sending binaryData: \" + binaryData);\n                                wss.send(binaryData);\n                            }\n                        }\n                        \n                    }\n                    \n                 // create open event for our websocket connection\n                    wss.addEventListener('open', (e) => {\n                        console.log('WebSocket Open', e);\n                        instance.publishState(\"websocket_connected\", true);\n                        \n                     // send video data on timestamp update, frequency determined by the timeSlice setting\n                        videoRecorder.on('timestamp', instance.data.timestamp);\n                        \n                     // close connection when recording is stopped\n                        videoRecorder.on('stopRecord', function () {\n                            wss.close();\n                            videoRecorder.off('timestamp', instance.data.timestamp);\n                        });\n                        \n                     // start recording\n                        videoRecorder.record().start();\n                        \n                    });\n                    \n                 // create stop event for our websocket connection\n                    wss.addEventListener('close', (e) => {\n                        console.log('WebSocket Close', e);\n                        instance.publishState(\"websocket_connected\", false);\n                    });\n                    \n                }\n                \n            } else {\n                alert (\"Ooops!, you've forgotton to set the time slice setting in the video recorder's options\");\n            }\n            \n        }\n    }, 100);\n    \n}"},"fields":{"ARs":{"caption":"Stream key","name":"stream_key","rank":1,"editor":"DynamicValue","value":"text"},"ARv":{"caption":"Please make sure the device has been started before running this action. The recording will also be started when you run this so there's no need to run the 'start recording' action. This has been designed to send video data from your browser to a listening WebSocket connection. The data is then forwarded directly to the MUX streaming services. You can configure it to point to an alternative streaming service if you wish. For information regarding how to setup the WebSocket connection, please refer to: https://paul-testing-4.bubbleapps.io/recorder. You can contact myself directly on the forum (pork1977gm) if you need further help.","name":"info","rank":0,"editor":"Label"},"ATZ":{"caption":"WebSocket endpoint","name":"wss_connection","rank":2,"editor":"DynamicValue","value":"text"},"Akc":{"caption":"RTMP streaming URL","name":"rtmp_service_url","rank":3,"editor":"DynamicValue","value":"text","optional":true}}},"AeJ":{"caption":"Trigger permissions","code":{"fn":"function(instance, properties, context) {\n    \n // get data\n    var camera = properties.camera;\n    var microphone = properties.microphone;\n    var constraints;\n    \n // trigger camera popup which allows permissions\n    if (camera && !instance.data.cameraAllowed) {\n        \n        var successCallback = function(stream) {\n         // user allowed access to camera\n            instance.data.cameraAllowed = true;\n            instance.publishState(\"allowed_camera\", true);\n            if (stream.active) {\n                stream.getTracks().forEach(function(track) {\n                    if (track.readyState == 'live' && track.kind === 'video') {\n                        track.stop();\n                    }\n                });\n            }\n        };\n        var errorCallback = function(stream) {\n            if (stream.name == 'NotAllowedError') {\n             // user denied access to camera\n                instance.data.cameraAllowed = false;\n                instance.publishState(\"allowed_camera\", false);\n            }\n        };\n        constraints = { audio: false, video: { zoom: true } };\n        navigator.mediaDevices.getUserMedia(constraints)\n            .then(successCallback, errorCallback);\n        \n    }\n    \n // trigger microphone popup which allows permissions\n    if (microphone && !instance.data.microphoneAllowed) {\n        \n        var successCallback = function(stream) {\n         // user allowed access to microphone\n            instance.data.microphoneAllowed = true;\n            instance.publishState(\"allowed_microphone\", true);\n        };\n        var errorCallback = function(stream) {\n            if (stream.name == 'NotAllowedError') {\n             // user denied access to microphone\n                instance.data.microphoneAllowed = false;\n                instance.publishState(\"allowed_microphone\", false);\n            }\n        };\n        constraints = { audio: true, video: false };\n        navigator.mediaDevices.getUserMedia(constraints)\n            .then(successCallback, errorCallback);\n        \n    }\n    \n}"},"fields":{"AeK":{"caption":"Camera","name":"camera","rank":1,"editor":"DynamicValue","value":"boolean","default_val":true},"AeL":{"caption":"Microphone","name":"microphone","rank":2,"editor":"DynamicValue","value":"boolean","default_val":true},"AeM":{"caption":"Use this action to trigger the browser's permission popup for camera and microphone. Each option has a corresponding state that will updated accordingly. Choose any recorder from the dropdown list and the state will be updated against the selected recorder's element.","name":"info","rank":0,"editor":"Label"}}},"Aeo":{"caption":"Picture in picture","code":{"fn":"function(instance, properties, context) {\n    \n    var existCondition = setInterval(function() {\n        if (typeof instance.data.videoRecorder != 'undefined') {\n            \n            clearInterval(existCondition);\n            \n         // get data\n            var videoRecorder = instance.data.videoRecorder;\n            var enable = properties.enable;\n            \n         // request and exit pip mode\n            if (videoRecorder.record()._deviceActive) {\n                if (enable) {\n                    videoRecorder.requestPictureInPicture();\n                } else {\n                    videoRecorder.exitPictureInPicture();\n                }\n            } else {\n                alert(\"Device must be started before you can control picture in picture mode\");\n            }\n            \n        }\n    }, 100);\n    \n}"},"fields":{"Aer":{"caption":"Enable","name":"enable","rank":0,"editor":"DynamicValue","value":"boolean","default_val":true}}},"Aew":{"caption":"Take snapshot","code":{"fn":"function(instance, properties, context) {\n    \n    var existCondition = setInterval(function() {\n        if (typeof instance.data.videoRecorder != 'undefined') {\n            \n            clearInterval(existCondition);\n            \n         // get data\n            var videoRecorder = instance.data.videoRecorder;\n            \n         // take snapshot\n            if (videoRecorder.record()._deviceActive) {\n                videoRecorder.record().createSnapshot();\n            } else {\n                alert(\"Device must be started before you can take a snapshot\");\n            }\n            \n        }\n    }, 100);\n    \n}"}},"Aey":{"caption":"Retry snapshot","code":{"fn":"function(instance, properties, context) {\n    \n    var existCondition = setInterval(function() {\n        if (typeof instance.data.videoRecorder != 'undefined') {\n            \n            clearInterval(existCondition);\n            \n         // get data\n            var videoRecorder = instance.data.videoRecorder;\n            \n         // take snapshot\n            if (videoRecorder.record()._deviceActive) {\n                videoRecorder.record().retrySnapshot();\n            } else {\n                alert(\"Device must be started before you can retry a snapshot\");\n            }\n            \n        }\n    }, 100);\n    \n}"}},"Afq":{"caption":"Enumerate devices","code":{"fn":"function(instance, properties, context) {\n    \n    var existCondition = setInterval(function() {\n        if (typeof instance.data.videoRecorder != 'undefined') {\n            \n            clearInterval(existCondition);\n            \n         // get data\n            var videoRecorder = instance.data.videoRecorder;\n            \n         // success\n            var successCallback = function(stream) {\n                videoRecorder.record().enumerateDevices();\n            };\n            \n         // failed\n            var errorCallback = function(stream) {\n                if (stream.name == 'NotAllowedError') {\n                    return\n                }\n            };\n            \n         // enumerate devices\n            var constraints = { audio: true, video: true };\n            navigator.mediaDevices.getUserMedia(constraints)\n                .then(successCallback, errorCallback);\n            \n        }\n    }, 100);\n    \n}"},"fields":{"Ajj":{"caption":"This action will enumerate all input devices and store them within the 'Devices' exposed state.","name":"info","rank":0,"editor":"Label"}}},"Aft":{"caption":"Swap camera","code":{"fn":"function(instance, properties, context) {\n    \n    var existCondition = setInterval(function() {\n        if (typeof instance.data.videoRecorder != 'undefined') {\n            \n            clearInterval(existCondition);\n            \n         // get data\n            var videoRecorder = instance.data.videoRecorder.record();\n            var front_camera = properties.front_camera;\n            var start_device = properties.start_device;\n            \n         // front camera\n            if (front_camera) {\n                \n                if (typeof instance.data.recorderOptions.plugins.record.video !== 'undefined') {\n                    videoRecorder.loadOptions({\n                        video: {\n                            facingMode: 'user'\n                        }\n                    });\n                }\n                \n                if (typeof instance.data.recorderOptions.plugins.record.image !== 'undefined') {\n                    videoRecorder.loadOptions({\n                        image: {\n                            facingMode: 'user'\n                        }\n                    });\n                }\n            }\n            \n         // rear camera\n            if (!front_camera) {\n                \n                if (typeof instance.data.recorderOptions.plugins.record.video !== 'undefined') {\n                    videoRecorder.loadOptions({\n                        video: {\n                            facingMode: 'environment'\n                        }\n                    });\n                }\n                \n                if (typeof instance.data.recorderOptions.plugins.record.image !== 'undefined') {\n                    videoRecorder.loadOptions({\n                        image: {\n                            facingMode: 'environment'\n                        }\n                    });\n                }\n                \n            }\n            \n         // start device\n            if (start_device) {\n                videoRecorder.getDevice();\n            }\n            \n        }\n    }, 100);\n    \n}"},"fields":{"Afu":{"caption":"Front camera","name":"front_camera","rank":0,"editor":"DynamicValue","value":"boolean","default_val":true},"AgN":{"caption":"Start device","name":"start_device","rank":1,"editor":"DynamicValue","value":"boolean","default_val":true}}},"Afz":{"caption":"Flip canvas","code":{"fn":"function(instance, properties, context) {\n    \n    var existCondition = setInterval(function() {\n        if (typeof instance.data.videoRecorder != 'undefined') {\n            \n            clearInterval(existCondition);\n            \n         // get data\n            var videoRecorder = instance.data.videoRecorder;\n            var flip_horizontally_left = properties.flip_horizontally_left;\n            var flip_horizontally_right = properties.flip_horizontally_right;\n            \n         // flip horizontally\n            if (flip_horizontally_left) {\n                videoRecorder.zoomrotateflip({\"rotate\": \"\" + instance.data.rotate + \"\", \"zoom\": \"\" + instance.data.zoom + \"\", \"flip\": \"-1\", \"debug\": false});\n            }\n            if (flip_horizontally_right) {\n                videoRecorder.zoomrotateflip({\"rotate\": \"\" + instance.data.rotate + \"\", \"zoom\": \"\" + instance.data.zoom + \"\", \"flip\": \"1\", \"debug\": false});\n            }\n            \n        }\n    }, 100);\n    \n}"},"fields":{"AgA":{"caption":"Flip horizontally (left)","name":"flip_horizontally_left","rank":0,"editor":"DynamicValue","value":"boolean","default_val":true},"AgB":{"caption":"Flip horizontally (right)","name":"flip_horizontally_right","rank":1,"editor":"DynamicValue","value":"boolean","default_val":false}}},"AgC":{"caption":"Reset recorder","code":{"fn":"function(instance, properties, context) {\n    \n    var existCondition = setInterval(function() {\n        if (typeof instance.data.videoRecorder != 'undefined') {\n            \n            clearInterval(existCondition);\n            \n         // get data\n            var videoRecorder = instance.data.videoRecorder.record();\n            \n         // reset recorder\n            videoRecorder.reset();\n            \n         // remove any image overlay\n            var thisImageOverlay = document.getElementById(instance.data.imgOverlayId);\n            if (thisImageOverlay) {\n                thisImageOverlay.style.display = 'none';\n            }\n            \n        }\n    }, 100);\n    \n}"}},"AgQ":{"caption":"Set audio output","code":{"fn":"function(instance, properties, context) {\n    \n    var existCondition = setInterval(function() {\n        if (typeof instance.data.videoRecorder != 'undefined') {\n            \n            clearInterval(existCondition);\n            \n         // get data\n            var videoRecorder = instance.data.videoRecorder.record();\n            var device_id = properties.device_id;\n            \n         // change device (try/catch doesn't work for some reason)\n         // catching errors in deviceError and success in deviceReady \n            if (device_id) {\n                instance.data.settingDevice = \"audioOutput\";\n                videoRecorder.setAudioOutput(device_id);\n            }\n            \n        }\n    }, 100);\n    \n}"},"fields":{"AgR":{"caption":"Device Id","name":"device_id","rank":1,"editor":"DynamicValue","value":"text"},"Any":{"caption":"This action is currently broken due to a bug within the latest videoJS record code. It's been reported on GitHub and when resolved this comment shall be removed.","name":"info","rank":0,"editor":"Label"}}},"AgS":{"caption":"Set audio input","code":{"fn":"function(instance, properties, context) {\n    \n    var existCondition = setInterval(function() {\n        if (typeof instance.data.videoRecorder != 'undefined') {\n            \n            clearInterval(existCondition);\n            \n         // get data\n            var videoRecorder = instance.data.videoRecorder.record();\n            var device_id = properties.device_id;\n            \n         // change device (try/catch doesn't work for some reason)\n         // catching errors in deviceError and success in deviceReady \n            if (device_id) {\n                instance.data.settingDevice = \"audioInput\";\n                videoRecorder.setAudioInput(device_id);\n            }\n            \n        }\n    }, 100);\n    \n}"},"fields":{"AgU":{"caption":"Device Id","name":"device_id","rank":0,"editor":"DynamicValue","value":"text"}}},"AgT":{"caption":"Set video input","code":{"fn":"function(instance, properties, context) {\n    \n    var existCondition = setInterval(function() {\n        if (typeof instance.data.videoRecorder != 'undefined') {\n            \n            clearInterval(existCondition);\n            \n         // get data\n            var videoRecorder = instance.data.videoRecorder.record();\n            var device_id = properties.device_id;\n            \n         // change device (try/catch doesn't work for some reason)\n         // catching errors in deviceError and success in deviceReady \n            if (device_id) {\n                instance.data.settingDevice = \"videoInput\";\n                videoRecorder.setVideoInput(device_id);\n            }\n            \n        }\n    }, 100);\n    \n}"},"fields":{"AgV":{"caption":"Device Id","name":"device_id","rank":0,"editor":"DynamicValue","value":"text"}}},"Ahn":{"caption":"Full screen","code":{"fn":"function(instance, properties, context) {\n    \n    var existCondition = setInterval(function() {\n        if (typeof instance.data.videoRecorder != 'undefined') {\n            \n            clearInterval(existCondition);\n            \n         // get data\n            var videoRecorder = instance.data.videoRecorder.record();\n            var option = properties.option ? properties.option : 'enter';\n            \n         // enter/leave full screen\n            if (option === 'enter') {\n                new Function(\"videojs.players.\" + instance.data.recorderId + \".requestFullscreen()\")();\n            }\n            \n            if (option === 'leave') {\n                new Function(\"videojs.players.\" + instance.data.recorderId + \".exitFullscreen()\")();\n            }\n            \n        }\n    }, 100);\n    \n}"},"fields":{"Aho":{"caption":"Option","name":"option","rank":0,"editor":"DynamicValue","value":"text","default_val":"enter"}}},"Ait":{"caption":"Reset max microphone level","code":{"fn":"function(instance, properties, context) {\n    \n    instance.publishState(\"microphone_level_max\");\n    \n}"}}},"code":{"preview":{"fn":"function(instance, properties) {\n    \n    let box = $(`<div></div>`);\n\n    instance.canvas.append(box);\n    box.css(\"height\", properties.bubble.height)\n    box.css(\"width\", properties.bubble.width)\n    box.css(\"background-repeat\", \"no-repeat\")\n    box.css(\"background-position\", \"center\")\n    box.css(\"background-size\", \"cover\")\n    \n    if (properties.recording_type === \"Video\") {\n        box.css(\"background-image\", \"url(//01246d7e30dd8ee862a8dba3b426a683.cdn.bubble.io/f1620315725319x827267858906627600/recorder_video.png)\")\n    }\n    if (properties.recording_type === \"Audio\") {\n        box.css(\"background-image\", \"url(//01246d7e30dd8ee862a8dba3b426a683.cdn.bubble.io/f1620315715450x606758542919426200/recorder_audio.png)\")\n    }\n    \n}"},"initialize":{"fn":"function(instance, context) {\n\n    // generate a random id for the element\n    var randomId = Math.floor((Math.random() * 100000) + 1);\n    instance.data.recorderId = 'videoRecorder_' + randomId;\n    instance.data.imgOverlayId = 'imgOverlay_' + randomId;\n\n    // add the elements to the canvas - the recorder no longer supports the old responsive engine because of height issues\n    instance.canvas.append(\"<video id='\" + instance.data.recorderId + \"' class='video-js' playsinline allow='autoplay' style='width:100%;height:100%;background-color:rgba(0, 0, 0, 0)'></video>\");\n    instance.canvas.append(\"<img id='\" + instance.data.imgOverlayId + \"' style='display:none;width:100%;z-index:1;position:absolute' src='' alt=''>\");\n    \n    $(document).ready(function() {\n\n        // this waits until the update function has run so options are set correctly\n        var existCondition = setInterval(function () {\n            if (instance.data.updateHasRun) {\n\n                clearInterval(existCondition);\n\n                // set default value for states\n                instance.publishState(\"is_recording\", false);  \n                instance.publishState(\"device_started\", false);\n                instance.publishState(\"is_paused\", false);\n                instance.publishState(\"pip\", false);\n\n                // apply some workarounds for certain browsers\n                applyVideoWorkaround();\n                applyScreenWorkaround();\n                \n                // load video recorder\n                var videoRecorder;\n                videoRecorder = videojs(instance.data.recorderId, instance.data.recorderOptions);\n\n                // zoom plugin\n                videoRecorder.zoomrotateflip({\n                    rotate: 0,\n                    zoom: 1,\n                    flip: -1,\n                    debug: false\n                });\n\n                // resize the player as page size changes to keep aspect ratio\n                instance.data.resizeVideoJS = function resizeVideoJS() {\n                    var width = document.getElementById(instance.data.recorderId).parentElement.offsetWidth;\n                    videoRecorder.width(width);\n                    if (Number.isFinite(instance.data.aspectRatioDecimal)) {\n                        instance.canvas.css(\"height\", width * instance.data.aspectRatioDecimal);\n                    } else {\n                        instance.canvas.css(\"height\", width * instance.canvas.height());\n                    }\n                }\n\n                // setup a mutation observer to make the recorder display correctly when bubble changes the visibility, must have aspect ratio set\n                // in the player, this also pauses the video and sets a couple of states\n                let observer = new MutationObserver(function (mutations) {\n                    mutations.forEach(function (mutation) {\n\n                        if (mutation.type == 'attributes') {\n                            var currentDisplay = mutation.target.style.display;\n                            var currentVisibility = mutation.target.style.visibility;\n\n                            if (currentDisplay == 'none' || currentVisibility == 'hidden') {\n                                // console.log(\"display has just changed to none or visibility has changed to hidden\");\n\n                                // the new responsive engine is not hiding the control bar, not sure why but this will hide it\n                                document.getElementById('' + instance.data.recorderId + '').getElementsByClassName('vjs-control-bar')[0].style.opacity = 0;\n                                document.getElementById('' + instance.data.recorderId + '').getElementsByClassName('vjs-control-bar')[0].style.pointerEvents = 'none';\n\n                            } else if (currentDisplay == 'block' || currentVisibility == '') {\n                                // console.log(\"display has just changed to block or visibility has changed to visible\");\n\n                                // restore visibility on the control bar, is a problem with new responsive engine\n                                document.getElementById('' + instance.data.recorderId + '').getElementsByClassName('vjs-control-bar')[0].style.opacity = 1;\n                                document.getElementById('' + instance.data.recorderId + '').getElementsByClassName('vjs-control-bar')[0].style.pointerEvents = 'auto';\n\n                                // fixes the height being 0 when running on the old responsive engine and bubble's show action is run, it flickers on new engine though\n                                // if you conditionally change the visibility based upon the value of a state it will be fine, older engine\n                                if (instance.canvas.height() < 1) {\n                                    // instance.canvas.css(\"height\", videoRecorder.videoHeight() + 30);\n                                }\n                            }\n\n                            // if you ever need a mutation observer to happen only once, you can add this\n                            // observer.disconnect();\n                        }\n\n                    });\n                });\n                let observerConfig = {\n                    childList: true,\n                    subtree: true,\n                    attributes: true\n                };\n                observer.observe(instance.canvas[0], {\n                    attributes: true\n                });\n\n                // device is ready\n                videoRecorder.on('deviceReady', function() {\n                    \n                    // detection events for when the device is changed\n                    if (instance.data.settingDevice == 'audioOutput') {\n                        instance.triggerEvent('audio_output_changed');\n                    }\n                    if (instance.data.settingDevice == 'audioInput') {\n                        instance.triggerEvent('audio_input_changed');\n                    }\n                    if (instance.data.settingDevice == 'videoInput') {\n                        instance.triggerEvent(\"video_input_changed\");\n                    }\n                    instance.data.settingDevice = null;\n\n                    // publish video dimensions\n                    instance.publishState(\"video_width\", videoRecorder.videoWidth());\n                    instance.publishState(\"video_height\", videoRecorder.videoHeight());\n\n                    instance.publishState(\"device_started\", true);\n                    instance.triggerEvent(\"device_started\");\n\n                    // these can be used to see the video and audio settings\n                    // console.log(videoRecorder.record().stream.getVideoTracks()[0].getSettings());\n                    // console.log(videoRecorder.record().stream.getVideoTracks()[0].getConstraints());\n                    // console.log(videoRecorder.record().stream.getAudioTracks()[0].getSettings());\n                    // console.log(videoRecorder.record().stream.getAudioTracks()[0].getConstraints());\n\n                    // removes the border line when the wave tag becomes available\n                    var existCondition = setInterval(function() {\n                        if (document.getElementById(instance.data.recorderId).getElementsByTagName('wave').length) {\n                            clearInterval(existCondition);\n                            var waves = document.getElementById(instance.data.recorderId).getElementsByTagName('wave');\n                            for (var i = 0; i < waves.length; i++) {\n                                waves[i].style.borderRight = '';\n                            }\n                        }\n                    }, 100);\n\n                    // function to monitor microphone levels\n                    instance.data.microphoneGranted = async function onMicrophoneGranted(stream) {\n\n                        instance.data.stream = stream;\n                        var highestValue = 0;\n\n                        audioContext = new AudioContext();\n                        await audioContext.audioWorklet.addModule('//01246d7e30dd8ee862a8dba3b426a683.cdn.bubble.io/f1631180363886x863034546419992800/vumeter-processor.js');\n                        var microphone = audioContext.createMediaStreamSource(stream);\n                        var node = new AudioWorkletNode(audioContext, 'vumeter');\n\n                        // set the sensitivity if it's not defined already\n                        if (!instance.data.sensitivity) {\n                            instance.data.sensitivity = 0.5;\n                        }\n\n                        node.port.onmessage = event => {\n                            var volume = 0;\n\n                            if (event.data.volume) {\n                                volume = event.data.volume;\n                            }\n\n                            if (!instance.data.sensitivity) {\n                                instance.data.sensitivity = 0.5;\n                            }\n\n                            // updates microphone level state\n                            if (volume > 0) {\n                                instance.publishState('microphone_level', Math.round(((volume * 1000) * instance.data.sensitivity)));\n                            }\n\n                            // updates highest microphone level state\n                            if (((volume * 1000) * instance.data.sensitivity) > highestValue) {\n                                highestValue = Math.round(((volume * 1000) * instance.data.sensitivity));\n                                instance.publishState('microphone_level_max', highestValue);\n                            }\n\n                        }\n\n                        microphone.connect(node).connect(audioContext.destination);\n\n                    }\n\n                    // run function above to get microphone levels when audio is selected\n                    if (instance.data.enable_audio) {\n                        navigator.getUserMedia = navigator.getUserMedia ||\n                            navigator.webkitGetUserMedia ||\n                            navigator.mozGetUserMedia;\n\n                        if (navigator.getUserMedia) {\n                            navigator.getUserMedia(\n                                { audio: true, video: false },\n                                instance.data.microphoneGranted\n                            );\n                        }\n                    }\n\n                    // run the resize function when the aspect ratio option is set so the recorder height is set when the device starts \n                    if (instance.data.aspectRatio) {\n                        instance.data.resizeVideoJS();\n\n                        // this variable is set in update, resolve an issue with wavesurfer\n                        if (!instance.data.doNotRunAspectRatio) {\n                            videoRecorder.aspectRatio('' + instance.data.aspectRatio + '');\n                        }\n\n                        window.addEventListener(\"resize\", instance.data.resizeVideoJS());\n                    }\n                    \n                    // maintain flip settings on reset\n                    videoRecorder.zoomrotateflip({\"rotate\": \"\" + instance.data.rotate + \"\", \"zoom\": \"\" + instance.data.zoom + \"\", \"flip\": \"\" + instance.data.flip + \"\", \"debug\": false});\n                    \n                });\n\n                videoRecorder.record().enumerateDevices();\n\n                // enumerate devices\n                videoRecorder.on('enumerateReady', function() {\n                    var devices = videoRecorder.record().devices;\n                    var deviceList = [];\n\n                    if (devices.length > 0) {\n                        devices.forEach(function(device) {\n                            deviceList.push(device.kind + \": \" + device.label + \" deviceid: \" + device.deviceId);\n                        });\n                        // update device state\n                        instance.publishState(\"devices\", deviceList);\n                    }\n                });\n\n                // error handling\n                videoRecorder.on('deviceError', function() {\n                    instance.publishState(\"is_recording\", false);\n                    instance.publishState(\"device_error\", videoRecorder.deviceErrorCode.toString());\n                    instance.triggerEvent(\"device_error\");\n                    console.error(videoRecorder.deviceErrorCode.toString());\n\n                    // device change error events\n                    if (videoRecorder.deviceErrorCode.constraint == \"deviceId\" && videoRecorder.deviceErrorCode.name == \"OverconstrainedError\") {\n                        if (instance.data.settingDevice == 'audioOutput') {\n                            instance.triggerEvent('audio_output_failed');\n                        }\n                        if (instance.data.settingDevice == 'audioInput') {\n                            instance.triggerEvent('audio_input_failed');\n                        }\n                        if (instance.data.settingDevice == 'videoInput') {\n                            instance.triggerEvent('video_input_failed');\n                        }\n                        instance.data.settingDevice = null;\n                    }\n                });\n\n                videoRecorder.on('error', function(element, error) {\n                    instance.publishState(\"is_recording\", false);\n                    instance.publishState(\"error\", error);\n                    console.error(error);\n                });\n\n                // user clicked the record button and started recording\n                videoRecorder.on('startRecord', function() {\n                    instance.publishState(\"is_recording\", true);\n                    instance.triggerEvent(\"started_recording\");\n\n                    // update some states, wrapped in try catch so it doesn't throw errors when audio only\n                    try {\n                        instance.publishState('recording_resolution_width', videoRecorder.record().stream.getVideoTracks()[0].getSettings().width);\n                        instance.publishState('recording_resolution_height', videoRecorder.record().stream.getVideoTracks()[0].getSettings().height);\n                        instance.publishState('recording_resolution_framerate', videoRecorder.record().stream.getVideoTracks()[0].getSettings().frameRate);\n                    }\n                    catch(err) {\n                        // fine to ignore any errors here\n                    }\n                });\n\n                // is recording\n                videoRecorder.on('progressRecord', function() {\n                    instance.publishState(\"current_time\", videoRecorder.record().getDuration());\n\n                    // red recording dot visibility\n                    if (instance.data.showRecordingDot) {\n                        document.getElementById(instance.data.recorderId).getElementsByClassName('vjs-record-indicator vjs-control')[0].classList.remove(\"vjs-hidden\");\n                    } else {\n                        document.getElementById(instance.data.recorderId).getElementsByClassName('vjs-record-indicator vjs-control')[0].classList.add(\"vjs-hidden\");\n                    }\n                });\n\n                // user clicked the stop button and stopped recording\n                videoRecorder.on('stopRecord', function() {\n                    instance.publishState(\"is_recording\", false);\n                    instance.triggerEvent(\"stopped_recording\");\n                });\n\n                // function that deals with the completed recording\n                function processRecording(videoData) {\n\n                    // load the recording into a video element so we can get the proper duration\n                    var videoElement = document.createElement(\"video\");\n                    videoElement.muted = true;\n                    videoElement.setAttribute(\"src\", URL.createObjectURL(videoData));\n                    videoElement.play();\n                    videoElement.addEventListener('durationchange', (e) => {\n                        if (Number.isFinite(videoElement.duration)) {\n                            instance.publishState(\"duration\", videoElement.duration);\n                        }\n                    });\n\n                    // if it's not an image\n                    if (!instance.data.snapshot) {\n\n                        // the blob object contains the recorded data that can be stored (used in upload recording action)\n                        instance.data.recordedData = videoData;\n\n                        // save the file as mp4 if option checked in recorder settings\n                        if (instance.data.save_as_mp4) {\n                            instance.data.recordedData = new File([instance.data.recordedData], \"myVideo.mp4\", {\n                                type: \"video/mp4\",\n                                lastModified: new Date().getTime()\n                            });\n                        }\n\n                        console.log(instance.data.recordedData);\n                        console.log(\"recorded data is in window.recordedData\");\n\n                        window.recordedData = instance.data.recordedData;\n\n                        // upload recording to mux\n                        if (instance.data.mux_upload_url) {\n\n                            async function uploadVideo(dataURI) {\n\n                                const imageResponse = await fetch(dataURI);\n                                const blob = await imageResponse.blob();\n\n                                try {\n                                    let res = await fetch(instance.data.mux_upload_url, {\n                                        method: 'PUT',\n                                        body: blob,\n                                        headers: { \"content-type\": blob.type}\n                                    });\n                                    instance.triggerEvent('uploaded_to_mux_success');\n                                } catch(error) {\n                                    instance.triggerEvent('uploaded_to_mux_failed');\n                                }\n                            }\n\n                            // convert blob to base64\n                            var reader = new FileReader();\n                            reader.onload = function() {\n                                var dataURI = reader.result;\n                                uploadVideo(dataURI);\n                            };\n                            reader.readAsDataURL(instance.data.recordedData);\n                        }\n\n                        instance.publishState(\"is_recording\", false);\n                        instance.triggerEvent(\"finished_recording\");\n\n                        // if it is an image\n                    } else {\n                        instance.publishState(\"is_recording\", false);\n                        instance.triggerEvent(\"snapshot_taken\");\n                        instance.publishState(\"snapshot\", videoRecorder.recordedData);\n                    }\n\n                }\n\n                // recording converted\n                videoRecorder.on('finishConvert', function() {\n                    if (instance.data.convert_recording) {\n                        console.log(\"finished converting\");\n                        processRecording(videoRecorder.convertedData);\n                    }\n                });\n\n                // user completed recording and stream is available\n                videoRecorder.on('finishRecord', function() {\n                    if (!instance.data.convert_recording) {\n                        console.log(\"finished recording\");\n                        processRecording(videoRecorder.recordedData);\n                    }\n                });\n\n                // handle picture-in-picture events\n                var pipWindow;\n                videoRecorder.on('enterPIP', function(element, evt) {\n                    instance.publishState(\"pip\", true);\n\n                    // listen for window resize\n                    pipWindow = evt.pictureInPictureWindow;\n                    pipWindow.addEventListener('resize', onPipWindowResize);\n                });\n\n                videoRecorder.on('leavePIP', function() {\n                    instance.publishState(\"pip\", false);\n                    pipWindow.removeEventListener('resize', onPipWindowResize);\n                });\n\n                videoRecorder.on('fullscreenchange', function() {\n                    if (document.fullscreenElement) {\n                        instance.triggerEvent('entered_fullscreen');\n                    } else {\n                        instance.triggerEvent('exited_fullscreen');\n                    }\n                });\n\n                videoRecorder.on('wheel', function(e) {\n                    if (instance.data.enable_wheel_zoom) {\n                        e.preventDefault();\n                        if (e.deltaY < 0) {\n                            if (instance.data.zoom <= 4) {\n                                instance.data.zoom = instance.data.zoom + 0.1;\n                            }\n                        } else {\n                            if (instance.data.zoom > 1) {\n                                instance.data.zoom = instance.data.zoom - 0.1;\n                            }\n                        }\n                        videoRecorder.zoomrotateflip({\"rotate\": \"\" + instance.data.rotate + \"\", \"zoom\": \"\" + instance.data.zoom + \"\", \"flip\": \"\" + instance.data.flip + \"\", \"debug\": false});\n                    }\n                });\n\n                function onPipWindowResize(evt) {\n                    // console.log(`window size changed to ${pipWindow.width} x ${pipWindow.height}`);\n                }\n\n                instance.data.videoRecorder = videoRecorder;\n                instance.triggerEvent(\"is_ready\");\n\n            }\n        }, 100);\n\n    });\n\n}"},"update":{"fn":"function(instance, properties, context) {\n    \n // get data\n    var enable_video = properties.enable_video ? properties.enable_video : false;\n    var enable_audio = properties.enable_audio ? properties.enable_audio : false;\n    var enable_image = properties.enable_image ? properties.enable_image : false;\n    var snapshot_width = properties.snapshot_width ? properties.snapshot_width : 640;\n    var snapshot_height = properties.snapshot_height ? properties.snapshot_height : 480;\n    var image_overlay_bottom = properties.image_overlay_bottom ? '' + properties.image_overlay_bottom + 'px' : 'auto';\n    var camera_device_id = properties.camera_device_id;\n    var audio_device_id = properties.audio_device_id;\n    var camera_resolution_width = properties.camera_resolution_width ? properties.camera_resolution_width : 1920;\n    var camera_resolution_height = properties.camera_resolution_height ? properties.camera_resolution_height : 1080;\n    var frame_width = properties.frame_width ? properties.frame_width : 1920;\n    var frame_height = properties.frame_height ? properties.frame_height : 1080;\n    var enable_screen_share = properties.enable_screen_share ? properties.enable_screen_share : false;\n    var aspect_ratio = properties.aspect_ratio;\n    var video_mime_type = properties.video_mime_type ? properties.video_mime_type : 'video/webm;codecs=vp8';\n    var audio_mime_type = properties.audio_mime_type ? properties.audio_mime_type : 'auto';\n    var audio_engine = properties.audio_engine ? properties.audio_engine.toLowerCase() : 'recordrtc';\n    var audio_recorder_type = properties.audio_recorder_type ? properties.audio_recorder_type : 'auto';\n    var object_fit = properties.object_fit.toLowerCase();\n    var enable_controls = properties.enable_controls;\n    var show_device_icon = properties.show_device_icon;\n    var capture_mic_levels = properties.capture_mic_levels;\n    var audio_buffer_size = properties.audio_buffer_size ? properties.audio_buffer_size : 4096;\n    var audio_sample_rate = properties.audio_sample_rate ? properties.audio_sample_rate : 44100;\n    var audio_bitrate = properties.audio_bitrate ? properties.audio_bitrate : 128;\n    var audio_channels = properties.audio_channels ? properties.audio_channels : 1;\n    var auto_gain_control = properties.auto_gain_control;\n    var noise_suppression = properties.noise_suppression;\n    var max_length = properties.max_length ? properties.max_length : '3600';\n    var display_milliseconds = properties.display_milliseconds;\n    var show_recording_dot = properties.show_recording_dot;\n    var pip = properties.pip;\n    var wave_color = properties.wave_color ? properties.wave_color : '#8C8C8C'\n    var auto_mute_device = properties.auto_mute_device;\n    var zoom = properties.zoom ? properties.zoom : 1;\n    var rotate = properties.rotate ? properties.rotate : 0;\n    var flip = properties.flip ? properties.flip.toLowerCase() : 'left';\n    var front_camera = properties.front_camera;\n    var root_directory = properties.root_directory;\n    \n    instance.data.mux_upload_url = properties.mux_upload_url;\n    instance.data.save_as_mp4 = properties.save_as_mp4;\n    instance.data.convert_recording = properties.convert_recording;\n    instance.data.sensitivity = properties.mic_sensitivity;\n    instance.data.timeSlice = properties.time_slice;\n    instance.data.flip = flip;\n    instance.data.aspectRatio = aspect_ratio;\n    instance.data.enable_wheel_zoom = properties.enable_wheel_zoom;\n    instance.data.image_overlay = properties.image_overlay ? properties.image_overlay : '';\n    \n // this global variable is used inside the aspect ratio condition within intialize, line 194\n // for some reason, when an aspect ratio has a value, the sound wave doesn't render because videoRecorder.aspectRatio method breaks it\n    if (!enable_video && enable_audio && aspect_ratio) {\n        instance.data.doNotRunAspectRatio = true;\n    }\n    \n // automtcailly set the save as mp4 option to true if we're uploading directly to mux, otherwise mux fails to read the file\n    if (instance.data.mux_upload_url) {\n        instance.data.save_as_mp4 = true;\n    }\n    \n // use this to determine if the microphone function within initialize should run\n    if (enable_audio && capture_mic_levels) {\n        instance.data.enable_audio = true;\n    } else {\n        instance.data.enable_audio = false;\n    }\n    \n // aspect ratio\n    if (aspect_ratio) {\n        var one = aspect_ratio.substring(0, aspect_ratio.indexOf(\":\"));\n        var two = aspect_ratio.split(\":\").pop();\n        \n     // used inside initialize within a few places\n        instance.data.aspectRatioDecimal = two / one;\n    }\n    \n // check for pip support\n    instance.data.pipEnabled = false;\n    \n    if (!('pictureInPictureEnabled' in document)) {\n        instance.data.pipStatusMsg = 'picture-in-picture api is not available';\n    } else if (!document.pictureInPictureEnabled) {\n        instance.data.pipStatusMsg = 'picture-in-picture api is disabled';\n    } else {\n        if (pip) {\n            instance.data.pipEnabled = true;\n        } else {\n            instance.data.pipEnabled = false;\n        }\n    }\n    \n // sets a variable which is used in the events to remove the red dot in initialize\n    if (show_recording_dot) {\n        instance.data.showRecordingDot = true;\n    } else {\n        instance.data.showRecordingDot = false;\n    }\n    \n // enable the image overlay for video recordings only\n    if (enable_video && !enable_image && !enable_screen_share) {\n        var thisRecorder = document.getElementById(instance.data.recorderId);\n        var thisImageOverlay = document.getElementById(instance.data.imgOverlayId);\n        thisImageOverlay.src = instance.data.image_overlay;\n        thisImageOverlay.style.display = 'block';\n        thisImageOverlay.style.bottom = image_overlay_bottom;\n        thisRecorder.appendChild(thisImageOverlay);\n    }\n    \n // set the camera options\n    if (enable_video || enable_image) {\n        var camera = {\n            facingMode: front_camera ? 'user' : 'environment',\n         // image media constraints: set resolution of camera\n            width: {\n                ideal: camera_resolution_width\n            },\n            height: {\n                ideal: camera_resolution_height\n            }\n        }\n        if (camera_device_id) {\n            camera.deviceId = {\n                exact: '' + camera_device_id +''\n            }\n        }\n        if (instance.data.aspectRatioDecimal) {\n            camera.aspectRatio = one / two;\n        }\n    } else {\n        var camera = false;\n    }\n    \n // set root files directory\n    if (!root_directory) {\n        root_directory = '/worker-realtime.js';\n    } else {\n        root_directory = ''+ root_directory + '/worker-realtime.js';\n    }\n    \n // set some audio properties\n    if (enable_audio) {\n        var audio = {\n            channelCount: {\n                min: 1,\n                ideal: audio_channels\n            },\n            autoGainControl: auto_gain_control,\n            noiseSuppression: noise_suppression,\n            echoCancellation: true,\n            googAutoGainControl: auto_gain_control,\n            googNoiseSuppression: noise_suppression,\n            googHighpassFilter: true\n        }\n        if (audio_device_id) {\n            audio.deviceId = {\n                exact: '' + audio_device_id +''\n            }\n        }\n    } else {\n        var audio = false;\n    }\n    \n // set options\n    if (!enable_image) {\n        \n     // used in the finishRecord event within initialize\n        instance.data.snapshot = false;\n        \n        var options = {\n            controls: enable_controls,\n            html5: {\n                vhs: {\n                    experimentalLLHLS: true\n                }\n            },\n            plugins: {\n                record: {\n                    audio: audio,\n                    video: camera,\n                    screen: enable_screen_share,\n                    videoMimeType: video_mime_type,\n                    audioMimeType: audio_mime_type,\n                    audioEngine: audio_engine,\n                    audioRecorderType: ''+ audio_recorder_type + '',\n                    audioWebAssemblyURL: 'https://unpkg.com/vmsg@0.4.0/vmsg.wasm',\n                    audioBufferSize: audio_buffer_size,\n                    audioSampleRate: audio_sample_rate,\n                    audioBitRate: audio_bitrate,\n                    audioWorkerURL: root_directory,\n                    audioChannels: audio_channels,\n                    convertEngine: 'ts-ebml',\n                    maxLength: max_length,\n                    frameWidth: frame_width,\n                    frameHeight: frame_height,\n                    displayMilliseconds: display_milliseconds,\n                    debug: false,\n                    pip: instance.data.pipEnabled,\n                    autoMuteDevice: auto_mute_device,\n                    timeSlice: instance.data.timeSlice\n                }\n            }\n        }\n        \n     // if just audio then add in the wavesurfer plugin\n        if (!enable_video && enable_audio) {\n            options.plugins.wavesurfer = {\n                backend: 'WebAudio',\n                waveColor: wave_color,\n                progressColor: 'black',\n                displayMilliseconds: true,\n                debug: false,\n                cursorWidth: 1,\n                hideScrollbar: true,\n                plugins: [\n                 // enable microphone plugin\n                    WaveSurfer.microphone.create({\n                        bufferSize: audio_buffer_size,\n                        numberOfInputChannels: 1,\n                        numberOfOutputChannels: 1,\n                        constraints: {\n                            video: false,\n                            audio: true\n                        }\n                    })\n                ]\n            }\n        }\n    }\n    \n // if image\n    if (enable_image) {\n        \n     // used in the finishRecord event within initialize\n        instance.data.snapshot = true;\n        \n        var options = {\n            controls: enable_controls,\n            controlBar: {\n                volumePanel: false,\n                fullscreenToggle: false\n            },\n         // dimensions of the player, also affects snapshot size\n            width: snapshot_width,\n            height: snapshot_height,\n            plugins: {\n                record: {\n                    debug: false,\n                    pip: instance.data.pipEnabled,\n                    imageOutputType: 'dataURL',\n                    imageOutputFormat: 'image/png',\n                    imageOutputQuality: 0.92,\n                    image: {\n                     // image media constraints: set resolution of camera\n                        width: {\n                            ideal: camera_resolution_width\n                        },\n                        height: {\n                            ideal: camera_resolution_height\n                        }\n                    },\n                    video: camera\n                }\n            }\n        };\n    }\n    \n // save options to instance variable\n    instance.data.recorderOptions = options;\n    \n // we need to run this update function before initialize which is what this variable is for\n    instance.data.updateHasRun = true;\n    \n // remove the device icon in the center\n    if (!show_device_icon) {\n        var existCondition1 = setInterval(function() {\n            if (document.getElementById(instance.data.recorderId).querySelector(\"[title='Device']\")) {\n                clearInterval(existCondition1);\n                var element = document.getElementById(instance.data.recorderId).querySelector(\"[title='Device']\");\n                element.classList.remove('vjs-device-button');\n                element.classList.remove('vjs-icon-audio-perm');\n                element.classList.remove('vjs-icon-av-perm');\n                document.getElementById('' + instance.data.recorderId + '_html5_api').style.objectFit = object_fit;\n            }\n        }, 100);\n    }\n    \n // zoom, rotate and flip\n    if (flip === 'left') {\n        flip = -1;\n        instance.data.flip = flip;\n    }\n    if (flip === 'right') {\n        flip = 1;\n        instance.data.flip = flip;\n    }\n    \n // these are used in the flip action\n    instance.data.rotate = rotate;\n    instance.data.zoom = zoom;\n    instance.data.flip = flip;\n    \n    var existCondition2 = setInterval(function() {\n        if (instance.data.videoRecorder) {\n            clearInterval(existCondition2);\n            instance.data.videoRecorder.zoomrotateflip({\"rotate\": \"\" + rotate + \"\", \"zoom\": \"\" + zoom + \"\", \"flip\": \"\" + flip + \"\", \"debug\": false});\n            document.getElementById('' + instance.data.recorderId + '_html5_api').style.objectFit = object_fit;\n        }\n    }, 100);\n    \n    \n    \n}"},"reset":{"fn":"function(instance, context) {\n\n\n\n}"}}}},"plugin_actions":{"APG":{"display":"VideoJS - Generate JSON Web Token","type":"server_side","return_value":{"API":{"caption":"token","name":"token","rank":0,"value":"text"},"APM":{"caption":"expiration","name":"expiration","rank":1,"value":"text"}},"fields":{"APH":{"caption":"Playback Id","name":"playback_id","rank":0,"editor":"DynamicValue","value":"text"},"APJ":{"caption":"URL Signing Key ID","name":"signing_key","rank":1,"editor":"DynamicValue","value":"text"},"APK":{"caption":"Base64-encoded Private Key","name":"private_key","rank":2,"editor":"DynamicValue","value":"text"},"APL":{"caption":"Expiration","name":"expiration","rank":3,"editor":"DynamicValue","value":"text","default_val":"1h"},"AkU":{"caption":"Token type","name":"token_type","rank":4,"editor":"Dropdown","default_val":"video"},"AoT":{"caption":"Playback restriction Id","name":"playback_restriction_id","rank":5,"editor":"DynamicValue","value":"text","optional":true}}},"AVC":{"display":"VideoJS - Get MUX Spritesheet","type":"server_side","return_value":{"AVE":{"caption":"spritesheet","name":"spritesheet","rank":0,"value":"text"},"AVF":{"caption":"tiles","name":"tiles","rank":1,"value":"number"},"AVG":{"caption":"width","name":"width","rank":2,"value":"number"},"AVH":{"caption":"height","name":"height","rank":3,"value":"number"},"AVR":{"caption":"interval","name":"interval","rank":4,"value":"number"}},"fields":{"AVJ":{"caption":"Playback ID","name":"playback_id","rank":0,"editor":"DynamicValue","value":"text"},"AkT":{"caption":"JSON web token (JWT)","name":"json_web_token","rank":1,"editor":"DynamicValue","value":"text","optional":true}}},"AWP":{"display":"VideoJS - Create New Assets","type":"server_side","fields":{"AWQ":{"caption":"URL's","name":"urls","rank":0,"editor":"DynamicValue","value":"file","is_list":true},"AWR":{"caption":"Authorization","name":"authorization","rank":1,"editor":"DynamicValue","value":"text"},"AWS":{"caption":"Passthrough","name":"passthrough","rank":3,"editor":"DynamicValue","value":"text","optional":true},"AWT":{"caption":"Playback policy","name":"playback_policy","rank":2,"editor":"Dropdown","default_val":"Public"}}},"AbU":{"display":"VideoJS - Create Live Stream (simulcast)","type":"server_side","return_value":{"AbV":{"caption":"stream key","name":"stream_key","rank":0,"value":"text"},"AbX":{"caption":"playback Id","name":"playback_id","rank":1,"value":"text"}},"fields":{"AbY":{"caption":"Playback policy","name":"playback_policy","rank":2,"editor":"DynamicValue","value":"text","default_val":"public"},"AbZ":{"caption":"This action creates the live streaming object in MUX with additional support for simulcasting (Restreaming/RTMP Passthrough). It supports up to 6 simulcasts per live stream. For further information, you can visit: https://docs.mux.com/api-reference/video#operation/create-live-stream","name":"info","rank":0,"editor":"Label"},"Aba":{"caption":"Audio only","name":"audio_only","rank":3,"editor":"DynamicValue","value":"boolean","default_val":false},"Abb":{"caption":"Simulcast URL","name":"simulcast_url_1","rank":5,"editor":"DynamicValue","value":"text","optional":true},"Abc":{"caption":"Simulcast key","name":"simulcast_key_1","rank":6,"editor":"DynamicValue","value":"text","optional":true},"Abd":{"caption":"Simulcast passthrough","name":"simulcast_passthrough_1","rank":7,"editor":"DynamicValue","value":"text","optional":true},"Abe":{"caption":"Simulcast URL","name":"simulcast_url_2","rank":9,"editor":"DynamicValue","value":"text","optional":true},"Abf":{"caption":"Simulcast key","name":"simulcast_key_2","rank":10,"editor":"DynamicValue","value":"text","optional":true},"Abg":{"caption":"Simulcast passthrough","name":"simulcast_passthrough_2","rank":11,"editor":"DynamicValue","value":"text","optional":true},"Abh":{"caption":"Simulcast URL","name":"simulcast_url_3","rank":13,"editor":"DynamicValue","value":"text","optional":true},"Abi":{"caption":"Simulcast key","name":"simulcast_key_3","rank":14,"editor":"DynamicValue","value":"text","optional":true},"Abj":{"caption":"Simulcast passthrough","name":"simulcast_passthrough_3","rank":15,"editor":"DynamicValue","value":"text","optional":true},"Abk":{"caption":"Simulcast URL","name":"simulcast_url_4","rank":17,"editor":"DynamicValue","value":"text","optional":true},"Abl":{"caption":"Simulcast key","name":"simulcast_key_4","rank":18,"editor":"DynamicValue","value":"text","optional":true},"Abm":{"caption":"Simulcast passthrough","name":"simulcast_passthrough_4","rank":19,"editor":"DynamicValue","value":"text","optional":true},"Abn":{"caption":"Simulcast URL","name":"simulcast_url_5","rank":21,"editor":"DynamicValue","value":"text","optional":true},"Abo":{"caption":"Simulcast key","name":"simulcast_key_5","rank":22,"editor":"DynamicValue","value":"text","optional":true},"Abp":{"caption":"Simulcast passthrough","name":"simulcast_passthrough_5","rank":23,"editor":"DynamicValue","value":"text","optional":true},"Abq":{"caption":"Simulcast URL","name":"simulcast_url_6","rank":25,"editor":"DynamicValue","value":"text","optional":true},"Abr":{"caption":"Simulcast key","name":"simulcast_key_6","rank":26,"editor":"DynamicValue","value":"text","optional":true},"Abs":{"caption":"Simulcast passthrough","name":"simulcast_passthrough_6","rank":27,"editor":"DynamicValue","value":"text","optional":true},"Abt":{"caption":"-----------------------------------------------------------------------------","name":"line","rank":4,"editor":"Label"},"Abu":{"caption":"-----------------------------------------------------------------------------","name":"line","rank":8,"editor":"Label"},"Abv":{"caption":"-----------------------------------------------------------------------------","name":"line","rank":12,"editor":"Label"},"Abw":{"caption":"-----------------------------------------------------------------------------","name":"line","rank":16,"editor":"Label"},"Abx":{"caption":"-----------------------------------------------------------------------------","name":"line","rank":24,"editor":"Label"},"Aby":{"caption":"Authorization","name":"authorization","rank":1,"editor":"DynamicValue","value":"text"},"Abz":{"caption":"-----------------------------------------------------------------------------","name":"line","rank":20,"editor":"Label"}}},"AcY":{"display":"VideoJS - Convert Audio","type":"server_side","return_value":{"Acc":{"caption":"converted file","name":"converted_file","rank":1,"value":"file"},"Acn":{"caption":"error","name":"error","rank":2,"value":"text"},"Adf":{"caption":"job id","name":"job_id","rank":0,"value":"text"}},"fields":{"AcZ":{"caption":"Media file","name":"media_file","rank":2,"editor":"DynamicValue","value":"file"},"Aca":{"caption":"Input format","name":"input_format","rank":4,"editor":"DynamicValue","value":"text","optional":true},"Acb":{"caption":"Output format","name":"output_format","rank":5,"editor":"DynamicValue","optional":true,"value":"text"},"Acf":{"caption":"Use this action to convert an audio file to another format. It will return a URL which you can then use Bubble's :saved to S3 option to save the file to your own storage area.","name":"info","rank":0,"editor":"Label"},"Acr":{"caption":"Wait","name":"wait","rank":6,"editor":"DynamicValue","value":"boolean","default_val":true},"Acs":{"caption":"Authorization key","name":"authorization","rank":1,"editor":"DynamicValue","value":"text","optional":true},"Ady":{"caption":"Auto detect","name":"auto_detect","rank":3,"editor":"DynamicValue","value":"boolean","default_val":false,"optional":false}}},"Acg":{"display":"VideoJS - Convert Video","type":"server_side","return_value":{"Aco":{"caption":"converted file","name":"converted_file","rank":1,"value":"file"},"Acp":{"caption":"error","name":"error","rank":2,"value":"text"},"Ade":{"caption":"job id","name":"job_id","rank":0,"value":"text"}},"fields":{"Ach":{"caption":"Use this action to convert a video file to another format. It will return a URL which you can then use Bubble's :saved to S3 option to save the file to your own storage area.","name":"info","rank":0,"editor":"Label"},"Aci":{"caption":"Media file","name":"media_file","rank":2,"editor":"DynamicValue","value":"file"},"Acj":{"caption":"Input format","name":"input_format","rank":4,"editor":"DynamicValue","value":"text","optional":true},"Ack":{"caption":"Output format","name":"output_format","rank":5,"editor":"DynamicValue","optional":true,"value":"text"},"Acq":{"caption":"Wait","name":"wait","rank":6,"editor":"DynamicValue","value":"boolean","default_val":true},"Act":{"caption":"Authorization key","name":"authorization","rank":1,"editor":"DynamicValue","value":"text","optional":true},"Adx":{"caption":"Auto detect","name":"auto_detect","rank":3,"editor":"DynamicValue","value":"boolean","default_val":false}}},"Acv":{"display":"VideoJS - Create Spritesheet","type":"server_side","return_value":{"Acz":{"caption":"spritesheet","name":"spritesheet","rank":1,"value":"image"},"AdA":{"caption":"error","name":"error","rank":6,"value":"text"},"AdN":{"caption":"tiles","name":"tiles","rank":2,"value":"number"},"AdQ":{"caption":"width","name":"width","rank":3,"value":"number"},"AdR":{"caption":"height","name":"height","rank":4,"value":"number"},"AdT":{"caption":"interval","name":"interval","rank":5,"value":"number"},"Add":{"caption":"job id","name":"job_id","rank":0,"value":"text"}},"fields":{"Acw":{"caption":"Use this action to generate a spritesheet that is used to display scrubber thumbnails. It will return a spritesheet image which you can use within the player option fields.","name":"info","rank":0,"editor":"Label"},"Acx":{"caption":"Authorization key","name":"authorization","rank":1,"editor":"DynamicValue","value":"text","optional":true},"Acy":{"caption":"Media file","name":"media_file","rank":2,"editor":"DynamicValue","value":"file"},"AdC":{"caption":"Wait","name":"wait","rank":7,"editor":"DynamicValue","value":"boolean","default_val":true},"AdF":{"caption":"Width","name":"width","rank":5,"editor":"DynamicValue","value":"number"},"AdG":{"caption":"Height","name":"height","rank":6,"editor":"DynamicValue","value":"number"},"AdI":{"caption":"Duration","name":"duration","rank":3,"editor":"DynamicValue","value":"number","optional":true},"AdP":{"caption":"Interval","name":"interval","rank":4,"editor":"DynamicValue","value":"number","default_val":10}}},"AdH":{"display":"VideoJS - Get Duration","type":"server_side","return_value":{"AdK":{"caption":"duration","name":"duration","rank":0,"value":"number"}},"fields":{"AdL":{"caption":"Media file","name":"media_file","rank":0,"editor":"DynamicValue","value":"file"}}},"AdU":{"display":"VideoJS - Burn Subtitles","type":"server_side","return_value":{"AdX":{"caption":"video file","name":"video_file","rank":1,"value":"file"},"AdY":{"caption":"ass file","name":"ass_file","rank":2,"value":"file"},"Adc":{"caption":"job id","name":"job_id","rank":0,"value":"text"},"Aok":{"caption":"error","name":"error","rank":3,"value":"text"}},"fields":{"AdV":{"caption":"Authorization key","name":"authorization","rank":1,"editor":"DynamicValue","value":"text","optional":true},"AdW":{"caption":"Media file","name":"media_file","rank":2,"editor":"DynamicValue","value":"file"},"AdZ":{"caption":"Subtitles file","name":"subtitles_file","rank":3,"editor":"DynamicValue","value":"file"},"Ada":{"caption":"Wait","name":"wait","rank":4,"editor":"DynamicValue","value":"boolean","default_val":true},"Adb":{"caption":"This action will output a new video file (defaults to MP4 format) that includes subtitles burnt into it. It will also output an ASS file. The subs are closed captions meaning they cannot be switched off.","name":"info","rank":0,"editor":"Label"}}},"AeW":{"display":"VideoJS - Extract Subtitles","type":"server_side","return_value":{"Aec":{"caption":"job id","name":"job_id","rank":0,"value":"text"},"Aed":{"caption":"subtitle file","name":"subtitle_file","rank":1,"value":"file"},"Aee":{"caption":"error","name":"error","rank":2,"value":"text"}},"fields":{"AeX":{"caption":"This action will extract various streams of subtitle tracks from a video file and output them as a WEBVTT file. You can then load these back into the player using the 'Load subtitles' action.","name":"info","rank":0,"editor":"Label"},"AeY":{"caption":"Authorization key","name":"authorization","rank":1,"editor":"DynamicValue","value":"text","optional":true},"AeZ":{"caption":"Video file","name":"video_file","rank":2,"editor":"DynamicValue","value":"file"},"Aea":{"caption":"Track","name":"track","rank":3,"editor":"DynamicValue","value":"number","default_val":0},"Aeb":{"caption":"Wait","name":"wait","rank":4,"editor":"DynamicValue","value":"boolean","default_val":true}}},"Aef":{"display":"VideoJS - Extract Audio","type":"server_side","return_value":{"Ael":{"caption":"job id","name":"job_id","rank":0,"value":"text"},"Aem":{"caption":"audio file","name":"audio_file","rank":1,"value":"file"},"Aen":{"caption":"error","name":"error","rank":2,"value":"text"}},"fields":{"Aeg":{"caption":"This action will extract various streams of audio tracks from a media file and output them as a mp3 file. You can then load these back into the player using the 'Load audio track' action.","name":"info","rank":0,"editor":"Label"},"Aeh":{"caption":"Authorization key","name":"authorization","rank":1,"editor":"DynamicValue","value":"text","optional":true},"Aei":{"caption":"Media file","name":"media_file","rank":2,"editor":"DynamicValue","value":"file"},"Aej":{"caption":"Track","name":"track","rank":3,"editor":"DynamicValue","value":"number","default_val":0},"Aek":{"caption":"Wait","name":"wait","rank":4,"editor":"DynamicValue","value":"boolean","default_val":true}}},"Agb":{"display":"VideoJS - Create Snapshot","type":"server_side","return_value":{"Agg":{"caption":"job id","name":"job_id","rank":0,"value":"text"},"Agh":{"caption":"snapshot","name":"snapshot","rank":1,"value":"image"},"Agi":{"caption":"error","name":"error","rank":2,"value":"text"}},"fields":{"Agc":{"caption":"This action will capture an image (screenshot/thumbnail) at a given time interval from a video file and return an image file. It will not work for HLS streams (m3u8 files).","name":"info","rank":0,"editor":"Label"},"Agd":{"caption":"Authorization key","name":"authorization","rank":1,"editor":"DynamicValue","value":"text","optional":true},"Age":{"caption":"Video file","name":"video_file","rank":2,"editor":"DynamicValue","value":"file"},"Agf":{"caption":"Formatted time","name":"formatted_time","rank":3,"editor":"DynamicValue","value":"text"},"Agj":{"caption":"Wait","name":"wait","rank":4,"editor":"DynamicValue","value":"boolean","default_val":true}}},"Ags":{"display":"VideoJS - PDF to Image","type":"server_side","return_value":{"Agy":{"caption":"job id","name":"job_id","rank":0,"value":"text"},"Agz":{"caption":"images","name":"images","rank":1,"value":"image","is_list":true},"AhA":{"caption":"error","name":"error","rank":2,"value":"text"}},"fields":{"Agt":{"caption":"This action will extract pages within a PDF file to images. Each page will be saved as a seperate image within a list of images.","name":"info","rank":0,"editor":"Label"},"Agu":{"caption":"Authorization key","name":"authorization","rank":1,"editor":"DynamicValue","value":"text"},"Agv":{"caption":"PDF file","name":"pdf_file","rank":2,"editor":"DynamicValue","value":"text"},"Agw":{"caption":"Output format","name":"output_format","rank":3,"editor":"DynamicValue","value":"text","default_val":"png"},"Agx":{"caption":"Wait","name":"wait","rank":4,"editor":"DynamicValue","value":"boolean","default_val":true}}},"Ajn":{"display":"VideoJS - Flip Video","type":"server_side","return_value":{"Ajs":{"caption":"job id","name":"job_id","rank":0,"value":"text"},"Ajt":{"caption":"video file","name":"video_file","rank":1,"value":"file"},"Aju":{"caption":"error","name":"error","rank":2,"value":"text"}},"fields":{"Ajo":{"caption":"This action will flip a video horizontally and return an mp4 file.","name":"info","rank":0,"editor":"Label"},"Ajp":{"caption":"Authorization key","name":"authorization","rank":1,"editor":"DynamicValue","value":"text","optional":true},"Ajq":{"caption":"Video file","name":"video_file","rank":2,"editor":"DynamicValue","value":"file"},"Ajr":{"caption":"Wait","name":"wait","rank":3,"editor":"DynamicValue","value":"boolean","default_val":true}}},"AkE":{"display":"VideoJS - Extract EXIF","type":"server_side","return_value":{"Ajs":{"caption":"job id","name":"job_id","rank":0,"value":"text"},"Ajt":{"caption":"exif data","name":"exif_data","rank":1,"value":"text"},"Aju":{"caption":"error","name":"error","rank":2,"value":"text"}},"fields":{"AkA":{"caption":"This action will attempt to extract the exif/metadata from a video file. If you wait for the process to run by setting the 'Wait' option to Yes, the JSON data will be returned in the 'exif data' field, otherwise you can capture the results in a backend workflow.","name":"info","rank":0,"editor":"Label"},"AkB":{"caption":"Authorization key","name":"authorization","rank":1,"editor":"DynamicValue","value":"text","optional":true},"AkC":{"caption":"Video file","name":"video_file","rank":2,"editor":"DynamicValue","value":"file"},"AkD":{"caption":"Wait","name":"wait","rank":3,"editor":"DynamicValue","value":"boolean","default_val":true}}},"Ale":{"display":"VideoJS - Custom FFMPEG","type":"server_side","return_value":{"All":{"caption":"job id","name":"job_id","rank":0,"value":"text"},"Alm":{"caption":"files","name":"files","rank":1,"value":"file","is_list":true},"Aln":{"caption":"error","name":"error","rank":2,"value":"text"}},"fields":{"Alf":{"caption":"This action allows you to run a custom FFMPEG command against a media file you upload.","name":"info","rank":0,"editor":"Label"},"Alg":{"caption":"Authorization key","name":"authorization","rank":1,"editor":"DynamicValue","value":"text","optional":true},"Alh":{"caption":"Media file 1","name":"media_file_1","rank":2,"editor":"DynamicValue","value":"file"},"Ali":{"caption":"Wait","name":"wait","rank":5,"editor":"DynamicValue","value":"boolean","default_val":true},"Alj":{"caption":"FFMPEG command","name":"ffmpeg_command","rank":4,"editor":"DynamicValue","value":"text","default_val":"-vf scale=1920:1080 -preset slow -crf 18 /output/myVideo.mp4"},"ApZ":{"caption":"Media file 2","name":"media_file_2","rank":3,"editor":"DynamicValue","value":"file","optional":true}}},"Aom":{"display":"VideoJS - Generate ASS File","type":"server_side","return_value":{"Aor":{"caption":"job id","name":"job_id","rank":0,"value":"text"},"Aos":{"caption":"ass file","name":"ass_file","rank":1,"value":"file"},"Aot":{"caption":"error","name":"error","rank":2,"value":"text"}},"fields":{"Aon":{"caption":"This action is designed ","name":"info","rank":0,"editor":"Label"},"Aoo":{"caption":"Authorization key","name":"authorization","rank":1,"editor":"DynamicValue","value":"text","optional":true},"Aop":{"caption":"Subtitles file","name":"subtitles_file","rank":2,"editor":"DynamicValue","value":"file"},"Aoq":{"caption":"Wait","name":"wait","rank":3,"editor":"DynamicValue","value":"boolean","default_val":true}}}}};
window._bubble_page_load_data.plugins_size['1608469100580x213930232373051400'] = 677540;
window.preloaded['plugin/third_party:1608469100580x213930232373051400:1.286.0'] = true;
window.plugins["1631381229197x329933070800257000"] = {"human":"Performance Timing (service worker)","dependencies":{"use_jquery":true,"plugin_api_version":"3"},"plugin_api":{"human":"Performance","calls":{"AAG":{"name":"Navigation Timing","method":"get","publish_as":"data","url":"","should_reinitialize":false,"initialized":true,"types":"{\"plugin_api.AAG\":{\"caption\":\"Navigation Timing\",\"fields\":{\"_p_name\":{\"ret_value\":\"text\",\"caption\":\"name\",\"sample_value\":\"https://paul-testing-4.bubbleapps.io/version-test/performance?debug_mode=true\"},\"_p_domainName\":{\"ret_value\":\"text\",\"caption\":\"domainName\",\"sample_value\":\"paul-testing-4.bubbleapps.io\"},\"_p_entryType\":{\"ret_value\":\"text\",\"caption\":\"entryType\",\"sample_value\":\"navigation\"},\"_p_startTime\":{\"ret_value\":\"number\",\"caption\":\"startTime\",\"sample_value\":\"\"},\"_p_duration\":{\"ret_value\":\"number\",\"caption\":\"duration\",\"sample_value\":16276.399999856949},\"_p_initiatorType\":{\"ret_value\":\"text\",\"caption\":\"initiatorType\",\"sample_value\":\"navigation\"},\"_p_nextHopProtocol\":{\"ret_value\":\"text\",\"caption\":\"nextHopProtocol\",\"sample_value\":\"h2\"},\"_p_workerStart\":{\"ret_value\":\"number\",\"caption\":\"workerStart\",\"sample_value\":\"\"},\"_p_redirectStart\":{\"ret_value\":\"number\",\"caption\":\"redirectStart\",\"sample_value\":\"\"},\"_p_redirectEnd\":{\"ret_value\":\"number\",\"caption\":\"redirectEnd\",\"sample_value\":\"\"},\"_p_fetchStart\":{\"ret_value\":\"number\",\"caption\":\"fetchStart\",\"sample_value\":1092.8999998569489},\"_p_domainLookupStart\":{\"ret_value\":\"number\",\"caption\":\"domainLookupStart\",\"sample_value\":1092.8999998569489},\"_p_domainLookupEnd\":{\"ret_value\":\"number\",\"caption\":\"domainLookupEnd\",\"sample_value\":1092.8999998569489},\"_p_connectStart\":{\"ret_value\":\"number\",\"caption\":\"connectStart\",\"sample_value\":1092.8999998569489},\"_p_connectEnd\":{\"ret_value\":\"number\",\"caption\":\"connectEnd\",\"sample_value\":1092.8999998569489},\"_p_secureConnectionStart\":{\"ret_value\":\"number\",\"caption\":\"secureConnectionStart\",\"sample_value\":1092.8999998569489},\"_p_requestStart\":{\"ret_value\":\"number\",\"caption\":\"requestStart\",\"sample_value\":1095.5},\"_p_responseStart\":{\"ret_value\":\"number\",\"caption\":\"responseStart\",\"sample_value\":7499.700000047684},\"_p_responseEnd\":{\"ret_value\":\"number\",\"caption\":\"responseEnd\",\"sample_value\":7546},\"_p_transferSize\":{\"ret_value\":\"number\",\"caption\":\"transferSize\",\"sample_value\":3786},\"_p_encodedBodySize\":{\"ret_value\":\"number\",\"caption\":\"encodedBodySize\",\"sample_value\":3486},\"_p_decodedBodySize\":{\"ret_value\":\"number\",\"caption\":\"decodedBodySize\",\"sample_value\":11406},\"_p_unloadEventStart\":{\"ret_value\":\"number\",\"caption\":\"unloadEventStart\",\"sample_value\":\"\"},\"_p_unloadEventEnd\":{\"ret_value\":\"number\",\"caption\":\"unloadEventEnd\",\"sample_value\":\"\"},\"_p_domInteractive\":{\"ret_value\":\"number\",\"caption\":\"domInteractive\",\"sample_value\":16160.099999904633},\"_p_domContentLoadedEventStart\":{\"ret_value\":\"number\",\"caption\":\"domContentLoadedEventStart\",\"sample_value\":16176.799999952316},\"_p_domContentLoadedEventEnd\":{\"ret_value\":\"number\",\"caption\":\"domContentLoadedEventEnd\",\"sample_value\":16177.200000047684},\"_p_domComplete\":{\"ret_value\":\"number\",\"caption\":\"domComplete\",\"sample_value\":16276.399999856949},\"_p_loadEventStart\":{\"ret_value\":\"number\",\"caption\":\"loadEventStart\",\"sample_value\":16276.399999856949},\"_p_loadEventEnd\":{\"ret_value\":\"number\",\"caption\":\"loadEventEnd\",\"sample_value\":16276.399999856949},\"_p_type\":{\"ret_value\":\"text\",\"caption\":\"type\",\"sample_value\":\"navigate\"},\"_p_redirectCount\":{\"ret_value\":\"number\",\"caption\":\"redirectCount\",\"sample_value\":\"\"}}}}","ret_value":"api.1631381229197x329933070800257000.plugin_api.AAG"},"AAI":{"name":"Resource Timing","method":"get","publish_as":"data","should_reinitialize":true,"initialized":true,"types":"{\"plugin_api.AAI\":{\"caption\":\"Resource Timing\",\"fields\":{\"_p_name\":{\"ret_value\":\"text\",\"caption\":\"name\",\"sample_value\":\"https://dhtiece9044ep.cloudfront.net/package/early_js/dd268d133928160ce0477aa496e40e77dc989e7bf0f4dba4f88bcf7132d53b15/xfalse\"},\"_p_domainName\":{\"ret_value\":\"text\",\"caption\":\"domainName\",\"sample_value\":\"dhtiece9044ep.cloudfront.net\"},\"_p_entryType\":{\"ret_value\":\"text\",\"caption\":\"entryType\",\"sample_value\":\"resource\"},\"_p_startTime\":{\"ret_value\":\"number\",\"caption\":\"startTime\",\"sample_value\":8944.900000095367},\"_p_duration\":{\"ret_value\":\"number\",\"caption\":\"duration\",\"sample_value\":\"\"},\"_p_initiatorType\":{\"ret_value\":\"text\",\"caption\":\"initiatorType\",\"sample_value\":\"script\"},\"_p_nextHopProtocol\":{\"ret_value\":\"text\",\"caption\":\"nextHopProtocol\",\"sample_value\":\"\"},\"_p_workerStart\":{\"ret_value\":\"number\",\"caption\":\"workerStart\",\"sample_value\":\"\"},\"_p_redirectStart\":{\"ret_value\":\"number\",\"caption\":\"redirectStart\",\"sample_value\":\"\"},\"_p_redirectEnd\":{\"ret_value\":\"number\",\"caption\":\"redirectEnd\",\"sample_value\":\"\"},\"_p_fetchStart\":{\"ret_value\":\"number\",\"caption\":\"fetchStart\",\"sample_value\":8944.900000095367},\"_p_domainLookupStart\":{\"ret_value\":\"number\",\"caption\":\"domainLookupStart\",\"sample_value\":8944.900000095367},\"_p_domainLookupEnd\":{\"ret_value\":\"number\",\"caption\":\"domainLookupEnd\",\"sample_value\":8944.900000095367},\"_p_connectStart\":{\"ret_value\":\"number\",\"caption\":\"connectStart\",\"sample_value\":8944.900000095367},\"_p_connectEnd\":{\"ret_value\":\"number\",\"caption\":\"connectEnd\",\"sample_value\":8944.900000095367},\"_p_secureConnectionStart\":{\"ret_value\":\"number\",\"caption\":\"secureConnectionStart\",\"sample_value\":8944.900000095367},\"_p_requestStart\":{\"ret_value\":\"number\",\"caption\":\"requestStart\",\"sample_value\":\"\"},\"_p_responseStart\":{\"ret_value\":\"number\",\"caption\":\"responseStart\",\"sample_value\":\"\"},\"_p_responseEnd\":{\"ret_value\":\"number\",\"caption\":\"responseEnd\",\"sample_value\":8944.900000095367},\"_p_transferSize\":{\"ret_value\":\"number\",\"caption\":\"transferSize\",\"sample_value\":\"\"},\"_p_encodedBodySize\":{\"ret_value\":\"number\",\"caption\":\"encodedBodySize\",\"sample_value\":8711},\"_p_decodedBodySize\":{\"ret_value\":\"number\",\"caption\":\"decodedBodySize\",\"sample_value\":23811}}}}","ret_value":"api.1631381229197x329933070800257000.plugin_api.AAI"}}},"plugin_elements":{"AAC":{"display":"Performance","property_applications":{"resizable":true,"Background":false,"Border":false,"MinWidth":true,"Padding":false,"BoxShadow":false},"add_is_visible":true,"fields":{"AAE":{"caption":"Navigation Timing","name":"navigation_timing","rank":1,"editor":"custom_type","optional":true},"AAJ":{"caption":"Resource Timing","name":"resource_timing","rank":2,"editor":"custom_type","optional":true},"ABB":{"caption":"Select the correct options from each dropdown list.","name":"info","rank":0,"editor":"Label"},"ABN":{"caption":"Service worker","name":"service_worker","rank":3,"editor":"Checkbox","default_val":false},"ABP":{"caption":"Service worker only","name":"service_worker_only","rank":4,"editor":"DynamicValue","value":"boolean","default_val":false},"ABR":{"caption":"Debug mode","name":"debug_mode","rank":5,"editor":"DynamicValue","value":"boolean","default_val":false}},"states":{"AAD":{"caption":"Navigation timing","name":"navigation_timing","value":"custom_data_AAE","initialization_code":{"fn":"function(properties, context) {\n\n\n\n}"},"is_list":false},"AAK":{"caption":"Resource timing","name":"resource_timing","value":"custom_data_AAJ","initialization_code":{"fn":"function(properties, context) {\n\n\n\n}"},"is_list":true},"AAT":{"caption":"Is loading","name":"is_loading","value":"boolean","initialization_code":{"fn":"function(properties, context) {\n\n\n\n}"}},"AAU":{"caption":"Mark duration","name":"mark_duration","value":"number","initialization_code":{"fn":"function(properties, context) {\n\n\n\n}"}},"AAV":{"caption":"Mark average","name":"mark_average","value":"number","initialization_code":{"fn":"function(properties, context) {\n\n\n\n}"}},"AAc":{"caption":"Converted time","name":"converted_time","value":"date","initialization_code":{"fn":"function(properties, context) {\n\n\n\n}"}},"AAg":{"caption":"First contentful paint","name":"first_contentful_paint","value":"number","initialization_code":{"fn":"function(properties, context) {\n\n\n\n}"}},"AAh":{"caption":"Page load time","name":"page_load_time","value":"number","initialization_code":{"fn":"function(properties, context) {\n\n\n\n}"}},"AAi":{"caption":"Page render time","name":"page_render_time","value":"number","initialization_code":{"fn":"function(properties, context) {\n\n\n\n}"}},"AAj":{"caption":"Network latency","name":"network_latency","value":"number","initialization_code":{"fn":"function(properties, context) {\n\n\n\n}"}},"AAk":{"caption":"Navigation type","name":"navigation_type","value":"text","initialization_code":{"fn":"function(properties, context) {\n\n\n\n}"}},"AAo":{"caption":"Page download time","name":"page_download_time","value":"number","initialization_code":{"fn":"function(properties, context) {\n\n\n\n}"}},"AAp":{"caption":"Request time","name":"request_time","value":"number","initialization_code":{"fn":"function(properties, context) {\n\n\n\n}"}},"AAq":{"caption":"Domain lookup time","name":"domain_lookup_time","value":"number","initialization_code":{"fn":"function(properties, context) {\n\n\n\n}"}},"AAt":{"caption":"HTTP header size","name":"http_header_size","value":"number","initialization_code":{"fn":"function(properties, context) {\n\n\n\n}"}},"AAu":{"caption":"Server connection time","name":"server_connection_time","value":"number","initialization_code":{"fn":"function(properties, context) {\n\n\n\n}"}},"AAv":{"caption":"Time to first byte","name":"time_to_first_byte","value":"number","initialization_code":{"fn":"function(properties, context) {\n\n\n\n}"}},"AAw":{"caption":"Cumulative layout shift score","name":"cumulative_layout_shift_score","value":"number","initialization_code":{"fn":"function(properties, context) {\n\n\n\n}"}},"AAx":{"caption":"First input delay","name":"first_input_delay","value":"number","initialization_code":{"fn":"function(properties, context) {\n\n\n\n}"}},"AAy":{"caption":"Largest contentful paint","name":"largest_contentful_paint","value":"number","initialization_code":{"fn":"function(properties, context) {\n\n\n\n}"}}},"events":{"AAY":{"caption":"start mark has been set","name":"start_mark"},"AAZ":{"caption":"end mark has been set","name":"end_mark"}},"actions":{"AAO":{"caption":"Start mark","code":{"fn":"function(instance, properties, context) {\n    \n // reset duration state\n    instance.publishState(\"mark_duration\", null);\n    \n // create mark\n    performance.mark(\"start_mark\");\n    instance.triggerEvent(\"start_mark\");\n    \n // has run\n    instance.data.start_mark_has_run = true;\n    \n}"}},"AAQ":{"caption":"End mark","code":{"fn":"function(instance, properties, context) {\n    \n    async function createMark() {\n        \n     // create mark and measure only when start mark has been run\n        if (instance.data.start_mark_has_run) {\n            \n         // create end mark\n            performance.mark(\"end_mark\");\n            \n         // create measure\n            performance.measure(\"bubble_measure\", \"start_mark\", \"end_mark\");\n            \n         // update state with the duration between the 2 markers and calculate average\n            var measures = performance.getEntriesByType(\"measure\");\n            \n            for (let key in measures) {\n                \n                if (measures[key].measure = \"bubble_measure\") {\n                    \n                 // update state\n                    instance.publishState(\"mark_duration\", measures[key].duration);\n                    \n                 // calculate average and update states\n                    instance.data.durations.push(measures[key].duration);\n                    var sum = instance.data.durations.reduce((a, b) => a + b, 0);\n                    var average = (sum / instance.data.durations.length) || 0;\n                    instance.publishState(\"mark_average\", average);\n                    instance.triggerEvent(\"end_mark\");\n                    \n                }\n                \n            }\n            \n         // reset 'start_mark_has_run variable' and performace entries\n            instance.data.start_mark_has_run = null;\n            performance.clearMarks();\n            performance.clearMeasures();\n            \n        } else {\n            \n            alert(\"You must run the Start mark action before running this\");\n            console.log(\"You must run the Start mark action before running this\");\n            \n        }\n        \n    };\n    \n    createMark();\n    \n}"}},"AAa":{"caption":"Convert time to date","code":{"fn":"function(instance, properties, context) {\n    \n // get data\n    var time = properties.time;\n    var toDate;\n    \n // convert timestamp\n    if (time) {\n        \n     // is epoch\n        if (new Date(time).getTime() == time) {\n            toDate = new Date(time);\n            \n     // is high resolution\n        } else {\n            toDate = new Date(performance.timing.navigationStart + time);\n        }\n        \n        instance.publishState(\"converted_time\", toDate);\n    }\n    \n}"},"fields":{"AAb":{"caption":"Time","name":"time","rank":0,"editor":"DynamicValue","value":"number"}}}},"code":{"preview":{"fn":"function(instance, properties) {\n    \n    let box = $(`<div></div>`);\n\n    instance.canvas.append(box);\n    box.css(\"height\", properties.bubble.height)\n    box.css(\"width\", properties.bubble.width)\n    box.css(\"background-repeat\", \"no-repeat\")\n    box.css(\"background-position\", \"center\")\n    box.css(\"background-size\", \"cover\")\n    box.css(\"border-radius\", \"5px\")\n    box.css(\"background-image\", \"url(//01246d7e30dd8ee862a8dba3b426a683.cdn.bubble.io/f1633248831722x616031362564393900/logo-preview.png)\")\n    \n}"},"initialize":{"fn":"function(instance, context) {\n    \n // set some base values\n    instance.publishState(\"is_loading\", true);\n    instance.data.runOnce = false;\n    \n // declare duration variable which holds an array of all mark durations, used in the 'end mark' action\n    instance.data.durations = [];\n    \n // install service worker\n    instance.data.installServiceWorker = function installServiceWorker(fileUrl) {\n        \n     // check if file exists\n        function serviceWorkerExist(fileUrl) {\n            var xhr = new XMLHttpRequest();\n            xhr.open('HEAD', fileUrl, false);\n            xhr.send();\n            \n            if (xhr.status === 404) {\n                return false;\n            } else {\n                return true;\n            }\n        }\n        \n     // check if service workers are supported\n        if ('serviceWorker' in navigator) {\n            \n         // check if service-worker.js file is available\n            if (serviceWorkerExist(fileUrl)) {\n                \n             // register service worker on load\n                window.addEventListener('load', () => {\n                    \n                    navigator.serviceWorker.register('./service-worker.js').then((registration) => {\n                        if (instance.data.debug_mode) {\n                            console.log('service worker registration succeeded', registration);\n                        }\n                    }, (error) => {\n                        if (instance.data.debug_mode) {\n                            console.error(`service worker registration failed: ${error}`);\n                        }\n                    });\n                    \n                });\n                \n         // no service worker file available\n            } else {\n                if (instance.data.debug_mode) {\n                    console.log(\"the performance timing plugin can utilise a service worker to improve your sites performance, reach out to pork1977gm on the forum to get the file\")\n                }\n            }\n            \n     // unsupported\n        } else {\n            if (instance.data.debug_mode) {\n                console.log(\"service workers are not supported in this browser\");\n            }\n        }\n        \n    }\n    \n // global function to convert json to bubble object\n    instance.data.jsonToBubbleObject = function jsonToBubbleObject(obj, param_prefix) {\n        \n        obj = JSON.parse(obj);\n        \n     // add the name key and value if it doesn't already exist in the object, which it won't when dealing with the level 1 spec of navigation timing\n        if (!(\"name\" in obj)) {\n            obj.name = window.location.href;\n        }\n        \n     // add domainName key\n        for (let keyName in obj) {\n            if (keyName === 'name') {\n                \n             // extract the domain name\n                var domainName = obj[keyName].match(/(http:\\/\\/|https:\\/\\/|www\\.|\\/\\/)(.[^\\/]+)/)[2];\n                \n             // add new key to the object\n                obj.domainName = domainName;\n            }\n        }\n        \n        if (typeof param_prefix !== 'string' || !param_prefix || (typeof param_prefix === 'string' && !['_p_', '_api_c2_'].includes(param_prefix))) param_prefix = '_p_';\n        \n        const convert = (obj, key_parent, is_array) => {\n            \n            let result = {};\n            \n            Object.keys(obj).forEach(key => {\n                \n                var cell = obj[key]\n                var key_new = `${param_prefix}${key}`;\n                \n                if (key_parent && !is_array) {\n                    key_new = `${key_parent}.${key}`;\n                }\n                \n                if ((!cell && cell !== 0 && cell !== false) || typeof cell === 'undefined') {\n                    \n                    result[key_new] = null\n                    \n                } else if (typeof cell !== 'object' && !Array.isArray(cell)) {\n                    \n                    result[key_new] = cell\n                    \n                } else if (typeof cell === 'object' && !Array.isArray(cell)) {\n                    \n                    result = Object.assign(result, convert(cell, key_new))\n                    \n                } else if (Array.isArray(cell)) {\n                    \n                    if (typeof cell[0] === 'object') {\n                        \n                        result[key_new] = [];\n                        cell.forEach(value => {\n                            result[key_new].push(convert(value, key_new, true))\n                        })\n                        \n                    } else {\n                        \n                     // it's not an object array, so treat it as an array of bubble primitives\n                        result[key_new] = cell;\n                    }\n                }\n            });\n            \n            return result\n        };\n        \n        return convert(obj)\n    };\n    \n}"},"update":{"fn":"function(instance, properties, context) {\n    \n // get data\n    var service_worker = properties.service_worker;\n    var service_worker_only = properties.service_worker_only;\n    \n // global variables\n    instance.data.debug_mode = properties.debug_mode;\n    \n // get performance data\n    function performanceTiming() {\n        \n     // declare arrays for list states\n        var resourceList = [];\n        \n     // function to get performance entries and add any new ones in the process\n        function getPerformanceEntries(type, list) {\n            \n         // multiple objects\n            if (list) {\n                var data = performance.getEntriesByType(type);\n                \n         // single object\n            } else {\n                if (performance.getEntriesByType(type).length > 0) {\n                    var data = JSON.stringify(performance.getEntriesByType(type)[0]);\n                } else {\n                    var data = JSON.stringify(performance.timing);\n                }\n            }\n            return data;\n        }\n        \n     // get navigation timing entries, returns an array with single object\n        var navigation = getPerformanceEntries(\"navigation\", false);\n        \n     // get resource timing entries, returns an array with multiple objects\n        var resource = getPerformanceEntries(\"resource\", true);\n        \n     // for each object in the resource array, convert it to a bubble object\n        Object.keys(resource).forEach(function(key) {\n            var bubbleObj1 = instance.data.jsonToBubbleObject(JSON.stringify(resource[key]));\n            resourceList.push(bubbleObj1);\n        });\n        \n     // publish main performance states\n        instance.publishState(\"navigation_timing\", instance.data.jsonToBubbleObject(navigation));\n        instance.publishState(\"resource_timing\", resourceList);\n        \n     // first contentful paint\n        var firstContentfulPaint = performance.getEntriesByName(\"first-contentful-paint\")[0].startTime;\n        instance.publishState(\"first_contentful_paint\", firstContentfulPaint);\n        \n     // page load time\n        var pageLoad;\n        var loadEventEnd;\n        var navigationStart;\n        \n        if (performance.getEntriesByType(\"navigation\").length > 0) {\n            pageLoad = performance.getEntriesByType(\"navigation\")[0].duration;\n        } else {\n            loadEventEnd = performance.timing.loadEventEnd;\n            navigationStart = performance.timing.navigationStart;\n            pageLoad = loadEventEnd - navigationStart;\n        }\n        \n        instance.publishState(\"page_load_time\", pageLoad);\n        \n     // page render time (dom processing)\n        var pageRender;\n        var domComplete;\n        var domLoading;\n        \n        if (performance.getEntriesByType(\"navigation\").length > 0) {\n            domComplete = performance.getEntriesByType(\"navigation\")[0].domComplete;\n            domLoading = performance.now();\n        } else {\n            domComplete = performance.timing.domComplete;\n            domLoading = performance.timing.domLoading;\n        }\n        \n        pageRender = domComplete - domLoading;\n        instance.publishState(\"page_render_time\", pageRender);\n        \n     // network latency\n        var networkLatency;\n        var responseStart;\n        var fetchStart;\n        \n        if (performance.getEntriesByType(\"navigation\").length > 0) {\n            responseStart = performance.getEntriesByType(\"navigation\")[0].responseStart;\n            fetchStart = performance.getEntriesByType(\"navigation\")[0].fetchStart;\n        } else {\n            responseStart = performance.timing.responseStart;\n            fetchStart = performance.timing.fetchStart;\n        }\n        \n        networkLatency = responseStart - fetchStart;\n        instance.publishState(\"network_latency\", networkLatency);\n        \n     // navigation type\n        var navigationType;\n        var type;\n        \n        if (performance.getEntriesByType(\"navigation\").length > 0) {\n            type = performance.getEntriesByType(\"navigation\")[0].type;\n            navigationType = type;\n        } else {\n            type = performance.navigation.type;\n            if (type == 0) {\n                navigationType = \"navigate\";\n            } else if (type == 1) {\n                navigationType = \"reload\";\n            } else if (type == 2) {\n                navigationType = \"back_forward\";\n            } else {\n                navigationType = \"prerender\";\n            }\n        }\n        \n        instance.publishState(\"navigation_type\", navigationType);\n        \n     // page download time\n        var pageDownloadTime\n        var responseStart;\n        var responseEnd;\n        \n        if (performance.getEntriesByType(\"navigation\").length > 0) {\n            responseStart = performance.getEntriesByType(\"navigation\")[0].responseStart;\n            responseEnd = performance.getEntriesByType(\"navigation\")[0].responseEnd;\n        } else {\n            responseStart = performance.timing.responseStart;\n            responseEnd = performance.timing.responseEnd;\n        }\n        \n        pageDownloadTime = responseEnd - responseStart;\n        instance.publishState(\"page_download_time\", pageDownloadTime);\n        \n     // request time\n        var requestTime;\n        var responseStart;\n        var requestStart;\n        \n        if (performance.getEntriesByType(\"navigation\").length > 0) {\n            responseStart = performance.getEntriesByType(\"navigation\")[0].responseStart;\n            requestStart = performance.getEntriesByType(\"navigation\")[0].requestStart;\n        } else {\n            responseStart = performance.timing.responseStart;\n            requestStart = performance.timing.requestStart;\n        }\n        \n        requestTime = responseStart - requestStart;\n        instance.publishState(\"request_time\", requestTime);\n        \n     // domain lookup time\n        var domainLookupTime;\n        var domainLookupEnd;\n        var domainLookupStart;\n        \n        if (performance.getEntriesByType(\"navigation\").length > 0) {\n            domainLookupEnd = performance.getEntriesByType(\"navigation\")[0].domainLookupEnd;\n            domainLookupStart = performance.getEntriesByType(\"navigation\")[0].domainLookupStart;\n        } else {\n            domainLookupEnd = performance.timing.domainLookupEnd;\n            domainLookupStart = performance.timing.domainLookupStart;\n        }\n        \n        domainLookupTime = domainLookupEnd - domainLookupStart;\n        instance.publishState(\"domain_lookup_time\", domainLookupTime);\n        \n     // http header size\n        var httpHeaderSize;\n        var transferSize;\n        var encodedBodySize;\n        \n        if (performance.getEntriesByType(\"navigation\").length > 0) {\n            transferSize = performance.getEntriesByType(\"navigation\")[0].transferSize;\n            encodedBodySize = performance.getEntriesByType(\"navigation\")[0].encodedBodySize;\n        } else {\n         // unsupported in level 1\n            transferSize = 0;\n            encodedBodySize = 0;\n        }\n        \n        httpHeaderSize = transferSize - encodedBodySize;\n        instance.publishState(\"http_header_size\", httpHeaderSize);\n        \n     // server connection time\n        var serverConnectionTime;\n        var connectEnd;\n        var connectStart;\n        \n        if (performance.getEntriesByType(\"navigation\").length > 0) {\n            if (performance.getEntriesByType(\"navigation\")[0].secureConnectionStart > 0) {\n                connectStart = performance.getEntriesByType(\"navigation\")[0].secureConnectionStart;\n            } else {\n                connectStart = performance.getEntriesByType(\"navigation\")[0].connectStart;\n            }\n            connectEnd = performance.getEntriesByType(\"navigation\")[0].connectEnd;\n        } else {\n            if (performance.timing.secureConnectionStart > 0) {\n                connectStart = performance.timing.secureConnectionStart;\n            } else {\n                connectStart = performance.timing.connectStart;\n            }\n            connectEnd = performance.timing.connectEnd;\n        }\n        \n        serverConnectionTime = connectEnd - connectStart;\n        instance.publishState(\"server_connection_time\", serverConnectionTime);\n        \n     // time to first byte\n        var timeFirstByte;\n        var responseStart;\n        var navigationStart;\n        \n        if (performance.getEntriesByType(\"navigation\").length > 0) {\n            responseStart = performance.timing.responseStart; // this line may need to change\n            navigationStart = performance.timeOrigin;\n        } else {\n            responseStart = performance.timing.responseStart;\n            navigationStart = performance.timing.navigationStart;\n        }\n        \n        timeFirstByte = responseStart - navigationStart;\n        instance.publishState(\"time_to_first_byte\", timeFirstByte);\n        \n     // loading state\n        instance.publishState(\"is_loading\", false);\n        \n    }\n    \n // when thinngs are ready\n    function check() {\n        \n        if (!service_worker_only) {\n            \n            var navigation = performance.getEntriesByType(\"navigation\")[0] || performance.timing;\n            var paint = performance.getEntriesByName(\"first-contentful-paint\")[0];\n            \n            try {\n                if (((navigation.loadEventEnd > 0 && paint.startTime > 0) || (navigation.loadEventEnd > 0 && paint.startTime > 0 && navigation.domComplete > 0) ) && ( performance.timeOrigin || performance.timing.navigationStart)) {        \n                    performanceTiming();\n                } else {\n                    if (instance.data.debug_mode) {\n                        console.log(\"waiting on performance metrics\");\n                    }\n                    setTimeout(check, 200);\n                }\n            } catch(err) {\n                setTimeout(check, 200);\n            }\n            \n        }\n        \n    }\n    \n // install service worker\n    if (!instance.data.runOnce) {\n        \n        if (service_worker) {\n            \n            var url = window.location.href;\n            var protocol = url.match(/(http:\\/\\/|https:\\/\\/|www\\.|\\/\\/)(.[^\\/]+)/)[1];\n            var domainName = url.match(/(http:\\/\\/|https:\\/\\/|www\\.|\\/\\/)(.[^\\/]+)/)[2];\n            var fileUrl = \"\" + protocol + \"\" + domainName + \"/service-worker.js\";\n            \n            if (instance.data.debug_mode) {\n                console.log(\"using service worker at \" + fileUrl);\n            }\n            instance.data.installServiceWorker(fileUrl);\n            \n        } else {\n            if (instance.data.debug_mode) {\n                console.log(\"service worker disabled\");\n            }\n        }\n        \n        if (!service_worker_only) {\n            \n         // function to handle the web vitals metrics\n            function handleMetrics(metric) {\n                if (metric.name === \"FID\") {\n                    instance.publishState(\"first_input_delay\", metric.value)\n                }\n                if (metric.name === \"LCP\") {\n                    instance.publishState(\"largest_contentful_paint\", metric.value)\n                }\n                if (metric.name === \"CLS\") {\n                    instance.publishState(\"cumulative_layout_shift_score\", metric.value)\n                }\n            }\n            \n         // load the web vitals package\n            var script = document.createElement('script');\n            script.src = '//meta.cdn.bubble.io/f1676895934902x213173801079020960/web-vitals.iife.js.js';\n            \n            script.onload = function() {\n                webVitals.getCLS(handleMetrics);\n                webVitals.getFID(handleMetrics);\n                webVitals.getLCP(handleMetrics);\n                \n                // webVitals.getTTFB(console.log);\n                // webVitals.getFCP(console.log);\n                \n                if (instance.data.debug_mode) {\n                    console.log(\"web vitals have loaded\");\n                }\n            }\n            document.head.appendChild(script);\n            \n        }\n        \n        instance.data.runOnce = true;\n    }\n    \n // run check\n    setTimeout(function() {\n        check();\n    }, 500);\n    \n}"},"reset":{"fn":"function(instance, context) {\n\n\n\n}"}}}}};
window._bubble_page_load_data.plugins_size['1631381229197x329933070800257000'] = 32208;
window.preloaded['plugin/third_party:1631381229197x329933070800257000:1.10.0'] = true;
window.__code__ = window.__code__ || {};
if(!window.__code__['972f54d54828dd53eee563e3f0027ab3a16311ae18f9b6b945ee948cabcb70f5']){window.__code__['972f54d54828dd53eee563e3f0027ab3a16311ae18f9b6b945ee948cabcb70f5']=1;

"use strict";(()=>{var __create=Object.create;var __defProp=Object.defineProperty;var __getOwnPropDesc=Object.getOwnPropertyDescriptor;var __getOwnPropNames=Object.getOwnPropertyNames;var __getProtoOf=Object.getPrototypeOf,__hasOwnProp=Object.prototype.hasOwnProperty;var __esm=(fn,res)=>function(){return fn&&(res=(0,fn[__getOwnPropNames(fn)[0]])(fn=0)),res};var __commonJS=(cb,mod)=>function(){return mod||(0,cb[__getOwnPropNames(cb)[0]])((mod={exports:{}}).exports,mod),mod.exports};var __copyProps=(to,from,except,desc)=>{if(from&&typeof from=="object"||typeof from=="function")for(let key of __getOwnPropNames(from))!__hasOwnProp.call(to,key)&&key!==except&&__defProp(to,key,{get:()=>from[key],enumerable:!(desc=__getOwnPropDesc(from,key))||desc.enumerable});return to};var __toESM=(mod,isNodeMode,target)=>(target=mod!=null?__create(__getProtoOf(mod)):{},__copyProps(isNodeMode||!mod||!mod.__esModule?__defProp(target,"default",{value:mod,enumerable:!0}):target,mod));var init_define_process_env=__esm({"<define:process.env>"(){}});var require_base64_js=__commonJS({"node_modules/base64-js/index.js"(exports){"use strict";init_define_process_env();init_shim();exports.byteLength=byteLength;exports.toByteArray=toByteArray;exports.fromByteArray=fromByteArray;var lookup=[],revLookup=[],Arr=typeof Uint8Array<"u"?Uint8Array:Array,code="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";for(i=0,len=code.length;i<len;++i)lookup[i]=code[i],revLookup[code.charCodeAt(i)]=i;var i,len;revLookup["-".charCodeAt(0)]=62;revLookup["_".charCodeAt(0)]=63;function getLens(b64){var len2=b64.length;if(len2%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var validLen=b64.indexOf("=");validLen===-1&&(validLen=len2);var placeHoldersLen=validLen===len2?0:4-validLen%4;return[validLen,placeHoldersLen]}function byteLength(b64){var lens=getLens(b64),validLen=lens[0],placeHoldersLen=lens[1];return(validLen+placeHoldersLen)*3/4-placeHoldersLen}function _byteLength(b64,validLen,placeHoldersLen){return(validLen+placeHoldersLen)*3/4-placeHoldersLen}function toByteArray(b64){var tmp,lens=getLens(b64),validLen=lens[0],placeHoldersLen=lens[1],arr=new Arr(_byteLength(b64,validLen,placeHoldersLen)),curByte=0,len2=placeHoldersLen>0?validLen-4:validLen,i2;for(i2=0;i2<len2;i2+=4)tmp=revLookup[b64.charCodeAt(i2)]<<18|revLookup[b64.charCodeAt(i2+1)]<<12|revLookup[b64.charCodeAt(i2+2)]<<6|revLookup[b64.charCodeAt(i2+3)],arr[curByte++]=tmp>>16&255,arr[curByte++]=tmp>>8&255,arr[curByte++]=tmp&255;return placeHoldersLen===2&&(tmp=revLookup[b64.charCodeAt(i2)]<<2|revLookup[b64.charCodeAt(i2+1)]>>4,arr[curByte++]=tmp&255),placeHoldersLen===1&&(tmp=revLookup[b64.charCodeAt(i2)]<<10|revLookup[b64.charCodeAt(i2+1)]<<4|revLookup[b64.charCodeAt(i2+2)]>>2,arr[curByte++]=tmp>>8&255,arr[curByte++]=tmp&255),arr}function tripletToBase64(num){return lookup[num>>18&63]+lookup[num>>12&63]+lookup[num>>6&63]+lookup[num&63]}function encodeChunk(uint8,start,end){for(var tmp,output=[],i2=start;i2<end;i2+=3)tmp=(uint8[i2]<<16&16711680)+(uint8[i2+1]<<8&65280)+(uint8[i2+2]&255),output.push(tripletToBase64(tmp));return output.join("")}function fromByteArray(uint8){for(var tmp,len2=uint8.length,extraBytes=len2%3,parts=[],maxChunkLength=16383,i2=0,len22=len2-extraBytes;i2<len22;i2+=maxChunkLength)parts.push(encodeChunk(uint8,i2,i2+maxChunkLength>len22?len22:i2+maxChunkLength));return extraBytes===1?(tmp=uint8[len2-1],parts.push(lookup[tmp>>2]+lookup[tmp<<4&63]+"==")):extraBytes===2&&(tmp=(uint8[len2-2]<<8)+uint8[len2-1],parts.push(lookup[tmp>>10]+lookup[tmp>>4&63]+lookup[tmp<<2&63]+"=")),parts.join("")}}});var require_ieee754=__commonJS({"node_modules/ieee754/index.js"(exports){init_define_process_env();init_shim();exports.read=function(buffer,offset,isLE,mLen,nBytes){var e,m,eLen=nBytes*8-mLen-1,eMax=(1<<eLen)-1,eBias=eMax>>1,nBits=-7,i=isLE?nBytes-1:0,d=isLE?-1:1,s=buffer[offset+i];for(i+=d,e=s&(1<<-nBits)-1,s>>=-nBits,nBits+=eLen;nBits>0;e=e*256+buffer[offset+i],i+=d,nBits-=8);for(m=e&(1<<-nBits)-1,e>>=-nBits,nBits+=mLen;nBits>0;m=m*256+buffer[offset+i],i+=d,nBits-=8);if(e===0)e=1-eBias;else{if(e===eMax)return m?NaN:(s?-1:1)*(1/0);m=m+Math.pow(2,mLen),e=e-eBias}return(s?-1:1)*m*Math.pow(2,e-mLen)};exports.write=function(buffer,value,offset,isLE,mLen,nBytes){var e,m,c,eLen=nBytes*8-mLen-1,eMax=(1<<eLen)-1,eBias=eMax>>1,rt=mLen===23?Math.pow(2,-24)-Math.pow(2,-77):0,i=isLE?0:nBytes-1,d=isLE?1:-1,s=value<0||value===0&&1/value<0?1:0;for(value=Math.abs(value),isNaN(value)||value===1/0?(m=isNaN(value)?1:0,e=eMax):(e=Math.floor(Math.log(value)/Math.LN2),value*(c=Math.pow(2,-e))<1&&(e--,c*=2),e+eBias>=1?value+=rt/c:value+=rt*Math.pow(2,1-eBias),value*c>=2&&(e++,c/=2),e+eBias>=eMax?(m=0,e=eMax):e+eBias>=1?(m=(value*c-1)*Math.pow(2,mLen),e=e+eBias):(m=value*Math.pow(2,eBias-1)*Math.pow(2,mLen),e=0));mLen>=8;buffer[offset+i]=m&255,i+=d,m/=256,mLen-=8);for(e=e<<mLen|m,eLen+=mLen;eLen>0;buffer[offset+i]=e&255,i+=d,e/=256,eLen-=8);buffer[offset+i-d]|=s*128}}});var require_buffer=__commonJS({"node_modules/node-stdlib-browser/node_modules/buffer/index.js"(exports){"use strict";init_define_process_env();init_shim();var base64=require_base64_js(),ieee754=require_ieee754(),customInspectSymbol=typeof Symbol=="function"&&typeof Symbol.for=="function"?Symbol.for("nodejs.util.inspect.custom"):null;exports.Buffer=Buffer3;exports.SlowBuffer=SlowBuffer;exports.INSPECT_MAX_BYTES=50;var K_MAX_LENGTH=2147483647;exports.kMaxLength=K_MAX_LENGTH;Buffer3.TYPED_ARRAY_SUPPORT=typedArraySupport();!Buffer3.TYPED_ARRAY_SUPPORT&&typeof console<"u"&&typeof console.error=="function"&&console.error("This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support.");function typedArraySupport(){try{var arr=new Uint8Array(1),proto={foo:function(){return 42}};return Object.setPrototypeOf(proto,Uint8Array.prototype),Object.setPrototypeOf(arr,proto),arr.foo()===42}catch(e){return!1}}Object.defineProperty(Buffer3.prototype,"parent",{enumerable:!0,get:function(){if(Buffer3.isBuffer(this))return this.buffer}});Object.defineProperty(Buffer3.prototype,"offset",{enumerable:!0,get:function(){if(Buffer3.isBuffer(this))return this.byteOffset}});function createBuffer(length){if(length>K_MAX_LENGTH)throw new RangeError('The value "'+length+'" is invalid for option "size"');var buf=new Uint8Array(length);return Object.setPrototypeOf(buf,Buffer3.prototype),buf}function Buffer3(arg,encodingOrOffset,length){if(typeof arg=="number"){if(typeof encodingOrOffset=="string")throw new TypeError('The "string" argument must be of type string. Received type number');return allocUnsafe(arg)}return from(arg,encodingOrOffset,length)}Buffer3.poolSize=8192;function from(value,encodingOrOffset,length){if(typeof value=="string")return fromString(value,encodingOrOffset);if(ArrayBuffer.isView(value))return fromArrayView(value);if(value==null)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof value);if(isInstance(value,ArrayBuffer)||value&&isInstance(value.buffer,ArrayBuffer)||typeof SharedArrayBuffer<"u"&&(isInstance(value,SharedArrayBuffer)||value&&isInstance(value.buffer,SharedArrayBuffer)))return fromArrayBuffer(value,encodingOrOffset,length);if(typeof value=="number")throw new TypeError('The "value" argument must not be of type number. Received type number');var valueOf=value.valueOf&&value.valueOf();if(valueOf!=null&&valueOf!==value)return Buffer3.from(valueOf,encodingOrOffset,length);var b=fromObject(value);if(b)return b;if(typeof Symbol<"u"&&Symbol.toPrimitive!=null&&typeof value[Symbol.toPrimitive]=="function")return Buffer3.from(value[Symbol.toPrimitive]("string"),encodingOrOffset,length);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof value)}Buffer3.from=function(value,encodingOrOffset,length){return from(value,encodingOrOffset,length)};Object.setPrototypeOf(Buffer3.prototype,Uint8Array.prototype);Object.setPrototypeOf(Buffer3,Uint8Array);function assertSize(size){if(typeof size!="number")throw new TypeError('"size" argument must be of type number');if(size<0)throw new RangeError('The value "'+size+'" is invalid for option "size"')}function alloc(size,fill,encoding){return assertSize(size),size<=0?createBuffer(size):fill!==void 0?typeof encoding=="string"?createBuffer(size).fill(fill,encoding):createBuffer(size).fill(fill):createBuffer(size)}Buffer3.alloc=function(size,fill,encoding){return alloc(size,fill,encoding)};function allocUnsafe(size){return assertSize(size),createBuffer(size<0?0:checked(size)|0)}Buffer3.allocUnsafe=function(size){return allocUnsafe(size)};Buffer3.allocUnsafeSlow=function(size){return allocUnsafe(size)};function fromString(string,encoding){if((typeof encoding!="string"||encoding==="")&&(encoding="utf8"),!Buffer3.isEncoding(encoding))throw new TypeError("Unknown encoding: "+encoding);var length=byteLength(string,encoding)|0,buf=createBuffer(length),actual=buf.write(string,encoding);return actual!==length&&(buf=buf.slice(0,actual)),buf}function fromArrayLike(array){for(var length=array.length<0?0:checked(array.length)|0,buf=createBuffer(length),i=0;i<length;i+=1)buf[i]=array[i]&255;return buf}function fromArrayView(arrayView){if(isInstance(arrayView,Uint8Array)){var copy=new Uint8Array(arrayView);return fromArrayBuffer(copy.buffer,copy.byteOffset,copy.byteLength)}return fromArrayLike(arrayView)}function fromArrayBuffer(array,byteOffset,length){if(byteOffset<0||array.byteLength<byteOffset)throw new RangeError('"offset" is outside of buffer bounds');if(array.byteLength<byteOffset+(length||0))throw new RangeError('"length" is outside of buffer bounds');var buf;return byteOffset===void 0&&length===void 0?buf=new Uint8Array(array):length===void 0?buf=new Uint8Array(array,byteOffset):buf=new Uint8Array(array,byteOffset,length),Object.setPrototypeOf(buf,Buffer3.prototype),buf}function fromObject(obj){if(Buffer3.isBuffer(obj)){var len=checked(obj.length)|0,buf=createBuffer(len);return buf.length===0||obj.copy(buf,0,0,len),buf}if(obj.length!==void 0)return typeof obj.length!="number"||numberIsNaN(obj.length)?createBuffer(0):fromArrayLike(obj);if(obj.type==="Buffer"&&Array.isArray(obj.data))return fromArrayLike(obj.data)}function checked(length){if(length>=K_MAX_LENGTH)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+K_MAX_LENGTH.toString(16)+" bytes");return length|0}function SlowBuffer(length){return+length!=length&&(length=0),Buffer3.alloc(+length)}Buffer3.isBuffer=function(b){return b!=null&&b._isBuffer===!0&&b!==Buffer3.prototype};Buffer3.compare=function(a,b){if(isInstance(a,Uint8Array)&&(a=Buffer3.from(a,a.offset,a.byteLength)),isInstance(b,Uint8Array)&&(b=Buffer3.from(b,b.offset,b.byteLength)),!Buffer3.isBuffer(a)||!Buffer3.isBuffer(b))throw new TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array');if(a===b)return 0;for(var x=a.length,y=b.length,i=0,len=Math.min(x,y);i<len;++i)if(a[i]!==b[i]){x=a[i],y=b[i];break}return x<y?-1:y<x?1:0};Buffer3.isEncoding=function(encoding){switch(String(encoding).toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"latin1":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return!0;default:return!1}};Buffer3.concat=function(list,length){if(!Array.isArray(list))throw new TypeError('"list" argument must be an Array of Buffers');if(list.length===0)return Buffer3.alloc(0);var i;if(length===void 0)for(length=0,i=0;i<list.length;++i)length+=list[i].length;var buffer=Buffer3.allocUnsafe(length),pos=0;for(i=0;i<list.length;++i){var buf=list[i];if(isInstance(buf,Uint8Array))pos+buf.length>buffer.length?Buffer3.from(buf).copy(buffer,pos):Uint8Array.prototype.set.call(buffer,buf,pos);else if(Buffer3.isBuffer(buf))buf.copy(buffer,pos);else throw new TypeError('"list" argument must be an Array of Buffers');pos+=buf.length}return buffer};function byteLength(string,encoding){if(Buffer3.isBuffer(string))return string.length;if(ArrayBuffer.isView(string)||isInstance(string,ArrayBuffer))return string.byteLength;if(typeof string!="string")throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof string);var len=string.length,mustMatch=arguments.length>2&&arguments[2]===!0;if(!mustMatch&&len===0)return 0;for(var loweredCase=!1;;)switch(encoding){case"ascii":case"latin1":case"binary":return len;case"utf8":case"utf-8":return utf8ToBytes(string).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return len*2;case"hex":return len>>>1;case"base64":return base64ToBytes(string).length;default:if(loweredCase)return mustMatch?-1:utf8ToBytes(string).length;encoding=(""+encoding).toLowerCase(),loweredCase=!0}}Buffer3.byteLength=byteLength;function slowToString(encoding,start,end){var loweredCase=!1;if((start===void 0||start<0)&&(start=0),start>this.length||((end===void 0||end>this.length)&&(end=this.length),end<=0)||(end>>>=0,start>>>=0,end<=start))return"";for(encoding||(encoding="utf8");;)switch(encoding){case"hex":return hexSlice(this,start,end);case"utf8":case"utf-8":return utf8Slice(this,start,end);case"ascii":return asciiSlice(this,start,end);case"latin1":case"binary":return latin1Slice(this,start,end);case"base64":return base64Slice(this,start,end);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return utf16leSlice(this,start,end);default:if(loweredCase)throw new TypeError("Unknown encoding: "+encoding);encoding=(encoding+"").toLowerCase(),loweredCase=!0}}Buffer3.prototype._isBuffer=!0;function swap(b,n,m){var i=b[n];b[n]=b[m],b[m]=i}Buffer3.prototype.swap16=function(){var len=this.length;if(len%2!==0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(var i=0;i<len;i+=2)swap(this,i,i+1);return this};Buffer3.prototype.swap32=function(){var len=this.length;if(len%4!==0)throw new RangeError("Buffer size must be a multiple of 32-bits");for(var i=0;i<len;i+=4)swap(this,i,i+3),swap(this,i+1,i+2);return this};Buffer3.prototype.swap64=function(){var len=this.length;if(len%8!==0)throw new RangeError("Buffer size must be a multiple of 64-bits");for(var i=0;i<len;i+=8)swap(this,i,i+7),swap(this,i+1,i+6),swap(this,i+2,i+5),swap(this,i+3,i+4);return this};Buffer3.prototype.toString=function(){var length=this.length;return length===0?"":arguments.length===0?utf8Slice(this,0,length):slowToString.apply(this,arguments)};Buffer3.prototype.toLocaleString=Buffer3.prototype.toString;Buffer3.prototype.equals=function(b){if(!Buffer3.isBuffer(b))throw new TypeError("Argument must be a Buffer");return this===b?!0:Buffer3.compare(this,b)===0};Buffer3.prototype.inspect=function(){var str="",max=exports.INSPECT_MAX_BYTES;return str=this.toString("hex",0,max).replace(/(.{2})/g,"$1 ").trim(),this.length>max&&(str+=" ... "),"<Buffer "+str+">"};customInspectSymbol&&(Buffer3.prototype[customInspectSymbol]=Buffer3.prototype.inspect);Buffer3.prototype.compare=function(target,start,end,thisStart,thisEnd){if(isInstance(target,Uint8Array)&&(target=Buffer3.from(target,target.offset,target.byteLength)),!Buffer3.isBuffer(target))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof target);if(start===void 0&&(start=0),end===void 0&&(end=target?target.length:0),thisStart===void 0&&(thisStart=0),thisEnd===void 0&&(thisEnd=this.length),start<0||end>target.length||thisStart<0||thisEnd>this.length)throw new RangeError("out of range index");if(thisStart>=thisEnd&&start>=end)return 0;if(thisStart>=thisEnd)return-1;if(start>=end)return 1;if(start>>>=0,end>>>=0,thisStart>>>=0,thisEnd>>>=0,this===target)return 0;for(var x=thisEnd-thisStart,y=end-start,len=Math.min(x,y),thisCopy=this.slice(thisStart,thisEnd),targetCopy=target.slice(start,end),i=0;i<len;++i)if(thisCopy[i]!==targetCopy[i]){x=thisCopy[i],y=targetCopy[i];break}return x<y?-1:y<x?1:0};function bidirectionalIndexOf(buffer,val,byteOffset,encoding,dir){if(buffer.length===0)return-1;if(typeof byteOffset=="string"?(encoding=byteOffset,byteOffset=0):byteOffset>2147483647?byteOffset=2147483647:byteOffset<-2147483648&&(byteOffset=-2147483648),byteOffset=+byteOffset,numberIsNaN(byteOffset)&&(byteOffset=dir?0:buffer.length-1),byteOffset<0&&(byteOffset=buffer.length+byteOffset),byteOffset>=buffer.length){if(dir)return-1;byteOffset=buffer.length-1}else if(byteOffset<0)if(dir)byteOffset=0;else return-1;if(typeof val=="string"&&(val=Buffer3.from(val,encoding)),Buffer3.isBuffer(val))return val.length===0?-1:arrayIndexOf(buffer,val,byteOffset,encoding,dir);if(typeof val=="number")return val=val&255,typeof Uint8Array.prototype.indexOf=="function"?dir?Uint8Array.prototype.indexOf.call(buffer,val,byteOffset):Uint8Array.prototype.lastIndexOf.call(buffer,val,byteOffset):arrayIndexOf(buffer,[val],byteOffset,encoding,dir);throw new TypeError("val must be string, number or Buffer")}function arrayIndexOf(arr,val,byteOffset,encoding,dir){var indexSize=1,arrLength=arr.length,valLength=val.length;if(encoding!==void 0&&(encoding=String(encoding).toLowerCase(),encoding==="ucs2"||encoding==="ucs-2"||encoding==="utf16le"||encoding==="utf-16le")){if(arr.length<2||val.length<2)return-1;indexSize=2,arrLength/=2,valLength/=2,byteOffset/=2}function read(buf,i2){return indexSize===1?buf[i2]:buf.readUInt16BE(i2*indexSize)}var i;if(dir){var foundIndex=-1;for(i=byteOffset;i<arrLength;i++)if(read(arr,i)===read(val,foundIndex===-1?0:i-foundIndex)){if(foundIndex===-1&&(foundIndex=i),i-foundIndex+1===valLength)return foundIndex*indexSize}else foundIndex!==-1&&(i-=i-foundIndex),foundIndex=-1}else for(byteOffset+valLength>arrLength&&(byteOffset=arrLength-valLength),i=byteOffset;i>=0;i--){for(var found=!0,j=0;j<valLength;j++)if(read(arr,i+j)!==read(val,j)){found=!1;break}if(found)return i}return-1}Buffer3.prototype.includes=function(val,byteOffset,encoding){return this.indexOf(val,byteOffset,encoding)!==-1};Buffer3.prototype.indexOf=function(val,byteOffset,encoding){return bidirectionalIndexOf(this,val,byteOffset,encoding,!0)};Buffer3.prototype.lastIndexOf=function(val,byteOffset,encoding){return bidirectionalIndexOf(this,val,byteOffset,encoding,!1)};function hexWrite(buf,string,offset,length){offset=Number(offset)||0;var remaining=buf.length-offset;length?(length=Number(length),length>remaining&&(length=remaining)):length=remaining;var strLen=string.length;length>strLen/2&&(length=strLen/2);for(var i=0;i<length;++i){var parsed=parseInt(string.substr(i*2,2),16);if(numberIsNaN(parsed))return i;buf[offset+i]=parsed}return i}function utf8Write(buf,string,offset,length){return blitBuffer(utf8ToBytes(string,buf.length-offset),buf,offset,length)}function asciiWrite(buf,string,offset,length){return blitBuffer(asciiToBytes(string),buf,offset,length)}function base64Write(buf,string,offset,length){return blitBuffer(base64ToBytes(string),buf,offset,length)}function ucs2Write(buf,string,offset,length){return blitBuffer(utf16leToBytes(string,buf.length-offset),buf,offset,length)}Buffer3.prototype.write=function(string,offset,length,encoding){if(offset===void 0)encoding="utf8",length=this.length,offset=0;else if(length===void 0&&typeof offset=="string")encoding=offset,length=this.length,offset=0;else if(isFinite(offset))offset=offset>>>0,isFinite(length)?(length=length>>>0,encoding===void 0&&(encoding="utf8")):(encoding=length,length=void 0);else throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");var remaining=this.length-offset;if((length===void 0||length>remaining)&&(length=remaining),string.length>0&&(length<0||offset<0)||offset>this.length)throw new RangeError("Attempt to write outside buffer bounds");encoding||(encoding="utf8");for(var loweredCase=!1;;)switch(encoding){case"hex":return hexWrite(this,string,offset,length);case"utf8":case"utf-8":return utf8Write(this,string,offset,length);case"ascii":case"latin1":case"binary":return asciiWrite(this,string,offset,length);case"base64":return base64Write(this,string,offset,length);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return ucs2Write(this,string,offset,length);default:if(loweredCase)throw new TypeError("Unknown encoding: "+encoding);encoding=(""+encoding).toLowerCase(),loweredCase=!0}};Buffer3.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function base64Slice(buf,start,end){return start===0&&end===buf.length?base64.fromByteArray(buf):base64.fromByteArray(buf.slice(start,end))}function utf8Slice(buf,start,end){end=Math.min(buf.length,end);for(var res=[],i=start;i<end;){var firstByte=buf[i],codePoint=null,bytesPerSequence=firstByte>239?4:firstByte>223?3:firstByte>191?2:1;if(i+bytesPerSequence<=end){var secondByte,thirdByte,fourthByte,tempCodePoint;switch(bytesPerSequence){case 1:firstByte<128&&(codePoint=firstByte);break;case 2:secondByte=buf[i+1],(secondByte&192)===128&&(tempCodePoint=(firstByte&31)<<6|secondByte&63,tempCodePoint>127&&(codePoint=tempCodePoint));break;case 3:secondByte=buf[i+1],thirdByte=buf[i+2],(secondByte&192)===128&&(thirdByte&192)===128&&(tempCodePoint=(firstByte&15)<<12|(secondByte&63)<<6|thirdByte&63,tempCodePoint>2047&&(tempCodePoint<55296||tempCodePoint>57343)&&(codePoint=tempCodePoint));break;case 4:secondByte=buf[i+1],thirdByte=buf[i+2],fourthByte=buf[i+3],(secondByte&192)===128&&(thirdByte&192)===128&&(fourthByte&192)===128&&(tempCodePoint=(firstByte&15)<<18|(secondByte&63)<<12|(thirdByte&63)<<6|fourthByte&63,tempCodePoint>65535&&tempCodePoint<1114112&&(codePoint=tempCodePoint))}}codePoint===null?(codePoint=65533,bytesPerSequence=1):codePoint>65535&&(codePoint-=65536,res.push(codePoint>>>10&1023|55296),codePoint=56320|codePoint&1023),res.push(codePoint),i+=bytesPerSequence}return decodeCodePointsArray(res)}var MAX_ARGUMENTS_LENGTH=4096;function decodeCodePointsArray(codePoints){var len=codePoints.length;if(len<=MAX_ARGUMENTS_LENGTH)return String.fromCharCode.apply(String,codePoints);for(var res="",i=0;i<len;)res+=String.fromCharCode.apply(String,codePoints.slice(i,i+=MAX_ARGUMENTS_LENGTH));return res}function asciiSlice(buf,start,end){var ret="";end=Math.min(buf.length,end);for(var i=start;i<end;++i)ret+=String.fromCharCode(buf[i]&127);return ret}function latin1Slice(buf,start,end){var ret="";end=Math.min(buf.length,end);for(var i=start;i<end;++i)ret+=String.fromCharCode(buf[i]);return ret}function hexSlice(buf,start,end){var len=buf.length;(!start||start<0)&&(start=0),(!end||end<0||end>len)&&(end=len);for(var out="",i=start;i<end;++i)out+=hexSliceLookupTable[buf[i]];return out}function utf16leSlice(buf,start,end){for(var bytes=buf.slice(start,end),res="",i=0;i<bytes.length-1;i+=2)res+=String.fromCharCode(bytes[i]+bytes[i+1]*256);return res}Buffer3.prototype.slice=function(start,end){var len=this.length;start=~~start,end=end===void 0?len:~~end,start<0?(start+=len,start<0&&(start=0)):start>len&&(start=len),end<0?(end+=len,end<0&&(end=0)):end>len&&(end=len),end<start&&(end=start);var newBuf=this.subarray(start,end);return Object.setPrototypeOf(newBuf,Buffer3.prototype),newBuf};function checkOffset(offset,ext,length){if(offset%1!==0||offset<0)throw new RangeError("offset is not uint");if(offset+ext>length)throw new RangeError("Trying to access beyond buffer length")}Buffer3.prototype.readUintLE=Buffer3.prototype.readUIntLE=function(offset,byteLength2,noAssert){offset=offset>>>0,byteLength2=byteLength2>>>0,noAssert||checkOffset(offset,byteLength2,this.length);for(var val=this[offset],mul=1,i=0;++i<byteLength2&&(mul*=256);)val+=this[offset+i]*mul;return val};Buffer3.prototype.readUintBE=Buffer3.prototype.readUIntBE=function(offset,byteLength2,noAssert){offset=offset>>>0,byteLength2=byteLength2>>>0,noAssert||checkOffset(offset,byteLength2,this.length);for(var val=this[offset+--byteLength2],mul=1;byteLength2>0&&(mul*=256);)val+=this[offset+--byteLength2]*mul;return val};Buffer3.prototype.readUint8=Buffer3.prototype.readUInt8=function(offset,noAssert){return offset=offset>>>0,noAssert||checkOffset(offset,1,this.length),this[offset]};Buffer3.prototype.readUint16LE=Buffer3.prototype.readUInt16LE=function(offset,noAssert){return offset=offset>>>0,noAssert||checkOffset(offset,2,this.length),this[offset]|this[offset+1]<<8};Buffer3.prototype.readUint16BE=Buffer3.prototype.readUInt16BE=function(offset,noAssert){return offset=offset>>>0,noAssert||checkOffset(offset,2,this.length),this[offset]<<8|this[offset+1]};Buffer3.prototype.readUint32LE=Buffer3.prototype.readUInt32LE=function(offset,noAssert){return offset=offset>>>0,noAssert||checkOffset(offset,4,this.length),(this[offset]|this[offset+1]<<8|this[offset+2]<<16)+this[offset+3]*16777216};Buffer3.prototype.readUint32BE=Buffer3.prototype.readUInt32BE=function(offset,noAssert){return offset=offset>>>0,noAssert||checkOffset(offset,4,this.length),this[offset]*16777216+(this[offset+1]<<16|this[offset+2]<<8|this[offset+3])};Buffer3.prototype.readIntLE=function(offset,byteLength2,noAssert){offset=offset>>>0,byteLength2=byteLength2>>>0,noAssert||checkOffset(offset,byteLength2,this.length);for(var val=this[offset],mul=1,i=0;++i<byteLength2&&(mul*=256);)val+=this[offset+i]*mul;return mul*=128,val>=mul&&(val-=Math.pow(2,8*byteLength2)),val};Buffer3.prototype.readIntBE=function(offset,byteLength2,noAssert){offset=offset>>>0,byteLength2=byteLength2>>>0,noAssert||checkOffset(offset,byteLength2,this.length);for(var i=byteLength2,mul=1,val=this[offset+--i];i>0&&(mul*=256);)val+=this[offset+--i]*mul;return mul*=128,val>=mul&&(val-=Math.pow(2,8*byteLength2)),val};Buffer3.prototype.readInt8=function(offset,noAssert){return offset=offset>>>0,noAssert||checkOffset(offset,1,this.length),this[offset]&128?(255-this[offset]+1)*-1:this[offset]};Buffer3.prototype.readInt16LE=function(offset,noAssert){offset=offset>>>0,noAssert||checkOffset(offset,2,this.length);var val=this[offset]|this[offset+1]<<8;return val&32768?val|4294901760:val};Buffer3.prototype.readInt16BE=function(offset,noAssert){offset=offset>>>0,noAssert||checkOffset(offset,2,this.length);var val=this[offset+1]|this[offset]<<8;return val&32768?val|4294901760:val};Buffer3.prototype.readInt32LE=function(offset,noAssert){return offset=offset>>>0,noAssert||checkOffset(offset,4,this.length),this[offset]|this[offset+1]<<8|this[offset+2]<<16|this[offset+3]<<24};Buffer3.prototype.readInt32BE=function(offset,noAssert){return offset=offset>>>0,noAssert||checkOffset(offset,4,this.length),this[offset]<<24|this[offset+1]<<16|this[offset+2]<<8|this[offset+3]};Buffer3.prototype.readFloatLE=function(offset,noAssert){return offset=offset>>>0,noAssert||checkOffset(offset,4,this.length),ieee754.read(this,offset,!0,23,4)};Buffer3.prototype.readFloatBE=function(offset,noAssert){return offset=offset>>>0,noAssert||checkOffset(offset,4,this.length),ieee754.read(this,offset,!1,23,4)};Buffer3.prototype.readDoubleLE=function(offset,noAssert){return offset=offset>>>0,noAssert||checkOffset(offset,8,this.length),ieee754.read(this,offset,!0,52,8)};Buffer3.prototype.readDoubleBE=function(offset,noAssert){return offset=offset>>>0,noAssert||checkOffset(offset,8,this.length),ieee754.read(this,offset,!1,52,8)};function checkInt(buf,value,offset,ext,max,min){if(!Buffer3.isBuffer(buf))throw new TypeError('"buffer" argument must be a Buffer instance');if(value>max||value<min)throw new RangeError('"value" argument is out of bounds');if(offset+ext>buf.length)throw new RangeError("Index out of range")}Buffer3.prototype.writeUintLE=Buffer3.prototype.writeUIntLE=function(value,offset,byteLength2,noAssert){if(value=+value,offset=offset>>>0,byteLength2=byteLength2>>>0,!noAssert){var maxBytes=Math.pow(2,8*byteLength2)-1;checkInt(this,value,offset,byteLength2,maxBytes,0)}var mul=1,i=0;for(this[offset]=value&255;++i<byteLength2&&(mul*=256);)this[offset+i]=value/mul&255;return offset+byteLength2};Buffer3.prototype.writeUintBE=Buffer3.prototype.writeUIntBE=function(value,offset,byteLength2,noAssert){if(value=+value,offset=offset>>>0,byteLength2=byteLength2>>>0,!noAssert){var maxBytes=Math.pow(2,8*byteLength2)-1;checkInt(this,value,offset,byteLength2,maxBytes,0)}var i=byteLength2-1,mul=1;for(this[offset+i]=value&255;--i>=0&&(mul*=256);)this[offset+i]=value/mul&255;return offset+byteLength2};Buffer3.prototype.writeUint8=Buffer3.prototype.writeUInt8=function(value,offset,noAssert){return value=+value,offset=offset>>>0,noAssert||checkInt(this,value,offset,1,255,0),this[offset]=value&255,offset+1};Buffer3.prototype.writeUint16LE=Buffer3.prototype.writeUInt16LE=function(value,offset,noAssert){return value=+value,offset=offset>>>0,noAssert||checkInt(this,value,offset,2,65535,0),this[offset]=value&255,this[offset+1]=value>>>8,offset+2};Buffer3.prototype.writeUint16BE=Buffer3.prototype.writeUInt16BE=function(value,offset,noAssert){return value=+value,offset=offset>>>0,noAssert||checkInt(this,value,offset,2,65535,0),this[offset]=value>>>8,this[offset+1]=value&255,offset+2};Buffer3.prototype.writeUint32LE=Buffer3.prototype.writeUInt32LE=function(value,offset,noAssert){return value=+value,offset=offset>>>0,noAssert||checkInt(this,value,offset,4,4294967295,0),this[offset+3]=value>>>24,this[offset+2]=value>>>16,this[offset+1]=value>>>8,this[offset]=value&255,offset+4};Buffer3.prototype.writeUint32BE=Buffer3.prototype.writeUInt32BE=function(value,offset,noAssert){return value=+value,offset=offset>>>0,noAssert||checkInt(this,value,offset,4,4294967295,0),this[offset]=value>>>24,this[offset+1]=value>>>16,this[offset+2]=value>>>8,this[offset+3]=value&255,offset+4};Buffer3.prototype.writeIntLE=function(value,offset,byteLength2,noAssert){if(value=+value,offset=offset>>>0,!noAssert){var limit=Math.pow(2,8*byteLength2-1);checkInt(this,value,offset,byteLength2,limit-1,-limit)}var i=0,mul=1,sub=0;for(this[offset]=value&255;++i<byteLength2&&(mul*=256);)value<0&&sub===0&&this[offset+i-1]!==0&&(sub=1),this[offset+i]=(value/mul>>0)-sub&255;return offset+byteLength2};Buffer3.prototype.writeIntBE=function(value,offset,byteLength2,noAssert){if(value=+value,offset=offset>>>0,!noAssert){var limit=Math.pow(2,8*byteLength2-1);checkInt(this,value,offset,byteLength2,limit-1,-limit)}var i=byteLength2-1,mul=1,sub=0;for(this[offset+i]=value&255;--i>=0&&(mul*=256);)value<0&&sub===0&&this[offset+i+1]!==0&&(sub=1),this[offset+i]=(value/mul>>0)-sub&255;return offset+byteLength2};Buffer3.prototype.writeInt8=function(value,offset,noAssert){return value=+value,offset=offset>>>0,noAssert||checkInt(this,value,offset,1,127,-128),value<0&&(value=255+value+1),this[offset]=value&255,offset+1};Buffer3.prototype.writeInt16LE=function(value,offset,noAssert){return value=+value,offset=offset>>>0,noAssert||checkInt(this,value,offset,2,32767,-32768),this[offset]=value&255,this[offset+1]=value>>>8,offset+2};Buffer3.prototype.writeInt16BE=function(value,offset,noAssert){return value=+value,offset=offset>>>0,noAssert||checkInt(this,value,offset,2,32767,-32768),this[offset]=value>>>8,this[offset+1]=value&255,offset+2};Buffer3.prototype.writeInt32LE=function(value,offset,noAssert){return value=+value,offset=offset>>>0,noAssert||checkInt(this,value,offset,4,2147483647,-2147483648),this[offset]=value&255,this[offset+1]=value>>>8,this[offset+2]=value>>>16,this[offset+3]=value>>>24,offset+4};Buffer3.prototype.writeInt32BE=function(value,offset,noAssert){return value=+value,offset=offset>>>0,noAssert||checkInt(this,value,offset,4,2147483647,-2147483648),value<0&&(value=4294967295+value+1),this[offset]=value>>>24,this[offset+1]=value>>>16,this[offset+2]=value>>>8,this[offset+3]=value&255,offset+4};function checkIEEE754(buf,value,offset,ext,max,min){if(offset+ext>buf.length)throw new RangeError("Index out of range");if(offset<0)throw new RangeError("Index out of range")}function writeFloat(buf,value,offset,littleEndian,noAssert){return value=+value,offset=offset>>>0,noAssert||checkIEEE754(buf,value,offset,4,34028234663852886e22,-34028234663852886e22),ieee754.write(buf,value,offset,littleEndian,23,4),offset+4}Buffer3.prototype.writeFloatLE=function(value,offset,noAssert){return writeFloat(this,value,offset,!0,noAssert)};Buffer3.prototype.writeFloatBE=function(value,offset,noAssert){return writeFloat(this,value,offset,!1,noAssert)};function writeDouble(buf,value,offset,littleEndian,noAssert){return value=+value,offset=offset>>>0,noAssert||checkIEEE754(buf,value,offset,8,17976931348623157e292,-17976931348623157e292),ieee754.write(buf,value,offset,littleEndian,52,8),offset+8}Buffer3.prototype.writeDoubleLE=function(value,offset,noAssert){return writeDouble(this,value,offset,!0,noAssert)};Buffer3.prototype.writeDoubleBE=function(value,offset,noAssert){return writeDouble(this,value,offset,!1,noAssert)};Buffer3.prototype.copy=function(target,targetStart,start,end){if(!Buffer3.isBuffer(target))throw new TypeError("argument should be a Buffer");if(start||(start=0),!end&&end!==0&&(end=this.length),targetStart>=target.length&&(targetStart=target.length),targetStart||(targetStart=0),end>0&&end<start&&(end=start),end===start||target.length===0||this.length===0)return 0;if(targetStart<0)throw new RangeError("targetStart out of bounds");if(start<0||start>=this.length)throw new RangeError("Index out of range");if(end<0)throw new RangeError("sourceEnd out of bounds");end>this.length&&(end=this.length),target.length-targetStart<end-start&&(end=target.length-targetStart+start);var len=end-start;return this===target&&typeof Uint8Array.prototype.copyWithin=="function"?this.copyWithin(targetStart,start,end):Uint8Array.prototype.set.call(target,this.subarray(start,end),targetStart),len};Buffer3.prototype.fill=function(val,start,end,encoding){if(typeof val=="string"){if(typeof start=="string"?(encoding=start,start=0,end=this.length):typeof end=="string"&&(encoding=end,end=this.length),encoding!==void 0&&typeof encoding!="string")throw new TypeError("encoding must be a string");if(typeof encoding=="string"&&!Buffer3.isEncoding(encoding))throw new TypeError("Unknown encoding: "+encoding);if(val.length===1){var code=val.charCodeAt(0);(encoding==="utf8"&&code<128||encoding==="latin1")&&(val=code)}}else typeof val=="number"?val=val&255:typeof val=="boolean"&&(val=Number(val));if(start<0||this.length<start||this.length<end)throw new RangeError("Out of range index");if(end<=start)return this;start=start>>>0,end=end===void 0?this.length:end>>>0,val||(val=0);var i;if(typeof val=="number")for(i=start;i<end;++i)this[i]=val;else{var bytes=Buffer3.isBuffer(val)?val:Buffer3.from(val,encoding),len=bytes.length;if(len===0)throw new TypeError('The value "'+val+'" is invalid for argument "value"');for(i=0;i<end-start;++i)this[i+start]=bytes[i%len]}return this};var INVALID_BASE64_RE=/[^+/0-9A-Za-z-_]/g;function base64clean(str){if(str=str.split("=")[0],str=str.trim().replace(INVALID_BASE64_RE,""),str.length<2)return"";for(;str.length%4!==0;)str=str+"=";return str}function utf8ToBytes(string,units){units=units||1/0;for(var codePoint,length=string.length,leadSurrogate=null,bytes=[],i=0;i<length;++i){if(codePoint=string.charCodeAt(i),codePoint>55295&&codePoint<57344){if(!leadSurrogate){if(codePoint>56319){(units-=3)>-1&&bytes.push(239,191,189);continue}else if(i+1===length){(units-=3)>-1&&bytes.push(239,191,189);continue}leadSurrogate=codePoint;continue}if(codePoint<56320){(units-=3)>-1&&bytes.push(239,191,189),leadSurrogate=codePoint;continue}codePoint=(leadSurrogate-55296<<10|codePoint-56320)+65536}else leadSurrogate&&(units-=3)>-1&&bytes.push(239,191,189);if(leadSurrogate=null,codePoint<128){if((units-=1)<0)break;bytes.push(codePoint)}else if(codePoint<2048){if((units-=2)<0)break;bytes.push(codePoint>>6|192,codePoint&63|128)}else if(codePoint<65536){if((units-=3)<0)break;bytes.push(codePoint>>12|224,codePoint>>6&63|128,codePoint&63|128)}else if(codePoint<1114112){if((units-=4)<0)break;bytes.push(codePoint>>18|240,codePoint>>12&63|128,codePoint>>6&63|128,codePoint&63|128)}else throw new Error("Invalid code point")}return bytes}function asciiToBytes(str){for(var byteArray=[],i=0;i<str.length;++i)byteArray.push(str.charCodeAt(i)&255);return byteArray}function utf16leToBytes(str,units){for(var c,hi,lo,byteArray=[],i=0;i<str.length&&!((units-=2)<0);++i)c=str.charCodeAt(i),hi=c>>8,lo=c%256,byteArray.push(lo),byteArray.push(hi);return byteArray}function base64ToBytes(str){return base64.toByteArray(base64clean(str))}function blitBuffer(src,dst,offset,length){for(var i=0;i<length&&!(i+offset>=dst.length||i>=src.length);++i)dst[i+offset]=src[i];return i}function isInstance(obj,type){return obj instanceof type||obj!=null&&obj.constructor!=null&&obj.constructor.name!=null&&obj.constructor.name===type.name}function numberIsNaN(obj){return obj!==obj}var hexSliceLookupTable=function(){for(var alphabet="0123456789abcdef",table=new Array(256),i=0;i<16;++i)for(var i16=i*16,j=0;j<16;++j)table[i16+j]=alphabet[i]+alphabet[j];return table}()}});var require_browser=__commonJS({"node_modules/process/browser.js"(exports,module){init_define_process_env();init_shim();var process2=module.exports={},cachedSetTimeout,cachedClearTimeout;function defaultSetTimout(){throw new Error("setTimeout has not been defined")}function defaultClearTimeout(){throw new Error("clearTimeout has not been defined")}(function(){try{typeof setTimeout=="function"?cachedSetTimeout=setTimeout:cachedSetTimeout=defaultSetTimout}catch(e){cachedSetTimeout=defaultSetTimout}try{typeof clearTimeout=="function"?cachedClearTimeout=clearTimeout:cachedClearTimeout=defaultClearTimeout}catch(e){cachedClearTimeout=defaultClearTimeout}})();function runTimeout(fun){if(cachedSetTimeout===setTimeout)return setTimeout(fun,0);if((cachedSetTimeout===defaultSetTimout||!cachedSetTimeout)&&setTimeout)return cachedSetTimeout=setTimeout,setTimeout(fun,0);try{return cachedSetTimeout(fun,0)}catch(e){try{return cachedSetTimeout.call(null,fun,0)}catch(e2){return cachedSetTimeout.call(this,fun,0)}}}function runClearTimeout(marker){if(cachedClearTimeout===clearTimeout)return clearTimeout(marker);if((cachedClearTimeout===defaultClearTimeout||!cachedClearTimeout)&&clearTimeout)return cachedClearTimeout=clearTimeout,clearTimeout(marker);try{return cachedClearTimeout(marker)}catch(e){try{return cachedClearTimeout.call(null,marker)}catch(e2){return cachedClearTimeout.call(this,marker)}}}var queue=[],draining=!1,currentQueue,queueIndex=-1;function cleanUpNextTick(){!draining||!currentQueue||(draining=!1,currentQueue.length?queue=currentQueue.concat(queue):queueIndex=-1,queue.length&&drainQueue())}function drainQueue(){if(!draining){var timeout=runTimeout(cleanUpNextTick);draining=!0;for(var len=queue.length;len;){for(currentQueue=queue,queue=[];++queueIndex<len;)currentQueue&&currentQueue[queueIndex].run();queueIndex=-1,len=queue.length}currentQueue=null,draining=!1,runClearTimeout(timeout)}}process2.nextTick=function(fun){var args=new Array(arguments.length-1);if(arguments.length>1)for(var i=1;i<arguments.length;i++)args[i-1]=arguments[i];queue.push(new Item(fun,args)),queue.length===1&&!draining&&runTimeout(drainQueue)};function Item(fun,array){this.fun=fun,this.array=array}Item.prototype.run=function(){this.fun.apply(null,this.array)};process2.title="browser";process2.browser=!0;process2.env={};process2.argv=[];process2.version="";process2.versions={};function noop(){}process2.on=noop;process2.addListener=noop;process2.once=noop;process2.off=noop;process2.removeListener=noop;process2.removeAllListeners=noop;process2.emit=noop;process2.prependListener=noop;process2.prependOnceListener=noop;process2.listeners=function(name){return[]};process2.binding=function(name){throw new Error("process.binding is not supported")};process2.cwd=function(){return"/"};process2.chdir=function(dir){throw new Error("process.chdir is not supported")};process2.umask=function(){return 0}}});var import_buffer,import_process,_globalThis,init_shim=__esm({"node_modules/node-stdlib-browser/helpers/esbuild/shim.js"(){import_buffer=__toESM(require_buffer()),import_process=__toESM(require_browser()),_globalThis=function(Object2){function get(){var _global3=this||self;return delete Object2.prototype.__magic__,_global3}if(typeof globalThis=="object")return globalThis;if(this)return get();Object2.defineProperty(Object2.prototype,"__magic__",{configurable:!0,get});var _global2=__magic__;return _global2}(Object)}});var require_global=__commonJS({"node_modules/core-js/internals/global.js"(exports,module){"use strict";init_define_process_env();init_shim();var check=function(it){return it&&it.Math===Math&&it};module.exports=check(typeof globalThis=="object"&&globalThis)||check(typeof window=="object"&&window)||check(typeof self=="object"&&self)||check(typeof window=="object"&&window)||check(typeof exports=="object"&&exports)||function(){return this}()||Function("return this")()}});var require_fails=__commonJS({"node_modules/core-js/internals/fails.js"(exports,module){"use strict";init_define_process_env();init_shim();module.exports=function(exec){try{return!!exec()}catch(error){return!0}}}});var require_descriptors=__commonJS({"node_modules/core-js/internals/descriptors.js"(exports,module){"use strict";init_define_process_env();init_shim();var fails=require_fails();module.exports=!fails(function(){return Object.defineProperty({},1,{get:function(){return 7}})[1]!==7})}});var require_function_bind_native=__commonJS({"node_modules/core-js/internals/function-bind-native.js"(exports,module){"use strict";init_define_process_env();init_shim();var fails=require_fails();module.exports=!fails(function(){var test=(function(){}).bind();return typeof test!="function"||test.hasOwnProperty("prototype")})}});var require_function_call=__commonJS({"node_modules/core-js/internals/function-call.js"(exports,module){"use strict";init_define_process_env();init_shim();var NATIVE_BIND=require_function_bind_native(),call=Function.prototype.call;module.exports=NATIVE_BIND?call.bind(call):function(){return call.apply(call,arguments)}}});var require_object_property_is_enumerable=__commonJS({"node_modules/core-js/internals/object-property-is-enumerable.js"(exports){"use strict";init_define_process_env();init_shim();var $propertyIsEnumerable={}.propertyIsEnumerable,getOwnPropertyDescriptor=Object.getOwnPropertyDescriptor,NASHORN_BUG=getOwnPropertyDescriptor&&!$propertyIsEnumerable.call({1:2},1);exports.f=NASHORN_BUG?function(V){var descriptor=getOwnPropertyDescriptor(this,V);return!!descriptor&&descriptor.enumerable}:$propertyIsEnumerable}});var require_create_property_descriptor=__commonJS({"node_modules/core-js/internals/create-property-descriptor.js"(exports,module){"use strict";init_define_process_env();init_shim();module.exports=function(bitmap,value){return{enumerable:!(bitmap&1),configurable:!(bitmap&2),writable:!(bitmap&4),value}}}});var require_function_uncurry_this=__commonJS({"node_modules/core-js/internals/function-uncurry-this.js"(exports,module){"use strict";init_define_process_env();init_shim();var NATIVE_BIND=require_function_bind_native(),FunctionPrototype=Function.prototype,call=FunctionPrototype.call,uncurryThisWithBind=NATIVE_BIND&&FunctionPrototype.bind.bind(call,call);module.exports=NATIVE_BIND?uncurryThisWithBind:function(fn){return function(){return call.apply(fn,arguments)}}}});var require_classof_raw=__commonJS({"node_modules/core-js/internals/classof-raw.js"(exports,module){"use strict";init_define_process_env();init_shim();var uncurryThis=require_function_uncurry_this(),toString=uncurryThis({}.toString),stringSlice=uncurryThis("".slice);module.exports=function(it){return stringSlice(toString(it),8,-1)}}});var require_indexed_object=__commonJS({"node_modules/core-js/internals/indexed-object.js"(exports,module){"use strict";init_define_process_env();init_shim();var uncurryThis=require_function_uncurry_this(),fails=require_fails(),classof=require_classof_raw(),$Object=Object,split=uncurryThis("".split);module.exports=fails(function(){return!$Object("z").propertyIsEnumerable(0)})?function(it){return classof(it)==="String"?split(it,""):$Object(it)}:$Object}});var require_is_null_or_undefined=__commonJS({"node_modules/core-js/internals/is-null-or-undefined.js"(exports,module){"use strict";init_define_process_env();init_shim();module.exports=function(it){return it==null}}});var require_require_object_coercible=__commonJS({"node_modules/core-js/internals/require-object-coercible.js"(exports,module){"use strict";init_define_process_env();init_shim();var isNullOrUndefined=require_is_null_or_undefined(),$TypeError=TypeError;module.exports=function(it){if(isNullOrUndefined(it))throw new $TypeError("Can't call method on "+it);return it}}});var require_to_indexed_object=__commonJS({"node_modules/core-js/internals/to-indexed-object.js"(exports,module){"use strict";init_define_process_env();init_shim();var IndexedObject=require_indexed_object(),requireObjectCoercible=require_require_object_coercible();module.exports=function(it){return IndexedObject(requireObjectCoercible(it))}}});var require_is_callable=__commonJS({"node_modules/core-js/internals/is-callable.js"(exports,module){"use strict";init_define_process_env();init_shim();var documentAll=typeof document=="object"&&document.all;module.exports=typeof documentAll>"u"&&documentAll!==void 0?function(argument){return typeof argument=="function"||argument===documentAll}:function(argument){return typeof argument=="function"}}});var require_is_object=__commonJS({"node_modules/core-js/internals/is-object.js"(exports,module){"use strict";init_define_process_env();init_shim();var isCallable=require_is_callable();module.exports=function(it){return typeof it=="object"?it!==null:isCallable(it)}}});var require_get_built_in=__commonJS({"node_modules/core-js/internals/get-built-in.js"(exports,module){"use strict";init_define_process_env();init_shim();var global=require_global(),isCallable=require_is_callable(),aFunction=function(argument){return isCallable(argument)?argument:void 0};module.exports=function(namespace,method){return arguments.length<2?aFunction(global[namespace]):global[namespace]&&global[namespace][method]}}});var require_object_is_prototype_of=__commonJS({"node_modules/core-js/internals/object-is-prototype-of.js"(exports,module){"use strict";init_define_process_env();init_shim();var uncurryThis=require_function_uncurry_this();module.exports=uncurryThis({}.isPrototypeOf)}});var require_engine_user_agent=__commonJS({"node_modules/core-js/internals/engine-user-agent.js"(exports,module){"use strict";init_define_process_env();init_shim();module.exports=typeof navigator<"u"&&String(navigator.userAgent)||""}});var require_engine_v8_version=__commonJS({"node_modules/core-js/internals/engine-v8-version.js"(exports,module){"use strict";init_define_process_env();init_shim();var global=require_global(),userAgent=require_engine_user_agent(),process2=global.process,Deno=global.Deno,versions=process2&&process2.versions||Deno&&Deno.version,v8=versions&&versions.v8,match,version;v8&&(match=v8.split("."),version=match[0]>0&&match[0]<4?1:+(match[0]+match[1]));!version&&userAgent&&(match=userAgent.match(/Edge\/(\d+)/),(!match||match[1]>=74)&&(match=userAgent.match(/Chrome\/(\d+)/),match&&(version=+match[1])));module.exports=version}});var require_symbol_constructor_detection=__commonJS({"node_modules/core-js/internals/symbol-constructor-detection.js"(exports,module){"use strict";init_define_process_env();init_shim();var V8_VERSION=require_engine_v8_version(),fails=require_fails(),global=require_global(),$String=global.String;module.exports=!!Object.getOwnPropertySymbols&&!fails(function(){var symbol=Symbol("symbol detection");return!$String(symbol)||!(Object(symbol)instanceof Symbol)||!Symbol.sham&&V8_VERSION&&V8_VERSION<41})}});var require_use_symbol_as_uid=__commonJS({"node_modules/core-js/internals/use-symbol-as-uid.js"(exports,module){"use strict";init_define_process_env();init_shim();var NATIVE_SYMBOL=require_symbol_constructor_detection();module.exports=NATIVE_SYMBOL&&!Symbol.sham&&typeof Symbol.iterator=="symbol"}});var require_is_symbol=__commonJS({"node_modules/core-js/internals/is-symbol.js"(exports,module){"use strict";init_define_process_env();init_shim();var getBuiltIn=require_get_built_in(),isCallable=require_is_callable(),isPrototypeOf=require_object_is_prototype_of(),USE_SYMBOL_AS_UID=require_use_symbol_as_uid(),$Object=Object;module.exports=USE_SYMBOL_AS_UID?function(it){return typeof it=="symbol"}:function(it){var $Symbol=getBuiltIn("Symbol");return isCallable($Symbol)&&isPrototypeOf($Symbol.prototype,$Object(it))}}});var require_try_to_string=__commonJS({"node_modules/core-js/internals/try-to-string.js"(exports,module){"use strict";init_define_process_env();init_shim();var $String=String;module.exports=function(argument){try{return $String(argument)}catch(error){return"Object"}}}});var require_a_callable=__commonJS({"node_modules/core-js/internals/a-callable.js"(exports,module){"use strict";init_define_process_env();init_shim();var isCallable=require_is_callable(),tryToString=require_try_to_string(),$TypeError=TypeError;module.exports=function(argument){if(isCallable(argument))return argument;throw new $TypeError(tryToString(argument)+" is not a function")}}});var require_get_method=__commonJS({"node_modules/core-js/internals/get-method.js"(exports,module){"use strict";init_define_process_env();init_shim();var aCallable=require_a_callable(),isNullOrUndefined=require_is_null_or_undefined();module.exports=function(V,P){var func=V[P];return isNullOrUndefined(func)?void 0:aCallable(func)}}});var require_ordinary_to_primitive=__commonJS({"node_modules/core-js/internals/ordinary-to-primitive.js"(exports,module){"use strict";init_define_process_env();init_shim();var call=require_function_call(),isCallable=require_is_callable(),isObject=require_is_object(),$TypeError=TypeError;module.exports=function(input,pref){var fn,val;if(pref==="string"&&isCallable(fn=input.toString)&&!isObject(val=call(fn,input))||isCallable(fn=input.valueOf)&&!isObject(val=call(fn,input))||pref!=="string"&&isCallable(fn=input.toString)&&!isObject(val=call(fn,input)))return val;throw new $TypeError("Can't convert object to primitive value")}}});var require_is_pure=__commonJS({"node_modules/core-js/internals/is-pure.js"(exports,module){"use strict";init_define_process_env();init_shim();module.exports=!1}});var require_define_global_property=__commonJS({"node_modules/core-js/internals/define-global-property.js"(exports,module){"use strict";init_define_process_env();init_shim();var global=require_global(),defineProperty=Object.defineProperty;module.exports=function(key,value){try{defineProperty(global,key,{value,configurable:!0,writable:!0})}catch(error){global[key]=value}return value}}});var require_shared_store=__commonJS({"node_modules/core-js/internals/shared-store.js"(exports,module){"use strict";init_define_process_env();init_shim();var global=require_global(),defineGlobalProperty=require_define_global_property(),SHARED="__core-js_shared__",store=global[SHARED]||defineGlobalProperty(SHARED,{});module.exports=store}});var require_shared=__commonJS({"node_modules/core-js/internals/shared.js"(exports,module){"use strict";init_define_process_env();init_shim();var IS_PURE=require_is_pure(),store=require_shared_store();(module.exports=function(key,value){return store[key]||(store[key]=value!==void 0?value:{})})("versions",[]).push({version:"3.35.1",mode:IS_PURE?"pure":"global",copyright:"\xA9 2014-2024 Denis Pushkarev (zloirock.ru)",license:"https://github.com/zloirock/core-js/blob/v3.35.1/LICENSE",source:"https://github.com/zloirock/core-js"})}});var require_to_object=__commonJS({"node_modules/core-js/internals/to-object.js"(exports,module){"use strict";init_define_process_env();init_shim();var requireObjectCoercible=require_require_object_coercible(),$Object=Object;module.exports=function(argument){return $Object(requireObjectCoercible(argument))}}});var require_has_own_property=__commonJS({"node_modules/core-js/internals/has-own-property.js"(exports,module){"use strict";init_define_process_env();init_shim();var uncurryThis=require_function_uncurry_this(),toObject=require_to_object(),hasOwnProperty=uncurryThis({}.hasOwnProperty);module.exports=Object.hasOwn||function(it,key){return hasOwnProperty(toObject(it),key)}}});var require_uid=__commonJS({"node_modules/core-js/internals/uid.js"(exports,module){"use strict";init_define_process_env();init_shim();var uncurryThis=require_function_uncurry_this(),id=0,postfix=Math.random(),toString=uncurryThis(1 .toString);module.exports=function(key){return"Symbol("+(key===void 0?"":key)+")_"+toString(++id+postfix,36)}}});var require_well_known_symbol=__commonJS({"node_modules/core-js/internals/well-known-symbol.js"(exports,module){"use strict";init_define_process_env();init_shim();var global=require_global(),shared=require_shared(),hasOwn=require_has_own_property(),uid=require_uid(),NATIVE_SYMBOL=require_symbol_constructor_detection(),USE_SYMBOL_AS_UID=require_use_symbol_as_uid(),Symbol2=global.Symbol,WellKnownSymbolsStore=shared("wks"),createWellKnownSymbol=USE_SYMBOL_AS_UID?Symbol2.for||Symbol2:Symbol2&&Symbol2.withoutSetter||uid;module.exports=function(name){return hasOwn(WellKnownSymbolsStore,name)||(WellKnownSymbolsStore[name]=NATIVE_SYMBOL&&hasOwn(Symbol2,name)?Symbol2[name]:createWellKnownSymbol("Symbol."+name)),WellKnownSymbolsStore[name]}}});var require_to_primitive=__commonJS({"node_modules/core-js/internals/to-primitive.js"(exports,module){"use strict";init_define_process_env();init_shim();var call=require_function_call(),isObject=require_is_object(),isSymbol=require_is_symbol(),getMethod=require_get_method(),ordinaryToPrimitive=require_ordinary_to_primitive(),wellKnownSymbol=require_well_known_symbol(),$TypeError=TypeError,TO_PRIMITIVE=wellKnownSymbol("toPrimitive");module.exports=function(input,pref){if(!isObject(input)||isSymbol(input))return input;var exoticToPrim=getMethod(input,TO_PRIMITIVE),result;if(exoticToPrim){if(pref===void 0&&(pref="default"),result=call(exoticToPrim,input,pref),!isObject(result)||isSymbol(result))return result;throw new $TypeError("Can't convert object to primitive value")}return pref===void 0&&(pref="number"),ordinaryToPrimitive(input,pref)}}});var require_to_property_key=__commonJS({"node_modules/core-js/internals/to-property-key.js"(exports,module){"use strict";init_define_process_env();init_shim();var toPrimitive=require_to_primitive(),isSymbol=require_is_symbol();module.exports=function(argument){var key=toPrimitive(argument,"string");return isSymbol(key)?key:key+""}}});var require_document_create_element=__commonJS({"node_modules/core-js/internals/document-create-element.js"(exports,module){"use strict";init_define_process_env();init_shim();var global=require_global(),isObject=require_is_object(),document2=global.document,EXISTS=isObject(document2)&&isObject(document2.createElement);module.exports=function(it){return EXISTS?document2.createElement(it):{}}}});var require_ie8_dom_define=__commonJS({"node_modules/core-js/internals/ie8-dom-define.js"(exports,module){"use strict";init_define_process_env();init_shim();var DESCRIPTORS=require_descriptors(),fails=require_fails(),createElement=require_document_create_element();module.exports=!DESCRIPTORS&&!fails(function(){return Object.defineProperty(createElement("div"),"a",{get:function(){return 7}}).a!==7})}});var require_object_get_own_property_descriptor=__commonJS({"node_modules/core-js/internals/object-get-own-property-descriptor.js"(exports){"use strict";init_define_process_env();init_shim();var DESCRIPTORS=require_descriptors(),call=require_function_call(),propertyIsEnumerableModule=require_object_property_is_enumerable(),createPropertyDescriptor=require_create_property_descriptor(),toIndexedObject=require_to_indexed_object(),toPropertyKey=require_to_property_key(),hasOwn=require_has_own_property(),IE8_DOM_DEFINE=require_ie8_dom_define(),$getOwnPropertyDescriptor=Object.getOwnPropertyDescriptor;exports.f=DESCRIPTORS?$getOwnPropertyDescriptor:function(O,P){if(O=toIndexedObject(O),P=toPropertyKey(P),IE8_DOM_DEFINE)try{return $getOwnPropertyDescriptor(O,P)}catch(error){}if(hasOwn(O,P))return createPropertyDescriptor(!call(propertyIsEnumerableModule.f,O,P),O[P])}}});var require_v8_prototype_define_bug=__commonJS({"node_modules/core-js/internals/v8-prototype-define-bug.js"(exports,module){"use strict";init_define_process_env();init_shim();var DESCRIPTORS=require_descriptors(),fails=require_fails();module.exports=DESCRIPTORS&&fails(function(){return Object.defineProperty(function(){},"prototype",{value:42,writable:!1}).prototype!==42})}});var require_an_object=__commonJS({"node_modules/core-js/internals/an-object.js"(exports,module){"use strict";init_define_process_env();init_shim();var isObject=require_is_object(),$String=String,$TypeError=TypeError;module.exports=function(argument){if(isObject(argument))return argument;throw new $TypeError($String(argument)+" is not an object")}}});var require_object_define_property=__commonJS({"node_modules/core-js/internals/object-define-property.js"(exports){"use strict";init_define_process_env();init_shim();var DESCRIPTORS=require_descriptors(),IE8_DOM_DEFINE=require_ie8_dom_define(),V8_PROTOTYPE_DEFINE_BUG=require_v8_prototype_define_bug(),anObject=require_an_object(),toPropertyKey=require_to_property_key(),$TypeError=TypeError,$defineProperty=Object.defineProperty,$getOwnPropertyDescriptor=Object.getOwnPropertyDescriptor,ENUMERABLE="enumerable",CONFIGURABLE="configurable",WRITABLE="writable";exports.f=DESCRIPTORS?V8_PROTOTYPE_DEFINE_BUG?function(O,P,Attributes){if(anObject(O),P=toPropertyKey(P),anObject(Attributes),typeof O=="function"&&P==="prototype"&&"value"in Attributes&&WRITABLE in Attributes&&!Attributes[WRITABLE]){var current=$getOwnPropertyDescriptor(O,P);current&&current[WRITABLE]&&(O[P]=Attributes.value,Attributes={configurable:CONFIGURABLE in Attributes?Attributes[CONFIGURABLE]:current[CONFIGURABLE],enumerable:ENUMERABLE in Attributes?Attributes[ENUMERABLE]:current[ENUMERABLE],writable:!1})}return $defineProperty(O,P,Attributes)}:$defineProperty:function(O,P,Attributes){if(anObject(O),P=toPropertyKey(P),anObject(Attributes),IE8_DOM_DEFINE)try{return $defineProperty(O,P,Attributes)}catch(error){}if("get"in Attributes||"set"in Attributes)throw new $TypeError("Accessors not supported");return"value"in Attributes&&(O[P]=Attributes.value),O}}});var require_create_non_enumerable_property=__commonJS({"node_modules/core-js/internals/create-non-enumerable-property.js"(exports,module){"use strict";init_define_process_env();init_shim();var DESCRIPTORS=require_descriptors(),definePropertyModule=require_object_define_property(),createPropertyDescriptor=require_create_property_descriptor();module.exports=DESCRIPTORS?function(object,key,value){return definePropertyModule.f(object,key,createPropertyDescriptor(1,value))}:function(object,key,value){return object[key]=value,object}}});var require_function_name=__commonJS({"node_modules/core-js/internals/function-name.js"(exports,module){"use strict";init_define_process_env();init_shim();var DESCRIPTORS=require_descriptors(),hasOwn=require_has_own_property(),FunctionPrototype=Function.prototype,getDescriptor=DESCRIPTORS&&Object.getOwnPropertyDescriptor,EXISTS=hasOwn(FunctionPrototype,"name"),PROPER=EXISTS&&(function(){}).name==="something",CONFIGURABLE=EXISTS&&(!DESCRIPTORS||DESCRIPTORS&&getDescriptor(FunctionPrototype,"name").configurable);module.exports={EXISTS,PROPER,CONFIGURABLE}}});var require_inspect_source=__commonJS({"node_modules/core-js/internals/inspect-source.js"(exports,module){"use strict";init_define_process_env();init_shim();var uncurryThis=require_function_uncurry_this(),isCallable=require_is_callable(),store=require_shared_store(),functionToString=uncurryThis(Function.toString);isCallable(store.inspectSource)||(store.inspectSource=function(it){return functionToString(it)});module.exports=store.inspectSource}});var require_weak_map_basic_detection=__commonJS({"node_modules/core-js/internals/weak-map-basic-detection.js"(exports,module){"use strict";init_define_process_env();init_shim();var global=require_global(),isCallable=require_is_callable(),WeakMap=global.WeakMap;module.exports=isCallable(WeakMap)&&/native code/.test(String(WeakMap))}});var require_shared_key=__commonJS({"node_modules/core-js/internals/shared-key.js"(exports,module){"use strict";init_define_process_env();init_shim();var shared=require_shared(),uid=require_uid(),keys=shared("keys");module.exports=function(key){return keys[key]||(keys[key]=uid(key))}}});var require_hidden_keys=__commonJS({"node_modules/core-js/internals/hidden-keys.js"(exports,module){"use strict";init_define_process_env();init_shim();module.exports={}}});var require_internal_state=__commonJS({"node_modules/core-js/internals/internal-state.js"(exports,module){"use strict";init_define_process_env();init_shim();var NATIVE_WEAK_MAP=require_weak_map_basic_detection(),global=require_global(),isObject=require_is_object(),createNonEnumerableProperty=require_create_non_enumerable_property(),hasOwn=require_has_own_property(),shared=require_shared_store(),sharedKey=require_shared_key(),hiddenKeys=require_hidden_keys(),OBJECT_ALREADY_INITIALIZED="Object already initialized",TypeError2=global.TypeError,WeakMap=global.WeakMap,set,get,has,enforce=function(it){return has(it)?get(it):set(it,{})},getterFor=function(TYPE){return function(it){var state;if(!isObject(it)||(state=get(it)).type!==TYPE)throw new TypeError2("Incompatible receiver, "+TYPE+" required");return state}};NATIVE_WEAK_MAP||shared.state?(store=shared.state||(shared.state=new WeakMap),store.get=store.get,store.has=store.has,store.set=store.set,set=function(it,metadata){if(store.has(it))throw new TypeError2(OBJECT_ALREADY_INITIALIZED);return metadata.facade=it,store.set(it,metadata),metadata},get=function(it){return store.get(it)||{}},has=function(it){return store.has(it)}):(STATE=sharedKey("state"),hiddenKeys[STATE]=!0,set=function(it,metadata){if(hasOwn(it,STATE))throw new TypeError2(OBJECT_ALREADY_INITIALIZED);return metadata.facade=it,createNonEnumerableProperty(it,STATE,metadata),metadata},get=function(it){return hasOwn(it,STATE)?it[STATE]:{}},has=function(it){return hasOwn(it,STATE)});var store,STATE;module.exports={set,get,has,enforce,getterFor}}});var require_make_built_in=__commonJS({"node_modules/core-js/internals/make-built-in.js"(exports,module){"use strict";init_define_process_env();init_shim();var uncurryThis=require_function_uncurry_this(),fails=require_fails(),isCallable=require_is_callable(),hasOwn=require_has_own_property(),DESCRIPTORS=require_descriptors(),CONFIGURABLE_FUNCTION_NAME=require_function_name().CONFIGURABLE,inspectSource=require_inspect_source(),InternalStateModule=require_internal_state(),enforceInternalState=InternalStateModule.enforce,getInternalState=InternalStateModule.get,$String=String,defineProperty=Object.defineProperty,stringSlice=uncurryThis("".slice),replace=uncurryThis("".replace),join=uncurryThis([].join),CONFIGURABLE_LENGTH=DESCRIPTORS&&!fails(function(){return defineProperty(function(){},"length",{value:8}).length!==8}),TEMPLATE=String(String).split("String"),makeBuiltIn=module.exports=function(value,name,options){stringSlice($String(name),0,7)==="Symbol("&&(name="["+replace($String(name),/^Symbol\(([^)]*)\).*$/,"$1")+"]"),options&&options.getter&&(name="get "+name),options&&options.setter&&(name="set "+name),(!hasOwn(value,"name")||CONFIGURABLE_FUNCTION_NAME&&value.name!==name)&&(DESCRIPTORS?defineProperty(value,"name",{value:name,configurable:!0}):value.name=name),CONFIGURABLE_LENGTH&&options&&hasOwn(options,"arity")&&value.length!==options.arity&&defineProperty(value,"length",{value:options.arity});try{options&&hasOwn(options,"constructor")&&options.constructor?DESCRIPTORS&&defineProperty(value,"prototype",{writable:!1}):value.prototype&&(value.prototype=void 0)}catch(error){}var state=enforceInternalState(value);return hasOwn(state,"source")||(state.source=join(TEMPLATE,typeof name=="string"?name:"")),value};Function.prototype.toString=makeBuiltIn(function(){return isCallable(this)&&getInternalState(this).source||inspectSource(this)},"toString")}});var require_define_built_in=__commonJS({"node_modules/core-js/internals/define-built-in.js"(exports,module){"use strict";init_define_process_env();init_shim();var isCallable=require_is_callable(),definePropertyModule=require_object_define_property(),makeBuiltIn=require_make_built_in(),defineGlobalProperty=require_define_global_property();module.exports=function(O,key,value,options){options||(options={});var simple=options.enumerable,name=options.name!==void 0?options.name:key;if(isCallable(value)&&makeBuiltIn(value,name,options),options.global)simple?O[key]=value:defineGlobalProperty(key,value);else{try{options.unsafe?O[key]&&(simple=!0):delete O[key]}catch(error){}simple?O[key]=value:definePropertyModule.f(O,key,{value,enumerable:!1,configurable:!options.nonConfigurable,writable:!options.nonWritable})}return O}}});var require_math_trunc=__commonJS({"node_modules/core-js/internals/math-trunc.js"(exports,module){"use strict";init_define_process_env();init_shim();var ceil=Math.ceil,floor=Math.floor;module.exports=Math.trunc||function(x){var n=+x;return(n>0?floor:ceil)(n)}}});var require_to_integer_or_infinity=__commonJS({"node_modules/core-js/internals/to-integer-or-infinity.js"(exports,module){"use strict";init_define_process_env();init_shim();var trunc=require_math_trunc();module.exports=function(argument){var number=+argument;return number!==number||number===0?0:trunc(number)}}});var require_to_absolute_index=__commonJS({"node_modules/core-js/internals/to-absolute-index.js"(exports,module){"use strict";init_define_process_env();init_shim();var toIntegerOrInfinity=require_to_integer_or_infinity(),max=Math.max,min=Math.min;module.exports=function(index,length){var integer=toIntegerOrInfinity(index);return integer<0?max(integer+length,0):min(integer,length)}}});var require_to_length=__commonJS({"node_modules/core-js/internals/to-length.js"(exports,module){"use strict";init_define_process_env();init_shim();var toIntegerOrInfinity=require_to_integer_or_infinity(),min=Math.min;module.exports=function(argument){var len=toIntegerOrInfinity(argument);return len>0?min(len,9007199254740991):0}}});var require_length_of_array_like=__commonJS({"node_modules/core-js/internals/length-of-array-like.js"(exports,module){"use strict";init_define_process_env();init_shim();var toLength=require_to_length();module.exports=function(obj){return toLength(obj.length)}}});var require_array_includes=__commonJS({"node_modules/core-js/internals/array-includes.js"(exports,module){"use strict";init_define_process_env();init_shim();var toIndexedObject=require_to_indexed_object(),toAbsoluteIndex=require_to_absolute_index(),lengthOfArrayLike=require_length_of_array_like(),createMethod=function(IS_INCLUDES){return function($this,el,fromIndex){var O=toIndexedObject($this),length=lengthOfArrayLike(O),index=toAbsoluteIndex(fromIndex,length),value;if(IS_INCLUDES&&el!==el){for(;length>index;)if(value=O[index++],value!==value)return!0}else for(;length>index;index++)if((IS_INCLUDES||index in O)&&O[index]===el)return IS_INCLUDES||index||0;return!IS_INCLUDES&&-1}};module.exports={includes:createMethod(!0),indexOf:createMethod(!1)}}});var require_object_keys_internal=__commonJS({"node_modules/core-js/internals/object-keys-internal.js"(exports,module){"use strict";init_define_process_env();init_shim();var uncurryThis=require_function_uncurry_this(),hasOwn=require_has_own_property(),toIndexedObject=require_to_indexed_object(),indexOf=require_array_includes().indexOf,hiddenKeys=require_hidden_keys(),push=uncurryThis([].push);module.exports=function(object,names){var O=toIndexedObject(object),i=0,result=[],key;for(key in O)!hasOwn(hiddenKeys,key)&&hasOwn(O,key)&&push(result,key);for(;names.length>i;)hasOwn(O,key=names[i++])&&(~indexOf(result,key)||push(result,key));return result}}});var require_enum_bug_keys=__commonJS({"node_modules/core-js/internals/enum-bug-keys.js"(exports,module){"use strict";init_define_process_env();init_shim();module.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]}});var require_object_get_own_property_names=__commonJS({"node_modules/core-js/internals/object-get-own-property-names.js"(exports){"use strict";init_define_process_env();init_shim();var internalObjectKeys=require_object_keys_internal(),enumBugKeys=require_enum_bug_keys(),hiddenKeys=enumBugKeys.concat("length","prototype");exports.f=Object.getOwnPropertyNames||function(O){return internalObjectKeys(O,hiddenKeys)}}});var require_object_get_own_property_symbols=__commonJS({"node_modules/core-js/internals/object-get-own-property-symbols.js"(exports){"use strict";init_define_process_env();init_shim();exports.f=Object.getOwnPropertySymbols}});var require_own_keys=__commonJS({"node_modules/core-js/internals/own-keys.js"(exports,module){"use strict";init_define_process_env();init_shim();var getBuiltIn=require_get_built_in(),uncurryThis=require_function_uncurry_this(),getOwnPropertyNamesModule=require_object_get_own_property_names(),getOwnPropertySymbolsModule=require_object_get_own_property_symbols(),anObject=require_an_object(),concat=uncurryThis([].concat);module.exports=getBuiltIn("Reflect","ownKeys")||function(it){var keys=getOwnPropertyNamesModule.f(anObject(it)),getOwnPropertySymbols=getOwnPropertySymbolsModule.f;return getOwnPropertySymbols?concat(keys,getOwnPropertySymbols(it)):keys}}});var require_copy_constructor_properties=__commonJS({"node_modules/core-js/internals/copy-constructor-properties.js"(exports,module){"use strict";init_define_process_env();init_shim();var hasOwn=require_has_own_property(),ownKeys=require_own_keys(),getOwnPropertyDescriptorModule=require_object_get_own_property_descriptor(),definePropertyModule=require_object_define_property();module.exports=function(target,source,exceptions){for(var keys=ownKeys(source),defineProperty=definePropertyModule.f,getOwnPropertyDescriptor=getOwnPropertyDescriptorModule.f,i=0;i<keys.length;i++){var key=keys[i];!hasOwn(target,key)&&!(exceptions&&hasOwn(exceptions,key))&&defineProperty(target,key,getOwnPropertyDescriptor(source,key))}}}});var require_is_forced=__commonJS({"node_modules/core-js/internals/is-forced.js"(exports,module){"use strict";init_define_process_env();init_shim();var fails=require_fails(),isCallable=require_is_callable(),replacement=/#|\.prototype\./,isForced=function(feature,detection){var value=data[normalize(feature)];return value===POLYFILL?!0:value===NATIVE?!1:isCallable(detection)?fails(detection):!!detection},normalize=isForced.normalize=function(string){return String(string).replace(replacement,".").toLowerCase()},data=isForced.data={},NATIVE=isForced.NATIVE="N",POLYFILL=isForced.POLYFILL="P";module.exports=isForced}});var require_export=__commonJS({"node_modules/core-js/internals/export.js"(exports,module){"use strict";init_define_process_env();init_shim();var global=require_global(),getOwnPropertyDescriptor=require_object_get_own_property_descriptor().f,createNonEnumerableProperty=require_create_non_enumerable_property(),defineBuiltIn=require_define_built_in(),defineGlobalProperty=require_define_global_property(),copyConstructorProperties=require_copy_constructor_properties(),isForced=require_is_forced();module.exports=function(options,source){var TARGET=options.target,GLOBAL=options.global,STATIC=options.stat,FORCED,target,key,targetProperty,sourceProperty,descriptor;if(GLOBAL?target=global:STATIC?target=global[TARGET]||defineGlobalProperty(TARGET,{}):target=global[TARGET]&&global[TARGET].prototype,target)for(key in source){if(sourceProperty=source[key],options.dontCallGetSet?(descriptor=getOwnPropertyDescriptor(target,key),targetProperty=descriptor&&descriptor.value):targetProperty=target[key],FORCED=isForced(GLOBAL?key:TARGET+(STATIC?".":"#")+key,options.forced),!FORCED&&targetProperty!==void 0){if(typeof sourceProperty==typeof targetProperty)continue;copyConstructorProperties(sourceProperty,targetProperty)}(options.sham||targetProperty&&targetProperty.sham)&&createNonEnumerableProperty(sourceProperty,"sham",!0),defineBuiltIn(target,key,sourceProperty,options)}}}});var require_to_string_tag_support=__commonJS({"node_modules/core-js/internals/to-string-tag-support.js"(exports,module){"use strict";init_define_process_env();init_shim();var wellKnownSymbol=require_well_known_symbol(),TO_STRING_TAG=wellKnownSymbol("toStringTag"),test={};test[TO_STRING_TAG]="z";module.exports=String(test)==="[object z]"}});var require_classof=__commonJS({"node_modules/core-js/internals/classof.js"(exports,module){"use strict";init_define_process_env();init_shim();var TO_STRING_TAG_SUPPORT=require_to_string_tag_support(),isCallable=require_is_callable(),classofRaw=require_classof_raw(),wellKnownSymbol=require_well_known_symbol(),TO_STRING_TAG=wellKnownSymbol("toStringTag"),$Object=Object,CORRECT_ARGUMENTS=classofRaw(function(){return arguments}())==="Arguments",tryGet=function(it,key){try{return it[key]}catch(error){}};module.exports=TO_STRING_TAG_SUPPORT?classofRaw:function(it){var O,tag,result;return it===void 0?"Undefined":it===null?"Null":typeof(tag=tryGet(O=$Object(it),TO_STRING_TAG))=="string"?tag:CORRECT_ARGUMENTS?classofRaw(O):(result=classofRaw(O))==="Object"&&isCallable(O.callee)?"Arguments":result}}});var require_to_string=__commonJS({"node_modules/core-js/internals/to-string.js"(exports,module){"use strict";init_define_process_env();init_shim();var classof=require_classof(),$String=String;module.exports=function(argument){if(classof(argument)==="Symbol")throw new TypeError("Cannot convert a Symbol value to a string");return $String(argument)}}});var require_regexp_flags=__commonJS({"node_modules/core-js/internals/regexp-flags.js"(exports,module){"use strict";init_define_process_env();init_shim();var anObject=require_an_object();module.exports=function(){var that=anObject(this),result="";return that.hasIndices&&(result+="d"),that.global&&(result+="g"),that.ignoreCase&&(result+="i"),that.multiline&&(result+="m"),that.dotAll&&(result+="s"),that.unicode&&(result+="u"),that.unicodeSets&&(result+="v"),that.sticky&&(result+="y"),result}}});var require_regexp_sticky_helpers=__commonJS({"node_modules/core-js/internals/regexp-sticky-helpers.js"(exports,module){"use strict";init_define_process_env();init_shim();var fails=require_fails(),global=require_global(),$RegExp=global.RegExp,UNSUPPORTED_Y=fails(function(){var re=$RegExp("a","y");return re.lastIndex=2,re.exec("abcd")!==null}),MISSED_STICKY=UNSUPPORTED_Y||fails(function(){return!$RegExp("a","y").sticky}),BROKEN_CARET=UNSUPPORTED_Y||fails(function(){var re=$RegExp("^r","gy");return re.lastIndex=2,re.exec("str")!==null});module.exports={BROKEN_CARET,MISSED_STICKY,UNSUPPORTED_Y}}});var require_object_keys=__commonJS({"node_modules/core-js/internals/object-keys.js"(exports,module){"use strict";init_define_process_env();init_shim();var internalObjectKeys=require_object_keys_internal(),enumBugKeys=require_enum_bug_keys();module.exports=Object.keys||function(O){return internalObjectKeys(O,enumBugKeys)}}});var require_object_define_properties=__commonJS({"node_modules/core-js/internals/object-define-properties.js"(exports){"use strict";init_define_process_env();init_shim();var DESCRIPTORS=require_descriptors(),V8_PROTOTYPE_DEFINE_BUG=require_v8_prototype_define_bug(),definePropertyModule=require_object_define_property(),anObject=require_an_object(),toIndexedObject=require_to_indexed_object(),objectKeys=require_object_keys();exports.f=DESCRIPTORS&&!V8_PROTOTYPE_DEFINE_BUG?Object.defineProperties:function(O,Properties){anObject(O);for(var props=toIndexedObject(Properties),keys=objectKeys(Properties),length=keys.length,index=0,key;length>index;)definePropertyModule.f(O,key=keys[index++],props[key]);return O}}});var require_html=__commonJS({"node_modules/core-js/internals/html.js"(exports,module){"use strict";init_define_process_env();init_shim();var getBuiltIn=require_get_built_in();module.exports=getBuiltIn("document","documentElement")}});var require_object_create=__commonJS({"node_modules/core-js/internals/object-create.js"(exports,module){"use strict";init_define_process_env();init_shim();var anObject=require_an_object(),definePropertiesModule=require_object_define_properties(),enumBugKeys=require_enum_bug_keys(),hiddenKeys=require_hidden_keys(),html=require_html(),documentCreateElement=require_document_create_element(),sharedKey=require_shared_key(),GT=">",LT="<",PROTOTYPE="prototype",SCRIPT="script",IE_PROTO=sharedKey("IE_PROTO"),EmptyConstructor=function(){},scriptTag=function(content){return LT+SCRIPT+GT+content+LT+"/"+SCRIPT+GT},NullProtoObjectViaActiveX=function(activeXDocument2){activeXDocument2.write(scriptTag("")),activeXDocument2.close();var temp=activeXDocument2.parentWindow.Object;return activeXDocument2=null,temp},NullProtoObjectViaIFrame=function(){var iframe=documentCreateElement("iframe"),JS="java"+SCRIPT+":",iframeDocument;return iframe.style.display="none",html.appendChild(iframe),iframe.src=String(JS),iframeDocument=iframe.contentWindow.document,iframeDocument.open(),iframeDocument.write(scriptTag("document.F=Object")),iframeDocument.close(),iframeDocument.F},activeXDocument,NullProtoObject=function(){try{activeXDocument=new ActiveXObject("htmlfile")}catch(error){}NullProtoObject=typeof document<"u"?document.domain&&activeXDocument?NullProtoObjectViaActiveX(activeXDocument):NullProtoObjectViaIFrame():NullProtoObjectViaActiveX(activeXDocument);for(var length=enumBugKeys.length;length--;)delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];return NullProtoObject()};hiddenKeys[IE_PROTO]=!0;module.exports=Object.create||function(O,Properties){var result;return O!==null?(EmptyConstructor[PROTOTYPE]=anObject(O),result=new EmptyConstructor,EmptyConstructor[PROTOTYPE]=null,result[IE_PROTO]=O):result=NullProtoObject(),Properties===void 0?result:definePropertiesModule.f(result,Properties)}}});var require_regexp_unsupported_dot_all=__commonJS({"node_modules/core-js/internals/regexp-unsupported-dot-all.js"(exports,module){"use strict";init_define_process_env();init_shim();var fails=require_fails(),global=require_global(),$RegExp=global.RegExp;module.exports=fails(function(){var re=$RegExp(".","s");return!(re.dotAll&&re.test("\n")&&re.flags==="s")})}});var require_regexp_unsupported_ncg=__commonJS({"node_modules/core-js/internals/regexp-unsupported-ncg.js"(exports,module){"use strict";init_define_process_env();init_shim();var fails=require_fails(),global=require_global(),$RegExp=global.RegExp;module.exports=fails(function(){var re=$RegExp("(?<a>b)","g");return re.exec("b").groups.a!=="b"||"b".replace(re,"$<a>c")!=="bc"})}});var require_regexp_exec=__commonJS({"node_modules/core-js/internals/regexp-exec.js"(exports,module){"use strict";init_define_process_env();init_shim();var call=require_function_call(),uncurryThis=require_function_uncurry_this(),toString=require_to_string(),regexpFlags=require_regexp_flags(),stickyHelpers=require_regexp_sticky_helpers(),shared=require_shared(),create=require_object_create(),getInternalState=require_internal_state().get,UNSUPPORTED_DOT_ALL=require_regexp_unsupported_dot_all(),UNSUPPORTED_NCG=require_regexp_unsupported_ncg(),nativeReplace=shared("native-string-replace",String.prototype.replace),nativeExec=RegExp.prototype.exec,patchedExec=nativeExec,charAt=uncurryThis("".charAt),indexOf=uncurryThis("".indexOf),replace=uncurryThis("".replace),stringSlice=uncurryThis("".slice),UPDATES_LAST_INDEX_WRONG=function(){var re1=/a/,re2=/b*/g;return call(nativeExec,re1,"a"),call(nativeExec,re2,"a"),re1.lastIndex!==0||re2.lastIndex!==0}(),UNSUPPORTED_Y=stickyHelpers.BROKEN_CARET,NPCG_INCLUDED=/()??/.exec("")[1]!==void 0,PATCH=UPDATES_LAST_INDEX_WRONG||NPCG_INCLUDED||UNSUPPORTED_Y||UNSUPPORTED_DOT_ALL||UNSUPPORTED_NCG;PATCH&&(patchedExec=function(string){var re=this,state=getInternalState(re),str=toString(string),raw=state.raw,result,reCopy,lastIndex,match,i,object,group;if(raw)return raw.lastIndex=re.lastIndex,result=call(patchedExec,raw,str),re.lastIndex=raw.lastIndex,result;var groups=state.groups,sticky=UNSUPPORTED_Y&&re.sticky,flags=call(regexpFlags,re),source=re.source,charsAdded=0,strCopy=str;if(sticky&&(flags=replace(flags,"y",""),indexOf(flags,"g")===-1&&(flags+="g"),strCopy=stringSlice(str,re.lastIndex),re.lastIndex>0&&(!re.multiline||re.multiline&&charAt(str,re.lastIndex-1)!=="\n")&&(source="(?: "+source+")",strCopy=" "+strCopy,charsAdded++),reCopy=new RegExp("^(?:"+source+")",flags)),NPCG_INCLUDED&&(reCopy=new RegExp("^"+source+"$(?!\\s)",flags)),UPDATES_LAST_INDEX_WRONG&&(lastIndex=re.lastIndex),match=call(nativeExec,sticky?reCopy:re,strCopy),sticky?match?(match.input=stringSlice(match.input,charsAdded),match[0]=stringSlice(match[0],charsAdded),match.index=re.lastIndex,re.lastIndex+=match[0].length):re.lastIndex=0:UPDATES_LAST_INDEX_WRONG&&match&&(re.lastIndex=re.global?match.index+match[0].length:lastIndex),NPCG_INCLUDED&&match&&match.length>1&&call(nativeReplace,match[0],reCopy,function(){for(i=1;i<arguments.length-2;i++)arguments[i]===void 0&&(match[i]=void 0)}),match&&groups)for(match.groups=object=create(null),i=0;i<groups.length;i++)group=groups[i],object[group[0]]=match[group[1]];return match});module.exports=patchedExec}});var require_es_regexp_exec=__commonJS({"node_modules/core-js/modules/es.regexp.exec.js"(){"use strict";init_define_process_env();init_shim();var $=require_export(),exec=require_regexp_exec();$({target:"RegExp",proto:!0,forced:/./.exec!==exec},{exec})}});var require_fix_regexp_well_known_symbol_logic=__commonJS({"node_modules/core-js/internals/fix-regexp-well-known-symbol-logic.js"(exports,module){"use strict";init_define_process_env();init_shim();require_es_regexp_exec();var call=require_function_call(),defineBuiltIn=require_define_built_in(),regexpExec=require_regexp_exec(),fails=require_fails(),wellKnownSymbol=require_well_known_symbol(),createNonEnumerableProperty=require_create_non_enumerable_property(),SPECIES=wellKnownSymbol("species"),RegExpPrototype=RegExp.prototype;module.exports=function(KEY,exec,FORCED,SHAM){var SYMBOL=wellKnownSymbol(KEY),DELEGATES_TO_SYMBOL=!fails(function(){var O={};return O[SYMBOL]=function(){return 7},""[KEY](O)!==7}),DELEGATES_TO_EXEC=DELEGATES_TO_SYMBOL&&!fails(function(){var execCalled=!1,re=/a/;return KEY==="split"&&(re={},re.constructor={},re.constructor[SPECIES]=function(){return re},re.flags="",re[SYMBOL]=/./[SYMBOL]),re.exec=function(){return execCalled=!0,null},re[SYMBOL](""),!execCalled});if(!DELEGATES_TO_SYMBOL||!DELEGATES_TO_EXEC||FORCED){var nativeRegExpMethod=/./[SYMBOL],methods=exec(SYMBOL,""[KEY],function(nativeMethod,regexp,str,arg2,forceStringMethod){var $exec=regexp.exec;return $exec===regexpExec||$exec===RegExpPrototype.exec?DELEGATES_TO_SYMBOL&&!forceStringMethod?{done:!0,value:call(nativeRegExpMethod,regexp,str,arg2)}:{done:!0,value:call(nativeMethod,str,regexp,arg2)}:{done:!1}});defineBuiltIn(String.prototype,KEY,methods[0]),defineBuiltIn(RegExpPrototype,SYMBOL,methods[1])}SHAM&&createNonEnumerableProperty(RegExpPrototype[SYMBOL],"sham",!0)}}});var require_same_value=__commonJS({"node_modules/core-js/internals/same-value.js"(exports,module){"use strict";init_define_process_env();init_shim();module.exports=Object.is||function(x,y){return x===y?x!==0||1/x===1/y:x!==x&&y!==y}}});var require_regexp_exec_abstract=__commonJS({"node_modules/core-js/internals/regexp-exec-abstract.js"(exports,module){"use strict";init_define_process_env();init_shim();var call=require_function_call(),anObject=require_an_object(),isCallable=require_is_callable(),classof=require_classof_raw(),regexpExec=require_regexp_exec(),$TypeError=TypeError;module.exports=function(R,S){var exec=R.exec;if(isCallable(exec)){var result=call(exec,R,S);return result!==null&&anObject(result),result}if(classof(R)==="RegExp")return call(regexpExec,R,S);throw new $TypeError("RegExp#exec called on incompatible receiver")}}});var require_es_string_search=__commonJS({"node_modules/core-js/modules/es.string.search.js"(){"use strict";init_define_process_env();init_shim();var call=require_function_call(),fixRegExpWellKnownSymbolLogic=require_fix_regexp_well_known_symbol_logic(),anObject=require_an_object(),isNullOrUndefined=require_is_null_or_undefined(),requireObjectCoercible=require_require_object_coercible(),sameValue=require_same_value(),toString=require_to_string(),getMethod=require_get_method(),regExpExec=require_regexp_exec_abstract();fixRegExpWellKnownSymbolLogic("search",function(SEARCH,nativeSearch,maybeCallNative){return[function(regexp){var O=requireObjectCoercible(this),searcher=isNullOrUndefined(regexp)?void 0:getMethod(regexp,SEARCH);return searcher?call(searcher,regexp,O):new RegExp(regexp)[SEARCH](toString(O))},function(string){var rx=anObject(this),S=toString(string),res=maybeCallNative(nativeSearch,rx,S);if(res.done)return res.value;var previousLastIndex=rx.lastIndex;sameValue(previousLastIndex,0)||(rx.lastIndex=0);var result=regExpExec(rx,S);return sameValue(rx.lastIndex,previousLastIndex)||(rx.lastIndex=previousLastIndex),result===null?-1:result.index}]})}});var require_correct_prototype_getter=__commonJS({"node_modules/core-js/internals/correct-prototype-getter.js"(exports,module){"use strict";init_define_process_env();init_shim();var fails=require_fails();module.exports=!fails(function(){function F(){}return F.prototype.constructor=null,Object.getPrototypeOf(new F)!==F.prototype})}});var require_object_get_prototype_of=__commonJS({"node_modules/core-js/internals/object-get-prototype-of.js"(exports,module){"use strict";init_define_process_env();init_shim();var hasOwn=require_has_own_property(),isCallable=require_is_callable(),toObject=require_to_object(),sharedKey=require_shared_key(),CORRECT_PROTOTYPE_GETTER=require_correct_prototype_getter(),IE_PROTO=sharedKey("IE_PROTO"),$Object=Object,ObjectPrototype=$Object.prototype;module.exports=CORRECT_PROTOTYPE_GETTER?$Object.getPrototypeOf:function(O){var object=toObject(O);if(hasOwn(object,IE_PROTO))return object[IE_PROTO];var constructor=object.constructor;return isCallable(constructor)&&object instanceof constructor?constructor.prototype:object instanceof $Object?ObjectPrototype:null}}});var require_object_to_array=__commonJS({"node_modules/core-js/internals/object-to-array.js"(exports,module){"use strict";init_define_process_env();init_shim();var DESCRIPTORS=require_descriptors(),fails=require_fails(),uncurryThis=require_function_uncurry_this(),objectGetPrototypeOf=require_object_get_prototype_of(),objectKeys=require_object_keys(),toIndexedObject=require_to_indexed_object(),$propertyIsEnumerable=require_object_property_is_enumerable().f,propertyIsEnumerable=uncurryThis($propertyIsEnumerable),push=uncurryThis([].push),IE_BUG=DESCRIPTORS&&fails(function(){var O=Object.create(null);return O[2]=2,!propertyIsEnumerable(O,2)}),createMethod=function(TO_ENTRIES){return function(it){for(var O=toIndexedObject(it),keys=objectKeys(O),IE_WORKAROUND=IE_BUG&&objectGetPrototypeOf(O)===null,length=keys.length,i=0,result=[],key;length>i;)key=keys[i++],(!DESCRIPTORS||(IE_WORKAROUND?key in O:propertyIsEnumerable(O,key)))&&push(result,TO_ENTRIES?[key,O[key]]:O[key]);return result}};module.exports={entries:createMethod(!0),values:createMethod(!1)}}});var require_es_object_entries=__commonJS({"node_modules/core-js/modules/es.object.entries.js"(){"use strict";init_define_process_env();init_shim();var $=require_export(),$entries=require_object_to_array().entries;$({target:"Object",stat:!0},{entries:function(O){return $entries(O)}})}});var require_function_apply=__commonJS({"node_modules/core-js/internals/function-apply.js"(exports,module){"use strict";init_define_process_env();init_shim();var NATIVE_BIND=require_function_bind_native(),FunctionPrototype=Function.prototype,apply=FunctionPrototype.apply,call=FunctionPrototype.call;module.exports=typeof Reflect=="object"&&Reflect.apply||(NATIVE_BIND?call.bind(apply):function(){return call.apply(apply,arguments)})}});var require_array_slice=__commonJS({"node_modules/core-js/internals/array-slice.js"(exports,module){"use strict";init_define_process_env();init_shim();var uncurryThis=require_function_uncurry_this();module.exports=uncurryThis([].slice)}});var require_is_array=__commonJS({"node_modules/core-js/internals/is-array.js"(exports,module){"use strict";init_define_process_env();init_shim();var classof=require_classof_raw();module.exports=Array.isArray||function(argument){return classof(argument)==="Array"}}});var require_get_json_replacer_function=__commonJS({"node_modules/core-js/internals/get-json-replacer-function.js"(exports,module){"use strict";init_define_process_env();init_shim();var uncurryThis=require_function_uncurry_this(),isArray=require_is_array(),isCallable=require_is_callable(),classof=require_classof_raw(),toString=require_to_string(),push=uncurryThis([].push);module.exports=function(replacer){if(isCallable(replacer))return replacer;if(isArray(replacer)){for(var rawLength=replacer.length,keys=[],i=0;i<rawLength;i++){var element=replacer[i];typeof element=="string"?push(keys,element):(typeof element=="number"||classof(element)==="Number"||classof(element)==="String")&&push(keys,toString(element))}var keysLength=keys.length,root=!0;return function(key,value){if(root)return root=!1,value;if(isArray(this))return value;for(var j=0;j<keysLength;j++)if(keys[j]===key)return value}}}}});var require_es_json_stringify=__commonJS({"node_modules/core-js/modules/es.json.stringify.js"(){"use strict";init_define_process_env();init_shim();var $=require_export(),getBuiltIn=require_get_built_in(),apply=require_function_apply(),call=require_function_call(),uncurryThis=require_function_uncurry_this(),fails=require_fails(),isCallable=require_is_callable(),isSymbol=require_is_symbol(),arraySlice=require_array_slice(),getReplacerFunction=require_get_json_replacer_function(),NATIVE_SYMBOL=require_symbol_constructor_detection(),$String=String,$stringify=getBuiltIn("JSON","stringify"),exec=uncurryThis(/./.exec),charAt=uncurryThis("".charAt),charCodeAt=uncurryThis("".charCodeAt),replace=uncurryThis("".replace),numberToString=uncurryThis(1 .toString),tester=/[\uD800-\uDFFF]/g,low=/^[\uD800-\uDBFF]$/,hi=/^[\uDC00-\uDFFF]$/,WRONG_SYMBOLS_CONVERSION=!NATIVE_SYMBOL||fails(function(){var symbol=getBuiltIn("Symbol")("stringify detection");return $stringify([symbol])!=="[null]"||$stringify({a:symbol})!=="{}"||$stringify(Object(symbol))!=="{}"}),ILL_FORMED_UNICODE=fails(function(){return $stringify("\uDF06\uD834")!=='"\\udf06\\ud834"'||$stringify("\uDEAD")!=='"\\udead"'}),stringifyWithSymbolsFix=function(it,replacer){var args=arraySlice(arguments),$replacer=getReplacerFunction(replacer);if(!(!isCallable($replacer)&&(it===void 0||isSymbol(it))))return args[1]=function(key,value){if(isCallable($replacer)&&(value=call($replacer,this,$String(key),value)),!isSymbol(value))return value},apply($stringify,null,args)},fixIllFormed=function(match,offset,string){var prev=charAt(string,offset-1),next=charAt(string,offset+1);return exec(low,match)&&!exec(hi,next)||exec(hi,match)&&!exec(low,prev)?"\\u"+numberToString(charCodeAt(match,0),16):match};$stringify&&$({target:"JSON",stat:!0,arity:3,forced:WRONG_SYMBOLS_CONVERSION||ILL_FORMED_UNICODE},{stringify:function(it,replacer,space){var args=arraySlice(arguments),result=apply(WRONG_SYMBOLS_CONVERSION?stringifyWithSymbolsFix:$stringify,null,args);return ILL_FORMED_UNICODE&&typeof result=="string"?replace(result,tester,fixIllFormed):result}})}});var require_es_object_values=__commonJS({"node_modules/core-js/modules/es.object.values.js"(){"use strict";init_define_process_env();init_shim();var $=require_export(),$values=require_object_to_array().values;$({target:"Object",stat:!0},{values:function(O){return $values(O)}})}});init_define_process_env();init_shim();var import_es_regexp_exec=__toESM(require_es_regexp_exec()),import_es_string_search=__toESM(require_es_string_search()),import_es_object_entries=__toESM(require_es_object_entries()),import_es_json_stringify=__toESM(require_es_json_stringify()),import_es_object_values=__toESM(require_es_object_values());init_define_process_env();init_shim();var _window$u,_window,_window$safe_require,_window2,u=(_window$u=(_window=window)==null?void 0:_window.u)!=null?_window$u:_u,safe_require=(_window$safe_require=(_window2=window)==null?void 0:_window2.safe_require)!=null?_window$safe_require:_safe_require;var _element_optional_uti,algolia_client=safe_require.safe_require("./shared/algolia_client"),btype_ids=safe_require.safe_require("./lang/btype_ids"),Lib=safe_require.safe_require("./lib"),logger=safe_require.safe_require("./logger"),appquery=safe_require.safe_require("./lang/appquery"),core_datasources=safe_require.safe_require("./core/core_datasources"),core_ds_field_names=safe_require.safe_require("./core/core_datasources/utilities/core_ds_field_names"),core_ds_db_ops_utilities=safe_require.safe_require("./core/core_datasources/utilities/core_ds_db_ops_utilities"),element_optional_utils=safe_require.safe_require("./core/core_elements/core_elements_utilities/element_optional_utils"),btypes=safe_require.safe_require("./lang/btypes"),state_keys=safe_require.safe_require("./lang/evaluation/state_keys"),locations=safe_require.safe_require("./locations"),special_keys=safe_require.safe_require("./constants/special_keys");function index_name(appname,app_version,type_id){let db_version=locations.get_db_version(app_version);return"".concat(appname,"_").concat(db_version,"_").concat(type_id)}var autocomplete_source=function(_ref){let{query,field_to_search,field_to_display,type_to_find,cb,cache_text_to_object,cache_text_to_field_name}=_ref,index=algolia_client.get_search_client().initIndex(index_name(appquery.appname(),appquery.app_version(),type_to_find)),restrictSearchableAttributes=field_to_search!==special_keys.ALL_DB_FIELDS?[field_to_search]:void 0,attributesToRetrieve=field_to_search!==special_keys.ALL_DB_FIELDS?[field_to_search]:field_to_display!==special_keys.ALL_DB_FIELDS?[field_to_display]:void 0,parameters={query};return attributesToRetrieve!=null&&(parameters.attributesToRetrieve=attributesToRetrieve),restrictSearchableAttributes!=null&&(parameters.restrictSearchableAttributes=restrictSearchableAttributes),index.search(parameters,(error,response)=>{if(error)return logger.error("Error searching with Algolia",{error}),cb([]);let{hits}=response;return cb(hits.map(result=>{let text_match;if(attributesToRetrieve)text_match=result[attributesToRetrieve];else{var _Object$entries$find;let matched_field=(_Object$entries$find=Object.entries(result._highlightResult).find(entry=>entry[1].matchLevel==="full"))==null?void 0:_Object$entries$find[0];text_match=result[matched_field],cache_text_to_field_name[text_match]=matched_field}let object_match=Lib().db_instance().get_object(result.objectID);return object_match.precache(),cache_text_to_object[text_match]=object_match,{value:text_match}}))})},_fetched_queries_keys={},_fetched_queries_results={},_fetched_queries_errors={};function get_results(_ref2){let{query,type_to_find,field_to_search,custom_type}=_ref2,hash=JSON.stringify({query,type_to_find,field_to_search});if(!_fetched_queries_keys[hash]){_fetched_queries_keys[hash]=u.MakeKey(null,"AlgoliaSearch key for ".concat(hash));let client=algolia_client.get_search_client(),restrictSearchableAttributes=field_to_search!==special_keys.ALL_DB_FIELDS?[field_to_search]:void 0;client.initIndex(index_name(appquery.appname(),appquery.app_version(),type_to_find)).search({query,attributesToRetrieve:[],restrictSearchableAttributes},(error,response)=>{var _fetched_queries_keys2;if((_fetched_queries_keys2=_fetched_queries_keys[hash])==null||_fetched_queries_keys2.turn(),error)_fetched_queries_errors[hash]=new u.OwnerError("Error searching with Algolia",{display:"There was an issue searching with Algolia, please ensure API keys are correct and that the proper indices exist for ".concat(custom_type.display()),original_error:error});else{let{hits}=response;_fetched_queries_results[hash]=hits.map(row=>row.objectID)}})}if(u.ensure_ready(_fetched_queries_keys[hash]),_fetched_queries_errors[hash])throw _fetched_queries_errors[hash];if(_fetched_queries_results[hash]!=null)return Lib().db_instance().static_list_from_ids(type_to_find,_fetched_queries_results[hash])}core_datasources.AlgoliaSearch={field_names:u.extend({type_to_find:{},query:{},field_to_search:{},ignore_empty_constraints:{}},core_ds_field_names.constraints_field_names,core_ds_field_names.sorting_field_names),get_btype(static_property){return static_property("type_to_find")?btype_ids.list_type(static_property("type_to_find")):"null"},get_runmode_btype(_raw,context,properties){return properties.type_to_find?btype_ids.list_type(properties.type_to_find):"null"},get_unique_string(properties,element_instance){let{type_to_find,constraints}=properties;return state_keys.Search(type_to_find,constraints,core_ds_db_ops_utilities.get_sorts_list(properties,!0))},evaluate(properties,context,ret_btype){let{type_to_find,query,field_to_search}=properties,custom_type=btypes.get(type_to_find).custom_type();return custom_type!=null&&custom_type.exists()?get_results({query,type_to_find,field_to_search,custom_type}):ret_btype.get_bubble_null()}};(_element_optional_uti=element_optional_utils.optional_modules)!=null||(element_optional_utils.optional_modules={});element_optional_utils.optional_modules.algolia_autocomplete_source=autocomplete_source;})();
/*! Bundled license information:

buffer/index.js:
  (*!
   * The buffer module from node.js, for the browser.
   *
   * @author   Feross Aboukhadijeh <https://feross.org>
   * @license  MIT
   *)
*/

}


window.preloaded['js/extra:services/algolia_search_engine'] = true;
window['bubble_run_derived'] = window['bubble_run_derived'] || {}
window['bubble_run_derived']['{"function_name":"PageByName","args":[]}'] = {"404":{"id":"AAU","_path":"%p3.AAX"},"reset_pw":{"id":"AAL","_path":"%p3.AAW"},"index":{"id":"bTGYf","_path":"%p3.bTGbC"},"search":{"id":"bTKuG","_path":"%p3.bTKwA"},"routine":{"id":"bTMna","_path":"%p3.bTMqd"},"habit":{"id":"bTOsl","_path":"%p3.bTOyE"},"streaming":{"id":"bTdDo","_path":"%p3.bTdEv"},"groups_events":{"id":"bTepp","_path":"%p3.bTfVR"},"group":{"id":"bTfhC","_path":"%p3.bTfhA"},"event":{"id":"bTjfZ","_path":"%p3.bTkMj"},"feed":{"id":"bTKGR0","_path":"%p3.bTKHg0"},"post_types":{"id":"bTKNg0","_path":"%p3.bTKPc0"},"profile":{"id":"bTLnV0","_path":"%p3.bTLqO0"},"reputation":{"id":"bTMCv0","_path":"%p3.bTMEO0"},"mindset":{"id":"bTXOK0","_path":"%p3.bTXaS0"},"terms":{"id":"bTZOt0","_path":"%p3.bTZRM0"},"privacy":{"id":"bTZUt0","_path":"%p3.bTZVF0"}}
window.preloaded['app/derived:{"function_name":"PageByName","args":[]}'] = true;
window['bubble_run_derived']['{"function_name":"CustomByName","args":[]}'] = {"Footer":{"id":"bTHPY","_path":"%ed.bTHPZ"},"Reuseable_habit_post":{"id":"bTJqN","_path":"%ed.bTJqO"},"Reuseable_routine_post":{"id":"bTJtd","_path":"%ed.bTJte"},"Comment_on_post":{"id":"bTJvt","_path":"%ed.bTJvu"},"Updated_a_mindset":{"id":"bTJwq","_path":"%ed.bTJwr"},"Adopted_a_routine":{"id":"bTJxn","_path":"%ed.bTJxo"},"Added_enablement_post":{"id":"bTKES","_path":"%ed.bTKEy"},"Updated_a_habit":{"id":"bTNbC","_path":"%ed.bTNbU"},"Code_of_conduct_ge":{"id":"bTVYs","_path":"%ed.bTVYt"},"Comment_box":{"id":"bTWdz","_path":"%ed.bTWeA"},"Featured_post_group":{"id":"bTgoK","_path":"%ed.bTgoO"},"Post_groups_members_only":{"id":"bThmU","_path":"%ed.bThpi"},"Featured_post_event":{"id":"bTkMi","_path":"%ed.bTkPq"},"Post_events_members_only":{"id":"bTkPo","_path":"%ed.bTkSt"},"Code_of_conduct":{"id":"bTkZw","_path":"%ed.bTkam"},"Bottom_nav_bar":{"id":"bTHgX0","_path":"%ed.bTHgY0"},"Adopt_habit":{"id":"bTIkb0","_path":"%ed.bTIki0"},"Added_habit_to_routine":{"id":"bTKBi0","_path":"%ed.bTKBj0"},"Reuseable_mindset_post":{"id":"bTXcJ0","_path":"%ed.bTXfQ0"},"Reuseable_review_box":{"id":"bTYsZ0","_path":"%ed.bTYsa0"},"Badge":{"id":"bTZDE0","_path":"%ed.bTZFq0"},"Short_footer":{"id":"bTZRV0","_path":"%ed.bTZUp0"},"featured_person":{"id":"bTaJp0","_path":"%ed.bTaJq0"}}
window.preloaded['app/derived:{"function_name":"CustomByName","args":[]}'] = true;
window['bubble_run_derived']['{"function_name":"UserCalls","args":[]}'] = ["stripe-GetStripeCard","stripe-GetStripeCards","stripe-GetStripeSubscription","stripe-GetStripeSubscriptions","stripe-GetSellerData","stripe-GetCustomerID","stripe-GetStripeInvoices"]
window.preloaded['app/derived:{"function_name":"UserCalls","args":[]}'] = true;
window['bubble_run_derived']['{"function_name":"OAuthProviders","args":[]}'] = []
window.preloaded['app/derived:{"function_name":"OAuthProviders","args":[]}'] = true;
window['bubble_run_derived']['{"function_name":"DefaultValues","args":[]}'] = {"event":[{"name":"about_us_custom_about_me","value":"custom.about_me","display":"About_us","deleted":null},{"name":"comment_list_custom_comment1","value":"list.custom.comment1","display":"Comment","deleted":null},{"name":"cover_image_image","value":"image","display":"Large_cover_image","deleted":null},{"name":"creator_profession_option_professions","value":"option.professions","display":"Creator_profession","deleted":null},{"name":"description_text","value":"text","display":"Description","deleted":null},{"name":"email_text","value":"text","display":"Email","deleted":null},{"name":"enablements_list_custom_enablements","value":"list.custom.enablements","display":"Enablements","deleted":null},{"name":"event_date_time_date","value":"date","display":"Event_date_time_start","deleted":null},{"name":"event_date_time_end_date","value":"date","display":"Event_date_time_end","deleted":null},{"name":"event_location_geographic_address","value":"geographic_address","display":"Event_location_physical","deleted":null},{"name":"event_location_virtual_text","value":"text","display":"Event_location_virtual","deleted":null},{"name":"event_type_option_os_group_type","value":"option.os_group_type","display":"Event_types","deleted":null},{"name":"featured_boolean","value":"boolean","display":"Featured","deleted":null},{"name":"featured_post_list_custom_event_post","value":"list.custom.event_post","display":"Featured_post - deleted","deleted":true},{"name":"location_geographic_address","value":"geographic_address","display":"Business_location","deleted":null},{"name":"logo_image","value":"image","display":"Logo","deleted":null},{"name":"member_count_number","value":"number","display":"Registered_count - deleted","deleted":true},{"name":"members_list_user","value":"list.user","display":"Registered","deleted":null},{"name":"mute_boolean","value":"boolean","display":"Mute","deleted":null},{"name":"muted_by_list_user","value":"list.user","display":"Muted_by","deleted":null},{"name":"name_text","value":"text","display":"Name","deleted":null},{"name":"posts_list_custom_event_post","value":"list.custom.event_post","display":"Posts","deleted":null},{"name":"progress_bar_hidden_boolean","value":"boolean","display":"Progress_bar_hidden","deleted":null},{"name":"registered_count_number","value":"number","display":"Registered_count","deleted":null},{"name":"reported_by_list_user","value":"list.user","display":"Reported_by","deleted":null},{"name":"reported_count_number","value":"number","display":"Reported_count","deleted":null},{"name":"shared_by_list_user","value":"list.user","display":"Shared_by","deleted":null},{"name":"shared_count_number","value":"number","display":"Shared_count","deleted":null},{"name":"shared_with_list_user","value":"list.user","display":"Shared_with","deleted":null},{"name":"tag_list_custom_tag","value":"list.custom.tag","display":"Tag","deleted":null},{"name":"text__1_text","value":"text","display":"Text _1","deleted":null},{"name":"text__2_text","value":"text","display":"Text _2","deleted":null},{"name":"text__3_text","value":"text","display":"Text _3","deleted":null},{"name":"text__4_text","value":"text","display":"Text _4","deleted":null},{"name":"this_event_type_option_os_group_type","value":"option.os_group_type","display":"This_event_type","deleted":null},{"name":"title_text","value":"text","display":"Title","deleted":null},{"name":"website_text","value":"text","display":"Website","deleted":null}],"about_me":[{"name":"about_me_mux_asset_id_text","value":"text","display":"Mux_asset_id","deleted":null},{"name":"about_me_mux_url_file","value":"file","display":"Mux_url","deleted":null},{"name":"about_me_type__list_option_os_about_me_type","value":"list.option.os_about_me_type","display":"Type - deleted","deleted":true},{"name":"about_me_type_option_os_about_me_type","value":"option.os_about_me_type","display":"About_me_type_delete - deleted","deleted":true},{"name":"about_me_url_file","value":"file","display":"About_me_url - deleted","deleted":true},{"name":"about_me_video_file","value":"file","display":"Video - deleted","deleted":true},{"name":"about_me_video_thumbnail_image","value":"image","display":"Cover_photo","deleted":null},{"name":"about_me_video_type_list_option_os_about_me_type","value":"list.option.os_about_me_type","display":"About_me_video_type - deleted","deleted":true},{"name":"coaching_learn_more_text","value":"text","display":"Coaching_learn_more - deleted","deleted":true},{"name":"coaching_link_text","value":"text","display":"Coaching_link - deleted","deleted":true},{"name":"event_custom_event","value":"custom.event","display":"Event","deleted":null},{"name":"group_custom_group","value":"custom.group","display":"Group","deleted":null},{"name":"intro_user_user","value":"user","display":"User - deleted","deleted":true},{"name":"intro_video_length_number","value":"number","display":"Video_length","deleted":null},{"name":"mux_playback_id_text","value":"text","display":"Mux_playback_id","deleted":null},{"name":"type_option_os_about_me_type","value":"option.os_about_me_type","display":"Type","deleted":null}],"admin":[{"name":"code_of_conduct_api_apiconnector2_bTOzw0_bTOzx0","value":"api.apiconnector2.bTOzw0.bTOzx0","display":"Code_of_conduct - deleted","deleted":true},{"name":"code_of_conduct_events_file","value":"file","display":"Code_of_conduct_events","deleted":null},{"name":"code_of_conduct_groups_file","value":"file","display":"Code_of_conduct_groups","deleted":null},{"name":"code_of_conduct_mux_url_file","value":"file","display":"Code_of_conduct_feed","deleted":null},{"name":"index_1_file","value":"file","display":"Index_1","deleted":null},{"name":"index_2_file","value":"file","display":"Index_2","deleted":null},{"name":"index_3_file","value":"file","display":"Index_3","deleted":null},{"name":"learn_more_clicked_number","value":"number","display":"Learn_more_clicked","deleted":null},{"name":"mux_asset_id_code_of_conduct_text","value":"text","display":"Mux_asset_id_code_of_conduct - deleted","deleted":true},{"name":"photo_image","value":"image","display":"Photo","deleted":null},{"name":"privacy_text","value":"text","display":"Privacy - deleted","deleted":true},{"name":"report_habit_creator_user","value":"user","display":"Report_habit_creator - deleted","deleted":true},{"name":"report_habit_custom_habit","value":"custom.habit","display":"Report_habit - deleted","deleted":true},{"name":"report_habit_list_custom_habit","value":"list.custom.habit","display":"Report_habit - deleted","deleted":true},{"name":"report_habit_user_user","value":"user","display":"Report_habit_user - deleted","deleted":true},{"name":"support_body_text","value":"text","display":"Support_body - deleted","deleted":true},{"name":"terms_text","value":"text","display":"Terms - deleted","deleted":true},{"name":"text_1_text","value":"text","display":"Text_1","deleted":null},{"name":"type_option_os_admin","value":"option.os_admin","display":"Type","deleted":null},{"name":"video_duration_code_of_conduct_number","value":"number","display":"Video_duration_code_of_conduct","deleted":null}],"badge":[{"name":"badge_1_list_option_os_badges0","value":"list.option.os_badges0","display":"Badge_1 - deleted","deleted":true},{"name":"badge_date_earned_date","value":"date","display":"Date_earned","deleted":null},{"name":"badge_description_option_os_badges0","value":"option.os_badges0","display":"Description","deleted":null},{"name":"badge_description_text","value":"text","display":"Badge_description - deleted","deleted":true},{"name":"badge_examples_option_os_badges0","value":"option.os_badges0","display":"Examples","deleted":null},{"name":"badge_examples_text","value":"text","display":"Badge_examples - deleted","deleted":true},{"name":"badge_header_text","value":"text","display":"Badge - deleted","deleted":true},{"name":"badge_icon_option_os_badges0","value":"option.os_badges0","display":"Icon","deleted":null},{"name":"badge_option_os_badges0","value":"option.os_badges0","display":"Badge","deleted":null},{"name":"badge_rank_number","value":"number","display":"Rank","deleted":null},{"name":"badge_user_user","value":"user","display":"Badge_user","deleted":null},{"name":"icon_image","value":"image","display":"Badge_icon - deleted","deleted":true},{"name":"issued_text_option_os_badges0","value":"option.os_badges0","display":"Issued_text","deleted":null},{"name":"stacked_opt_out_text","value":"text","display":"Stacked_opt_out","deleted":null}],"bookmark":[{"name":"bookmark_habit_custom_habit","value":"custom.habit","display":"Habit","deleted":null},{"name":"bookmark_habits_list_custom_habit","value":"list.custom.habit","display":"Bookmark_habits - deleted","deleted":true},{"name":"bookmark_mindset_custom_mindset","value":"custom.mindset","display":"Mindset","deleted":null},{"name":"bookmark_mindset_list_custom_mindset","value":"list.custom.mindset","display":"Bookmark_mindset - deleted","deleted":true},{"name":"bookmark_routine_custom_routine","value":"custom.routine","display":"Routine","deleted":null},{"name":"bookmark_routine_list_custom_routine","value":"list.custom.routine","display":"Bookmark_routine - deleted","deleted":true},{"name":"bookmark_user_user","value":"user","display":"Bookmark_user","deleted":null},{"name":"event_custom_event","value":"custom.event","display":"Event_post - deleted","deleted":true},{"name":"event_post_custom_event_post","value":"custom.event_post","display":"Event_post","deleted":null},{"name":"group_custom_group","value":"custom.group","display":"Group - deleted","deleted":true},{"name":"group_custom_group_post","value":"custom.group_post","display":"Group_post","deleted":null}],"causes":[{"name":"cause_option_causes","value":"option.causes","display":"Cause","deleted":null},{"name":"cause_user_user","value":"user","display":"Cause_user","deleted":null},{"name":"date_started_date","value":"date","display":"Date_started","deleted":null},{"name":"image_option_causes","value":"option.causes","display":"Image","deleted":null}],"coaching":[{"name":"coaching_learn_more_text","value":"text","display":"Coaching_learn_more","deleted":null},{"name":"coaching_video_file","value":"file","display":"Coaching_video","deleted":null},{"name":"coaching_video_length_number","value":"number","display":"Coaching_video_length","deleted":null},{"name":"coaching_video_thumbnail_image","value":"image","display":"Coaching_video_thumbnail","deleted":null},{"name":"user_user","value":"user","display":"Coaching_user","deleted":null}],"comment":[{"name":"comment_of_user_user","value":"user","display":"Comment_of_user - deleted","deleted":true},{"name":"comment_post_type1_option_post_type","value":"option.post_type","display":"Comment_post_type - deleted","deleted":true},{"name":"comment_post_type_option_post_type","value":"option.post_type","display":"Comment_post_type - deleted","deleted":true},{"name":"comment_text","value":"text","display":"Comment_content","deleted":null},{"name":"habit_original_post_custom_post","value":"custom.post","display":"Habit_original_post","deleted":null},{"name":"mindset_original_post_custom_mindset_post","value":"custom.mindset_post","display":"Mindset_original_post","deleted":null},{"name":"routine_original_post_custom_routine_post","value":"custom.routine_post","display":"Routine_original_post","deleted":null}],"comment1":[{"name":"comment_content1_text","value":"text","display":"Body","deleted":null},{"name":"comment_content_list_text","value":"list.text","display":"Comment_content - deleted","deleted":true},{"name":"comment_content_text","value":"text","display":"Comment_content - deleted","deleted":true},{"name":"comment_recipient_user","value":"user","display":"Recipient","deleted":null},{"name":"event_custom_event","value":"custom.event","display":"Event","deleted":null},{"name":"event_original_post_custom_event_post","value":"custom.event_post","display":"Event_original_post","deleted":null},{"name":"group_custom_group","value":"custom.group","display":"Group","deleted":null},{"name":"group_original_post_custom_group_post","value":"custom.group_post","display":"Group_original_post","deleted":null},{"name":"habit_original_post_custom_habit","value":"custom.habit","display":"Habit_original_post","deleted":null},{"name":"habit_original_post_custom_post","value":"custom.post","display":"Habit_original_post - deleted","deleted":true},{"name":"idea_original_custom_idea_box","value":"custom.idea_box","display":"Idea_original","deleted":null},{"name":"mindset_original_post_custom_mindset","value":"custom.mindset","display":"Mindset_original_post","deleted":null},{"name":"mindset_original_post_custom_mindset_post","value":"custom.mindset_post","display":"Mindset_original_post - deleted","deleted":true},{"name":"mute_boolean","value":"boolean","display":"Mute","deleted":null},{"name":"muted_by_list_user","value":"list.user","display":"Muted_by","deleted":null},{"name":"muted_by_user","value":"user","display":"Muted_by - deleted","deleted":true},{"name":"post_type_option_post_type","value":"option.post_type","display":"Post_type","deleted":null},{"name":"reported_by_list_user","value":"list.user","display":"Reported_by","deleted":null},{"name":"reported_count_number","value":"number","display":"Reported_count","deleted":null},{"name":"routine_original_post_custom_routine","value":"custom.routine","display":"Routine_original_post","deleted":null},{"name":"routine_original_post_custom_routine_post","value":"custom.routine_post","display":"Routine_original_post - deleted","deleted":true},{"name":"user_list_user","value":"list.user","display":"Comment_user - deleted","deleted":true}],"email_templates":[{"name":"subject_text","value":"text","display":"Subject","deleted":null},{"name":"template_id_text","value":"text","display":"Template_id","deleted":null}],"enablements":[{"name":"commission_made1_text","value":"text","display":"Commission_made","deleted":null},{"name":"commission_made_boolean","value":"boolean","display":"Commission_made - deleted","deleted":true},{"name":"commission_made_text","value":"text","display":"Commission_text","default_val":"Commission Received | Ad","deleted":null},{"name":"enablement_description_text","value":"text","display":"Description","deleted":null},{"name":"enablement_habit_post_custom_habit","value":"custom.habit","display":"Habit_post","deleted":null},{"name":"enablement_name_text","value":"text","display":"Name","deleted":null},{"name":"enablement_picture_image","value":"image","display":"Picture","deleted":null},{"name":"enablement_type_option_os_enablement_type","value":"option.os_enablement_type","display":"Type","deleted":null},{"name":"enablement_url_text","value":"text","display":"Url","deleted":null},{"name":"enablement_user_list_user","value":"list.user","display":"Enablement_user - deleted","deleted":true},{"name":"event_custom_event","value":"custom.event","display":"Event","deleted":null},{"name":"event_post_custom_event_post","value":"custom.event_post","display":"Event_post","deleted":null},{"name":"group_custom_group","value":"custom.group","display":"Group","deleted":null},{"name":"group_post_custom_group","value":"custom.group","display":"Group_post - deleted","deleted":true},{"name":"group_post_custom_group_post","value":"custom.group_post","display":"Group_post","deleted":null},{"name":"mindset_post_custom_mindset","value":"custom.mindset","display":"Mindset_post","deleted":null},{"name":"mute_boolean","value":"boolean","display":"Mute","deleted":null},{"name":"muted_by_list_user","value":"list.user","display":"Muted_by","deleted":null},{"name":"post_type_option_post_type","value":"option.post_type","display":"Post_type","deleted":null},{"name":"reported_by_list_user","value":"list.user","display":"Reported_by","deleted":null},{"name":"reported_count_number","value":"number","display":"Reported_count","deleted":null},{"name":"routine_post_custom_routine","value":"custom.routine","display":"Routine_post - deleted","deleted":true},{"name":"user_profession_option_professions","value":"option.professions","display":"User_profession","deleted":null},{"name":"user_user","value":"user","display":"Enablement_user - deleted","deleted":true}],"event_post":[{"name":"comment_list_custom_comment1","value":"list.custom.comment1","display":"Comment","deleted":null},{"name":"cover_photo_image","value":"image","display":"Cover_photo","deleted":null},{"name":"creator_profession_option_professions","value":"option.professions","display":"Creator_profession","deleted":null},{"name":"description_text","value":"text","display":"Description","deleted":null},{"name":"enablement_list_custom_enablements","value":"list.custom.enablements","display":"Enablement","deleted":null},{"name":"event_custom_event","value":"custom.event","display":"Event","deleted":null},{"name":"featured_post_text","value":"text","display":"Featured_post","deleted":null},{"name":"liked_count_number","value":"number","display":"Liked_count","deleted":null},{"name":"liked_list_user","value":"list.user","display":"Liked","deleted":null},{"name":"members_only_text","value":"text","display":"Members_only","deleted":null},{"name":"mute_boolean","value":"boolean","display":"Mute","deleted":null},{"name":"muted_by_list_user","value":"list.user","display":"Muted_by","deleted":null},{"name":"mux_asset_id_text","value":"text","display":"Mux_asset_id","deleted":null},{"name":"mux_playback_id_text","value":"text","display":"Mux_playback_id","deleted":null},{"name":"mux_upload_guid_text","value":"text","display":"Mux_upload_guid","deleted":null},{"name":"mux_url_text","value":"text","display":"Mux_url","deleted":null},{"name":"post_article_text","value":"text","display":"Post_article","deleted":null},{"name":"post_count_number","value":"number","display":"Post_count","deleted":null},{"name":"post_photo_image","value":"image","display":"Post_photo","deleted":null},{"name":"ranking_number","value":"number","display":"Ranking","deleted":null},{"name":"reported_by_list_user","value":"list.user","display":"Reported_by","deleted":null},{"name":"reported_count_number","value":"number","display":"Reported_count","deleted":null},{"name":"share_count_number","value":"number","display":"Share_count","deleted":null},{"name":"shared_by_list_user","value":"list.user","display":"Shared_by","deleted":null},{"name":"shared_with_list_user","value":"list.user","display":"Shared_with","deleted":null},{"name":"tags_list_custom_tag","value":"list.custom.tag","display":"Tags","deleted":null},{"name":"title_text","value":"text","display":"Title","deleted":null},{"name":"type_of_post_text","value":"text","display":"Type_of_post","deleted":null},{"name":"video_length_number","value":"number","display":"Video_length","deleted":null}],"group":[{"name":"about_us_custom_about_me","value":"custom.about_me","display":"About_us","deleted":null},{"name":"comment_list_custom_comment1","value":"list.custom.comment1","display":"Comment","deleted":null},{"name":"cover_image_image","value":"image","display":"Small_cover_image - deleted","deleted":true},{"name":"creator_profession_option_professions","value":"option.professions","display":"Creator_profession","deleted":null},{"name":"description_text","value":"text","display":"Description","deleted":null},{"name":"email_text","value":"text","display":"Email","deleted":null},{"name":"enablements_list_custom_enablements","value":"list.custom.enablements","display":"Enablements","deleted":null},{"name":"featured_boolean","value":"boolean","display":"Featured","deleted":null},{"name":"featured_post_custom_group_post","value":"custom.group_post","display":"Featured_post","deleted":null},{"name":"group_type_option_os_group_type","value":"option.os_group_type","display":"Group_type","deleted":null},{"name":"large_cover_image_image","value":"image","display":"Large_cover_image","deleted":null},{"name":"location_geographic_address","value":"geographic_address","display":"Location","deleted":null},{"name":"logo_image","value":"image","display":"Logo","deleted":null},{"name":"member_count_number","value":"number","display":"Member_count","deleted":null},{"name":"members_list_user","value":"list.user","display":"Members","deleted":null},{"name":"mute_boolean","value":"boolean","display":"Mute","deleted":null},{"name":"muted_by_list_user","value":"list.user","display":"Muted_by","deleted":null},{"name":"name_text","value":"text","display":"Name","deleted":null},{"name":"post_count_custom_group","value":"custom.group","display":"Post_count - deleted","deleted":true},{"name":"post_count_custom_group_post","value":"custom.group_post","display":"Post_count - deleted","deleted":true},{"name":"post_count_number","value":"number","display":"Post_count - deleted","deleted":true},{"name":"posts_list_custom_group_post","value":"list.custom.group_post","display":"Posts","deleted":null},{"name":"progress_bar_overview_hidden_boolean","value":"boolean","display":"Progress_bar_hidden","deleted":null},{"name":"reported_by_list_user","value":"list.user","display":"Reported_by","deleted":null},{"name":"reported_count_number","value":"number","display":"Reported_count","deleted":null},{"name":"shared_by_list_user","value":"list.user","display":"Shared_by","deleted":null},{"name":"shared_count_number","value":"number","display":"Shared_count","deleted":null},{"name":"shared_with_list_user","value":"list.user","display":"Shared_with","deleted":null},{"name":"tag_list_custom_tag","value":"list.custom.tag","display":"Tag","deleted":null},{"name":"tags_list_custom_group_event_tags","value":"list.custom.group_event_tags","display":"Tags - deleted","deleted":true},{"name":"text_2_text","value":"text","display":"Text_2","deleted":null},{"name":"text_3_text","value":"text","display":"Text_3","deleted":null},{"name":"text_4_text","value":"text","display":"Text_4","deleted":null},{"name":"title_text","value":"text","display":"Title","deleted":null},{"name":"website_text","value":"text","display":"Website","deleted":null}],"group_event_tags":[{"name":"tag_event_list_custom_event","value":"list.custom.event","display":"Tag_event - deleted","deleted":true},{"name":"tag_group_list_custom_group","value":"list.custom.group","display":"Tag_group - deleted","deleted":true},{"name":"tag_text","value":"text","display":"Tag","deleted":null}],"group_post":[{"name":"body_text","value":"text","display":"Body - deleted","deleted":true},{"name":"comment_list_custom_comment1","value":"list.custom.comment1","display":"Comment","deleted":null},{"name":"complimented_count_number","value":"number","display":"Liked_count","deleted":null},{"name":"complimented_list_user","value":"list.user","display":"Liked","deleted":null},{"name":"cover_photo_hor_image","value":"image","display":"Cover_photo","deleted":null},{"name":"creator_profession_option_professions","value":"option.professions","display":"Creator_profession","deleted":null},{"name":"description_text","value":"text","display":"Description","deleted":null},{"name":"enablement_list_custom_enablements","value":"list.custom.enablements","display":"Enablement","deleted":null},{"name":"featured_post_boolean","value":"boolean","display":"Featured_post - deleted","deleted":true},{"name":"featured_post_text","value":"text","display":"Featured_post","default_val":"No","deleted":null},{"name":"group_custom_group","value":"custom.group","display":"Group","deleted":null},{"name":"members_only_boolean","value":"boolean","display":"Members_only - deleted","deleted":true},{"name":"members_only_text","value":"text","display":"Members_only","default_val":"No","deleted":null},{"name":"mute_boolean","value":"boolean","display":"Mute","deleted":null},{"name":"muted_by_list_user","value":"list.user","display":"Muted_by","deleted":null},{"name":"mux_asset_id_text","value":"text","display":"Mux_asset_id","deleted":null},{"name":"mux_playback_id_text","value":"text","display":"Mux_playback_id","deleted":null},{"name":"mux_upload_guid_text","value":"text","display":"Mux_upload_guid","deleted":null},{"name":"mux_url_text","value":"text","display":"Mux_url","deleted":null},{"name":"post_article_text","value":"text","display":"Post_article","deleted":null},{"name":"post_count_number","value":"number","display":"Post_count","deleted":null},{"name":"post_photo_image","value":"image","display":"Post_photo","deleted":null},{"name":"ranking_number","value":"number","display":"Ranking","deleted":null},{"name":"reported_by_list_user","value":"list.user","display":"Reported_by","deleted":null},{"name":"reported_count_number","value":"number","display":"Reported_count","deleted":null},{"name":"share_count_number","value":"number","display":"Share_count","deleted":null},{"name":"shared_by_list_user","value":"list.user","display":"Shared_by","deleted":null},{"name":"shared_with_list_user","value":"list.user","display":"Shared_with","deleted":null},{"name":"tags_list_custom_tag","value":"list.custom.tag","display":"Tags","deleted":null},{"name":"title_text","value":"text","display":"Title","deleted":null},{"name":"type_of_post_text","value":"text","display":"Type_of_post","deleted":null},{"name":"video_length_number","value":"number","display":"Video_length","deleted":null}],"habit":[{"name":"adopted_list_user","value":"list.user","display":"Habit_adopted - deleted","deleted":true},{"name":"end_time_1_1_date","value":"date","display":"End_time","deleted":null},{"name":"end_time_1_1_number","value":"number","display":"End_time_1.1 - deleted","deleted":true},{"name":"end_time_1_2_text","value":"text","display":"End_time_1.2 - deleted","deleted":true},{"name":"habit_adopted_count_number","value":"number","display":"Adopted_count","deleted":null},{"name":"habit_adopted_list_user","value":"list.user","display":"Adopted","deleted":null},{"name":"habit_comment_list_custom_comment","value":"list.custom.comment","display":"Habit_comment - deleted","deleted":true},{"name":"habit_comment_list_custom_comment1","value":"list.custom.comment1","display":"Comment","deleted":null},{"name":"habit_compliment_list_user","value":"list.user","display":"Habit_compliment - deleted","deleted":true},{"name":"habit_complimented_count_number","value":"number","display":"Complimented_count","deleted":null},{"name":"habit_complimented_list_user","value":"list.user","display":"Complimented","deleted":null},{"name":"habit_enablement_list_custom_enablements","value":"list.custom.enablements","display":"Enablement","deleted":null},{"name":"habit_end_time_option_os_time","value":"option.os_time","display":"End_time - deleted","deleted":true},{"name":"habit_inspired_by_list_user","value":"list.user","display":"Inspired_by","deleted":null},{"name":"habit_post_tags_list_text","value":"list.text","display":"Habit_post_tags - deleted","deleted":true},{"name":"habit_repost_list_user","value":"list.user","display":"Shared_by","deleted":null},{"name":"habit_start_time_option_os_time","value":"option.os_time","display":"Start_time - deleted","deleted":true},{"name":"habit_tags_list_custom_tag","value":"list.custom.tag","display":"Tags","deleted":null},{"name":"habit_time_slot_option_os_time_slots","value":"option.os_time_slots","display":"Time_slot","deleted":null},{"name":"habit_user_profession_option_professions","value":"option.professions","display":"User_profession","deleted":null},{"name":"habit_user_user","value":"user","display":"Habit_user - deleted","deleted":true},{"name":"habit_video_description_text","value":"text","display":"Video_description","deleted":null},{"name":"habit_video_file","value":"file","display":"Video - deleted","deleted":true},{"name":"habit_video_length_number","value":"number","display":"Video_length","deleted":null},{"name":"habit_video_thumbnail_image","value":"image","display":"Video_thumbnail_hor","deleted":null},{"name":"habit_video_title1_text","value":"text","display":"Video_title","deleted":null},{"name":"habit_video_title_text","value":"text","display":"Habit_video_title - deleted","deleted":true},{"name":"mute_boolean","value":"boolean","display":"Mute","deleted":null},{"name":"muted_by_list_user","value":"list.user","display":"Muted_by","deleted":null},{"name":"muted_by_user","value":"user","display":"Muted_by - deleted","deleted":true},{"name":"mux_asset_id_text","value":"text","display":"Mux_asset_id","deleted":null},{"name":"mux_playback_id_text","value":"text","display":"Mux_playback_id","deleted":null},{"name":"mux_upload_guid_text","value":"text","display":"Mux_upload_guid","deleted":null},{"name":"mux_url_file","value":"file","display":"Mux_url","deleted":null},{"name":"order_number","value":"number","display":"Order - deleted","deleted":true},{"name":"order_option_os_order","value":"option.os_order","display":"Order - deleted","deleted":true},{"name":"original_post_habit_custom_post","value":"custom.post","display":"Habit_original_post - deleted","deleted":true},{"name":"reported_by_count_number","value":"number","display":"Reported_count","deleted":null},{"name":"reported_by_list_user","value":"list.user","display":"Reported_by","deleted":null},{"name":"routine_custom_routine","value":"custom.routine","display":"Routine","deleted":null},{"name":"share_count_number","value":"number","display":"Share_count","deleted":null},{"name":"shared_with_list_user","value":"list.user","display":"Shared_with","deleted":null},{"name":"start_time_1_1_date","value":"date","display":"Start_time","deleted":null},{"name":"start_time_1_1_number","value":"number","display":"Start_time_1.1 - deleted","deleted":true},{"name":"start_time_1_2_text","value":"text","display":"Start_time_1.2 - deleted","deleted":true},{"name":"video_length_new_number_number","value":"number","display":"Video_length_new_number - deleted","deleted":true},{"name":"video_length_new_text","value":"text","display":"Video_length_new_text - deleted","deleted":true},{"name":"video_thumbnail_hor_time_number","value":"number","display":"Video_thumbnail_hor_time - deleted","deleted":true},{"name":"video_thumbnail_vert_image","value":"image","display":"Video_thumbnail_vert","deleted":null},{"name":"views_number","value":"number","display":"Habit_views - deleted","deleted":true}],"habit_content":[],"idea_box":[{"name":"body_text","value":"text","display":"Body","deleted":null},{"name":"comment_list_custom_comment1","value":"list.custom.comment1","display":"Comment","deleted":null},{"name":"idea_name_text","value":"text","display":"Idea_name","deleted":null},{"name":"image_image","value":"image","display":"Image","deleted":null},{"name":"thumbs_down_count_number","value":"number","display":"Thumbs_down_count","deleted":null},{"name":"thumbs_down_list_user","value":"list.user","display":"Thumbs_down","deleted":null},{"name":"thumbs_up_count_number","value":"number","display":"Thumbs_up_count","deleted":null},{"name":"thumbs_up_list_user","value":"list.user","display":"Thumbs_up","deleted":null}],"just_users":[{"name":"users_user","value":"user","display":"Users","deleted":null}],"link":[{"name":"download_url_text","value":"text","display":"download_url","deleted":null},{"name":"mux_asset_id_text","value":"text","display":"Mux_asset_id","deleted":null},{"name":"mux_playback_id_text","value":"text","display":"Mux_playback_id","deleted":null},{"name":"token_text","value":"text","display":"Mux_url","deleted":null},{"name":"video_length_number","value":"number","display":"Video_length","deleted":null}],"message":[{"name":"message_from_user","value":"user","display":"Message_from","deleted":null},{"name":"message_to_user","value":"user","display":"Message_to","deleted":null}],"message1":[{"name":"archive_boolean","value":"boolean","display":"Archive","deleted":null},{"name":"body_text","value":"text","display":"Body","deleted":null},{"name":"event_recipient_custom_event","value":"custom.event","display":"Event_recipient","deleted":null},{"name":"group_recipient_custom_group","value":"custom.group","display":"Group_recipient","deleted":null},{"name":"message_from_user","value":"user","display":"Message_from","deleted":null},{"name":"message_thread_custom_message_thread","value":"custom.message_thread","display":"Message_thread","deleted":null},{"name":"message_to_user","value":"user","display":"Recipient","deleted":null},{"name":"mute_boolean","value":"boolean","display":"Mute","deleted":null},{"name":"muted_by_list_user","value":"list.user","display":"Muted_by","deleted":null},{"name":"muted_by_user","value":"user","display":"Muted_by - deleted","deleted":true},{"name":"read_boolean","value":"boolean","display":"Read","deleted":null},{"name":"seen_boolean","value":"boolean","display":"Seen","deleted":null}],"message_thread":[{"name":"archived_message_list_boolean","value":"list.boolean","display":"Archived_message - deleted","deleted":true},{"name":"archived_message_list_custom_message1","value":"list.custom.message1","display":"Archived_message","deleted":null},{"name":"event_custom_event","value":"custom.event","display":"Event","deleted":null},{"name":"group_custom_group","value":"custom.group","display":"Group","deleted":null},{"name":"messages_list_custom_message1","value":"list.custom.message1","display":"Messages","deleted":null},{"name":"mute_boolean","value":"boolean","display":"Mute","deleted":null},{"name":"muted_by_list_user","value":"list.user","display":"Muted_by","deleted":null},{"name":"reported_user","value":"user","display":"Reported","deleted":null},{"name":"thread_name_text","value":"text","display":"Thread Name","deleted":null},{"name":"unread_message_list_boolean","value":"list.boolean","display":"Unread_message - deleted","deleted":true},{"name":"unread_message_list_custom_message1","value":"list.custom.message1","display":"Unread_message","deleted":null},{"name":"users_list_user","value":"list.user","display":"Users","deleted":null},{"name":"users_recipient_full_name_user","value":"user","display":"Users_recipient_full_name - deleted","deleted":true}],"mindset":[{"name":"adopted_count_number","value":"number","display":"Adopted_count","deleted":null},{"name":"comment_list_custom_comment1","value":"list.custom.comment1","display":"Comment","deleted":null},{"name":"complimented_count_number","value":"number","display":"Complimented_count","deleted":null},{"name":"end_time_1_1_number","value":"number","display":"End_time_1.1 - deleted","deleted":true},{"name":"end_time_date","value":"date","display":"End_time","deleted":null},{"name":"mindset_adopted1_list_user","value":"list.user","display":"Adopted","deleted":null},{"name":"mindset_adopted_list_user","value":"list.user","display":"Mindset_adopted - deleted","deleted":true},{"name":"mindset_comment_list_custom_comment","value":"list.custom.comment","display":"Comment - deleted","deleted":true},{"name":"mindset_compliment_list_user","value":"list.user","display":"Mindset_compliment - deleted","deleted":true},{"name":"mindset_complimented_list_user","value":"list.user","display":"Complimented","deleted":null},{"name":"mindset_enablement_list_custom_enablements","value":"list.custom.enablements","display":"Enablement","deleted":null},{"name":"mindset_end_time_option_os_time","value":"option.os_time","display":"End_time - deleted","deleted":true},{"name":"mindset_inspired_by_list_user","value":"list.user","display":"Inspired_by","deleted":null},{"name":"mindset_original_post_custom_mindset_post","value":"custom.mindset_post","display":"Mindset_original_post - deleted","deleted":true},{"name":"mindset_post_tags_list_text","value":"list.text","display":"Mindset_post_tags - deleted","deleted":true},{"name":"mindset_repost_list_user","value":"list.user","display":"Shared_by","deleted":null},{"name":"mindset_start_time_option_os_time","value":"option.os_time","display":"Start_time - deleted","deleted":true},{"name":"mindset_tags_list_custom_tag","value":"list.custom.tag","display":"Tags","deleted":null},{"name":"mindset_time_slot_option_os_time_slots","value":"option.os_time_slots","display":"Time_slot - deleted","deleted":true},{"name":"mindset_user_user","value":"user","display":"Mindset_user - deleted","deleted":true},{"name":"mindset_video_description_text","value":"text","display":"Video_description","deleted":null},{"name":"mindset_video_file","value":"file","display":"Video - deleted","deleted":true},{"name":"mindset_video_length_number","value":"number","display":"Video_length","deleted":null},{"name":"mindset_video_thumbnail_image","value":"image","display":"Video_thumbnail_hor","deleted":null},{"name":"mindset_video_title1_text","value":"text","display":"Video_title","deleted":null},{"name":"mindset_video_title_text","value":"text","display":"Mindset_video_title - deleted","deleted":true},{"name":"mute_boolean","value":"boolean","display":"Mute","deleted":null},{"name":"muted_by_list_user","value":"list.user","display":"Muted_by","deleted":null},{"name":"muted_by_user","value":"user","display":"Muted_by - deleted","deleted":true},{"name":"mux_asset_id_text","value":"text","display":"Mux_asset_id","deleted":null},{"name":"mux_playback_id_text","value":"text","display":"Mux_playback_id","deleted":null},{"name":"mux_upload_guid_text","value":"text","display":"Mux_upload_guid","deleted":null},{"name":"mux_url_file","value":"file","display":"Mux_url","deleted":null},{"name":"order_number","value":"number","display":"Order - deleted","deleted":true},{"name":"order_option_os_order","value":"option.os_order","display":"Order - deleted","deleted":true},{"name":"reported_by_count_number","value":"number","display":"Reported_count","deleted":null},{"name":"reported_by_list_user","value":"list.user","display":"Reported_by","deleted":null},{"name":"routine_custom_routine","value":"custom.routine","display":"Routine","deleted":null},{"name":"share_count_number","value":"number","display":"Share_count","deleted":null},{"name":"shared_with_list_user","value":"list.user","display":"Shared_with","deleted":null},{"name":"start_time_1_1_number","value":"number","display":"Start_time_1.1 - deleted","deleted":true},{"name":"start_time_date","value":"date","display":"Start_time","deleted":null},{"name":"time_slot_option_os_time_slots","value":"option.os_time_slots","display":"Time_slot","deleted":null},{"name":"user_profession_option_professions","value":"option.professions","display":"User_profession","deleted":null},{"name":"video_thumbnail_vert_image","value":"image","display":"Video_thumbnail_vert","deleted":null}],"mindset_content":[],"mindset_post":[{"name":"mindset_adopted_list_user","value":"list.user","display":"Mindset_adopted","deleted":null},{"name":"mindset_complimented_list_user","value":"list.user","display":"Mindset_complimented","deleted":null},{"name":"mindset_tags_list_custom_tag","value":"list.custom.tag","display":"Mindset_tags","deleted":null},{"name":"mindset_user_user","value":"user","display":"Mindset_user","deleted":null},{"name":"mindset_video_title_text","value":"text","display":"Mindset_video_title","deleted":null}],"newsletter":[{"name":"email_text","value":"text","display":"Email","deleted":null},{"name":"first_name_text","value":"text","display":"First name","deleted":null}],"notification":[],"notification1":[{"name":"comment_custom_comment1","value":"custom.comment1","display":"Comment","deleted":null},{"name":"event_custom_event","value":"custom.event","display":"Event","deleted":null},{"name":"event_post_custom_event_post","value":"custom.event_post","display":"Event_post","deleted":null},{"name":"group_custom_group","value":"custom.group","display":"Group","deleted":null},{"name":"group_custom_group_post","value":"custom.group_post","display":"Group_post","deleted":null},{"name":"habit_post_custom_habit","value":"custom.habit","display":"Habit_post","deleted":null},{"name":"message_custom_message1","value":"custom.message1","display":"Message","deleted":null},{"name":"mindset_post_custom_mindset","value":"custom.mindset","display":"Mindset_post","deleted":null},{"name":"notification_body_text","value":"text","display":"Body","deleted":null},{"name":"notification_recipient_user","value":"user","display":"Recipient","deleted":null},{"name":"notification_seen_boolean","value":"boolean","display":"Seen","deleted":null},{"name":"review_custom_review","value":"custom.review","display":"Review","deleted":null},{"name":"routine_post_custom_routine","value":"custom.routine","display":"Routine_post","deleted":null}],"origin":[{"name":"about_me_type_option_os_about_me_type","value":"option.os_about_me_type","display":"About_me_type","deleted":null},{"name":"origin_user_user","value":"user","display":"Origin_user","deleted":null},{"name":"origin_video_file","value":"file","display":"Origin_video","deleted":null},{"name":"origin_video_length_number","value":"number","display":"Origin_video_length","deleted":null},{"name":"origin_video_thumbnail_image","value":"image","display":"Origin_video_thumbnail","deleted":null}],"platform_messages":[{"name":"info_profile_example_boolean","value":"boolean","display":"Info_profile_example","default_val":false,"deleted":null},{"name":"user_user","value":"user","display":"User","deleted":null},{"name":"viewed_opening_message_boolean","value":"boolean","display":"Viewed_opening_message","default_val":false,"deleted":null}],"post":[{"name":"adopted_list_user","value":"list.user","display":"Habit_adopted","deleted":null},{"name":"compliment_list_user","value":"list.user","display":"Habit_complimented","deleted":null},{"name":"habit_tags_list_custom_tag","value":"list.custom.tag","display":"Habit_tags","deleted":null},{"name":"habit_user_user","value":"user","display":"Habit_user","deleted":null},{"name":"video_title_text","value":"text","display":"Habit_video_title","deleted":null}],"profession":[{"name":"profession_names_list_option_professions","value":"list.option.professions","display":"Profession Names - deleted","deleted":true},{"name":"profession_user_list_user","value":"list.user","display":"Profession_user","deleted":null},{"name":"professions_list_option_professions","value":"list.option.professions","display":"Profession","deleted":null}],"review":[{"name":"mute_boolean","value":"boolean","display":"Mute","deleted":null},{"name":"muted_by_list_user","value":"list.user","display":"Muted_by","deleted":null},{"name":"muted_by_user","value":"user","display":"Muted_by - deleted","deleted":true},{"name":"mux_asset_id_text","value":"text","display":"Mux_asset_id","deleted":null},{"name":"mux_playback_id_text","value":"text","display":"Mux_playback_id","deleted":null},{"name":"mux_url_file","value":"file","display":"Mux_url","deleted":null},{"name":"reported_by_list_user","value":"list.user","display":"Reported_by","deleted":null},{"name":"reported_count_number","value":"number","display":"Reported_count","deleted":null},{"name":"review_body_text_text","value":"text","display":"Body","deleted":null},{"name":"review_person_reviewed_user","value":"user","display":"Person_reviewed","deleted":null},{"name":"review_person_reviewing1_user","value":"user","display":"Person_reviewing","deleted":null},{"name":"review_person_reviewing_list_user","value":"list.user","display":"Review_person_reviewing - deleted","deleted":true},{"name":"review_person_reviewing_user","value":"user","display":"Review_person_reviewing - deleted","deleted":true},{"name":"review_ranking_number","value":"number","display":"Ranking","deleted":null},{"name":"review_relationship_type_option_review_relationship_type","value":"option.review_relationship_type","display":"Relationship_type","deleted":null},{"name":"review_title_text_text","value":"text","display":"Title_text","deleted":null},{"name":"review_type_option_os_review_type","value":"option.os_review_type","display":"Type","deleted":null},{"name":"review_video_file","value":"file","display":"Video - deleted","deleted":true},{"name":"review_video_thumbnail_image","value":"image","display":"Video_thumbnail","deleted":null},{"name":"video_length_number","value":"number","display":"Video_length","deleted":null}],"role":[{"name":"date_earned_date","value":"date","display":"Date_earned_contributor","deleted":null},{"name":"date_earned_habiteur_date","value":"date","display":"Date_earned_habiteur","deleted":null},{"name":"icon1_option_os_user_role","value":"option.os_user_role","display":"Icon","default_val":"contributor","deleted":null},{"name":"icon_option_os_user_role","value":"option.os_user_role","display":"Icon - deleted","default_val":"contributor","deleted":true},{"name":"user_role_option_os_user_role","value":"option.os_user_role","display":"User_role","default_val":"contributor","deleted":null},{"name":"user_user","value":"user","display":"User","deleted":null}],"routine":[{"name":"_1_routine_text","value":"text","display":"#1_routine","deleted":null},{"name":"adopted_count_number","value":"number","display":"Adopted_count","deleted":null},{"name":"complimented_count_number","value":"number","display":"Complimented_count","deleted":null},{"name":"cover_photo_image","value":"image","display":"Cover_photo_hor","deleted":null},{"name":"cover_photo_vert_image","value":"image","display":"Cover_photo_vert","deleted":null},{"name":"end_time_1_1_number","value":"number","display":"End_time_1.1 - deleted","deleted":true},{"name":"end_time_date","value":"date","display":"End_time","deleted":null},{"name":"habit_video_list_file","value":"list.file","display":"Habit_Video - deleted","deleted":true},{"name":"mute_boolean","value":"boolean","display":"Mute","deleted":null},{"name":"muted_by_list_user","value":"list.user","display":"Muted_by","deleted":null},{"name":"muted_by_user","value":"user","display":"Muted_by - deleted","deleted":true},{"name":"profession_option_professions","value":"option.professions","display":"Profession","deleted":null},{"name":"reported_by_count_number","value":"number","display":"Reported_count","deleted":null},{"name":"reported_by_list_user","value":"list.user","display":"Reported_by","deleted":null},{"name":"routine_adopted1_list_user","value":"list.user","display":"Adopted","deleted":null},{"name":"routine_adopted_list_user","value":"list.user","display":"Routine_adopted - deleted","deleted":true},{"name":"routine_comment_1_1_list_custom_comment1","value":"list.custom.comment1","display":"Routine_comment_1.1 - deleted","deleted":true},{"name":"routine_comment_list_custom_comment","value":"list.custom.comment","display":"Routine_comment - deleted","deleted":true},{"name":"routine_comment_list_custom_comment1","value":"list.custom.comment1","display":"Comment","deleted":null},{"name":"routine_compliment_list_user","value":"list.user","display":"Routine_compliment - deleted","deleted":true},{"name":"routine_complimented_list_user","value":"list.user","display":"Complimented","deleted":null},{"name":"routine_enablement_list_custom_enablements","value":"list.custom.enablements","display":"Enablement","deleted":null},{"name":"routine_end_time_option_os_time","value":"option.os_time","display":"End_time - deleted","deleted":true},{"name":"routine_habit_video_list_custom_habit","value":"list.custom.habit","display":"Habit_video","deleted":null},{"name":"routine_inspired_by_list_user","value":"list.user","display":"Inspired_by","deleted":null},{"name":"routine_mindset_video_list_custom_mindset","value":"list.custom.mindset","display":"Mindset_video","deleted":null},{"name":"routine_original_post_custom_routine_post","value":"custom.routine_post","display":"Routine_original_post - deleted","deleted":true},{"name":"routine_post_tags_list_text","value":"list.text","display":"Routine_post_tags - deleted","deleted":true},{"name":"routine_repost_list_user","value":"list.user","display":"Shared_by","deleted":null},{"name":"routine_start_time_option_os_time","value":"option.os_time","display":"Start_time - deleted","deleted":true},{"name":"routine_tags_list_custom_tag","value":"list.custom.tag","display":"Tags","deleted":null},{"name":"routine_time_slot_option_os_time_slots","value":"option.os_time_slots","display":"Time_slot","deleted":null},{"name":"routine_user_user","value":"user","display":"Routine_user - deleted","deleted":true},{"name":"routine_video_count_number","value":"number","display":"Video_count","deleted":null},{"name":"routine_video_description_text","value":"text","display":"Description","deleted":null},{"name":"routine_video_file","value":"file","display":"Video - deleted","deleted":true},{"name":"routine_video_length_number","value":"number","display":"Video_length - deleted","deleted":true},{"name":"routine_video_thumbnail_image","value":"image","display":"Video_thumbnail - deleted","deleted":true},{"name":"routine_video_title1_text","value":"text","display":"Video_title - deleted","deleted":true},{"name":"routine_video_title_text","value":"text","display":"Routine_video_title - deleted","deleted":true},{"name":"share_count_number","value":"number","display":"Share_count","deleted":null},{"name":"shared_with_list_user","value":"list.user","display":"Shared_with","deleted":null},{"name":"start_time_1_1_number","value":"number","display":"Start_time_1.1 - deleted","deleted":true},{"name":"start_time_date","value":"date","display":"Start_time","deleted":null},{"name":"title_text","value":"text","display":"Title","deleted":null},{"name":"type_of_routine_text","value":"text","display":"Type_of_routine","deleted":null},{"name":"type_text","value":"text","display":"Type - deleted","deleted":true},{"name":"user_profession_option_professions","value":"option.professions","display":"User_profession - deleted","deleted":true}],"routine_content":[],"routine_post":[{"name":"routine_adopted_list_user","value":"list.user","display":"Routine_adopted","deleted":null},{"name":"routine_complimented_list_user","value":"list.user","display":"Routine_complimented","deleted":null},{"name":"routine_tags_list_custom_tag","value":"list.custom.tag","display":"Routine_tags","deleted":null},{"name":"routine_user_user","value":"user","display":"Routine_user","deleted":null},{"name":"routine_video_title_text","value":"text","display":"Routine_video_title","deleted":null}],"saved_search":[{"name":"saved_search_title_list_text","value":"list.text","display":"Saved_search_title - deleted","deleted":true},{"name":"saved_search_title_text","value":"text","display":"Saved_search_title","deleted":null},{"name":"saved_search_user_user","value":"user","display":"Saved_search_user","deleted":null}],"saved_search1":[{"name":"saved_search_title_list_text","value":"list.text","display":"Title","deleted":null},{"name":"saved_search_user_user","value":"user","display":"Saved_search_user - deleted","deleted":true}],"search":[{"name":"habit_custom_habit","value":"custom.habit","display":"Habit","deleted":null},{"name":"mindset_custom_mindset","value":"custom.mindset","display":"Mindset","deleted":null},{"name":"post_title_text","value":"text","display":"Post_title","deleted":null},{"name":"post_type_option_post_type","value":"option.post_type","display":"Post_type","deleted":null},{"name":"routine_custom_routine","value":"custom.routine","display":"Routine","deleted":null},{"name":"search_enablement_list_custom_enablements","value":"list.custom.enablements","display":"Enablement - deleted","deleted":true},{"name":"search_habit_post_list_custom_post","value":"list.custom.post","display":"Habit_post - deleted","deleted":true},{"name":"search_mindset_post_list_custom_mindset_post","value":"list.custom.mindset_post","display":"Mindset_post - deleted","deleted":true},{"name":"search_profession_list_option_professions","value":"list.option.professions","display":"Profession - deleted","deleted":true},{"name":"search_routine_post_list_custom_routine_post","value":"list.custom.routine_post","display":"Routine_post - deleted","deleted":true},{"name":"search_tag_custom_tag","value":"custom.tag","display":"Tag - deleted","deleted":true},{"name":"search_user_user","value":"user","display":"Search_user - deleted","deleted":true},{"name":"search_users_list_user","value":"list.user","display":"Search_users - deleted","deleted":true},{"name":"tag11_custom_tag","value":"custom.tag","display":"Tag1 - deleted","deleted":true},{"name":"tag11_text","value":"text","display":"Tag1","deleted":null},{"name":"tag1_custom_tag","value":"custom.tag","display":"Tag1 - deleted","deleted":true},{"name":"tag1_text","value":"text","display":"Tag1 - deleted","deleted":true},{"name":"tag2_custom_tag","value":"custom.tag","display":"Tag2 - deleted","deleted":true},{"name":"tag2_text","value":"text","display":"Tag2","deleted":null},{"name":"tag3_custom_tag","value":"custom.tag","display":"Tag3 - deleted","deleted":true},{"name":"tag3_text","value":"text","display":"Tag3","deleted":null},{"name":"tag4_custom_tag","value":"custom.tag","display":"Tag4 - deleted","deleted":true},{"name":"tag4_text","value":"text","display":"Tag4","deleted":null},{"name":"tag5_custom_tag","value":"custom.tag","display":"Tag5 - deleted","deleted":true},{"name":"tag5_text","value":"text","display":"Tag5","deleted":null},{"name":"tags_list_custom_tag","value":"list.custom.tag","display":"Tags","deleted":null},{"name":"types_option_os_search","value":"option.os_search","display":"Type - deleted","deleted":true}],"shop":[{"name":"mux_asset_id_text","value":"text","display":"Mux_asset_id","deleted":null},{"name":"mux_playback_id_text","value":"text","display":"Mux_playback_id","deleted":null},{"name":"mux_url_file","value":"file","display":"Mux_url","deleted":null},{"name":"post_type_option_post_type","value":"option.post_type","display":"Post_type","deleted":null},{"name":"promoted_boolean","value":"boolean","display":"Promoted","deleted":null},{"name":"shop_coaching_custom_coaching","value":"custom.coaching","display":"Shop_coaching - deleted","deleted":true},{"name":"shop_coaching_option_os_about_me_type","value":"option.os_about_me_type","display":"Shop_coaching - deleted","deleted":true},{"name":"shop_enablement_list_custom_enablements","value":"list.custom.enablements","display":"Shop_enablement - deleted","deleted":true},{"name":"shop_image_image","value":"image","display":"Image","deleted":null},{"name":"shop_social_handle_list_option_os_social_handle","value":"list.option.os_social_handle","display":"Shop_social_handle - deleted","deleted":true},{"name":"shop_social_list_custom_social","value":"list.custom.social","display":"Shop_social - deleted","deleted":true},{"name":"shop_title_text","value":"text","display":"Title","deleted":null},{"name":"shop_type_list_option_os_shop","value":"list.option.os_shop","display":"Shop_type - deleted","deleted":true},{"name":"shop_type_option_os_shop","value":"option.os_shop","display":"Type","deleted":null},{"name":"shop_url_text","value":"text","display":"Url","deleted":null},{"name":"shop_user_user","value":"user","display":"Shop_user - deleted","deleted":true},{"name":"sva_habit_custom_habit","value":"custom.habit","display":"SVA_habit","deleted":null},{"name":"sva_mindset_custom_mindset","value":"custom.mindset","display":"SVA_mindset","deleted":null},{"name":"sva_video_file","value":"file","display":"SVA_video - deleted","deleted":true},{"name":"video_cover_photo_image","value":"image","display":"Video_cover_photo - deleted","deleted":true},{"name":"video_length_number","value":"number","display":"Video_length","deleted":null},{"name":"video_length_text","value":"text","display":"Video_length - deleted","deleted":true}],"shop_video_associated":[{"name":"sva_associated_custom_habit","value":"custom.habit","display":"Habit","deleted":null},{"name":"sva_associated_custom_mindset","value":"custom.mindset","display":"Mindset","deleted":null},{"name":"sva_associated_custom_routine","value":"custom.routine","display":"SVA_routine - deleted","deleted":true},{"name":"sva_associated_option_post_type","value":"option.post_type","display":"SVA_post_type - deleted","deleted":true},{"name":"sva_image_image","value":"image","display":"Image","deleted":null},{"name":"sva_title_text","value":"text","display":"Title","deleted":null},{"name":"sva_type_option_os_shop","value":"option.os_shop","display":"Type","deleted":null},{"name":"sva_url_text","value":"text","display":"Url","deleted":null},{"name":"sva_user_user","value":"user","display":"SVA_user","deleted":null},{"name":"sva_video_file","value":"file","display":"Video","deleted":null}],"social":[{"name":"social_facebook_option_os_social_handle","value":"option.os_social_handle","display":"Facebook","default_val":"facebook","deleted":null},{"name":"social_facebook_url_text","value":"text","display":"Facebook_url","deleted":null},{"name":"social_instagram_option_os_social_handle","value":"option.os_social_handle","display":"Instagram","default_val":"instagram","deleted":null},{"name":"social_instagram_text","value":"text","display":"Social_instagram - deleted","deleted":true},{"name":"social_instagram_url_text","value":"text","display":"Instagram_url","deleted":null},{"name":"social_linkedin_option_os_social_handle","value":"option.os_social_handle","display":"Linkedin","default_val":"linkedin","deleted":null},{"name":"social_linkedin_text","value":"text","display":"Social_linkedin - deleted","deleted":true},{"name":"social_linkedin_url_text","value":"text","display":"Linkedin_url","deleted":null},{"name":"social_pinterest_option_os_social_handle","value":"option.os_social_handle","display":"Pinterest","default_val":"pinterest","deleted":null},{"name":"social_pinterest_text","value":"text","display":"Social_pinterest - deleted","deleted":true},{"name":"social_pinterest_url_text","value":"text","display":"Pinterest_url","deleted":null},{"name":"social_site_text","value":"text","display":"Social_facebook - deleted","deleted":true},{"name":"social_snapchat_handle_text","value":"text","display":"Social_snapchat_url - deleted","deleted":true},{"name":"social_snapchat_option_os_social_handle","value":"option.os_social_handle","display":"Social_snapchat - deleted","default_val":"snapchat","deleted":true},{"name":"social_snapchat_text","value":"text","display":"Social_snapchat - deleted","deleted":true},{"name":"social_tiktok_handle_text","value":"text","display":"Tiktok_url","deleted":null},{"name":"social_tiktok_option_os_social_handle","value":"option.os_social_handle","display":"Tiktok","default_val":"tiktok","deleted":null},{"name":"social_tiktok_text","value":"text","display":"Social_tiktok - deleted","deleted":true},{"name":"social_twitter_handle_text","value":"text","display":"Twitter_url","deleted":null},{"name":"social_twitter_option_os_social_handle","value":"option.os_social_handle","display":"Twitter","default_val":"twitter","deleted":null},{"name":"social_twitter_text","value":"text","display":"Social_twitter - deleted","deleted":true},{"name":"social_whatsapp_handle_text","value":"text","display":"Social_whatsapp_url - deleted","deleted":true},{"name":"social_whatsapp_option_os_social_handle","value":"option.os_social_handle","display":"Social_whatsapp - deleted","default_val":"whatsapp","deleted":true},{"name":"social_whatsapp_text","value":"text","display":"Social_whatsapp - deleted","deleted":true},{"name":"social_youtube_option_os_social_handle","value":"option.os_social_handle","display":"Youtube","default_val":"youtube","deleted":null},{"name":"social_youtube_text","value":"text","display":"Social_youtube - deleted","deleted":true},{"name":"social_youtube_url_text","value":"text","display":"Youtube_url","deleted":null},{"name":"user_user","value":"user","display":"User","deleted":null}],"sponsored":[{"name":"enablement_name_text","value":"text","display":"Sponsored_type_name - deleted","deleted":true},{"name":"enablement_type_image_image","value":"image","display":"Enablement_type_image","deleted":null},{"name":"enablement_type_link_text","value":"text","display":"Enablement_type_url","deleted":null},{"name":"enablement_type_name_text","value":"text","display":"Enablement_type_name","deleted":null},{"name":"enablement_type_option_os_enablement_type","value":"option.os_enablement_type","display":"Enablement_type","deleted":null},{"name":"logo_image","value":"image","display":"Type_logo","deleted":null},{"name":"sponsored_profession_list_option_professions","value":"list.option.professions","display":"Profession","deleted":null},{"name":"sponsored_tags_list_custom_tag","value":"list.custom.tag","display":"Tags","deleted":null},{"name":"sponsored_type_name_user","value":"user","display":"Type_name","deleted":null},{"name":"sponsored_type_option_os_sponsored_type","value":"option.os_sponsored_type","display":"Type","deleted":null},{"name":"sponsored_type_url_text","value":"text","display":"Type_url","deleted":null},{"name":"user_user","value":"user","display":"User - deleted","deleted":true}],"support":[{"name":"body_text","value":"text","display":"Message_body","deleted":null},{"name":"email_text","value":"text","display":"Email","deleted":null},{"name":"full_name_text","value":"text","display":"Full_name","deleted":null},{"name":"message_title_text","value":"text","display":"Message_title","deleted":null},{"name":"recipient_email_text","value":"text","display":"Recipient_invite_email","deleted":null},{"name":"type_option_os_email_type","value":"option.os_email_type","display":"Type","deleted":null},{"name":"user_user","value":"user","display":"User","deleted":null}],"tag":[{"name":"habit_original_post_list_custom_post","value":"list.custom.post","display":"Habit_original_post - deleted","deleted":true},{"name":"mindset_original_post_list_custom_mindset_post","value":"list.custom.mindset_post","display":"Mindset_original_post - deleted","deleted":true},{"name":"routine_original_post_list_custom_routine_post","value":"list.custom.routine_post","display":"Routine_original_post - deleted","deleted":true},{"name":"tag_post_type_list_option_post_type","value":"list.option.post_type","display":"Tag_post_type - deleted","deleted":true},{"name":"tag_text","value":"text","display":"Tag","deleted":null},{"name":"tag_user_list_user","value":"list.user","display":"Tag_user","deleted":null}],"terms_privacy":[{"name":"terms_privacy_boolean","value":"boolean","display":"Terms_privacy","deleted":null},{"name":"text_text","value":"text","display":"Text","deleted":null},{"name":"user_user","value":"user","display":"User","deleted":null}],"transaction":[{"name":"amount_number","value":"number","display":"Amount","deleted":null},{"name":"refund_boolean","value":"boolean","display":"Refund","deleted":null},{"name":"success__boolean","value":"boolean","display":"Success?","deleted":null},{"name":"type_option_os_transaction_type","value":"option.os_transaction_type","display":"Type","deleted":null},{"name":"user_user","value":"user","display":"User","deleted":null}],"user":[{"name":"admin_user","value":"user","display":"Admin","deleted":null},{"name":"adopted_list_user","value":"list.user","display":"Adopted - deleted","deleted":true},{"name":"adopted_user","value":"user","display":"Adopted - deleted","deleted":true},{"name":"adoptee_list_user","value":"list.user","display":"Adoptee - deleted","deleted":true},{"name":"badge1_list_option_os_badges","value":"list.option.os_badges","display":"Badge - deleted","deleted":true},{"name":"badge_list_custom_badge","value":"list.custom.badge","display":"Badge","deleted":null},{"name":"badge_list_option_os_badges","value":"list.option.os_badges","display":"Badge - deleted","deleted":true},{"name":"bio_text","value":"text","display":"Bio","deleted":null},{"name":"bookmark_list_option_post_type","value":"list.option.post_type","display":"Bookmark - deleted","deleted":true},{"name":"causes_list_option_causes","value":"list.option.causes","display":"Causes","deleted":null},{"name":"coaching_learn_more_text","value":"text","display":"Coaching_learn_more - deleted","deleted":true},{"name":"coaching_link_text","value":"text","display":"Coaching_link","deleted":null},{"name":"color_text","value":"text","display":"Color - deleted","deleted":true},{"name":"compliment_list_user","value":"list.user","display":"Compliment - deleted","deleted":true},{"name":"complimented_list_user","value":"list.user","display":"Complimented - deleted","deleted":true},{"name":"email_welcome_text","value":"text","display":"Email_welcome","deleted":null},{"name":"enablement_list_custom_enablements","value":"list.custom.enablements","display":"Enablement","deleted":null},{"name":"events_list_custom_event","value":"list.custom.event","display":"Events","deleted":null},{"name":"exclusive_rights_boolean","value":"boolean","display":"Exclusive_rights","default_val":false,"deleted":null},{"name":"featured_boolean","value":"boolean","display":"Featured","deleted":null},{"name":"first_name_text","value":"text","display":"Full_name","deleted":null},{"name":"follower_list_user","value":"list.user","display":"Follower","deleted":null},{"name":"following_list_user","value":"list.user","display":"Following","deleted":null},{"name":"groups_list_custom_group","value":"list.custom.group","display":"Groups","deleted":null},{"name":"invite_a_friend_count_number","value":"number","display":"Invite_a_friend_count","deleted":null},{"name":"invite_friend_email_text","value":"text","display":"Email_invite_friend","deleted":null},{"name":"large_profile_image_image","value":"image","display":"Large_profile_image","deleted":null},{"name":"last_login_date","value":"date","display":"Last_login","deleted":null},{"name":"last_name_text","value":"text","display":"Last_name - deleted","deleted":true},{"name":"location_geographic_address","value":"geographic_address","display":"Location","default_val":"","deleted":null},{"name":"our_mission_email_text","value":"text","display":"Email_our_mission","deleted":null},{"name":"profession_custom_profession","value":"custom.profession","display":"Profession - deleted","deleted":true},{"name":"profession_option_professions","value":"option.professions","display":"Profession","deleted":null},{"name":"profile_overview_email_text","value":"text","display":"Email_profile_overview","deleted":null},{"name":"profile_posts_email_text","value":"text","display":"Email_profile_posts","deleted":null},{"name":"profile_shop_email_text","value":"text","display":"Email_profile_shop","deleted":null},{"name":"progress_bar_overview_boolean","value":"boolean","display":"Progress_bar_overview_hidden","deleted":null},{"name":"review_invite_count_number","value":"number","display":"GF_review_visible_count","deleted":null},{"name":"role_1_1_option_os_user_role","value":"option.os_user_role","display":"Role - deleted","default_val":"contributor","deleted":true},{"name":"role_custom_role","value":"custom.role","display":"Role","deleted":null},{"name":"saved_search_list_custom_saved_search","value":"list.custom.saved_search","display":"Saved_search - deleted","deleted":true},{"name":"shareable_link_count_number","value":"number","display":"GF_share_visible_count","deleted":null},{"name":"small_profile_image_image","value":"image","display":"Small_profile_image","deleted":null},{"name":"terms_privacy1_boolean","value":"boolean","display":"Terms_privacy","default_val":false,"deleted":null},{"name":"terms_privacy_boolean","value":"boolean","display":"Terms_privacy - deleted","deleted":true},{"name":"terms_privacy_custom_terms_privacy","value":"custom.terms_privacy","display":"Terms_privacy - deleted","deleted":true},{"name":"terms_privacy_date","value":"date","display":"Terms_privacy - deleted","deleted":true},{"name":"user_about_me1_custom_about_me","value":"custom.about_me","display":"About_me","deleted":null},{"name":"user_about_me_custom_about_me","value":"custom.about_me","display":"User_about_me - deleted","deleted":true},{"name":"user_about_me_list_custom_about_me","value":"list.custom.about_me","display":"User_about_me - deleted","deleted":true},{"name":"user_coaching_custom_about_me","value":"custom.about_me","display":"Coaching","deleted":null},{"name":"user_coaching_custom_coaching","value":"custom.coaching","display":"User_coaching - deleted","deleted":true},{"name":"user_comment_list_custom_comment","value":"list.custom.comment","display":"User_comment - deleted","deleted":true},{"name":"user_enablement_list_custom_enablements","value":"list.custom.enablements","display":"User_enablement - deleted","deleted":true},{"name":"user_habits_list_custom_habit","value":"list.custom.habit","display":"Habits","deleted":null},{"name":"user_handle_text","value":"text","display":"Handle - deleted","deleted":true},{"name":"user_intro_custom_about_me","value":"custom.about_me","display":"User_intro - deleted","deleted":true},{"name":"user_message_list_custom_message","value":"list.custom.message","display":"User_message - deleted","deleted":true},{"name":"user_mindset_list_custom_mindset","value":"list.custom.mindset","display":"Mindset","deleted":null},{"name":"user_origin_custom_about_me","value":"custom.about_me","display":"Origin","deleted":null},{"name":"user_origin_custom_origin","value":"custom.origin","display":"User_origin - deleted","deleted":true},{"name":"user_review_list_custom_review","value":"list.custom.review","display":"User_review - deleted","deleted":true},{"name":"user_reviews_list_custom_review","value":"list.custom.review","display":"User_reviews - deleted","deleted":true},{"name":"user_role1_custom_role","value":"custom.role","display":"Role - deleted","deleted":true},{"name":"user_role_custom_role","value":"custom.role","display":"User_role - deleted","deleted":true},{"name":"user_role_option_os_user_role","value":"option.os_user_role","display":"User_role - deleted","default_val":"contributor","deleted":true},{"name":"user_routines_list_custom_routine","value":"list.custom.routine","display":"Routines","deleted":null},{"name":"user_shop_list_custom_shop","value":"list.custom.shop","display":"Shop","deleted":null},{"name":"user_social_custom_social","value":"custom.social","display":"User_social - deleted","deleted":true},{"name":"user_social_list_custom_social","value":"list.custom.social","display":"User_social - deleted","deleted":true},{"name":"user_sponsored_list_custom_sponsored","value":"list.custom.sponsored","display":"User_sponsored - deleted","deleted":true},{"name":"user_website_text","value":"text","display":"Website","deleted":null},{"name":"viewed_opening_message_boolean","value":"boolean","display":"Viewed_opening_message - deleted","default_val":false,"deleted":true}]}
window.preloaded['app/derived:{"function_name":"DefaultValues","args":[]}'] = true;

    window._bubble_page_load_data.js_execution_timings.static_js_end_execution = Date.now();

jQuery.migrateEnablePatches('self-closed-tags');