
// The empty line above is critical for templating main.beta in the current implementation
// Start Test Mode Detection ;

// 
[
// 
function() { return new Promise(function (res, rej) {
        (function(document, window){
            var script = document.createElement("script");
            script.type = "text/javascript";
            script.src = "https://cdn.pushnami.com/js/modules/media.bundle.js";
            script.onload = function () { return res(); };
            script.onerror = function () { return rej(); };
            document.getElementsByTagName("head")[0].appendChild(script);
        })(document, window)
    })},
// 
].reduce(function(chain, fn) {
    return chain.then(function () {return fn();}).catch(function(){return fn();})
}, Promise.resolve());
// 
var isRollbar = null;
// add rollbar 
var pushWrap = {
    wrapObj: function (service) {
        for (var fn in service){
            if (service.hasOwnProperty(fn) && typeof(service[fn]) === 'function') pushWrap.safeWrap(service, fn);
        }
    },
    safeWrap: function(service, fn) {
        var pushFn = service[fn];
        service[fn] = function (a, b, c, d, e, f, g, h, i, j, k, l) {
            try { return pushFn.call(service, a, b, c, d, e, f, g, h, i, j, k, l); }
            catch (err) {
                pushWrap.report(err);
            }
        };
    },
    report: function(err){
        var opts = {
            event: 'webpush-error-generic',
            scope: 'Website',
            scopeId: "60eeeecc6fa2b800105569ef",
            l: encodeURIComponent(location.href),
            e: JSON.stringify(err, Object.getOwnPropertyNames(err))
        };

        var uri = 'event=' + opts.event
            + '&scope=' + opts.scope
            + '&scopeId=' + opts.scopeId
            + ((navigator && navigator.userAgent) ? '&ua=' + navigator.userAgent : '')
            + ((opts.l) ? "&l=" + opts.l : "")
            + ((opts.e) ? "&e=" + opts.e : "");

        if (typeof fetch === 'function') {
            fetch('https://trc.pushnami.com/api/push/track', {
                method: 'POST',
                body: encodeURI(uri),
                mode: 'cors',
                redirect: 'follow',
                headers: new Headers({
                    'Accept': 'application/json, text/plain, */*',
                    'Content-Type': 'application/x-www-form-urlencoded',
                    'key': '60eeeecc6fa2b800105569f0'
                })
            });
        }
        if (isRollbar) Rollbar.error(err);
    }
};


// start device detection 
// https://github.com/lancedikson/bowser
!function(t,n){t.bowser=n()}(this,(function(){return function(t){var n={};function e(r){if(n[r])return n[r].exports;var i=n[r]={i:r,l:!1,exports:{}};return t[r].call(i.exports,i,i.exports,e),i.l=!0,i.exports}return e.m=t,e.c=n,e.d=function(t,n,r){e.o(t,n)||Object.defineProperty(t,n,{enumerable:!0,get:r})},e.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},e.t=function(t,n){if(1&n&&(t=e(t)),8&n)return t;if(4&n&&"object"==typeof t&&t&&t.__esModule)return t;var r=Object.create(null);if(e.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:t}),2&n&&"string"!=typeof t)for(var i in t)e.d(r,i,function(n){return t[n]}.bind(null,i));return r},e.n=function(t){var n=t&&t.__esModule?function(){return t.default}:function(){return t};return e.d(n,"a",n),n},e.o=function(t,n){return Object.prototype.hasOwnProperty.call(t,n)},e.p="",e(e.s=129)}([function(t,n,e){var r=e(1),i=e(7),o=e(14),u=e(11),a=e(19),c=function(t,n,e){var s,f,l,h,p=t&c.F,v=t&c.G,d=t&c.S,g=t&c.P,y=t&c.B,m=v?r:d?r[n]||(r[n]={}):(r[n]||{}).prototype,b=v?i:i[n]||(i[n]={}),S=b.prototype||(b.prototype={});for(s in v&&(e=n),e)l=((f=!p&&m&&void 0!==m[s])?m:e)[s],h=y&&f?a(l,r):g&&"function"==typeof l?a(Function.call,l):l,m&&u(m,s,l,t&c.U),b[s]!=l&&o(b,s,h),g&&S[s]!=l&&(S[s]=l)};r.core=i,c.F=1,c.G=2,c.S=4,c.P=8,c.B=16,c.W=32,c.U=64,c.R=128,t.exports=c},function(t,n){var e=t.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=e)},function(t,n){t.exports=function(t){try{return!!t()}catch(t){return!0}}},function(t,n,e){var r=e(4);t.exports=function(t){if(!r(t))throw TypeError(t+" is not an object!");return t}},function(t,n){t.exports=function(t){return"object"==typeof t?null!==t:"function"==typeof t}},function(t,n,e){var r=e(50)("wks"),i=e(31),o=e(1).Symbol,u="function"==typeof o;(t.exports=function(t){return r[t]||(r[t]=u&&o[t]||(u?o:i)("Symbol."+t))}).store=r},function(t,n,e){var r=e(21),i=Math.min;t.exports=function(t){return t>0?i(r(t),9007199254740991):0}},function(t,n){var e=t.exports={version:"2.6.9"};"number"==typeof __e&&(__e=e)},function(t,n,e){t.exports=!e(2)((function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a}))},function(t,n,e){var r=e(3),i=e(96),o=e(28),u=Object.defineProperty;n.f=e(8)?Object.defineProperty:function(t,n,e){if(r(t),n=o(n,!0),r(e),i)try{return u(t,n,e)}catch(t){}if("get"in e||"set"in e)throw TypeError("Accessors not supported!");return"value"in e&&(t[n]=e.value),t}},function(t,n,e){var r=e(26);t.exports=function(t){return Object(r(t))}},function(t,n,e){var r=e(1),i=e(14),o=e(13),u=e(31)("src"),a=e(134),c=(""+a).split("toString");e(7).inspectSource=function(t){return a.call(t)},(t.exports=function(t,n,e,a){var s="function"==typeof e;s&&(o(e,"name")||i(e,"name",n)),t[n]!==e&&(s&&(o(e,u)||i(e,u,t[n]?""+t[n]:c.join(String(n)))),t===r?t[n]=e:a?t[n]?t[n]=e:i(t,n,e):(delete t[n],i(t,n,e)))})(Function.prototype,"toString",(function(){return"function"==typeof this&&this[u]||a.call(this)}))},function(t,n,e){var r=e(0),i=e(2),o=e(26),u=/"/g,a=function(t,n,e,r){var i=String(o(t)),a="<"+n;return""!==e&&(a+=" "+e+'="'+String(r).replace(u,"&quot;")+'"'),a+">"+i+"</"+n+">"};t.exports=function(t,n){var e={};e[t]=n(a),r(r.P+r.F*i((function(){var n=""[t]('"');return n!==n.toLowerCase()||n.split('"').length>3})),"String",e)}},function(t,n){var e={}.hasOwnProperty;t.exports=function(t,n){return e.call(t,n)}},function(t,n,e){var r=e(9),i=e(30);t.exports=e(8)?function(t,n,e){return r.f(t,n,i(1,e))}:function(t,n,e){return t[n]=e,t}},function(t,n,e){var r=e(46),i=e(26);t.exports=function(t){return r(i(t))}},function(t,n,e){"use strict";var r=e(2);t.exports=function(t,n){return!!t&&r((function(){n?t.call(null,(function(){}),1):t.call(null)}))}},function(t,n,e){"use strict";n.__esModule=!0,n.default=void 0;var r=e(18),i=function(){function t(){}return t.getFirstMatch=function(t,n){var e=n.match(t);return e&&e.length>0&&e[1]||""},t.getSecondMatch=function(t,n){var e=n.match(t);return e&&e.length>1&&e[2]||""},t.matchAndReturnConst=function(t,n,e){if(t.test(n))return e},t.getWindowsVersionName=function(t){switch(t){case"NT":return"NT";case"XP":return"XP";case"NT 5.0":return"2000";case"NT 5.1":return"XP";case"NT 5.2":return"2003";case"NT 6.0":return"Vista";case"NT 6.1":return"7";case"NT 6.2":return"8";case"NT 6.3":return"8.1";case"NT 10.0":return"10";default:return}},t.getMacOSVersionName=function(t){var n=t.split(".").splice(0,2).map((function(t){return parseInt(t,10)||0}));if(n.push(0),10===n[0])switch(n[1]){case 5:return"Leopard";case 6:return"Snow Leopard";case 7:return"Lion";case 8:return"Mountain Lion";case 9:return"Mavericks";case 10:return"Yosemite";case 11:return"El Capitan";case 12:return"Sierra";case 13:return"High Sierra";case 14:return"Mojave";case 15:return"Catalina";default:return}},t.getAndroidVersionName=function(t){var n=t.split(".").splice(0,2).map((function(t){return parseInt(t,10)||0}));if(n.push(0),!(1===n[0]&&n[1]<5))return 1===n[0]&&n[1]<6?"Cupcake":1===n[0]&&n[1]>=6?"Donut":2===n[0]&&n[1]<2?"Eclair":2===n[0]&&2===n[1]?"Froyo":2===n[0]&&n[1]>2?"Gingerbread":3===n[0]?"Honeycomb":4===n[0]&&n[1]<1?"Ice Cream Sandwich":4===n[0]&&n[1]<4?"Jelly Bean":4===n[0]&&n[1]>=4?"KitKat":5===n[0]?"Lollipop":6===n[0]?"Marshmallow":7===n[0]?"Nougat":8===n[0]?"Oreo":9===n[0]?"Pie":void 0},t.getVersionPrecision=function(t){return t.split(".").length},t.compareVersions=function(n,e,r){void 0===r&&(r=!1);var i=t.getVersionPrecision(n),o=t.getVersionPrecision(e),u=Math.max(i,o),a=0,c=t.map([n,e],(function(n){var e=u-t.getVersionPrecision(n),r=n+new Array(e+1).join(".0");return t.map(r.split("."),(function(t){return new Array(20-t.length).join("0")+t})).reverse()}));for(r&&(a=u-Math.min(i,o)),u-=1;u>=a;){if(c[0][u]>c[1][u])return 1;if(c[0][u]===c[1][u]){if(u===a)return 0;u-=1}else if(c[0][u]<c[1][u])return-1}},t.map=function(t,n){var e,r=[];if(Array.prototype.map)return Array.prototype.map.call(t,n);for(e=0;e<t.length;e+=1)r.push(n(t[e]));return r},t.getBrowserAlias=function(t){return r.BROWSER_ALIASES_MAP[t]},t.getBrowserTypeByAlias=function(t){return r.BROWSER_MAP[t]||""},t}();n.default=i,t.exports=n.default},function(t,n,e){"use strict";n.__esModule=!0,n.ENGINE_MAP=n.OS_MAP=n.PLATFORMS_MAP=n.BROWSER_MAP=n.BROWSER_ALIASES_MAP=void 0;n.BROWSER_ALIASES_MAP={"Amazon Silk":"amazon_silk","Android Browser":"android",Bada:"bada",BlackBerry:"blackberry",Chrome:"chrome",Chromium:"chromium",Epiphany:"epiphany",Firefox:"firefox",Focus:"focus",Generic:"generic","Google Search":"google_search",Googlebot:"googlebot","Internet Explorer":"ie","K-Meleon":"k_meleon",Maxthon:"maxthon","Microsoft Edge":"edge","MZ Browser":"mz","NAVER Whale Browser":"naver",Opera:"opera","Opera Coast":"opera_coast",PhantomJS:"phantomjs",Puffin:"puffin",QupZilla:"qupzilla",QQ:"qq",QQLite:"qqlite",Safari:"safari",Sailfish:"sailfish","Samsung Internet for Android":"samsung_internet",SeaMonkey:"seamonkey",Sleipnir:"sleipnir",Swing:"swing",Tizen:"tizen","UC Browser":"uc",Vivaldi:"vivaldi","WebOS Browser":"webos",WeChat:"wechat","Yandex Browser":"yandex",Roku:"roku"};n.BROWSER_MAP={amazon_silk:"Amazon Silk",android:"Android Browser",bada:"Bada",blackberry:"BlackBerry",chrome:"Chrome",chromium:"Chromium",epiphany:"Epiphany",firefox:"Firefox",focus:"Focus",generic:"Generic",googlebot:"Googlebot",google_search:"Google Search",ie:"Internet Explorer",k_meleon:"K-Meleon",maxthon:"Maxthon",edge:"Microsoft Edge",mz:"MZ Browser",naver:"NAVER Whale Browser",opera:"Opera",opera_coast:"Opera Coast",phantomjs:"PhantomJS",puffin:"Puffin",qupzilla:"QupZilla",qq:"QQ Browser",qqlite:"QQ Browser Lite",safari:"Safari",sailfish:"Sailfish",samsung_internet:"Samsung Internet for Android",seamonkey:"SeaMonkey",sleipnir:"Sleipnir",swing:"Swing",tizen:"Tizen",uc:"UC Browser",vivaldi:"Vivaldi",webos:"WebOS Browser",wechat:"WeChat",yandex:"Yandex Browser"};n.PLATFORMS_MAP={tablet:"tablet",mobile:"mobile",desktop:"desktop",tv:"tv"};n.OS_MAP={WindowsPhone:"Windows Phone",Windows:"Windows",MacOS:"macOS",iOS:"iOS",Android:"Android",WebOS:"WebOS",BlackBerry:"BlackBerry",Bada:"Bada",Tizen:"Tizen",Linux:"Linux",ChromeOS:"Chrome OS",PlayStation4:"PlayStation 4",Roku:"Roku"};n.ENGINE_MAP={EdgeHTML:"EdgeHTML",Blink:"Blink",Trident:"Trident",Presto:"Presto",Gecko:"Gecko",WebKit:"WebKit"}},function(t,n,e){var r=e(20);t.exports=function(t,n,e){if(r(t),void 0===n)return t;switch(e){case 1:return function(e){return t.call(n,e)};case 2:return function(e,r){return t.call(n,e,r)};case 3:return function(e,r,i){return t.call(n,e,r,i)}}return function(){return t.apply(n,arguments)}}},function(t,n){t.exports=function(t){if("function"!=typeof t)throw TypeError(t+" is not a function!");return t}},function(t,n){var e=Math.ceil,r=Math.floor;t.exports=function(t){return isNaN(t=+t)?0:(t>0?r:e)(t)}},function(t,n,e){var r=e(47),i=e(30),o=e(15),u=e(28),a=e(13),c=e(96),s=Object.getOwnPropertyDescriptor;n.f=e(8)?s:function(t,n){if(t=o(t),n=u(n,!0),c)try{return s(t,n)}catch(t){}if(a(t,n))return i(!r.f.call(t,n),t[n])}},function(t,n,e){var r=e(0),i=e(7),o=e(2);t.exports=function(t,n){var e=(i.Object||{})[t]||Object[t],u={};u[t]=n(e),r(r.S+r.F*o((function(){e(1)})),"Object",u)}},function(t,n,e){var r=e(19),i=e(46),o=e(10),u=e(6),a=e(112);t.exports=function(t,n){var e=1==t,c=2==t,s=3==t,f=4==t,l=6==t,h=5==t||l,p=n||a;return function(n,a,v){for(var d,g,y=o(n),m=i(y),b=r(a,v,3),S=u(m.length),w=0,_=e?p(n,S):c?p(n,0):void 0;S>w;w++)if((h||w in m)&&(g=b(d=m[w],w,y),t))if(e)_[w]=g;else if(g)switch(t){case 3:return!0;case 5:return d;case 6:return w;case 2:_.push(d)}else if(f)return!1;return l?-1:s||f?f:_}}},function(t,n){var e={}.toString;t.exports=function(t){return e.call(t).slice(8,-1)}},function(t,n){t.exports=function(t){if(null==t)throw TypeError("Can't call method on  "+t);return t}},function(t,n,e){"use strict";if(e(8)){var r=e(32),i=e(1),o=e(2),u=e(0),a=e(61),c=e(86),s=e(19),f=e(44),l=e(30),h=e(14),p=e(45),v=e(21),d=e(6),g=e(123),y=e(34),m=e(28),b=e(13),S=e(48),w=e(4),_=e(10),x=e(78),M=e(35),P=e(37),O=e(36).f,F=e(80),A=e(31),E=e(5),N=e(24),R=e(51),k=e(49),T=e(82),I=e(42),L=e(54),j=e(43),B=e(81),C=e(114),W=e(9),G=e(22),V=W.f,D=G.f,U=i.RangeError,z=i.TypeError,q=i.Uint8Array,K=Array.prototype,Y=c.ArrayBuffer,Q=c.DataView,H=N(0),J=N(2),X=N(3),Z=N(4),$=N(5),tt=N(6),nt=R(!0),et=R(!1),rt=T.values,it=T.keys,ot=T.entries,ut=K.lastIndexOf,at=K.reduce,ct=K.reduceRight,st=K.join,ft=K.sort,lt=K.slice,ht=K.toString,pt=K.toLocaleString,vt=E("iterator"),dt=E("toStringTag"),gt=A("typed_constructor"),yt=A("def_constructor"),mt=a.CONSTR,bt=a.TYPED,St=a.VIEW,wt=N(1,(function(t,n){return Ot(k(t,t[yt]),n)})),_t=o((function(){return 1===new q(new Uint16Array([1]).buffer)[0]})),xt=!!q&&!!q.prototype.set&&o((function(){new q(1).set({})})),Mt=function(t,n){var e=v(t);if(e<0||e%n)throw U("Wrong offset!");return e},Pt=function(t){if(w(t)&&bt in t)return t;throw z(t+" is not a typed array!")},Ot=function(t,n){if(!(w(t)&&gt in t))throw z("It is not a typed array constructor!");return new t(n)},Ft=function(t,n){return At(k(t,t[yt]),n)},At=function(t,n){for(var e=0,r=n.length,i=Ot(t,r);r>e;)i[e]=n[e++];return i},Et=function(t,n,e){V(t,n,{get:function(){return this._d[e]}})},Nt=function(t){var n,e,r,i,o,u,a=_(t),c=arguments.length,f=c>1?arguments[1]:void 0,l=void 0!==f,h=F(a);if(null!=h&&!x(h)){for(u=h.call(a),r=[],n=0;!(o=u.next()).done;n++)r.push(o.value);a=r}for(l&&c>2&&(f=s(f,arguments[2],2)),n=0,e=d(a.length),i=Ot(this,e);e>n;n++)i[n]=l?f(a[n],n):a[n];return i},Rt=function(){for(var t=0,n=arguments.length,e=Ot(this,n);n>t;)e[t]=arguments[t++];return e},kt=!!q&&o((function(){pt.call(new q(1))})),Tt=function(){return pt.apply(kt?lt.call(Pt(this)):Pt(this),arguments)},It={copyWithin:function(t,n){return C.call(Pt(this),t,n,arguments.length>2?arguments[2]:void 0)},every:function(t){return Z(Pt(this),t,arguments.length>1?arguments[1]:void 0)},fill:function(t){return B.apply(Pt(this),arguments)},filter:function(t){return Ft(this,J(Pt(this),t,arguments.length>1?arguments[1]:void 0))},find:function(t){return $(Pt(this),t,arguments.length>1?arguments[1]:void 0)},findIndex:function(t){return tt(Pt(this),t,arguments.length>1?arguments[1]:void 0)},forEach:function(t){H(Pt(this),t,arguments.length>1?arguments[1]:void 0)},indexOf:function(t){return et(Pt(this),t,arguments.length>1?arguments[1]:void 0)},includes:function(t){return nt(Pt(this),t,arguments.length>1?arguments[1]:void 0)},join:function(t){return st.apply(Pt(this),arguments)},lastIndexOf:function(t){return ut.apply(Pt(this),arguments)},map:function(t){return wt(Pt(this),t,arguments.length>1?arguments[1]:void 0)},reduce:function(t){return at.apply(Pt(this),arguments)},reduceRight:function(t){return ct.apply(Pt(this),arguments)},reverse:function(){for(var t,n=Pt(this).length,e=Math.floor(n/2),r=0;r<e;)t=this[r],this[r++]=this[--n],this[n]=t;return this},some:function(t){return X(Pt(this),t,arguments.length>1?arguments[1]:void 0)},sort:function(t){return ft.call(Pt(this),t)},subarray:function(t,n){var e=Pt(this),r=e.length,i=y(t,r);return new(k(e,e[yt]))(e.buffer,e.byteOffset+i*e.BYTES_PER_ELEMENT,d((void 0===n?r:y(n,r))-i))}},Lt=function(t,n){return Ft(this,lt.call(Pt(this),t,n))},jt=function(t){Pt(this);var n=Mt(arguments[1],1),e=this.length,r=_(t),i=d(r.length),o=0;if(i+n>e)throw U("Wrong length!");for(;o<i;)this[n+o]=r[o++]},Bt={entries:function(){return ot.call(Pt(this))},keys:function(){return it.call(Pt(this))},values:function(){return rt.call(Pt(this))}},Ct=function(t,n){return w(t)&&t[bt]&&"symbol"!=typeof n&&n in t&&String(+n)==String(n)},Wt=function(t,n){return Ct(t,n=m(n,!0))?l(2,t[n]):D(t,n)},Gt=function(t,n,e){return!(Ct(t,n=m(n,!0))&&w(e)&&b(e,"value"))||b(e,"get")||b(e,"set")||e.configurable||b(e,"writable")&&!e.writable||b(e,"enumerable")&&!e.enumerable?V(t,n,e):(t[n]=e.value,t)};mt||(G.f=Wt,W.f=Gt),u(u.S+u.F*!mt,"Object",{getOwnPropertyDescriptor:Wt,defineProperty:Gt}),o((function(){ht.call({})}))&&(ht=pt=function(){return st.call(this)});var Vt=p({},It);p(Vt,Bt),h(Vt,vt,Bt.values),p(Vt,{slice:Lt,set:jt,constructor:function(){},toString:ht,toLocaleString:Tt}),Et(Vt,"buffer","b"),Et(Vt,"byteOffset","o"),Et(Vt,"byteLength","l"),Et(Vt,"length","e"),V(Vt,dt,{get:function(){return this[bt]}}),t.exports=function(t,n,e,c){var s=t+((c=!!c)?"Clamped":"")+"Array",l="get"+t,p="set"+t,v=i[s],y=v||{},m=v&&P(v),b=!v||!a.ABV,_={},x=v&&v.prototype,F=function(t,e){V(t,e,{get:function(){return function(t,e){var r=t._d;return r.v[l](e*n+r.o,_t)}(this,e)},set:function(t){return function(t,e,r){var i=t._d;c&&(r=(r=Math.round(r))<0?0:r>255?255:255&r),i.v[p](e*n+i.o,r,_t)}(this,e,t)},enumerable:!0})};b?(v=e((function(t,e,r,i){f(t,v,s,"_d");var o,u,a,c,l=0,p=0;if(w(e)){if(!(e instanceof Y||"ArrayBuffer"==(c=S(e))||"SharedArrayBuffer"==c))return bt in e?At(v,e):Nt.call(v,e);o=e,p=Mt(r,n);var y=e.byteLength;if(void 0===i){if(y%n)throw U("Wrong length!");if((u=y-p)<0)throw U("Wrong length!")}else if((u=d(i)*n)+p>y)throw U("Wrong length!");a=u/n}else a=g(e),o=new Y(u=a*n);for(h(t,"_d",{b:o,o:p,l:u,e:a,v:new Q(o)});l<a;)F(t,l++)})),x=v.prototype=M(Vt),h(x,"constructor",v)):o((function(){v(1)}))&&o((function(){new v(-1)}))&&L((function(t){new v,new v(null),new v(1.5),new v(t)}),!0)||(v=e((function(t,e,r,i){var o;return f(t,v,s),w(e)?e instanceof Y||"ArrayBuffer"==(o=S(e))||"SharedArrayBuffer"==o?void 0!==i?new y(e,Mt(r,n),i):void 0!==r?new y(e,Mt(r,n)):new y(e):bt in e?At(v,e):Nt.call(v,e):new y(g(e))})),H(m!==Function.prototype?O(y).concat(O(m)):O(y),(function(t){t in v||h(v,t,y[t])})),v.prototype=x,r||(x.constructor=v));var A=x[vt],E=!!A&&("values"==A.name||null==A.name),N=Bt.values;h(v,gt,!0),h(x,bt,s),h(x,St,!0),h(x,yt,v),(c?new v(1)[dt]==s:dt in x)||V(x,dt,{get:function(){return s}}),_[s]=v,u(u.G+u.W+u.F*(v!=y),_),u(u.S,s,{BYTES_PER_ELEMENT:n}),u(u.S+u.F*o((function(){y.of.call(v,1)})),s,{from:Nt,of:Rt}),"BYTES_PER_ELEMENT"in x||h(x,"BYTES_PER_ELEMENT",n),u(u.P,s,It),j(s),u(u.P+u.F*xt,s,{set:jt}),u(u.P+u.F*!E,s,Bt),r||x.toString==ht||(x.toString=ht),u(u.P+u.F*o((function(){new v(1).slice()})),s,{slice:Lt}),u(u.P+u.F*(o((function(){return[1,2].toLocaleString()!=new v([1,2]).toLocaleString()}))||!o((function(){x.toLocaleString.call([1,2])}))),s,{toLocaleString:Tt}),I[s]=E?A:N,r||E||h(x,vt,N)}}else t.exports=function(){}},function(t,n,e){var r=e(4);t.exports=function(t,n){if(!r(t))return t;var e,i;if(n&&"function"==typeof(e=t.toString)&&!r(i=e.call(t)))return i;if("function"==typeof(e=t.valueOf)&&!r(i=e.call(t)))return i;if(!n&&"function"==typeof(e=t.toString)&&!r(i=e.call(t)))return i;throw TypeError("Can't convert object to primitive value")}},function(t,n,e){var r=e(31)("meta"),i=e(4),o=e(13),u=e(9).f,a=0,c=Object.isExtensible||function(){return!0},s=!e(2)((function(){return c(Object.preventExtensions({}))})),f=function(t){u(t,r,{value:{i:"O"+ ++a,w:{}}})},l=t.exports={KEY:r,NEED:!1,fastKey:function(t,n){if(!i(t))return"symbol"==typeof t?t:("string"==typeof t?"S":"P")+t;if(!o(t,r)){if(!c(t))return"F";if(!n)return"E";f(t)}return t[r].i},getWeak:function(t,n){if(!o(t,r)){if(!c(t))return!0;if(!n)return!1;f(t)}return t[r].w},onFreeze:function(t){return s&&l.NEED&&c(t)&&!o(t,r)&&f(t),t}}},function(t,n){t.exports=function(t,n){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:n}}},function(t,n){var e=0,r=Math.random();t.exports=function(t){return"Symbol(".concat(void 0===t?"":t,")_",(++e+r).toString(36))}},function(t,n){t.exports=!1},function(t,n,e){var r=e(98),i=e(65);t.exports=Object.keys||function(t){return r(t,i)}},function(t,n,e){var r=e(21),i=Math.max,o=Math.min;t.exports=function(t,n){return(t=r(t))<0?i(t+n,0):o(t,n)}},function(t,n,e){var r=e(3),i=e(99),o=e(65),u=e(64)("IE_PROTO"),a=function(){},c=function(){var t,n=e(62)("iframe"),r=o.length;for(n.style.display="none",e(66).appendChild(n),n.src="javascript:",(t=n.contentWindow.document).open(),t.write("<script>document.F=Object<\/script>"),t.close(),c=t.F;r--;)delete c.prototype[o[r]];return c()};t.exports=Object.create||function(t,n){var e;return null!==t?(a.prototype=r(t),e=new a,a.prototype=null,e[u]=t):e=c(),void 0===n?e:i(e,n)}},function(t,n,e){var r=e(98),i=e(65).concat("length","prototype");n.f=Object.getOwnPropertyNames||function(t){return r(t,i)}},function(t,n,e){var r=e(13),i=e(10),o=e(64)("IE_PROTO"),u=Object.prototype;t.exports=Object.getPrototypeOf||function(t){return t=i(t),r(t,o)?t[o]:"function"==typeof t.constructor&&t instanceof t.constructor?t.constructor.prototype:t instanceof Object?u:null}},function(t,n,e){var r=e(5)("unscopables"),i=Array.prototype;null==i[r]&&e(14)(i,r,{}),t.exports=function(t){i[r][t]=!0}},function(t,n,e){var r=e(4);t.exports=function(t,n){if(!r(t)||t._t!==n)throw TypeError("Incompatible receiver, "+n+" required!");return t}},function(t,n,e){var r=e(9).f,i=e(13),o=e(5)("toStringTag");t.exports=function(t,n,e){t&&!i(t=e?t:t.prototype,o)&&r(t,o,{configurable:!0,value:n})}},function(t,n,e){var r=e(0),i=e(26),o=e(2),u=e(68),a="["+u+"]",c=RegExp("^"+a+a+"*"),s=RegExp(a+a+"*$"),f=function(t,n,e){var i={},a=o((function(){return!!u[t]()||"​"!="​"[t]()})),c=i[t]=a?n(l):u[t];e&&(i[e]=c),r(r.P+r.F*a,"String",i)},l=f.trim=function(t,n){return t=String(i(t)),1&n&&(t=t.replace(c,"")),2&n&&(t=t.replace(s,"")),t};t.exports=f},function(t,n){t.exports={}},function(t,n,e){"use strict";var r=e(1),i=e(9),o=e(8),u=e(5)("species");t.exports=function(t){var n=r[t];o&&n&&!n[u]&&i.f(n,u,{configurable:!0,get:function(){return this}})}},function(t,n){t.exports=function(t,n,e,r){if(!(t instanceof n)||void 0!==r&&r in t)throw TypeError(e+": incorrect invocation!");return t}},function(t,n,e){var r=e(11);t.exports=function(t,n,e){for(var i in n)r(t,i,n[i],e);return t}},function(t,n,e){var r=e(25);t.exports=Object("z").propertyIsEnumerable(0)?Object:function(t){return"String"==r(t)?t.split(""):Object(t)}},function(t,n){n.f={}.propertyIsEnumerable},function(t,n,e){var r=e(25),i=e(5)("toStringTag"),o="Arguments"==r(function(){return arguments}());t.exports=function(t){var n,e,u;return void 0===t?"Undefined":null===t?"Null":"string"==typeof(e=function(t,n){try{return t[n]}catch(t){}}(n=Object(t),i))?e:o?r(n):"Object"==(u=r(n))&&"function"==typeof n.callee?"Arguments":u}},function(t,n,e){var r=e(3),i=e(20),o=e(5)("species");t.exports=function(t,n){var e,u=r(t).constructor;return void 0===u||null==(e=r(u)[o])?n:i(e)}},function(t,n,e){var r=e(7),i=e(1),o=i["__core-js_shared__"]||(i["__core-js_shared__"]={});(t.exports=function(t,n){return o[t]||(o[t]=void 0!==n?n:{})})("versions",[]).push({version:r.version,mode:e(32)?"pure":"global",copyright:"© 2019 Denis Pushkarev (zloirock.ru)"})},function(t,n,e){var r=e(15),i=e(6),o=e(34);t.exports=function(t){return function(n,e,u){var a,c=r(n),s=i(c.length),f=o(u,s);if(t&&e!=e){for(;s>f;)if((a=c[f++])!=a)return!0}else for(;s>f;f++)if((t||f in c)&&c[f]===e)return t||f||0;return!t&&-1}}},function(t,n){n.f=Object.getOwnPropertySymbols},function(t,n,e){var r=e(25);t.exports=Array.isArray||function(t){return"Array"==r(t)}},function(t,n,e){var r=e(5)("iterator"),i=!1;try{var o=[7][r]();o.return=function(){i=!0},Array.from(o,(function(){throw 2}))}catch(t){}t.exports=function(t,n){if(!n&&!i)return!1;var e=!1;try{var o=[7],u=o[r]();u.next=function(){return{done:e=!0}},o[r]=function(){return u},t(o)}catch(t){}return e}},function(t,n,e){"use strict";var r=e(3);t.exports=function(){var t=r(this),n="";return t.global&&(n+="g"),t.ignoreCase&&(n+="i"),t.multiline&&(n+="m"),t.unicode&&(n+="u"),t.sticky&&(n+="y"),n}},function(t,n,e){"use strict";var r=e(48),i=RegExp.prototype.exec;t.exports=function(t,n){var e=t.exec;if("function"==typeof e){var o=e.call(t,n);if("object"!=typeof o)throw new TypeError("RegExp exec method returned something other than an Object or null");return o}if("RegExp"!==r(t))throw new TypeError("RegExp#exec called on incompatible receiver");return i.call(t,n)}},function(t,n,e){"use strict";e(116);var r=e(11),i=e(14),o=e(2),u=e(26),a=e(5),c=e(83),s=a("species"),f=!o((function(){var t=/./;return t.exec=function(){var t=[];return t.groups={a:"7"},t},"7"!=="".replace(t,"$<a>")})),l=function(){var t=/(?:)/,n=t.exec;t.exec=function(){return n.apply(this,arguments)};var e="ab".split(t);return 2===e.length&&"a"===e[0]&&"b"===e[1]}();t.exports=function(t,n,e){var h=a(t),p=!o((function(){var n={};return n[h]=function(){return 7},7!=""[t](n)})),v=p?!o((function(){var n=!1,e=/a/;return e.exec=function(){return n=!0,null},"split"===t&&(e.constructor={},e.constructor[s]=function(){return e}),e[h](""),!n})):void 0;if(!p||!v||"replace"===t&&!f||"split"===t&&!l){var d=/./[h],g=e(u,h,""[t],(function(t,n,e,r,i){return n.exec===c?p&&!i?{done:!0,value:d.call(n,e,r)}:{done:!0,value:t.call(e,n,r)}:{done:!1}})),y=g[0],m=g[1];r(String.prototype,t,y),i(RegExp.prototype,h,2==n?function(t,n){return m.call(t,this,n)}:function(t){return m.call(t,this)})}}},function(t,n,e){var r=e(19),i=e(111),o=e(78),u=e(3),a=e(6),c=e(80),s={},f={};(n=t.exports=function(t,n,e,l,h){var p,v,d,g,y=h?function(){return t}:c(t),m=r(e,l,n?2:1),b=0;if("function"!=typeof y)throw TypeError(t+" is not iterable!");if(o(y)){for(p=a(t.length);p>b;b++)if((g=n?m(u(v=t[b])[0],v[1]):m(t[b]))===s||g===f)return g}else for(d=y.call(t);!(v=d.next()).done;)if((g=i(d,m,v.value,n))===s||g===f)return g}).BREAK=s,n.RETURN=f},function(t,n,e){var r=e(1).navigator;t.exports=r&&r.userAgent||""},function(t,n,e){"use strict";var r=e(1),i=e(0),o=e(11),u=e(45),a=e(29),c=e(58),s=e(44),f=e(4),l=e(2),h=e(54),p=e(40),v=e(69);t.exports=function(t,n,e,d,g,y){var m=r[t],b=m,S=g?"set":"add",w=b&&b.prototype,_={},x=function(t){var n=w[t];o(w,t,"delete"==t?function(t){return!(y&&!f(t))&&n.call(this,0===t?0:t)}:"has"==t?function(t){return!(y&&!f(t))&&n.call(this,0===t?0:t)}:"get"==t?function(t){return y&&!f(t)?void 0:n.call(this,0===t?0:t)}:"add"==t?function(t){return n.call(this,0===t?0:t),this}:function(t,e){return n.call(this,0===t?0:t,e),this})};if("function"==typeof b&&(y||w.forEach&&!l((function(){(new b).entries().next()})))){var M=new b,P=M[S](y?{}:-0,1)!=M,O=l((function(){M.has(1)})),F=h((function(t){new b(t)})),A=!y&&l((function(){for(var t=new b,n=5;n--;)t[S](n,n);return!t.has(-0)}));F||((b=n((function(n,e){s(n,b,t);var r=v(new m,n,b);return null!=e&&c(e,g,r[S],r),r}))).prototype=w,w.constructor=b),(O||A)&&(x("delete"),x("has"),g&&x("get")),(A||P)&&x(S),y&&w.clear&&delete w.clear}else b=d.getConstructor(n,t,g,S),u(b.prototype,e),a.NEED=!0;return p(b,t),_[t]=b,i(i.G+i.W+i.F*(b!=m),_),y||d.setStrong(b,t,g),b}},function(t,n,e){for(var r,i=e(1),o=e(14),u=e(31),a=u("typed_array"),c=u("view"),s=!(!i.ArrayBuffer||!i.DataView),f=s,l=0,h="Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array".split(",");l<9;)(r=i[h[l++]])?(o(r.prototype,a,!0),o(r.prototype,c,!0)):f=!1;t.exports={ABV:s,CONSTR:f,TYPED:a,VIEW:c}},function(t,n,e){var r=e(4),i=e(1).document,o=r(i)&&r(i.createElement);t.exports=function(t){return o?i.createElement(t):{}}},function(t,n,e){n.f=e(5)},function(t,n,e){var r=e(50)("keys"),i=e(31);t.exports=function(t){return r[t]||(r[t]=i(t))}},function(t,n){t.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},function(t,n,e){var r=e(1).document;t.exports=r&&r.documentElement},function(t,n,e){var r=e(4),i=e(3),o=function(t,n){if(i(t),!r(n)&&null!==n)throw TypeError(n+": can't set as prototype!")};t.exports={set:Object.setPrototypeOf||("__proto__"in{}?function(t,n,r){try{(r=e(19)(Function.call,e(22).f(Object.prototype,"__proto__").set,2))(t,[]),n=!(t instanceof Array)}catch(t){n=!0}return function(t,e){return o(t,e),n?t.__proto__=e:r(t,e),t}}({},!1):void 0),check:o}},function(t,n){t.exports="\t\n\v\f\r   ᠎             　\u2028\u2029\ufeff"},function(t,n,e){var r=e(4),i=e(67).set;t.exports=function(t,n,e){var o,u=n.constructor;return u!==e&&"function"==typeof u&&(o=u.prototype)!==e.prototype&&r(o)&&i&&i(t,o),t}},function(t,n,e){"use strict";var r=e(21),i=e(26);t.exports=function(t){var n=String(i(this)),e="",o=r(t);if(o<0||o==1/0)throw RangeError("Count can't be negative");for(;o>0;(o>>>=1)&&(n+=n))1&o&&(e+=n);return e}},function(t,n){t.exports=Math.sign||function(t){return 0==(t=+t)||t!=t?t:t<0?-1:1}},function(t,n){var e=Math.expm1;t.exports=!e||e(10)>22025.465794806718||e(10)<22025.465794806718||-2e-17!=e(-2e-17)?function(t){return 0==(t=+t)?t:t>-1e-6&&t<1e-6?t+t*t/2:Math.exp(t)-1}:e},function(t,n,e){var r=e(21),i=e(26);t.exports=function(t){return function(n,e){var o,u,a=String(i(n)),c=r(e),s=a.length;return c<0||c>=s?t?"":void 0:(o=a.charCodeAt(c))<55296||o>56319||c+1===s||(u=a.charCodeAt(c+1))<56320||u>57343?t?a.charAt(c):o:t?a.slice(c,c+2):u-56320+(o-55296<<10)+65536}}},function(t,n,e){"use strict";var r=e(32),i=e(0),o=e(11),u=e(14),a=e(42),c=e(110),s=e(40),f=e(37),l=e(5)("iterator"),h=!([].keys&&"next"in[].keys()),p=function(){return this};t.exports=function(t,n,e,v,d,g,y){c(e,n,v);var m,b,S,w=function(t){if(!h&&t in P)return P[t];switch(t){case"keys":case"values":return function(){return new e(this,t)}}return function(){return new e(this,t)}},_=n+" Iterator",x="values"==d,M=!1,P=t.prototype,O=P[l]||P["@@iterator"]||d&&P[d],F=O||w(d),A=d?x?w("entries"):F:void 0,E="Array"==n&&P.entries||O;if(E&&(S=f(E.call(new t)))!==Object.prototype&&S.next&&(s(S,_,!0),r||"function"==typeof S[l]||u(S,l,p)),x&&O&&"values"!==O.name&&(M=!0,F=function(){return O.call(this)}),r&&!y||!h&&!M&&P[l]||u(P,l,F),a[n]=F,a[_]=p,d)if(m={values:x?F:w("values"),keys:g?F:w("keys"),entries:A},y)for(b in m)b in P||o(P,b,m[b]);else i(i.P+i.F*(h||M),n,m);return m}},function(t,n,e){var r=e(76),i=e(26);t.exports=function(t,n,e){if(r(n))throw TypeError("String#"+e+" doesn't accept regex!");return String(i(t))}},function(t,n,e){var r=e(4),i=e(25),o=e(5)("match");t.exports=function(t){var n;return r(t)&&(void 0!==(n=t[o])?!!n:"RegExp"==i(t))}},function(t,n,e){var r=e(5)("match");t.exports=function(t){var n=/./;try{"/./"[t](n)}catch(e){try{return n[r]=!1,!"/./"[t](n)}catch(t){}}return!0}},function(t,n,e){var r=e(42),i=e(5)("iterator"),o=Array.prototype;t.exports=function(t){return void 0!==t&&(r.Array===t||o[i]===t)}},function(t,n,e){"use strict";var r=e(9),i=e(30);t.exports=function(t,n,e){n in t?r.f(t,n,i(0,e)):t[n]=e}},function(t,n,e){var r=e(48),i=e(5)("iterator"),o=e(42);t.exports=e(7).getIteratorMethod=function(t){if(null!=t)return t[i]||t["@@iterator"]||o[r(t)]}},function(t,n,e){"use strict";var r=e(10),i=e(34),o=e(6);t.exports=function(t){for(var n=r(this),e=o(n.length),u=arguments.length,a=i(u>1?arguments[1]:void 0,e),c=u>2?arguments[2]:void 0,s=void 0===c?e:i(c,e);s>a;)n[a++]=t;return n}},function(t,n,e){"use strict";var r=e(38),i=e(115),o=e(42),u=e(15);t.exports=e(74)(Array,"Array",(function(t,n){this._t=u(t),this._i=0,this._k=n}),(function(){var t=this._t,n=this._k,e=this._i++;return!t||e>=t.length?(this._t=void 0,i(1)):i(0,"keys"==n?e:"values"==n?t[e]:[e,t[e]])}),"values"),o.Arguments=o.Array,r("keys"),r("values"),r("entries")},function(t,n,e){"use strict";var r,i,o=e(55),u=RegExp.prototype.exec,a=String.prototype.replace,c=u,s=(r=/a/,i=/b*/g,u.call(r,"a"),u.call(i,"a"),0!==r.lastIndex||0!==i.lastIndex),f=void 0!==/()??/.exec("")[1];(s||f)&&(c=function(t){var n,e,r,i,c=this;return f&&(e=new RegExp("^"+c.source+"$(?!\\s)",o.call(c))),s&&(n=c.lastIndex),r=u.call(c,t),s&&r&&(c.lastIndex=c.global?r.index+r[0].length:n),f&&r&&r.length>1&&a.call(r[0],e,(function(){for(i=1;i<arguments.length-2;i++)void 0===arguments[i]&&(r[i]=void 0)})),r}),t.exports=c},function(t,n,e){"use strict";var r=e(73)(!0);t.exports=function(t,n,e){return n+(e?r(t,n).length:1)}},function(t,n,e){var r,i,o,u=e(19),a=e(104),c=e(66),s=e(62),f=e(1),l=f.process,h=f.setImmediate,p=f.clearImmediate,v=f.MessageChannel,d=f.Dispatch,g=0,y={},m=function(){var t=+this;if(y.hasOwnProperty(t)){var n=y[t];delete y[t],n()}},b=function(t){m.call(t.data)};h&&p||(h=function(t){for(var n=[],e=1;arguments.length>e;)n.push(arguments[e++]);return y[++g]=function(){a("function"==typeof t?t:Function(t),n)},r(g),g},p=function(t){delete y[t]},"process"==e(25)(l)?r=function(t){l.nextTick(u(m,t,1))}:d&&d.now?r=function(t){d.now(u(m,t,1))}:v?(o=(i=new v).port2,i.port1.onmessage=b,r=u(o.postMessage,o,1)):f.addEventListener&&"function"==typeof postMessage&&!f.importScripts?(r=function(t){f.postMessage(t+"","*")},f.addEventListener("message",b,!1)):r="onreadystatechange"in s("script")?function(t){c.appendChild(s("script")).onreadystatechange=function(){c.removeChild(this),m.call(t)}}:function(t){setTimeout(u(m,t,1),0)}),t.exports={set:h,clear:p}},function(t,n,e){"use strict";var r=e(1),i=e(8),o=e(32),u=e(61),a=e(14),c=e(45),s=e(2),f=e(44),l=e(21),h=e(6),p=e(123),v=e(36).f,d=e(9).f,g=e(81),y=e(40),m="prototype",b="Wrong index!",S=r.ArrayBuffer,w=r.DataView,_=r.Math,x=r.RangeError,M=r.Infinity,P=S,O=_.abs,F=_.pow,A=_.floor,E=_.log,N=_.LN2,R=i?"_b":"buffer",k=i?"_l":"byteLength",T=i?"_o":"byteOffset";function I(t,n,e){var r,i,o,u=new Array(e),a=8*e-n-1,c=(1<<a)-1,s=c>>1,f=23===n?F(2,-24)-F(2,-77):0,l=0,h=t<0||0===t&&1/t<0?1:0;for((t=O(t))!=t||t===M?(i=t!=t?1:0,r=c):(r=A(E(t)/N),t*(o=F(2,-r))<1&&(r--,o*=2),(t+=r+s>=1?f/o:f*F(2,1-s))*o>=2&&(r++,o/=2),r+s>=c?(i=0,r=c):r+s>=1?(i=(t*o-1)*F(2,n),r+=s):(i=t*F(2,s-1)*F(2,n),r=0));n>=8;u[l++]=255&i,i/=256,n-=8);for(r=r<<n|i,a+=n;a>0;u[l++]=255&r,r/=256,a-=8);return u[--l]|=128*h,u}function L(t,n,e){var r,i=8*e-n-1,o=(1<<i)-1,u=o>>1,a=i-7,c=e-1,s=t[c--],f=127&s;for(s>>=7;a>0;f=256*f+t[c],c--,a-=8);for(r=f&(1<<-a)-1,f>>=-a,a+=n;a>0;r=256*r+t[c],c--,a-=8);if(0===f)f=1-u;else{if(f===o)return r?NaN:s?-M:M;r+=F(2,n),f-=u}return(s?-1:1)*r*F(2,f-n)}function j(t){return t[3]<<24|t[2]<<16|t[1]<<8|t[0]}function B(t){return[255&t]}function C(t){return[255&t,t>>8&255]}function W(t){return[255&t,t>>8&255,t>>16&255,t>>24&255]}function G(t){return I(t,52,8)}function V(t){return I(t,23,4)}function D(t,n,e){d(t[m],n,{get:function(){return this[e]}})}function U(t,n,e,r){var i=p(+e);if(i+n>t[k])throw x(b);var o=t[R]._b,u=i+t[T],a=o.slice(u,u+n);return r?a:a.reverse()}function z(t,n,e,r,i,o){var u=p(+e);if(u+n>t[k])throw x(b);for(var a=t[R]._b,c=u+t[T],s=r(+i),f=0;f<n;f++)a[c+f]=s[o?f:n-f-1]}if(u.ABV){if(!s((function(){S(1)}))||!s((function(){new S(-1)}))||s((function(){return new S,new S(1.5),new S(NaN),"ArrayBuffer"!=S.name}))){for(var q,K=(S=function(t){return f(this,S),new P(p(t))})[m]=P[m],Y=v(P),Q=0;Y.length>Q;)(q=Y[Q++])in S||a(S,q,P[q]);o||(K.constructor=S)}var H=new w(new S(2)),J=w[m].setInt8;H.setInt8(0,2147483648),H.setInt8(1,2147483649),!H.getInt8(0)&&H.getInt8(1)||c(w[m],{setInt8:function(t,n){J.call(this,t,n<<24>>24)},setUint8:function(t,n){J.call(this,t,n<<24>>24)}},!0)}else S=function(t){f(this,S,"ArrayBuffer");var n=p(t);this._b=g.call(new Array(n),0),this[k]=n},w=function(t,n,e){f(this,w,"DataView"),f(t,S,"DataView");var r=t[k],i=l(n);if(i<0||i>r)throw x("Wrong offset!");if(i+(e=void 0===e?r-i:h(e))>r)throw x("Wrong length!");this[R]=t,this[T]=i,this[k]=e},i&&(D(S,"byteLength","_l"),D(w,"buffer","_b"),D(w,"byteLength","_l"),D(w,"byteOffset","_o")),c(w[m],{getInt8:function(t){return U(this,1,t)[0]<<24>>24},getUint8:function(t){return U(this,1,t)[0]},getInt16:function(t){var n=U(this,2,t,arguments[1]);return(n[1]<<8|n[0])<<16>>16},getUint16:function(t){var n=U(this,2,t,arguments[1]);return n[1]<<8|n[0]},getInt32:function(t){return j(U(this,4,t,arguments[1]))},getUint32:function(t){return j(U(this,4,t,arguments[1]))>>>0},getFloat32:function(t){return L(U(this,4,t,arguments[1]),23,4)},getFloat64:function(t){return L(U(this,8,t,arguments[1]),52,8)},setInt8:function(t,n){z(this,1,t,B,n)},setUint8:function(t,n){z(this,1,t,B,n)},setInt16:function(t,n){z(this,2,t,C,n,arguments[2])},setUint16:function(t,n){z(this,2,t,C,n,arguments[2])},setInt32:function(t,n){z(this,4,t,W,n,arguments[2])},setUint32:function(t,n){z(this,4,t,W,n,arguments[2])},setFloat32:function(t,n){z(this,4,t,V,n,arguments[2])},setFloat64:function(t,n){z(this,8,t,G,n,arguments[2])}});y(S,"ArrayBuffer"),y(w,"DataView"),a(w[m],u.VIEW,!0),n.ArrayBuffer=S,n.DataView=w},function(t,n){var e=t.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=e)},function(t,n){t.exports=function(t){return"object"==typeof t?null!==t:"function"==typeof t}},function(t,n,e){t.exports=!e(128)((function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a}))},function(t,n,e){"use strict";n.__esModule=!0,n.default=void 0;var r,i=(r=e(91))&&r.__esModule?r:{default:r},o=e(18);function u(t,n){for(var e=0;e<n.length;e++){var r=n[e];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}var a=function(){function t(){}var n,e,r;return t.getParser=function(t,n){if(void 0===n&&(n=!1),"string"!=typeof t)throw new Error("UserAgent should be a string");return new i.default(t,n)},t.parse=function(t){return new i.default(t).getResult()},n=t,r=[{key:"BROWSER_MAP",get:function(){return o.BROWSER_MAP}},{key:"ENGINE_MAP",get:function(){return o.ENGINE_MAP}},{key:"OS_MAP",get:function(){return o.OS_MAP}},{key:"PLATFORMS_MAP",get:function(){return o.PLATFORMS_MAP}}],(e=null)&&u(n.prototype,e),r&&u(n,r),t}();n.default=a,t.exports=n.default},function(t,n,e){"use strict";n.__esModule=!0,n.default=void 0;var r=c(e(92)),i=c(e(93)),o=c(e(94)),u=c(e(95)),a=c(e(17));function c(t){return t&&t.__esModule?t:{default:t}}var s=function(){function t(t,n){if(void 0===n&&(n=!1),null==t||""===t)throw new Error("UserAgent parameter can't be empty");this._ua=t,this.parsedResult={},!0!==n&&this.parse()}var n=t.prototype;return n.getUA=function(){return this._ua},n.test=function(t){return t.test(this._ua)},n.parseBrowser=function(){var t=this;this.parsedResult.browser={};var n=r.default.find((function(n){if("function"==typeof n.test)return n.test(t);if(n.test instanceof Array)return n.test.some((function(n){return t.test(n)}));throw new Error("Browser's test function is not valid")}));return n&&(this.parsedResult.browser=n.describe(this.getUA())),this.parsedResult.browser},n.getBrowser=function(){return this.parsedResult.browser?this.parsedResult.browser:this.parseBrowser()},n.getBrowserName=function(t){return t?String(this.getBrowser().name).toLowerCase()||"":this.getBrowser().name||""},n.getBrowserVersion=function(){return this.getBrowser().version},n.getOS=function(){return this.parsedResult.os?this.parsedResult.os:this.parseOS()},n.parseOS=function(){var t=this;this.parsedResult.os={};var n=i.default.find((function(n){if("function"==typeof n.test)return n.test(t);if(n.test instanceof Array)return n.test.some((function(n){return t.test(n)}));throw new Error("Browser's test function is not valid")}));return n&&(this.parsedResult.os=n.describe(this.getUA())),this.parsedResult.os},n.getOSName=function(t){var n=this.getOS().name;return t?String(n).toLowerCase()||"":n||""},n.getOSVersion=function(){return this.getOS().version},n.getPlatform=function(){return this.parsedResult.platform?this.parsedResult.platform:this.parsePlatform()},n.getPlatformType=function(t){void 0===t&&(t=!1);var n=this.getPlatform().type;return t?String(n).toLowerCase()||"":n||""},n.parsePlatform=function(){var t=this;this.parsedResult.platform={};var n=o.default.find((function(n){if("function"==typeof n.test)return n.test(t);if(n.test instanceof Array)return n.test.some((function(n){return t.test(n)}));throw new Error("Browser's test function is not valid")}));return n&&(this.parsedResult.platform=n.describe(this.getUA())),this.parsedResult.platform},n.getEngine=function(){return this.parsedResult.engine?this.parsedResult.engine:this.parseEngine()},n.getEngineName=function(t){return t?String(this.getEngine().name).toLowerCase()||"":this.getEngine().name||""},n.parseEngine=function(){var t=this;this.parsedResult.engine={};var n=u.default.find((function(n){if("function"==typeof n.test)return n.test(t);if(n.test instanceof Array)return n.test.some((function(n){return t.test(n)}));throw new Error("Browser's test function is not valid")}));return n&&(this.parsedResult.engine=n.describe(this.getUA())),this.parsedResult.engine},n.parse=function(){return this.parseBrowser(),this.parseOS(),this.parsePlatform(),this.parseEngine(),this},n.getResult=function(){return Object.assign({},this.parsedResult)},n.satisfies=function(t){var n=this,e={},r=0,i={},o=0;if(Object.keys(t).forEach((function(n){var u=t[n];"string"==typeof u?(i[n]=u,o+=1):"object"==typeof u&&(e[n]=u,r+=1)})),r>0){var u=Object.keys(e),a=u.find((function(t){return n.isOS(t)}));if(a){var c=this.satisfies(e[a]);if(void 0!==c)return c}var s=u.find((function(t){return n.isPlatform(t)}));if(s){var f=this.satisfies(e[s]);if(void 0!==f)return f}}if(o>0){var l=Object.keys(i).find((function(t){return n.isBrowser(t,!0)}));if(void 0!==l)return this.compareVersion(i[l])}},n.isBrowser=function(t,n){void 0===n&&(n=!1);var e=this.getBrowserName().toLowerCase(),r=t.toLowerCase(),i=a.default.getBrowserTypeByAlias(r);return n&&i&&(r=i.toLowerCase()),r===e},n.compareVersion=function(t){var n=[0],e=t,r=!1,i=this.getBrowserVersion();if("string"==typeof i)return">"===t[0]||"<"===t[0]?(e=t.substr(1),"="===t[1]?(r=!0,e=t.substr(2)):n=[],">"===t[0]?n.push(1):n.push(-1)):"="===t[0]?e=t.substr(1):"~"===t[0]&&(r=!0,e=t.substr(1)),n.indexOf(a.default.compareVersions(i,e,r))>-1},n.isOS=function(t){return this.getOSName(!0)===String(t).toLowerCase()},n.isPlatform=function(t){return this.getPlatformType(!0)===String(t).toLowerCase()},n.isEngine=function(t){return this.getEngineName(!0)===String(t).toLowerCase()},n.is=function(t){return this.isBrowser(t)||this.isOS(t)||this.isPlatform(t)},n.some=function(t){var n=this;return void 0===t&&(t=[]),t.some((function(t){return n.is(t)}))},t}();n.default=s,t.exports=n.default},function(t,n,e){"use strict";n.__esModule=!0,n.default=void 0;var r,i=(r=e(17))&&r.__esModule?r:{default:r};var o=/version\/(\d+(\.?_?\d+)+)/i,u=[{test:[/googlebot/i],describe:function(t){var n={name:"Googlebot"},e=i.default.getFirstMatch(/googlebot\/(\d+(\.\d+))/i,t)||i.default.getFirstMatch(o,t);return e&&(n.version=e),n}},{test:[/opera/i],describe:function(t){var n={name:"Opera"},e=i.default.getFirstMatch(o,t)||i.default.getFirstMatch(/(?:opera)[\s/](\d+(\.?_?\d+)+)/i,t);return e&&(n.version=e),n}},{test:[/opr\/|opios/i],describe:function(t){var n={name:"Opera"},e=i.default.getFirstMatch(/(?:opr|opios)[\s/](\S+)/i,t)||i.default.getFirstMatch(o,t);return e&&(n.version=e),n}},{test:[/SamsungBrowser/i],describe:function(t){var n={name:"Samsung Internet for Android"},e=i.default.getFirstMatch(o,t)||i.default.getFirstMatch(/(?:SamsungBrowser)[\s/](\d+(\.?_?\d+)+)/i,t);return e&&(n.version=e),n}},{test:[/Whale/i],describe:function(t){var n={name:"NAVER Whale Browser"},e=i.default.getFirstMatch(o,t)||i.default.getFirstMatch(/(?:whale)[\s/](\d+(?:\.\d+)+)/i,t);return e&&(n.version=e),n}},{test:[/MZBrowser/i],describe:function(t){var n={name:"MZ Browser"},e=i.default.getFirstMatch(/(?:MZBrowser)[\s/](\d+(?:\.\d+)+)/i,t)||i.default.getFirstMatch(o,t);return e&&(n.version=e),n}},{test:[/focus/i],describe:function(t){var n={name:"Focus"},e=i.default.getFirstMatch(/(?:focus)[\s/](\d+(?:\.\d+)+)/i,t)||i.default.getFirstMatch(o,t);return e&&(n.version=e),n}},{test:[/swing/i],describe:function(t){var n={name:"Swing"},e=i.default.getFirstMatch(/(?:swing)[\s/](\d+(?:\.\d+)+)/i,t)||i.default.getFirstMatch(o,t);return e&&(n.version=e),n}},{test:[/coast/i],describe:function(t){var n={name:"Opera Coast"},e=i.default.getFirstMatch(o,t)||i.default.getFirstMatch(/(?:coast)[\s/](\d+(\.?_?\d+)+)/i,t);return e&&(n.version=e),n}},{test:[/yabrowser/i],describe:function(t){var n={name:"Yandex Browser"},e=i.default.getFirstMatch(/(?:yabrowser)[\s/](\d+(\.?_?\d+)+)/i,t)||i.default.getFirstMatch(o,t);return e&&(n.version=e),n}},{test:[/ucbrowser/i],describe:function(t){var n={name:"UC Browser"},e=i.default.getFirstMatch(o,t)||i.default.getFirstMatch(/(?:ucbrowser)[\s/](\d+(\.?_?\d+)+)/i,t);return e&&(n.version=e),n}},{test:[/Maxthon|mxios/i],describe:function(t){var n={name:"Maxthon"},e=i.default.getFirstMatch(o,t)||i.default.getFirstMatch(/(?:Maxthon|mxios)[\s/](\d+(\.?_?\d+)+)/i,t);return e&&(n.version=e),n}},{test:[/epiphany/i],describe:function(t){var n={name:"Epiphany"},e=i.default.getFirstMatch(o,t)||i.default.getFirstMatch(/(?:epiphany)[\s/](\d+(\.?_?\d+)+)/i,t);return e&&(n.version=e),n}},{test:[/puffin/i],describe:function(t){var n={name:"Puffin"},e=i.default.getFirstMatch(o,t)||i.default.getFirstMatch(/(?:puffin)[\s/](\d+(\.?_?\d+)+)/i,t);return e&&(n.version=e),n}},{test:[/sleipnir/i],describe:function(t){var n={name:"Sleipnir"},e=i.default.getFirstMatch(o,t)||i.default.getFirstMatch(/(?:sleipnir)[\s/](\d+(\.?_?\d+)+)/i,t);return e&&(n.version=e),n}},{test:[/k-meleon/i],describe:function(t){var n={name:"K-Meleon"},e=i.default.getFirstMatch(o,t)||i.default.getFirstMatch(/(?:k-meleon)[\s/](\d+(\.?_?\d+)+)/i,t);return e&&(n.version=e),n}},{test:[/micromessenger/i],describe:function(t){var n={name:"WeChat"},e=i.default.getFirstMatch(/(?:micromessenger)[\s/](\d+(\.?_?\d+)+)/i,t)||i.default.getFirstMatch(o,t);return e&&(n.version=e),n}},{test:[/qqbrowser/i],describe:function(t){var n={name:/qqbrowserlite/i.test(t)?"QQ Browser Lite":"QQ Browser"},e=i.default.getFirstMatch(/(?:qqbrowserlite|qqbrowser)[/](\d+(\.?_?\d+)+)/i,t)||i.default.getFirstMatch(o,t);return e&&(n.version=e),n}},{test:[/msie|trident/i],describe:function(t){var n={name:"Internet Explorer"},e=i.default.getFirstMatch(/(?:msie |rv:)(\d+(\.?_?\d+)+)/i,t);return e&&(n.version=e),n}},{test:[/\sedg\//i],describe:function(t){var n={name:"Microsoft Edge"},e=i.default.getFirstMatch(/\sedg\/(\d+(\.?_?\d+)+)/i,t);return e&&(n.version=e),n}},{test:[/edg([ea]|ios)/i],describe:function(t){var n={name:"Microsoft Edge"},e=i.default.getSecondMatch(/edg([ea]|ios)\/(\d+(\.?_?\d+)+)/i,t);return e&&(n.version=e),n}},{test:[/vivaldi/i],describe:function(t){var n={name:"Vivaldi"},e=i.default.getFirstMatch(/vivaldi\/(\d+(\.?_?\d+)+)/i,t);return e&&(n.version=e),n}},{test:[/seamonkey/i],describe:function(t){var n={name:"SeaMonkey"},e=i.default.getFirstMatch(/seamonkey\/(\d+(\.?_?\d+)+)/i,t);return e&&(n.version=e),n}},{test:[/sailfish/i],describe:function(t){var n={name:"Sailfish"},e=i.default.getFirstMatch(/sailfish\s?browser\/(\d+(\.\d+)?)/i,t);return e&&(n.version=e),n}},{test:[/silk/i],describe:function(t){var n={name:"Amazon Silk"},e=i.default.getFirstMatch(/silk\/(\d+(\.?_?\d+)+)/i,t);return e&&(n.version=e),n}},{test:[/phantom/i],describe:function(t){var n={name:"PhantomJS"},e=i.default.getFirstMatch(/phantomjs\/(\d+(\.?_?\d+)+)/i,t);return e&&(n.version=e),n}},{test:[/slimerjs/i],describe:function(t){var n={name:"SlimerJS"},e=i.default.getFirstMatch(/slimerjs\/(\d+(\.?_?\d+)+)/i,t);return e&&(n.version=e),n}},{test:[/blackberry|\bbb\d+/i,/rim\stablet/i],describe:function(t){var n={name:"BlackBerry"},e=i.default.getFirstMatch(o,t)||i.default.getFirstMatch(/blackberry[\d]+\/(\d+(\.?_?\d+)+)/i,t);return e&&(n.version=e),n}},{test:[/(web|hpw)[o0]s/i],describe:function(t){var n={name:"WebOS Browser"},e=i.default.getFirstMatch(o,t)||i.default.getFirstMatch(/w(?:eb)?[o0]sbrowser\/(\d+(\.?_?\d+)+)/i,t);return e&&(n.version=e),n}},{test:[/bada/i],describe:function(t){var n={name:"Bada"},e=i.default.getFirstMatch(/dolfin\/(\d+(\.?_?\d+)+)/i,t);return e&&(n.version=e),n}},{test:[/tizen/i],describe:function(t){var n={name:"Tizen"},e=i.default.getFirstMatch(/(?:tizen\s?)?browser\/(\d+(\.?_?\d+)+)/i,t)||i.default.getFirstMatch(o,t);return e&&(n.version=e),n}},{test:[/qupzilla/i],describe:function(t){var n={name:"QupZilla"},e=i.default.getFirstMatch(/(?:qupzilla)[\s/](\d+(\.?_?\d+)+)/i,t)||i.default.getFirstMatch(o,t);return e&&(n.version=e),n}},{test:[/firefox|iceweasel|fxios/i],describe:function(t){var n={name:"Firefox"},e=i.default.getFirstMatch(/(?:firefox|iceweasel|fxios)[\s/](\d+(\.?_?\d+)+)/i,t);return e&&(n.version=e),n}},{test:[/chromium/i],describe:function(t){var n={name:"Chromium"},e=i.default.getFirstMatch(/(?:chromium)[\s/](\d+(\.?_?\d+)+)/i,t)||i.default.getFirstMatch(o,t);return e&&(n.version=e),n}},{test:[/chrome|crios|crmo/i],describe:function(t){var n={name:"Chrome"},e=i.default.getFirstMatch(/(?:chrome|crios|crmo)\/(\d+(\.?_?\d+)+)/i,t);return e&&(n.version=e),n}},{test:[/GSA/i],describe:function(t){var n={name:"Google Search"},e=i.default.getFirstMatch(/(?:GSA)\/(\d+(\.?_?\d+)+)/i,t);return e&&(n.version=e),n}},{test:function(t){var n=!t.test(/like android/i),e=t.test(/android/i);return n&&e},describe:function(t){var n={name:"Android Browser"},e=i.default.getFirstMatch(o,t);return e&&(n.version=e),n}},{test:[/playstation 4/i],describe:function(t){var n={name:"PlayStation 4"},e=i.default.getFirstMatch(o,t);return e&&(n.version=e),n}},{test:[/safari|applewebkit/i],describe:function(t){var n={name:"Safari"},e=i.default.getFirstMatch(o,t);return e&&(n.version=e),n}},{test:[/.*/i],describe:function(t){var n=-1!==t.search("\\(")?/^(.*)\/(.*)[ \t]\((.*)/:/^(.*)\/(.*) /;return{name:i.default.getFirstMatch(n,t),version:i.default.getSecondMatch(n,t)}}}];n.default=u,t.exports=n.default},function(t,n,e){"use strict";n.__esModule=!0,n.default=void 0;var r,i=(r=e(17))&&r.__esModule?r:{default:r},o=e(18);var u=[{test:[/Roku\/DVP/],describe:function(t){var n=i.default.getFirstMatch(/Roku\/DVP-(\d+\.\d+)/i,t);return{name:o.OS_MAP.Roku,version:n}}},{test:[/windows phone/i],describe:function(t){var n=i.default.getFirstMatch(/windows phone (?:os)?\s?(\d+(\.\d+)*)/i,t);return{name:o.OS_MAP.WindowsPhone,version:n}}},{test:[/windows/i],describe:function(t){var n=i.default.getFirstMatch(/Windows ((NT|XP)( \d\d?.\d)?)/i,t),e=i.default.getWindowsVersionName(n);return{name:o.OS_MAP.Windows,version:n,versionName:e}}},{test:[/macintosh/i],describe:function(t){var n=i.default.getFirstMatch(/mac os x (\d+(\.?_?\d+)+)/i,t).replace(/[_\s]/g,"."),e=i.default.getMacOSVersionName(n),r={name:o.OS_MAP.MacOS,version:n};return e&&(r.versionName=e),r}},{test:[/(ipod|iphone|ipad)/i],describe:function(t){var n=i.default.getFirstMatch(/os (\d+([_\s]\d+)*) like mac os x/i,t).replace(/[_\s]/g,".");return{name:o.OS_MAP.iOS,version:n}}},{test:function(t){var n=!t.test(/like android/i),e=t.test(/android/i);return n&&e},describe:function(t){var n=i.default.getFirstMatch(/android[\s/-](\d+(\.\d+)*)/i,t),e=i.default.getAndroidVersionName(n),r={name:o.OS_MAP.Android,version:n};return e&&(r.versionName=e),r}},{test:[/(web|hpw)[o0]s/i],describe:function(t){var n=i.default.getFirstMatch(/(?:web|hpw)[o0]s\/(\d+(\.\d+)*)/i,t),e={name:o.OS_MAP.WebOS};return n&&n.length&&(e.version=n),e}},{test:[/blackberry|\bbb\d+/i,/rim\stablet/i],describe:function(t){var n=i.default.getFirstMatch(/rim\stablet\sos\s(\d+(\.\d+)*)/i,t)||i.default.getFirstMatch(/blackberry\d+\/(\d+([_\s]\d+)*)/i,t)||i.default.getFirstMatch(/\bbb(\d+)/i,t);return{name:o.OS_MAP.BlackBerry,version:n}}},{test:[/bada/i],describe:function(t){var n=i.default.getFirstMatch(/bada\/(\d+(\.\d+)*)/i,t);return{name:o.OS_MAP.Bada,version:n}}},{test:[/tizen/i],describe:function(t){var n=i.default.getFirstMatch(/tizen[/\s](\d+(\.\d+)*)/i,t);return{name:o.OS_MAP.Tizen,version:n}}},{test:[/linux/i],describe:function(){return{name:o.OS_MAP.Linux}}},{test:[/CrOS/],describe:function(){return{name:o.OS_MAP.ChromeOS}}},{test:[/PlayStation 4/],describe:function(t){var n=i.default.getFirstMatch(/PlayStation 4[/\s](\d+(\.\d+)*)/i,t);return{name:o.OS_MAP.PlayStation4,version:n}}}];n.default=u,t.exports=n.default},function(t,n,e){"use strict";n.__esModule=!0,n.default=void 0;var r,i=(r=e(17))&&r.__esModule?r:{default:r},o=e(18);var u=[{test:[/googlebot/i],describe:function(){return{type:"bot",vendor:"Google"}}},{test:[/huawei/i],describe:function(t){var n=i.default.getFirstMatch(/(can-l01)/i,t)&&"Nova",e={type:o.PLATFORMS_MAP.mobile,vendor:"Huawei"};return n&&(e.model=n),e}},{test:[/nexus\s*(?:7|8|9|10).*/i],describe:function(){return{type:o.PLATFORMS_MAP.tablet,vendor:"Nexus"}}},{test:[/ipad/i],describe:function(){return{type:o.PLATFORMS_MAP.tablet,vendor:"Apple",model:"iPad"}}},{test:[/kftt build/i],describe:function(){return{type:o.PLATFORMS_MAP.tablet,vendor:"Amazon",model:"Kindle Fire HD 7"}}},{test:[/silk/i],describe:function(){return{type:o.PLATFORMS_MAP.tablet,vendor:"Amazon"}}},{test:[/tablet(?! pc)/i],describe:function(){return{type:o.PLATFORMS_MAP.tablet}}},{test:function(t){var n=t.test(/ipod|iphone/i),e=t.test(/like (ipod|iphone)/i);return n&&!e},describe:function(t){var n=i.default.getFirstMatch(/(ipod|iphone)/i,t);return{type:o.PLATFORMS_MAP.mobile,vendor:"Apple",model:n}}},{test:[/nexus\s*[0-6].*/i,/galaxy nexus/i],describe:function(){return{type:o.PLATFORMS_MAP.mobile,vendor:"Nexus"}}},{test:[/[^-]mobi/i],describe:function(){return{type:o.PLATFORMS_MAP.mobile}}},{test:function(t){return"blackberry"===t.getBrowserName(!0)},describe:function(){return{type:o.PLATFORMS_MAP.mobile,vendor:"BlackBerry"}}},{test:function(t){return"bada"===t.getBrowserName(!0)},describe:function(){return{type:o.PLATFORMS_MAP.mobile}}},{test:function(t){return"windows phone"===t.getBrowserName()},describe:function(){return{type:o.PLATFORMS_MAP.mobile,vendor:"Microsoft"}}},{test:function(t){var n=Number(String(t.getOSVersion()).split(".")[0]);return"android"===t.getOSName(!0)&&n>=3},describe:function(){return{type:o.PLATFORMS_MAP.tablet}}},{test:function(t){return"android"===t.getOSName(!0)},describe:function(){return{type:o.PLATFORMS_MAP.mobile}}},{test:function(t){return"macos"===t.getOSName(!0)},describe:function(){return{type:o.PLATFORMS_MAP.desktop,vendor:"Apple"}}},{test:function(t){return"windows"===t.getOSName(!0)},describe:function(){return{type:o.PLATFORMS_MAP.desktop}}},{test:function(t){return"linux"===t.getOSName(!0)},describe:function(){return{type:o.PLATFORMS_MAP.desktop}}},{test:function(t){return"playstation 4"===t.getOSName(!0)},describe:function(){return{type:o.PLATFORMS_MAP.tv}}},{test:function(t){return"roku"===t.getOSName(!0)},describe:function(){return{type:o.PLATFORMS_MAP.tv}}}];n.default=u,t.exports=n.default},function(t,n,e){"use strict";n.__esModule=!0,n.default=void 0;var r,i=(r=e(17))&&r.__esModule?r:{default:r},o=e(18);var u=[{test:function(t){return"microsoft edge"===t.getBrowserName(!0)},describe:function(t){if(/\sedg\//i.test(t))return{name:o.ENGINE_MAP.Blink};var n=i.default.getFirstMatch(/edge\/(\d+(\.?_?\d+)+)/i,t);return{name:o.ENGINE_MAP.EdgeHTML,version:n}}},{test:[/trident/i],describe:function(t){var n={name:o.ENGINE_MAP.Trident},e=i.default.getFirstMatch(/trident\/(\d+(\.?_?\d+)+)/i,t);return e&&(n.version=e),n}},{test:function(t){return t.test(/presto/i)},describe:function(t){var n={name:o.ENGINE_MAP.Presto},e=i.default.getFirstMatch(/presto\/(\d+(\.?_?\d+)+)/i,t);return e&&(n.version=e),n}},{test:function(t){var n=t.test(/gecko/i),e=t.test(/like gecko/i);return n&&!e},describe:function(t){var n={name:o.ENGINE_MAP.Gecko},e=i.default.getFirstMatch(/gecko\/(\d+(\.?_?\d+)+)/i,t);return e&&(n.version=e),n}},{test:[/(apple)?webkit\/537\.36/i],describe:function(){return{name:o.ENGINE_MAP.Blink}}},{test:[/(apple)?webkit/i],describe:function(t){var n={name:o.ENGINE_MAP.WebKit},e=i.default.getFirstMatch(/webkit\/(\d+(\.?_?\d+)+)/i,t);return e&&(n.version=e),n}}];n.default=u,t.exports=n.default},function(t,n,e){t.exports=!e(8)&&!e(2)((function(){return 7!=Object.defineProperty(e(62)("div"),"a",{get:function(){return 7}}).a}))},function(t,n,e){var r=e(1),i=e(7),o=e(32),u=e(63),a=e(9).f;t.exports=function(t){var n=i.Symbol||(i.Symbol=o?{}:r.Symbol||{});"_"==t.charAt(0)||t in n||a(n,t,{value:u.f(t)})}},function(t,n,e){var r=e(13),i=e(15),o=e(51)(!1),u=e(64)("IE_PROTO");t.exports=function(t,n){var e,a=i(t),c=0,s=[];for(e in a)e!=u&&r(a,e)&&s.push(e);for(;n.length>c;)r(a,e=n[c++])&&(~o(s,e)||s.push(e));return s}},function(t,n,e){var r=e(9),i=e(3),o=e(33);t.exports=e(8)?Object.defineProperties:function(t,n){i(t);for(var e,u=o(n),a=u.length,c=0;a>c;)r.f(t,e=u[c++],n[e]);return t}},function(t,n,e){var r=e(15),i=e(36).f,o={}.toString,u="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[];t.exports.f=function(t){return u&&"[object Window]"==o.call(t)?function(t){try{return i(t)}catch(t){return u.slice()}}(t):i(r(t))}},function(t,n,e){"use strict";var r=e(8),i=e(33),o=e(52),u=e(47),a=e(10),c=e(46),s=Object.assign;t.exports=!s||e(2)((function(){var t={},n={},e=Symbol(),r="abcdefghijklmnopqrst";return t[e]=7,r.split("").forEach((function(t){n[t]=t})),7!=s({},t)[e]||Object.keys(s({},n)).join("")!=r}))?function(t,n){for(var e=a(t),s=arguments.length,f=1,l=o.f,h=u.f;s>f;)for(var p,v=c(arguments[f++]),d=l?i(v).concat(l(v)):i(v),g=d.length,y=0;g>y;)p=d[y++],r&&!h.call(v,p)||(e[p]=v[p]);return e}:s},function(t,n){t.exports=Object.is||function(t,n){return t===n?0!==t||1/t==1/n:t!=t&&n!=n}},function(t,n,e){"use strict";var r=e(20),i=e(4),o=e(104),u=[].slice,a={},c=function(t,n,e){if(!(n in a)){for(var r=[],i=0;i<n;i++)r[i]="a["+i+"]";a[n]=Function("F,a","return new F("+r.join(",")+")")}return a[n](t,e)};t.exports=Function.bind||function(t){var n=r(this),e=u.call(arguments,1),a=function(){var r=e.concat(u.call(arguments));return this instanceof a?c(n,r.length,r):o(n,r,t)};return i(n.prototype)&&(a.prototype=n.prototype),a}},function(t,n){t.exports=function(t,n,e){var r=void 0===e;switch(n.length){case 0:return r?t():t.call(e);case 1:return r?t(n[0]):t.call(e,n[0]);case 2:return r?t(n[0],n[1]):t.call(e,n[0],n[1]);case 3:return r?t(n[0],n[1],n[2]):t.call(e,n[0],n[1],n[2]);case 4:return r?t(n[0],n[1],n[2],n[3]):t.call(e,n[0],n[1],n[2],n[3])}return t.apply(e,n)}},function(t,n,e){var r=e(1).parseInt,i=e(41).trim,o=e(68),u=/^[-+]?0[xX]/;t.exports=8!==r(o+"08")||22!==r(o+"0x16")?function(t,n){var e=i(String(t),3);return r(e,n>>>0||(u.test(e)?16:10))}:r},function(t,n,e){var r=e(1).parseFloat,i=e(41).trim;t.exports=1/r(e(68)+"-0")!=-1/0?function(t){var n=i(String(t),3),e=r(n);return 0===e&&"-"==n.charAt(0)?-0:e}:r},function(t,n,e){var r=e(25);t.exports=function(t,n){if("number"!=typeof t&&"Number"!=r(t))throw TypeError(n);return+t}},function(t,n,e){var r=e(4),i=Math.floor;t.exports=function(t){return!r(t)&&isFinite(t)&&i(t)===t}},function(t,n){t.exports=Math.log1p||function(t){return(t=+t)>-1e-8&&t<1e-8?t-t*t/2:Math.log(1+t)}},function(t,n,e){"use strict";var r=e(35),i=e(30),o=e(40),u={};e(14)(u,e(5)("iterator"),(function(){return this})),t.exports=function(t,n,e){t.prototype=r(u,{next:i(1,e)}),o(t,n+" Iterator")}},function(t,n,e){var r=e(3);t.exports=function(t,n,e,i){try{return i?n(r(e)[0],e[1]):n(e)}catch(n){var o=t.return;throw void 0!==o&&r(o.call(t)),n}}},function(t,n,e){var r=e(224);t.exports=function(t,n){return new(r(t))(n)}},function(t,n,e){var r=e(20),i=e(10),o=e(46),u=e(6);t.exports=function(t,n,e,a,c){r(n);var s=i(t),f=o(s),l=u(s.length),h=c?l-1:0,p=c?-1:1;if(e<2)for(;;){if(h in f){a=f[h],h+=p;break}if(h+=p,c?h<0:l<=h)throw TypeError("Reduce of empty array with no initial value")}for(;c?h>=0:l>h;h+=p)h in f&&(a=n(a,f[h],h,s));return a}},function(t,n,e){"use strict";var r=e(10),i=e(34),o=e(6);t.exports=[].copyWithin||function(t,n){var e=r(this),u=o(e.length),a=i(t,u),c=i(n,u),s=arguments.length>2?arguments[2]:void 0,f=Math.min((void 0===s?u:i(s,u))-c,u-a),l=1;for(c<a&&a<c+f&&(l=-1,c+=f-1,a+=f-1);f-- >0;)c in e?e[a]=e[c]:delete e[a],a+=l,c+=l;return e}},function(t,n){t.exports=function(t,n){return{value:n,done:!!t}}},function(t,n,e){"use strict";var r=e(83);e(0)({target:"RegExp",proto:!0,forced:r!==/./.exec},{exec:r})},function(t,n,e){e(8)&&"g"!=/./g.flags&&e(9).f(RegExp.prototype,"flags",{configurable:!0,get:e(55)})},function(t,n,e){"use strict";var r,i,o,u,a=e(32),c=e(1),s=e(19),f=e(48),l=e(0),h=e(4),p=e(20),v=e(44),d=e(58),g=e(49),y=e(85).set,m=e(244)(),b=e(119),S=e(245),w=e(59),_=e(120),x=c.TypeError,M=c.process,P=M&&M.versions,O=P&&P.v8||"",F=c.Promise,A="process"==f(M),E=function(){},N=i=b.f,R=!!function(){try{var t=F.resolve(1),n=(t.constructor={})[e(5)("species")]=function(t){t(E,E)};return(A||"function"==typeof PromiseRejectionEvent)&&t.then(E)instanceof n&&0!==O.indexOf("6.6")&&-1===w.indexOf("Chrome/66")}catch(t){}}(),k=function(t){var n;return!(!h(t)||"function"!=typeof(n=t.then))&&n},T=function(t,n){if(!t._n){t._n=!0;var e=t._c;m((function(){for(var r=t._v,i=1==t._s,o=0,u=function(n){var e,o,u,a=i?n.ok:n.fail,c=n.resolve,s=n.reject,f=n.domain;try{a?(i||(2==t._h&&j(t),t._h=1),!0===a?e=r:(f&&f.enter(),e=a(r),f&&(f.exit(),u=!0)),e===n.promise?s(x("Promise-chain cycle")):(o=k(e))?o.call(e,c,s):c(e)):s(r)}catch(t){f&&!u&&f.exit(),s(t)}};e.length>o;)u(e[o++]);t._c=[],t._n=!1,n&&!t._h&&I(t)}))}},I=function(t){y.call(c,(function(){var n,e,r,i=t._v,o=L(t);if(o&&(n=S((function(){A?M.emit("unhandledRejection",i,t):(e=c.onunhandledrejection)?e({promise:t,reason:i}):(r=c.console)&&r.error&&r.error("Unhandled promise rejection",i)})),t._h=A||L(t)?2:1),t._a=void 0,o&&n.e)throw n.v}))},L=function(t){return 1!==t._h&&0===(t._a||t._c).length},j=function(t){y.call(c,(function(){var n;A?M.emit("rejectionHandled",t):(n=c.onrejectionhandled)&&n({promise:t,reason:t._v})}))},B=function(t){var n=this;n._d||(n._d=!0,(n=n._w||n)._v=t,n._s=2,n._a||(n._a=n._c.slice()),T(n,!0))},C=function(t){var n,e=this;if(!e._d){e._d=!0,e=e._w||e;try{if(e===t)throw x("Promise can't be resolved itself");(n=k(t))?m((function(){var r={_w:e,_d:!1};try{n.call(t,s(C,r,1),s(B,r,1))}catch(t){B.call(r,t)}})):(e._v=t,e._s=1,T(e,!1))}catch(t){B.call({_w:e,_d:!1},t)}}};R||(F=function(t){v(this,F,"Promise","_h"),p(t),r.call(this);try{t(s(C,this,1),s(B,this,1))}catch(t){B.call(this,t)}},(r=function(t){this._c=[],this._a=void 0,this._s=0,this._d=!1,this._v=void 0,this._h=0,this._n=!1}).prototype=e(45)(F.prototype,{then:function(t,n){var e=N(g(this,F));return e.ok="function"!=typeof t||t,e.fail="function"==typeof n&&n,e.domain=A?M.domain:void 0,this._c.push(e),this._a&&this._a.push(e),this._s&&T(this,!1),e.promise},catch:function(t){return this.then(void 0,t)}}),o=function(){var t=new r;this.promise=t,this.resolve=s(C,t,1),this.reject=s(B,t,1)},b.f=N=function(t){return t===F||t===u?new o(t):i(t)}),l(l.G+l.W+l.F*!R,{Promise:F}),e(40)(F,"Promise"),e(43)("Promise"),u=e(7).Promise,l(l.S+l.F*!R,"Promise",{reject:function(t){var n=N(this);return(0,n.reject)(t),n.promise}}),l(l.S+l.F*(a||!R),"Promise",{resolve:function(t){return _(a&&this===u?F:this,t)}}),l(l.S+l.F*!(R&&e(54)((function(t){F.all(t).catch(E)}))),"Promise",{all:function(t){var n=this,e=N(n),r=e.resolve,i=e.reject,o=S((function(){var e=[],o=0,u=1;d(t,!1,(function(t){var a=o++,c=!1;e.push(void 0),u++,n.resolve(t).then((function(t){c||(c=!0,e[a]=t,--u||r(e))}),i)})),--u||r(e)}));return o.e&&i(o.v),e.promise},race:function(t){var n=this,e=N(n),r=e.reject,i=S((function(){d(t,!1,(function(t){n.resolve(t).then(e.resolve,r)}))}));return i.e&&r(i.v),e.promise}})},function(t,n,e){"use strict";var r=e(20);function i(t){var n,e;this.promise=new t((function(t,r){if(void 0!==n||void 0!==e)throw TypeError("Bad Promise constructor");n=t,e=r})),this.resolve=r(n),this.reject=r(e)}t.exports.f=function(t){return new i(t)}},function(t,n,e){var r=e(3),i=e(4),o=e(119);t.exports=function(t,n){if(r(t),i(n)&&n.constructor===t)return n;var e=o.f(t);return(0,e.resolve)(n),e.promise}},function(t,n,e){"use strict";var r=e(9).f,i=e(35),o=e(45),u=e(19),a=e(44),c=e(58),s=e(74),f=e(115),l=e(43),h=e(8),p=e(29).fastKey,v=e(39),d=h?"_s":"size",g=function(t,n){var e,r=p(n);if("F"!==r)return t._i[r];for(e=t._f;e;e=e.n)if(e.k==n)return e};t.exports={getConstructor:function(t,n,e,s){var f=t((function(t,r){a(t,f,n,"_i"),t._t=n,t._i=i(null),t._f=void 0,t._l=void 0,t[d]=0,null!=r&&c(r,e,t[s],t)}));return o(f.prototype,{clear:function(){for(var t=v(this,n),e=t._i,r=t._f;r;r=r.n)r.r=!0,r.p&&(r.p=r.p.n=void 0),delete e[r.i];t._f=t._l=void 0,t[d]=0},delete:function(t){var e=v(this,n),r=g(e,t);if(r){var i=r.n,o=r.p;delete e._i[r.i],r.r=!0,o&&(o.n=i),i&&(i.p=o),e._f==r&&(e._f=i),e._l==r&&(e._l=o),e[d]--}return!!r},forEach:function(t){v(this,n);for(var e,r=u(t,arguments.length>1?arguments[1]:void 0,3);e=e?e.n:this._f;)for(r(e.v,e.k,this);e&&e.r;)e=e.p},has:function(t){return!!g(v(this,n),t)}}),h&&r(f.prototype,"size",{get:function(){return v(this,n)[d]}}),f},def:function(t,n,e){var r,i,o=g(t,n);return o?o.v=e:(t._l=o={i:i=p(n,!0),k:n,v:e,p:r=t._l,n:void 0,r:!1},t._f||(t._f=o),r&&(r.n=o),t[d]++,"F"!==i&&(t._i[i]=o)),t},getEntry:g,setStrong:function(t,n,e){s(t,n,(function(t,e){this._t=v(t,n),this._k=e,this._l=void 0}),(function(){for(var t=this._k,n=this._l;n&&n.r;)n=n.p;return this._t&&(this._l=n=n?n.n:this._t._f)?f(0,"keys"==t?n.k:"values"==t?n.v:[n.k,n.v]):(this._t=void 0,f(1))}),e?"entries":"values",!e,!0),l(n)}}},function(t,n,e){"use strict";var r=e(45),i=e(29).getWeak,o=e(3),u=e(4),a=e(44),c=e(58),s=e(24),f=e(13),l=e(39),h=s(5),p=s(6),v=0,d=function(t){return t._l||(t._l=new g)},g=function(){this.a=[]},y=function(t,n){return h(t.a,(function(t){return t[0]===n}))};g.prototype={get:function(t){var n=y(this,t);if(n)return n[1]},has:function(t){return!!y(this,t)},set:function(t,n){var e=y(this,t);e?e[1]=n:this.a.push([t,n])},delete:function(t){var n=p(this.a,(function(n){return n[0]===t}));return~n&&this.a.splice(n,1),!!~n}},t.exports={getConstructor:function(t,n,e,o){var s=t((function(t,r){a(t,s,n,"_i"),t._t=n,t._i=v++,t._l=void 0,null!=r&&c(r,e,t[o],t)}));return r(s.prototype,{delete:function(t){if(!u(t))return!1;var e=i(t);return!0===e?d(l(this,n)).delete(t):e&&f(e,this._i)&&delete e[this._i]},has:function(t){if(!u(t))return!1;var e=i(t);return!0===e?d(l(this,n)).has(t):e&&f(e,this._i)}}),s},def:function(t,n,e){var r=i(o(n),!0);return!0===r?d(t).set(n,e):r[t._i]=e,t},ufstore:d}},function(t,n,e){var r=e(21),i=e(6);t.exports=function(t){if(void 0===t)return 0;var n=r(t),e=i(n);if(n!==e)throw RangeError("Wrong length!");return e}},function(t,n,e){var r=e(36),i=e(52),o=e(3),u=e(1).Reflect;t.exports=u&&u.ownKeys||function(t){var n=r.f(o(t)),e=i.f;return e?n.concat(e(t)):n}},function(t,n,e){var r=e(6),i=e(70),o=e(26);t.exports=function(t,n,e,u){var a=String(o(t)),c=a.length,s=void 0===e?" ":String(e),f=r(n);if(f<=c||""==s)return a;var l=f-c,h=i.call(s,Math.ceil(l/s.length));return h.length>l&&(h=h.slice(0,l)),u?h+a:a+h}},function(t,n,e){var r=e(8),i=e(33),o=e(15),u=e(47).f;t.exports=function(t){return function(n){for(var e,a=o(n),c=i(a),s=c.length,f=0,l=[];s>f;)e=c[f++],r&&!u.call(a,e)||l.push(t?[e,a[e]]:a[e]);return l}}},function(t,n){var e=t.exports={version:"2.6.9"};"number"==typeof __e&&(__e=e)},function(t,n){t.exports=function(t){try{return!!t()}catch(t){return!0}}},function(t,n,e){e(130),t.exports=e(90)},function(t,n,e){"use strict";e(131);var r,i=(r=e(303))&&r.__esModule?r:{default:r};i.default._babelPolyfill&&"undefined"!=typeof console&&console.warn&&console.warn("@babel/polyfill is loaded more than once on this page. This is probably not desirable/intended and may have consequences if different versions of the polyfills are applied sequentially. If you do need to load the polyfill more than once, use @babel/polyfill/noConflict instead to bypass the warning."),i.default._babelPolyfill=!0},function(t,n,e){"use strict";e(132),e(275),e(277),e(280),e(282),e(284),e(286),e(288),e(290),e(292),e(294),e(296),e(298),e(302)},function(t,n,e){e(133),e(136),e(137),e(138),e(139),e(140),e(141),e(142),e(143),e(144),e(145),e(146),e(147),e(148),e(149),e(150),e(151),e(152),e(153),e(154),e(155),e(156),e(157),e(158),e(159),e(160),e(161),e(162),e(163),e(164),e(165),e(166),e(167),e(168),e(169),e(170),e(171),e(172),e(173),e(174),e(175),e(176),e(177),e(179),e(180),e(181),e(182),e(183),e(184),e(185),e(186),e(187),e(188),e(189),e(190),e(191),e(192),e(193),e(194),e(195),e(196),e(197),e(198),e(199),e(200),e(201),e(202),e(203),e(204),e(205),e(206),e(207),e(208),e(209),e(210),e(211),e(212),e(214),e(215),e(217),e(218),e(219),e(220),e(221),e(222),e(223),e(225),e(226),e(227),e(228),e(229),e(230),e(231),e(232),e(233),e(234),e(235),e(236),e(237),e(82),e(238),e(116),e(239),e(117),e(240),e(241),e(242),e(243),e(118),e(246),e(247),e(248),e(249),e(250),e(251),e(252),e(253),e(254),e(255),e(256),e(257),e(258),e(259),e(260),e(261),e(262),e(263),e(264),e(265),e(266),e(267),e(268),e(269),e(270),e(271),e(272),e(273),e(274),t.exports=e(7)},function(t,n,e){"use strict";var r=e(1),i=e(13),o=e(8),u=e(0),a=e(11),c=e(29).KEY,s=e(2),f=e(50),l=e(40),h=e(31),p=e(5),v=e(63),d=e(97),g=e(135),y=e(53),m=e(3),b=e(4),S=e(10),w=e(15),_=e(28),x=e(30),M=e(35),P=e(100),O=e(22),F=e(52),A=e(9),E=e(33),N=O.f,R=A.f,k=P.f,T=r.Symbol,I=r.JSON,L=I&&I.stringify,j=p("_hidden"),B=p("toPrimitive"),C={}.propertyIsEnumerable,W=f("symbol-registry"),G=f("symbols"),V=f("op-symbols"),D=Object.prototype,U="function"==typeof T&&!!F.f,z=r.QObject,q=!z||!z.prototype||!z.prototype.findChild,K=o&&s((function(){return 7!=M(R({},"a",{get:function(){return R(this,"a",{value:7}).a}})).a}))?function(t,n,e){var r=N(D,n);r&&delete D[n],R(t,n,e),r&&t!==D&&R(D,n,r)}:R,Y=function(t){var n=G[t]=M(T.prototype);return n._k=t,n},Q=U&&"symbol"==typeof T.iterator?function(t){return"symbol"==typeof t}:function(t){return t instanceof T},H=function(t,n,e){return t===D&&H(V,n,e),m(t),n=_(n,!0),m(e),i(G,n)?(e.enumerable?(i(t,j)&&t[j][n]&&(t[j][n]=!1),e=M(e,{enumerable:x(0,!1)})):(i(t,j)||R(t,j,x(1,{})),t[j][n]=!0),K(t,n,e)):R(t,n,e)},J=function(t,n){m(t);for(var e,r=g(n=w(n)),i=0,o=r.length;o>i;)H(t,e=r[i++],n[e]);return t},X=function(t){var n=C.call(this,t=_(t,!0));return!(this===D&&i(G,t)&&!i(V,t))&&(!(n||!i(this,t)||!i(G,t)||i(this,j)&&this[j][t])||n)},Z=function(t,n){if(t=w(t),n=_(n,!0),t!==D||!i(G,n)||i(V,n)){var e=N(t,n);return!e||!i(G,n)||i(t,j)&&t[j][n]||(e.enumerable=!0),e}},$=function(t){for(var n,e=k(w(t)),r=[],o=0;e.length>o;)i(G,n=e[o++])||n==j||n==c||r.push(n);return r},tt=function(t){for(var n,e=t===D,r=k(e?V:w(t)),o=[],u=0;r.length>u;)!i(G,n=r[u++])||e&&!i(D,n)||o.push(G[n]);return o};U||(a((T=function(){if(this instanceof T)throw TypeError("Symbol is not a constructor!");var t=h(arguments.length>0?arguments[0]:void 0),n=function(e){this===D&&n.call(V,e),i(this,j)&&i(this[j],t)&&(this[j][t]=!1),K(this,t,x(1,e))};return o&&q&&K(D,t,{configurable:!0,set:n}),Y(t)}).prototype,"toString",(function(){return this._k})),O.f=Z,A.f=H,e(36).f=P.f=$,e(47).f=X,F.f=tt,o&&!e(32)&&a(D,"propertyIsEnumerable",X,!0),v.f=function(t){return Y(p(t))}),u(u.G+u.W+u.F*!U,{Symbol:T});for(var nt="hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables".split(","),et=0;nt.length>et;)p(nt[et++]);for(var rt=E(p.store),it=0;rt.length>it;)d(rt[it++]);u(u.S+u.F*!U,"Symbol",{for:function(t){return i(W,t+="")?W[t]:W[t]=T(t)},keyFor:function(t){if(!Q(t))throw TypeError(t+" is not a symbol!");for(var n in W)if(W[n]===t)return n},useSetter:function(){q=!0},useSimple:function(){q=!1}}),u(u.S+u.F*!U,"Object",{create:function(t,n){return void 0===n?M(t):J(M(t),n)},defineProperty:H,defineProperties:J,getOwnPropertyDescriptor:Z,getOwnPropertyNames:$,getOwnPropertySymbols:tt});var ot=s((function(){F.f(1)}));u(u.S+u.F*ot,"Object",{getOwnPropertySymbols:function(t){return F.f(S(t))}}),I&&u(u.S+u.F*(!U||s((function(){var t=T();return"[null]"!=L([t])||"{}"!=L({a:t})||"{}"!=L(Object(t))}))),"JSON",{stringify:function(t){for(var n,e,r=[t],i=1;arguments.length>i;)r.push(arguments[i++]);if(e=n=r[1],(b(n)||void 0!==t)&&!Q(t))return y(n)||(n=function(t,n){if("function"==typeof e&&(n=e.call(this,t,n)),!Q(n))return n}),r[1]=n,L.apply(I,r)}}),T.prototype[B]||e(14)(T.prototype,B,T.prototype.valueOf),l(T,"Symbol"),l(Math,"Math",!0),l(r.JSON,"JSON",!0)},function(t,n,e){t.exports=e(50)("native-function-to-string",Function.toString)},function(t,n,e){var r=e(33),i=e(52),o=e(47);t.exports=function(t){var n=r(t),e=i.f;if(e)for(var u,a=e(t),c=o.f,s=0;a.length>s;)c.call(t,u=a[s++])&&n.push(u);return n}},function(t,n,e){var r=e(0);r(r.S,"Object",{create:e(35)})},function(t,n,e){var r=e(0);r(r.S+r.F*!e(8),"Object",{defineProperty:e(9).f})},function(t,n,e){var r=e(0);r(r.S+r.F*!e(8),"Object",{defineProperties:e(99)})},function(t,n,e){var r=e(15),i=e(22).f;e(23)("getOwnPropertyDescriptor",(function(){return function(t,n){return i(r(t),n)}}))},function(t,n,e){var r=e(10),i=e(37);e(23)("getPrototypeOf",(function(){return function(t){return i(r(t))}}))},function(t,n,e){var r=e(10),i=e(33);e(23)("keys",(function(){return function(t){return i(r(t))}}))},function(t,n,e){e(23)("getOwnPropertyNames",(function(){return e(100).f}))},function(t,n,e){var r=e(4),i=e(29).onFreeze;e(23)("freeze",(function(t){return function(n){return t&&r(n)?t(i(n)):n}}))},function(t,n,e){var r=e(4),i=e(29).onFreeze;e(23)("seal",(function(t){return function(n){return t&&r(n)?t(i(n)):n}}))},function(t,n,e){var r=e(4),i=e(29).onFreeze;e(23)("preventExtensions",(function(t){return function(n){return t&&r(n)?t(i(n)):n}}))},function(t,n,e){var r=e(4);e(23)("isFrozen",(function(t){return function(n){return!r(n)||!!t&&t(n)}}))},function(t,n,e){var r=e(4);e(23)("isSealed",(function(t){return function(n){return!r(n)||!!t&&t(n)}}))},function(t,n,e){var r=e(4);e(23)("isExtensible",(function(t){return function(n){return!!r(n)&&(!t||t(n))}}))},function(t,n,e){var r=e(0);r(r.S+r.F,"Object",{assign:e(101)})},function(t,n,e){var r=e(0);r(r.S,"Object",{is:e(102)})},function(t,n,e){var r=e(0);r(r.S,"Object",{setPrototypeOf:e(67).set})},function(t,n,e){"use strict";var r=e(48),i={};i[e(5)("toStringTag")]="z",i+""!="[object z]"&&e(11)(Object.prototype,"toString",(function(){return"[object "+r(this)+"]"}),!0)},function(t,n,e){var r=e(0);r(r.P,"Function",{bind:e(103)})},function(t,n,e){var r=e(9).f,i=Function.prototype,o=/^\s*function ([^ (]*)/;"name"in i||e(8)&&r(i,"name",{configurable:!0,get:function(){try{return(""+this).match(o)[1]}catch(t){return""}}})},function(t,n,e){"use strict";var r=e(4),i=e(37),o=e(5)("hasInstance"),u=Function.prototype;o in u||e(9).f(u,o,{value:function(t){if("function"!=typeof this||!r(t))return!1;if(!r(this.prototype))return t instanceof this;for(;t=i(t);)if(this.prototype===t)return!0;return!1}})},function(t,n,e){var r=e(0),i=e(105);r(r.G+r.F*(parseInt!=i),{parseInt:i})},function(t,n,e){var r=e(0),i=e(106);r(r.G+r.F*(parseFloat!=i),{parseFloat:i})},function(t,n,e){"use strict";var r=e(1),i=e(13),o=e(25),u=e(69),a=e(28),c=e(2),s=e(36).f,f=e(22).f,l=e(9).f,h=e(41).trim,p=r.Number,v=p,d=p.prototype,g="Number"==o(e(35)(d)),y="trim"in String.prototype,m=function(t){var n=a(t,!1);if("string"==typeof n&&n.length>2){var e,r,i,o=(n=y?n.trim():h(n,3)).charCodeAt(0);if(43===o||45===o){if(88===(e=n.charCodeAt(2))||120===e)return NaN}else if(48===o){switch(n.charCodeAt(1)){case 66:case 98:r=2,i=49;break;case 79:case 111:r=8,i=55;break;default:return+n}for(var u,c=n.slice(2),s=0,f=c.length;s<f;s++)if((u=c.charCodeAt(s))<48||u>i)return NaN;return parseInt(c,r)}}return+n};if(!p(" 0o1")||!p("0b1")||p("+0x1")){p=function(t){var n=arguments.length<1?0:t,e=this;return e instanceof p&&(g?c((function(){d.valueOf.call(e)})):"Number"!=o(e))?u(new v(m(n)),e,p):m(n)};for(var b,S=e(8)?s(v):"MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger".split(","),w=0;S.length>w;w++)i(v,b=S[w])&&!i(p,b)&&l(p,b,f(v,b));p.prototype=d,d.constructor=p,e(11)(r,"Number",p)}},function(t,n,e){"use strict";var r=e(0),i=e(21),o=e(107),u=e(70),a=1..toFixed,c=Math.floor,s=[0,0,0,0,0,0],f="Number.toFixed: incorrect invocation!",l=function(t,n){for(var e=-1,r=n;++e<6;)r+=t*s[e],s[e]=r%1e7,r=c(r/1e7)},h=function(t){for(var n=6,e=0;--n>=0;)e+=s[n],s[n]=c(e/t),e=e%t*1e7},p=function(){for(var t=6,n="";--t>=0;)if(""!==n||0===t||0!==s[t]){var e=String(s[t]);n=""===n?e:n+u.call("0",7-e.length)+e}return n},v=function(t,n,e){return 0===n?e:n%2==1?v(t,n-1,e*t):v(t*t,n/2,e)};r(r.P+r.F*(!!a&&("0.000"!==8e-5.toFixed(3)||"1"!==.9.toFixed(0)||"1.25"!==1.255.toFixed(2)||"1000000000000000128"!==(0xde0b6b3a7640080).toFixed(0))||!e(2)((function(){a.call({})}))),"Number",{toFixed:function(t){var n,e,r,a,c=o(this,f),s=i(t),d="",g="0";if(s<0||s>20)throw RangeError(f);if(c!=c)return"NaN";if(c<=-1e21||c>=1e21)return String(c);if(c<0&&(d="-",c=-c),c>1e-21)if(e=(n=function(t){for(var n=0,e=t;e>=4096;)n+=12,e/=4096;for(;e>=2;)n+=1,e/=2;return n}(c*v(2,69,1))-69)<0?c*v(2,-n,1):c/v(2,n,1),e*=4503599627370496,(n=52-n)>0){for(l(0,e),r=s;r>=7;)l(1e7,0),r-=7;for(l(v(10,r,1),0),r=n-1;r>=23;)h(1<<23),r-=23;h(1<<r),l(1,1),h(2),g=p()}else l(0,e),l(1<<-n,0),g=p()+u.call("0",s);return g=s>0?d+((a=g.length)<=s?"0."+u.call("0",s-a)+g:g.slice(0,a-s)+"."+g.slice(a-s)):d+g}})},function(t,n,e){"use strict";var r=e(0),i=e(2),o=e(107),u=1..toPrecision;r(r.P+r.F*(i((function(){return"1"!==u.call(1,void 0)}))||!i((function(){u.call({})}))),"Number",{toPrecision:function(t){var n=o(this,"Number#toPrecision: incorrect invocation!");return void 0===t?u.call(n):u.call(n,t)}})},function(t,n,e){var r=e(0);r(r.S,"Number",{EPSILON:Math.pow(2,-52)})},function(t,n,e){var r=e(0),i=e(1).isFinite;r(r.S,"Number",{isFinite:function(t){return"number"==typeof t&&i(t)}})},function(t,n,e){var r=e(0);r(r.S,"Number",{isInteger:e(108)})},function(t,n,e){var r=e(0);r(r.S,"Number",{isNaN:function(t){return t!=t}})},function(t,n,e){var r=e(0),i=e(108),o=Math.abs;r(r.S,"Number",{isSafeInteger:function(t){return i(t)&&o(t)<=9007199254740991}})},function(t,n,e){var r=e(0);r(r.S,"Number",{MAX_SAFE_INTEGER:9007199254740991})},function(t,n,e){var r=e(0);r(r.S,"Number",{MIN_SAFE_INTEGER:-9007199254740991})},function(t,n,e){var r=e(0),i=e(106);r(r.S+r.F*(Number.parseFloat!=i),"Number",{parseFloat:i})},function(t,n,e){var r=e(0),i=e(105);r(r.S+r.F*(Number.parseInt!=i),"Number",{parseInt:i})},function(t,n,e){var r=e(0),i=e(109),o=Math.sqrt,u=Math.acosh;r(r.S+r.F*!(u&&710==Math.floor(u(Number.MAX_VALUE))&&u(1/0)==1/0),"Math",{acosh:function(t){return(t=+t)<1?NaN:t>94906265.62425156?Math.log(t)+Math.LN2:i(t-1+o(t-1)*o(t+1))}})},function(t,n,e){var r=e(0),i=Math.asinh;r(r.S+r.F*!(i&&1/i(0)>0),"Math",{asinh:function t(n){return isFinite(n=+n)&&0!=n?n<0?-t(-n):Math.log(n+Math.sqrt(n*n+1)):n}})},function(t,n,e){var r=e(0),i=Math.atanh;r(r.S+r.F*!(i&&1/i(-0)<0),"Math",{atanh:function(t){return 0==(t=+t)?t:Math.log((1+t)/(1-t))/2}})},function(t,n,e){var r=e(0),i=e(71);r(r.S,"Math",{cbrt:function(t){return i(t=+t)*Math.pow(Math.abs(t),1/3)}})},function(t,n,e){var r=e(0);r(r.S,"Math",{clz32:function(t){return(t>>>=0)?31-Math.floor(Math.log(t+.5)*Math.LOG2E):32}})},function(t,n,e){var r=e(0),i=Math.exp;r(r.S,"Math",{cosh:function(t){return(i(t=+t)+i(-t))/2}})},function(t,n,e){var r=e(0),i=e(72);r(r.S+r.F*(i!=Math.expm1),"Math",{expm1:i})},function(t,n,e){var r=e(0);r(r.S,"Math",{fround:e(178)})},function(t,n,e){var r=e(71),i=Math.pow,o=i(2,-52),u=i(2,-23),a=i(2,127)*(2-u),c=i(2,-126);t.exports=Math.fround||function(t){var n,e,i=Math.abs(t),s=r(t);return i<c?s*(i/c/u+1/o-1/o)*c*u:(e=(n=(1+u/o)*i)-(n-i))>a||e!=e?s*(1/0):s*e}},function(t,n,e){var r=e(0),i=Math.abs;r(r.S,"Math",{hypot:function(t,n){for(var e,r,o=0,u=0,a=arguments.length,c=0;u<a;)c<(e=i(arguments[u++]))?(o=o*(r=c/e)*r+1,c=e):o+=e>0?(r=e/c)*r:e;return c===1/0?1/0:c*Math.sqrt(o)}})},function(t,n,e){var r=e(0),i=Math.imul;r(r.S+r.F*e(2)((function(){return-5!=i(4294967295,5)||2!=i.length})),"Math",{imul:function(t,n){var e=+t,r=+n,i=65535&e,o=65535&r;return 0|i*o+((65535&e>>>16)*o+i*(65535&r>>>16)<<16>>>0)}})},function(t,n,e){var r=e(0);r(r.S,"Math",{log10:function(t){return Math.log(t)*Math.LOG10E}})},function(t,n,e){var r=e(0);r(r.S,"Math",{log1p:e(109)})},function(t,n,e){var r=e(0);r(r.S,"Math",{log2:function(t){return Math.log(t)/Math.LN2}})},function(t,n,e){var r=e(0);r(r.S,"Math",{sign:e(71)})},function(t,n,e){var r=e(0),i=e(72),o=Math.exp;r(r.S+r.F*e(2)((function(){return-2e-17!=!Math.sinh(-2e-17)})),"Math",{sinh:function(t){return Math.abs(t=+t)<1?(i(t)-i(-t))/2:(o(t-1)-o(-t-1))*(Math.E/2)}})},function(t,n,e){var r=e(0),i=e(72),o=Math.exp;r(r.S,"Math",{tanh:function(t){var n=i(t=+t),e=i(-t);return n==1/0?1:e==1/0?-1:(n-e)/(o(t)+o(-t))}})},function(t,n,e){var r=e(0);r(r.S,"Math",{trunc:function(t){return(t>0?Math.floor:Math.ceil)(t)}})},function(t,n,e){var r=e(0),i=e(34),o=String.fromCharCode,u=String.fromCodePoint;r(r.S+r.F*(!!u&&1!=u.length),"String",{fromCodePoint:function(t){for(var n,e=[],r=arguments.length,u=0;r>u;){if(n=+arguments[u++],i(n,1114111)!==n)throw RangeError(n+" is not a valid code point");e.push(n<65536?o(n):o(55296+((n-=65536)>>10),n%1024+56320))}return e.join("")}})},function(t,n,e){var r=e(0),i=e(15),o=e(6);r(r.S,"String",{raw:function(t){for(var n=i(t.raw),e=o(n.length),r=arguments.length,u=[],a=0;e>a;)u.push(String(n[a++])),a<r&&u.push(String(arguments[a]));return u.join("")}})},function(t,n,e){"use strict";e(41)("trim",(function(t){return function(){return t(this,3)}}))},function(t,n,e){"use strict";var r=e(73)(!0);e(74)(String,"String",(function(t){this._t=String(t),this._i=0}),(function(){var t,n=this._t,e=this._i;return e>=n.length?{value:void 0,done:!0}:(t=r(n,e),this._i+=t.length,{value:t,done:!1})}))},function(t,n,e){"use strict";var r=e(0),i=e(73)(!1);r(r.P,"String",{codePointAt:function(t){return i(this,t)}})},function(t,n,e){"use strict";var r=e(0),i=e(6),o=e(75),u="".endsWith;r(r.P+r.F*e(77)("endsWith"),"String",{endsWith:function(t){var n=o(this,t,"endsWith"),e=arguments.length>1?arguments[1]:void 0,r=i(n.length),a=void 0===e?r:Math.min(i(e),r),c=String(t);return u?u.call(n,c,a):n.slice(a-c.length,a)===c}})},function(t,n,e){"use strict";var r=e(0),i=e(75);r(r.P+r.F*e(77)("includes"),"String",{includes:function(t){return!!~i(this,t,"includes").indexOf(t,arguments.length>1?arguments[1]:void 0)}})},function(t,n,e){var r=e(0);r(r.P,"String",{repeat:e(70)})},function(t,n,e){"use strict";var r=e(0),i=e(6),o=e(75),u="".startsWith;r(r.P+r.F*e(77)("startsWith"),"String",{startsWith:function(t){var n=o(this,t,"startsWith"),e=i(Math.min(arguments.length>1?arguments[1]:void 0,n.length)),r=String(t);return u?u.call(n,r,e):n.slice(e,e+r.length)===r}})},function(t,n,e){"use strict";e(12)("anchor",(function(t){return function(n){return t(this,"a","name",n)}}))},function(t,n,e){"use strict";e(12)("big",(function(t){return function(){return t(this,"big","","")}}))},function(t,n,e){"use strict";e(12)("blink",(function(t){return function(){return t(this,"blink","","")}}))},function(t,n,e){"use strict";e(12)("bold",(function(t){return function(){return t(this,"b","","")}}))},function(t,n,e){"use strict";e(12)("fixed",(function(t){return function(){return t(this,"tt","","")}}))},function(t,n,e){"use strict";e(12)("fontcolor",(function(t){return function(n){return t(this,"font","color",n)}}))},function(t,n,e){"use strict";e(12)("fontsize",(function(t){return function(n){return t(this,"font","size",n)}}))},function(t,n,e){"use strict";e(12)("italics",(function(t){return function(){return t(this,"i","","")}}))},function(t,n,e){"use strict";e(12)("link",(function(t){return function(n){return t(this,"a","href",n)}}))},function(t,n,e){"use strict";e(12)("small",(function(t){return function(){return t(this,"small","","")}}))},function(t,n,e){"use strict";e(12)("strike",(function(t){return function(){return t(this,"strike","","")}}))},function(t,n,e){"use strict";e(12)("sub",(function(t){return function(){return t(this,"sub","","")}}))},function(t,n,e){"use strict";e(12)("sup",(function(t){return function(){return t(this,"sup","","")}}))},function(t,n,e){var r=e(0);r(r.S,"Date",{now:function(){return(new Date).getTime()}})},function(t,n,e){"use strict";var r=e(0),i=e(10),o=e(28);r(r.P+r.F*e(2)((function(){return null!==new Date(NaN).toJSON()||1!==Date.prototype.toJSON.call({toISOString:function(){return 1}})})),"Date",{toJSON:function(t){var n=i(this),e=o(n);return"number"!=typeof e||isFinite(e)?n.toISOString():null}})},function(t,n,e){var r=e(0),i=e(213);r(r.P+r.F*(Date.prototype.toISOString!==i),"Date",{toISOString:i})},function(t,n,e){"use strict";var r=e(2),i=Date.prototype.getTime,o=Date.prototype.toISOString,u=function(t){return t>9?t:"0"+t};t.exports=r((function(){return"0385-07-25T07:06:39.999Z"!=o.call(new Date(-5e13-1))}))||!r((function(){o.call(new Date(NaN))}))?function(){if(!isFinite(i.call(this)))throw RangeError("Invalid time value");var t=this,n=t.getUTCFullYear(),e=t.getUTCMilliseconds(),r=n<0?"-":n>9999?"+":"";return r+("00000"+Math.abs(n)).slice(r?-6:-4)+"-"+u(t.getUTCMonth()+1)+"-"+u(t.getUTCDate())+"T"+u(t.getUTCHours())+":"+u(t.getUTCMinutes())+":"+u(t.getUTCSeconds())+"."+(e>99?e:"0"+u(e))+"Z"}:o},function(t,n,e){var r=Date.prototype,i=r.toString,o=r.getTime;new Date(NaN)+""!="Invalid Date"&&e(11)(r,"toString",(function(){var t=o.call(this);return t==t?i.call(this):"Invalid Date"}))},function(t,n,e){var r=e(5)("toPrimitive"),i=Date.prototype;r in i||e(14)(i,r,e(216))},function(t,n,e){"use strict";var r=e(3),i=e(28);t.exports=function(t){if("string"!==t&&"number"!==t&&"default"!==t)throw TypeError("Incorrect hint");return i(r(this),"number"!=t)}},function(t,n,e){var r=e(0);r(r.S,"Array",{isArray:e(53)})},function(t,n,e){"use strict";var r=e(19),i=e(0),o=e(10),u=e(111),a=e(78),c=e(6),s=e(79),f=e(80);i(i.S+i.F*!e(54)((function(t){Array.from(t)})),"Array",{from:function(t){var n,e,i,l,h=o(t),p="function"==typeof this?this:Array,v=arguments.length,d=v>1?arguments[1]:void 0,g=void 0!==d,y=0,m=f(h);if(g&&(d=r(d,v>2?arguments[2]:void 0,2)),null==m||p==Array&&a(m))for(e=new p(n=c(h.length));n>y;y++)s(e,y,g?d(h[y],y):h[y]);else for(l=m.call(h),e=new p;!(i=l.next()).done;y++)s(e,y,g?u(l,d,[i.value,y],!0):i.value);return e.length=y,e}})},function(t,n,e){"use strict";var r=e(0),i=e(79);r(r.S+r.F*e(2)((function(){function t(){}return!(Array.of.call(t)instanceof t)})),"Array",{of:function(){for(var t=0,n=arguments.length,e=new("function"==typeof this?this:Array)(n);n>t;)i(e,t,arguments[t++]);return e.length=n,e}})},function(t,n,e){"use strict";var r=e(0),i=e(15),o=[].join;r(r.P+r.F*(e(46)!=Object||!e(16)(o)),"Array",{join:function(t){return o.call(i(this),void 0===t?",":t)}})},function(t,n,e){"use strict";var r=e(0),i=e(66),o=e(25),u=e(34),a=e(6),c=[].slice;r(r.P+r.F*e(2)((function(){i&&c.call(i)})),"Array",{slice:function(t,n){var e=a(this.length),r=o(this);if(n=void 0===n?e:n,"Array"==r)return c.call(this,t,n);for(var i=u(t,e),s=u(n,e),f=a(s-i),l=new Array(f),h=0;h<f;h++)l[h]="String"==r?this.charAt(i+h):this[i+h];return l}})},function(t,n,e){"use strict";var r=e(0),i=e(20),o=e(10),u=e(2),a=[].sort,c=[1,2,3];r(r.P+r.F*(u((function(){c.sort(void 0)}))||!u((function(){c.sort(null)}))||!e(16)(a)),"Array",{sort:function(t){return void 0===t?a.call(o(this)):a.call(o(this),i(t))}})},function(t,n,e){"use strict";var r=e(0),i=e(24)(0),o=e(16)([].forEach,!0);r(r.P+r.F*!o,"Array",{forEach:function(t){return i(this,t,arguments[1])}})},function(t,n,e){var r=e(4),i=e(53),o=e(5)("species");t.exports=function(t){var n;return i(t)&&("function"!=typeof(n=t.constructor)||n!==Array&&!i(n.prototype)||(n=void 0),r(n)&&null===(n=n[o])&&(n=void 0)),void 0===n?Array:n}},function(t,n,e){"use strict";var r=e(0),i=e(24)(1);r(r.P+r.F*!e(16)([].map,!0),"Array",{map:function(t){return i(this,t,arguments[1])}})},function(t,n,e){"use strict";var r=e(0),i=e(24)(2);r(r.P+r.F*!e(16)([].filter,!0),"Array",{filter:function(t){return i(this,t,arguments[1])}})},function(t,n,e){"use strict";var r=e(0),i=e(24)(3);r(r.P+r.F*!e(16)([].some,!0),"Array",{some:function(t){return i(this,t,arguments[1])}})},function(t,n,e){"use strict";var r=e(0),i=e(24)(4);r(r.P+r.F*!e(16)([].every,!0),"Array",{every:function(t){return i(this,t,arguments[1])}})},function(t,n,e){"use strict";var r=e(0),i=e(113);r(r.P+r.F*!e(16)([].reduce,!0),"Array",{reduce:function(t){return i(this,t,arguments.length,arguments[1],!1)}})},function(t,n,e){"use strict";var r=e(0),i=e(113);r(r.P+r.F*!e(16)([].reduceRight,!0),"Array",{reduceRight:function(t){return i(this,t,arguments.length,arguments[1],!0)}})},function(t,n,e){"use strict";var r=e(0),i=e(51)(!1),o=[].indexOf,u=!!o&&1/[1].indexOf(1,-0)<0;r(r.P+r.F*(u||!e(16)(o)),"Array",{indexOf:function(t){return u?o.apply(this,arguments)||0:i(this,t,arguments[1])}})},function(t,n,e){"use strict";var r=e(0),i=e(15),o=e(21),u=e(6),a=[].lastIndexOf,c=!!a&&1/[1].lastIndexOf(1,-0)<0;r(r.P+r.F*(c||!e(16)(a)),"Array",{lastIndexOf:function(t){if(c)return a.apply(this,arguments)||0;var n=i(this),e=u(n.length),r=e-1;for(arguments.length>1&&(r=Math.min(r,o(arguments[1]))),r<0&&(r=e+r);r>=0;r--)if(r in n&&n[r]===t)return r||0;return-1}})},function(t,n,e){var r=e(0);r(r.P,"Array",{copyWithin:e(114)}),e(38)("copyWithin")},function(t,n,e){var r=e(0);r(r.P,"Array",{fill:e(81)}),e(38)("fill")},function(t,n,e){"use strict";var r=e(0),i=e(24)(5),o=!0;"find"in[]&&Array(1).find((function(){o=!1})),r(r.P+r.F*o,"Array",{find:function(t){return i(this,t,arguments.length>1?arguments[1]:void 0)}}),e(38)("find")},function(t,n,e){"use strict";var r=e(0),i=e(24)(6),o="findIndex",u=!0;o in[]&&Array(1)[o]((function(){u=!1})),r(r.P+r.F*u,"Array",{findIndex:function(t){return i(this,t,arguments.length>1?arguments[1]:void 0)}}),e(38)(o)},function(t,n,e){e(43)("Array")},function(t,n,e){var r=e(1),i=e(69),o=e(9).f,u=e(36).f,a=e(76),c=e(55),s=r.RegExp,f=s,l=s.prototype,h=/a/g,p=/a/g,v=new s(h)!==h;if(e(8)&&(!v||e(2)((function(){return p[e(5)("match")]=!1,s(h)!=h||s(p)==p||"/a/i"!=s(h,"i")})))){s=function(t,n){var e=this instanceof s,r=a(t),o=void 0===n;return!e&&r&&t.constructor===s&&o?t:i(v?new f(r&&!o?t.source:t,n):f((r=t instanceof s)?t.source:t,r&&o?c.call(t):n),e?this:l,s)};for(var d=function(t){t in s||o(s,t,{configurable:!0,get:function(){return f[t]},set:function(n){f[t]=n}})},g=u(f),y=0;g.length>y;)d(g[y++]);l.constructor=s,s.prototype=l,e(11)(r,"RegExp",s)}e(43)("RegExp")},function(t,n,e){"use strict";e(117);var r=e(3),i=e(55),o=e(8),u=/./.toString,a=function(t){e(11)(RegExp.prototype,"toString",t,!0)};e(2)((function(){return"/a/b"!=u.call({source:"a",flags:"b"})}))?a((function(){var t=r(this);return"/".concat(t.source,"/","flags"in t?t.flags:!o&&t instanceof RegExp?i.call(t):void 0)})):"toString"!=u.name&&a((function(){return u.call(this)}))},function(t,n,e){"use strict";var r=e(3),i=e(6),o=e(84),u=e(56);e(57)("match",1,(function(t,n,e,a){return[function(e){var r=t(this),i=null==e?void 0:e[n];return void 0!==i?i.call(e,r):new RegExp(e)[n](String(r))},function(t){var n=a(e,t,this);if(n.done)return n.value;var c=r(t),s=String(this);if(!c.global)return u(c,s);var f=c.unicode;c.lastIndex=0;for(var l,h=[],p=0;null!==(l=u(c,s));){var v=String(l[0]);h[p]=v,""===v&&(c.lastIndex=o(s,i(c.lastIndex),f)),p++}return 0===p?null:h}]}))},function(t,n,e){"use strict";var r=e(3),i=e(10),o=e(6),u=e(21),a=e(84),c=e(56),s=Math.max,f=Math.min,l=Math.floor,h=/\$([$&`']|\d\d?|<[^>]*>)/g,p=/\$([$&`']|\d\d?)/g;e(57)("replace",2,(function(t,n,e,v){return[function(r,i){var o=t(this),u=null==r?void 0:r[n];return void 0!==u?u.call(r,o,i):e.call(String(o),r,i)},function(t,n){var i=v(e,t,this,n);if(i.done)return i.value;var l=r(t),h=String(this),p="function"==typeof n;p||(n=String(n));var g=l.global;if(g){var y=l.unicode;l.lastIndex=0}for(var m=[];;){var b=c(l,h);if(null===b)break;if(m.push(b),!g)break;""===String(b[0])&&(l.lastIndex=a(h,o(l.lastIndex),y))}for(var S,w="",_=0,x=0;x<m.length;x++){b=m[x];for(var M=String(b[0]),P=s(f(u(b.index),h.length),0),O=[],F=1;F<b.length;F++)O.push(void 0===(S=b[F])?S:String(S));var A=b.groups;if(p){var E=[M].concat(O,P,h);void 0!==A&&E.push(A);var N=String(n.apply(void 0,E))}else N=d(M,h,P,O,A,n);P>=_&&(w+=h.slice(_,P)+N,_=P+M.length)}return w+h.slice(_)}];function d(t,n,r,o,u,a){var c=r+t.length,s=o.length,f=p;return void 0!==u&&(u=i(u),f=h),e.call(a,f,(function(e,i){var a;switch(i.charAt(0)){case"$":return"$";case"&":return t;case"`":return n.slice(0,r);case"'":return n.slice(c);case"<":a=u[i.slice(1,-1)];break;default:var f=+i;if(0===f)return e;if(f>s){var h=l(f/10);return 0===h?e:h<=s?void 0===o[h-1]?i.charAt(1):o[h-1]+i.charAt(1):e}a=o[f-1]}return void 0===a?"":a}))}}))},function(t,n,e){"use strict";var r=e(3),i=e(102),o=e(56);e(57)("search",1,(function(t,n,e,u){return[function(e){var r=t(this),i=null==e?void 0:e[n];return void 0!==i?i.call(e,r):new RegExp(e)[n](String(r))},function(t){var n=u(e,t,this);if(n.done)return n.value;var a=r(t),c=String(this),s=a.lastIndex;i(s,0)||(a.lastIndex=0);var f=o(a,c);return i(a.lastIndex,s)||(a.lastIndex=s),null===f?-1:f.index}]}))},function(t,n,e){"use strict";var r=e(76),i=e(3),o=e(49),u=e(84),a=e(6),c=e(56),s=e(83),f=e(2),l=Math.min,h=[].push,p=!f((function(){RegExp(4294967295,"y")}));e(57)("split",2,(function(t,n,e,f){var v;return v="c"=="abbc".split(/(b)*/)[1]||4!="test".split(/(?:)/,-1).length||2!="ab".split(/(?:ab)*/).length||4!=".".split(/(.?)(.?)/).length||".".split(/()()/).length>1||"".split(/.?/).length?function(t,n){var i=String(this);if(void 0===t&&0===n)return[];if(!r(t))return e.call(i,t,n);for(var o,u,a,c=[],f=(t.ignoreCase?"i":"")+(t.multiline?"m":"")+(t.unicode?"u":"")+(t.sticky?"y":""),l=0,p=void 0===n?4294967295:n>>>0,v=new RegExp(t.source,f+"g");(o=s.call(v,i))&&!((u=v.lastIndex)>l&&(c.push(i.slice(l,o.index)),o.length>1&&o.index<i.length&&h.apply(c,o.slice(1)),a=o[0].length,l=u,c.length>=p));)v.lastIndex===o.index&&v.lastIndex++;return l===i.length?!a&&v.test("")||c.push(""):c.push(i.slice(l)),c.length>p?c.slice(0,p):c}:"0".split(void 0,0).length?function(t,n){return void 0===t&&0===n?[]:e.call(this,t,n)}:e,[function(e,r){var i=t(this),o=null==e?void 0:e[n];return void 0!==o?o.call(e,i,r):v.call(String(i),e,r)},function(t,n){var r=f(v,t,this,n,v!==e);if(r.done)return r.value;var s=i(t),h=String(this),d=o(s,RegExp),g=s.unicode,y=(s.ignoreCase?"i":"")+(s.multiline?"m":"")+(s.unicode?"u":"")+(p?"y":"g"),m=new d(p?s:"^(?:"+s.source+")",y),b=void 0===n?4294967295:n>>>0;if(0===b)return[];if(0===h.length)return null===c(m,h)?[h]:[];for(var S=0,w=0,_=[];w<h.length;){m.lastIndex=p?w:0;var x,M=c(m,p?h:h.slice(w));if(null===M||(x=l(a(m.lastIndex+(p?0:w)),h.length))===S)w=u(h,w,g);else{if(_.push(h.slice(S,w)),_.length===b)return _;for(var P=1;P<=M.length-1;P++)if(_.push(M[P]),_.length===b)return _;w=S=x}}return _.push(h.slice(S)),_}]}))},function(t,n,e){var r=e(1),i=e(85).set,o=r.MutationObserver||r.WebKitMutationObserver,u=r.process,a=r.Promise,c="process"==e(25)(u);t.exports=function(){var t,n,e,s=function(){var r,i;for(c&&(r=u.domain)&&r.exit();t;){i=t.fn,t=t.next;try{i()}catch(r){throw t?e():n=void 0,r}}n=void 0,r&&r.enter()};if(c)e=function(){u.nextTick(s)};else if(!o||r.navigator&&r.navigator.standalone)if(a&&a.resolve){var f=a.resolve(void 0);e=function(){f.then(s)}}else e=function(){i.call(r,s)};else{var l=!0,h=document.createTextNode("");new o(s).observe(h,{characterData:!0}),e=function(){h.data=l=!l}}return function(r){var i={fn:r,next:void 0};n&&(n.next=i),t||(t=i,e()),n=i}}},function(t,n){t.exports=function(t){try{return{e:!1,v:t()}}catch(t){return{e:!0,v:t}}}},function(t,n,e){"use strict";var r=e(121),i=e(39);t.exports=e(60)("Map",(function(t){return function(){return t(this,arguments.length>0?arguments[0]:void 0)}}),{get:function(t){var n=r.getEntry(i(this,"Map"),t);return n&&n.v},set:function(t,n){return r.def(i(this,"Map"),0===t?0:t,n)}},r,!0)},function(t,n,e){"use strict";var r=e(121),i=e(39);t.exports=e(60)("Set",(function(t){return function(){return t(this,arguments.length>0?arguments[0]:void 0)}}),{add:function(t){return r.def(i(this,"Set"),t=0===t?0:t,t)}},r)},function(t,n,e){"use strict";var r,i=e(1),o=e(24)(0),u=e(11),a=e(29),c=e(101),s=e(122),f=e(4),l=e(39),h=e(39),p=!i.ActiveXObject&&"ActiveXObject"in i,v=a.getWeak,d=Object.isExtensible,g=s.ufstore,y=function(t){return function(){return t(this,arguments.length>0?arguments[0]:void 0)}},m={get:function(t){if(f(t)){var n=v(t);return!0===n?g(l(this,"WeakMap")).get(t):n?n[this._i]:void 0}},set:function(t,n){return s.def(l(this,"WeakMap"),t,n)}},b=t.exports=e(60)("WeakMap",y,m,s,!0,!0);h&&p&&(c((r=s.getConstructor(y,"WeakMap")).prototype,m),a.NEED=!0,o(["delete","has","get","set"],(function(t){var n=b.prototype,e=n[t];u(n,t,(function(n,i){if(f(n)&&!d(n)){this._f||(this._f=new r);var o=this._f[t](n,i);return"set"==t?this:o}return e.call(this,n,i)}))})))},function(t,n,e){"use strict";var r=e(122),i=e(39);e(60)("WeakSet",(function(t){return function(){return t(this,arguments.length>0?arguments[0]:void 0)}}),{add:function(t){return r.def(i(this,"WeakSet"),t,!0)}},r,!1,!0)},function(t,n,e){"use strict";var r=e(0),i=e(61),o=e(86),u=e(3),a=e(34),c=e(6),s=e(4),f=e(1).ArrayBuffer,l=e(49),h=o.ArrayBuffer,p=o.DataView,v=i.ABV&&f.isView,d=h.prototype.slice,g=i.VIEW;r(r.G+r.W+r.F*(f!==h),{ArrayBuffer:h}),r(r.S+r.F*!i.CONSTR,"ArrayBuffer",{isView:function(t){return v&&v(t)||s(t)&&g in t}}),r(r.P+r.U+r.F*e(2)((function(){return!new h(2).slice(1,void 0).byteLength})),"ArrayBuffer",{slice:function(t,n){if(void 0!==d&&void 0===n)return d.call(u(this),t);for(var e=u(this).byteLength,r=a(t,e),i=a(void 0===n?e:n,e),o=new(l(this,h))(c(i-r)),s=new p(this),f=new p(o),v=0;r<i;)f.setUint8(v++,s.getUint8(r++));return o}}),e(43)("ArrayBuffer")},function(t,n,e){var r=e(0);r(r.G+r.W+r.F*!e(61).ABV,{DataView:e(86).DataView})},function(t,n,e){e(27)("Int8",1,(function(t){return function(n,e,r){return t(this,n,e,r)}}))},function(t,n,e){e(27)("Uint8",1,(function(t){return function(n,e,r){return t(this,n,e,r)}}))},function(t,n,e){e(27)("Uint8",1,(function(t){return function(n,e,r){return t(this,n,e,r)}}),!0)},function(t,n,e){e(27)("Int16",2,(function(t){return function(n,e,r){return t(this,n,e,r)}}))},function(t,n,e){e(27)("Uint16",2,(function(t){return function(n,e,r){return t(this,n,e,r)}}))},function(t,n,e){e(27)("Int32",4,(function(t){return function(n,e,r){return t(this,n,e,r)}}))},function(t,n,e){e(27)("Uint32",4,(function(t){return function(n,e,r){return t(this,n,e,r)}}))},function(t,n,e){e(27)("Float32",4,(function(t){return function(n,e,r){return t(this,n,e,r)}}))},function(t,n,e){e(27)("Float64",8,(function(t){return function(n,e,r){return t(this,n,e,r)}}))},function(t,n,e){var r=e(0),i=e(20),o=e(3),u=(e(1).Reflect||{}).apply,a=Function.apply;r(r.S+r.F*!e(2)((function(){u((function(){}))})),"Reflect",{apply:function(t,n,e){var r=i(t),c=o(e);return u?u(r,n,c):a.call(r,n,c)}})},function(t,n,e){var r=e(0),i=e(35),o=e(20),u=e(3),a=e(4),c=e(2),s=e(103),f=(e(1).Reflect||{}).construct,l=c((function(){function t(){}return!(f((function(){}),[],t)instanceof t)})),h=!c((function(){f((function(){}))}));r(r.S+r.F*(l||h),"Reflect",{construct:function(t,n){o(t),u(n);var e=arguments.length<3?t:o(arguments[2]);if(h&&!l)return f(t,n,e);if(t==e){switch(n.length){case 0:return new t;case 1:return new t(n[0]);case 2:return new t(n[0],n[1]);case 3:return new t(n[0],n[1],n[2]);case 4:return new t(n[0],n[1],n[2],n[3])}var r=[null];return r.push.apply(r,n),new(s.apply(t,r))}var c=e.prototype,p=i(a(c)?c:Object.prototype),v=Function.apply.call(t,p,n);return a(v)?v:p}})},function(t,n,e){var r=e(9),i=e(0),o=e(3),u=e(28);i(i.S+i.F*e(2)((function(){Reflect.defineProperty(r.f({},1,{value:1}),1,{value:2})})),"Reflect",{defineProperty:function(t,n,e){o(t),n=u(n,!0),o(e);try{return r.f(t,n,e),!0}catch(t){return!1}}})},function(t,n,e){var r=e(0),i=e(22).f,o=e(3);r(r.S,"Reflect",{deleteProperty:function(t,n){var e=i(o(t),n);return!(e&&!e.configurable)&&delete t[n]}})},function(t,n,e){"use strict";var r=e(0),i=e(3),o=function(t){this._t=i(t),this._i=0;var n,e=this._k=[];for(n in t)e.push(n)};e(110)(o,"Object",(function(){var t,n=this._k;do{if(this._i>=n.length)return{value:void 0,done:!0}}while(!((t=n[this._i++])in this._t));return{value:t,done:!1}})),r(r.S,"Reflect",{enumerate:function(t){return new o(t)}})},function(t,n,e){var r=e(22),i=e(37),o=e(13),u=e(0),a=e(4),c=e(3);u(u.S,"Reflect",{get:function t(n,e){var u,s,f=arguments.length<3?n:arguments[2];return c(n)===f?n[e]:(u=r.f(n,e))?o(u,"value")?u.value:void 0!==u.get?u.get.call(f):void 0:a(s=i(n))?t(s,e,f):void 0}})},function(t,n,e){var r=e(22),i=e(0),o=e(3);i(i.S,"Reflect",{getOwnPropertyDescriptor:function(t,n){return r.f(o(t),n)}})},function(t,n,e){var r=e(0),i=e(37),o=e(3);r(r.S,"Reflect",{getPrototypeOf:function(t){return i(o(t))}})},function(t,n,e){var r=e(0);r(r.S,"Reflect",{has:function(t,n){return n in t}})},function(t,n,e){var r=e(0),i=e(3),o=Object.isExtensible;r(r.S,"Reflect",{isExtensible:function(t){return i(t),!o||o(t)}})},function(t,n,e){var r=e(0);r(r.S,"Reflect",{ownKeys:e(124)})},function(t,n,e){var r=e(0),i=e(3),o=Object.preventExtensions;r(r.S,"Reflect",{preventExtensions:function(t){i(t);try{return o&&o(t),!0}catch(t){return!1}}})},function(t,n,e){var r=e(9),i=e(22),o=e(37),u=e(13),a=e(0),c=e(30),s=e(3),f=e(4);a(a.S,"Reflect",{set:function t(n,e,a){var l,h,p=arguments.length<4?n:arguments[3],v=i.f(s(n),e);if(!v){if(f(h=o(n)))return t(h,e,a,p);v=c(0)}if(u(v,"value")){if(!1===v.writable||!f(p))return!1;if(l=i.f(p,e)){if(l.get||l.set||!1===l.writable)return!1;l.value=a,r.f(p,e,l)}else r.f(p,e,c(0,a));return!0}return void 0!==v.set&&(v.set.call(p,a),!0)}})},function(t,n,e){var r=e(0),i=e(67);i&&r(r.S,"Reflect",{setPrototypeOf:function(t,n){i.check(t,n);try{return i.set(t,n),!0}catch(t){return!1}}})},function(t,n,e){e(276),t.exports=e(7).Array.includes},function(t,n,e){"use strict";var r=e(0),i=e(51)(!0);r(r.P,"Array",{includes:function(t){return i(this,t,arguments.length>1?arguments[1]:void 0)}}),e(38)("includes")},function(t,n,e){e(278),t.exports=e(7).Array.flatMap},function(t,n,e){"use strict";var r=e(0),i=e(279),o=e(10),u=e(6),a=e(20),c=e(112);r(r.P,"Array",{flatMap:function(t){var n,e,r=o(this);return a(t),n=u(r.length),e=c(r,0),i(e,r,r,n,0,1,t,arguments[1]),e}}),e(38)("flatMap")},function(t,n,e){"use strict";var r=e(53),i=e(4),o=e(6),u=e(19),a=e(5)("isConcatSpreadable");t.exports=function t(n,e,c,s,f,l,h,p){for(var v,d,g=f,y=0,m=!!h&&u(h,p,3);y<s;){if(y in c){if(v=m?m(c[y],y,e):c[y],d=!1,i(v)&&(d=void 0!==(d=v[a])?!!d:r(v)),d&&l>0)g=t(n,e,v,o(v.length),g,l-1)-1;else{if(g>=9007199254740991)throw TypeError();n[g]=v}g++}y++}return g}},function(t,n,e){e(281),t.exports=e(7).String.padStart},function(t,n,e){"use strict";var r=e(0),i=e(125),o=e(59),u=/Version\/10\.\d+(\.\d+)?( Mobile\/\w+)? Safari\//.test(o);r(r.P+r.F*u,"String",{padStart:function(t){return i(this,t,arguments.length>1?arguments[1]:void 0,!0)}})},function(t,n,e){e(283),t.exports=e(7).String.padEnd},function(t,n,e){"use strict";var r=e(0),i=e(125),o=e(59),u=/Version\/10\.\d+(\.\d+)?( Mobile\/\w+)? Safari\//.test(o);r(r.P+r.F*u,"String",{padEnd:function(t){return i(this,t,arguments.length>1?arguments[1]:void 0,!1)}})},function(t,n,e){e(285),t.exports=e(7).String.trimLeft},function(t,n,e){"use strict";e(41)("trimLeft",(function(t){return function(){return t(this,1)}}),"trimStart")},function(t,n,e){e(287),t.exports=e(7).String.trimRight},function(t,n,e){"use strict";e(41)("trimRight",(function(t){return function(){return t(this,2)}}),"trimEnd")},function(t,n,e){e(289),t.exports=e(63).f("asyncIterator")},function(t,n,e){e(97)("asyncIterator")},function(t,n,e){e(291),t.exports=e(7).Object.getOwnPropertyDescriptors},function(t,n,e){var r=e(0),i=e(124),o=e(15),u=e(22),a=e(79);r(r.S,"Object",{getOwnPropertyDescriptors:function(t){for(var n,e,r=o(t),c=u.f,s=i(r),f={},l=0;s.length>l;)void 0!==(e=c(r,n=s[l++]))&&a(f,n,e);return f}})},function(t,n,e){e(293),t.exports=e(7).Object.values},function(t,n,e){var r=e(0),i=e(126)(!1);r(r.S,"Object",{values:function(t){return i(t)}})},function(t,n,e){e(295),t.exports=e(7).Object.entries},function(t,n,e){var r=e(0),i=e(126)(!0);r(r.S,"Object",{entries:function(t){return i(t)}})},function(t,n,e){"use strict";e(118),e(297),t.exports=e(7).Promise.finally},function(t,n,e){"use strict";var r=e(0),i=e(7),o=e(1),u=e(49),a=e(120);r(r.P+r.R,"Promise",{finally:function(t){var n=u(this,i.Promise||o.Promise),e="function"==typeof t;return this.then(e?function(e){return a(n,t()).then((function(){return e}))}:t,e?function(e){return a(n,t()).then((function(){throw e}))}:t)}})},function(t,n,e){e(299),e(300),e(301),t.exports=e(7)},function(t,n,e){var r=e(1),i=e(0),o=e(59),u=[].slice,a=/MSIE .\./.test(o),c=function(t){return function(n,e){var r=arguments.length>2,i=!!r&&u.call(arguments,2);return t(r?function(){("function"==typeof n?n:Function(n)).apply(this,i)}:n,e)}};i(i.G+i.B+i.F*a,{setTimeout:c(r.setTimeout),setInterval:c(r.setInterval)})},function(t,n,e){var r=e(0),i=e(85);r(r.G+r.B,{setImmediate:i.set,clearImmediate:i.clear})},function(t,n,e){for(var r=e(82),i=e(33),o=e(11),u=e(1),a=e(14),c=e(42),s=e(5),f=s("iterator"),l=s("toStringTag"),h=c.Array,p={CSSRuleList:!0,CSSStyleDeclaration:!1,CSSValueList:!1,ClientRectList:!1,DOMRectList:!1,DOMStringList:!1,DOMTokenList:!0,DataTransferItemList:!1,FileList:!1,HTMLAllCollection:!1,HTMLCollection:!1,HTMLFormElement:!1,HTMLSelectElement:!1,MediaList:!0,MimeTypeArray:!1,NamedNodeMap:!1,NodeList:!0,PaintRequestList:!1,Plugin:!1,PluginArray:!1,SVGLengthList:!1,SVGNumberList:!1,SVGPathSegList:!1,SVGPointList:!1,SVGStringList:!1,SVGTransformList:!1,SourceBufferList:!1,StyleSheetList:!0,TextTrackCueList:!1,TextTrackList:!1,TouchList:!1},v=i(p),d=0;d<v.length;d++){var g,y=v[d],m=p[y],b=u[y],S=b&&b.prototype;if(S&&(S[f]||a(S,f,h),S[l]||a(S,l,y),c[y]=h,m))for(g in r)S[g]||o(S,g,r[g],!0)}},function(t,n,e){var r=function(t){"use strict";var n,e=Object.prototype,r=e.hasOwnProperty,i="function"==typeof Symbol?Symbol:{},o=i.iterator||"@@iterator",u=i.asyncIterator||"@@asyncIterator",a=i.toStringTag||"@@toStringTag";function c(t,n,e,r){var i=n&&n.prototype instanceof d?n:d,o=Object.create(i.prototype),u=new F(r||[]);return o._invoke=function(t,n,e){var r=f;return function(i,o){if(r===h)throw new Error("Generator is already running");if(r===p){if("throw"===i)throw o;return E()}for(e.method=i,e.arg=o;;){var u=e.delegate;if(u){var a=M(u,e);if(a){if(a===v)continue;return a}}if("next"===e.method)e.sent=e._sent=e.arg;else if("throw"===e.method){if(r===f)throw r=p,e.arg;e.dispatchException(e.arg)}else"return"===e.method&&e.abrupt("return",e.arg);r=h;var c=s(t,n,e);if("normal"===c.type){if(r=e.done?p:l,c.arg===v)continue;return{value:c.arg,done:e.done}}"throw"===c.type&&(r=p,e.method="throw",e.arg=c.arg)}}}(t,e,u),o}function s(t,n,e){try{return{type:"normal",arg:t.call(n,e)}}catch(t){return{type:"throw",arg:t}}}t.wrap=c;var f="suspendedStart",l="suspendedYield",h="executing",p="completed",v={};function d(){}function g(){}function y(){}var m={};m[o]=function(){return this};var b=Object.getPrototypeOf,S=b&&b(b(A([])));S&&S!==e&&r.call(S,o)&&(m=S);var w=y.prototype=d.prototype=Object.create(m);function _(t){["next","throw","return"].forEach((function(n){t[n]=function(t){return this._invoke(n,t)}}))}function x(t){var n;this._invoke=function(e,i){function o(){return new Promise((function(n,o){!function n(e,i,o,u){var a=s(t[e],t,i);if("throw"!==a.type){var c=a.arg,f=c.value;return f&&"object"==typeof f&&r.call(f,"__await")?Promise.resolve(f.__await).then((function(t){n("next",t,o,u)}),(function(t){n("throw",t,o,u)})):Promise.resolve(f).then((function(t){c.value=t,o(c)}),(function(t){return n("throw",t,o,u)}))}u(a.arg)}(e,i,n,o)}))}return n=n?n.then(o,o):o()}}function M(t,e){var r=t.iterator[e.method];if(r===n){if(e.delegate=null,"throw"===e.method){if(t.iterator.return&&(e.method="return",e.arg=n,M(t,e),"throw"===e.method))return v;e.method="throw",e.arg=new TypeError("The iterator does not provide a 'throw' method")}return v}var i=s(r,t.iterator,e.arg);if("throw"===i.type)return e.method="throw",e.arg=i.arg,e.delegate=null,v;var o=i.arg;return o?o.done?(e[t.resultName]=o.value,e.next=t.nextLoc,"return"!==e.method&&(e.method="next",e.arg=n),e.delegate=null,v):o:(e.method="throw",e.arg=new TypeError("iterator result is not an object"),e.delegate=null,v)}function P(t){var n={tryLoc:t[0]};1 in t&&(n.catchLoc=t[1]),2 in t&&(n.finallyLoc=t[2],n.afterLoc=t[3]),this.tryEntries.push(n)}function O(t){var n=t.completion||{};n.type="normal",delete n.arg,t.completion=n}function F(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(P,this),this.reset(!0)}function A(t){if(t){var e=t[o];if(e)return e.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var i=-1,u=function e(){for(;++i<t.length;)if(r.call(t,i))return e.value=t[i],e.done=!1,e;return e.value=n,e.done=!0,e};return u.next=u}}return{next:E}}function E(){return{value:n,done:!0}}return g.prototype=w.constructor=y,y.constructor=g,y[a]=g.displayName="GeneratorFunction",t.isGeneratorFunction=function(t){var n="function"==typeof t&&t.constructor;return!!n&&(n===g||"GeneratorFunction"===(n.displayName||n.name))},t.mark=function(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,y):(t.__proto__=y,a in t||(t[a]="GeneratorFunction")),t.prototype=Object.create(w),t},t.awrap=function(t){return{__await:t}},_(x.prototype),x.prototype[u]=function(){return this},t.AsyncIterator=x,t.async=function(n,e,r,i){var o=new x(c(n,e,r,i));return t.isGeneratorFunction(e)?o:o.next().then((function(t){return t.done?t.value:o.next()}))},_(w),w[a]="Generator",w[o]=function(){return this},w.toString=function(){return"[object Generator]"},t.keys=function(t){var n=[];for(var e in t)n.push(e);return n.reverse(),function e(){for(;n.length;){var r=n.pop();if(r in t)return e.value=r,e.done=!1,e}return e.done=!0,e}},t.values=A,F.prototype={constructor:F,reset:function(t){if(this.prev=0,this.next=0,this.sent=this._sent=n,this.done=!1,this.delegate=null,this.method="next",this.arg=n,this.tryEntries.forEach(O),!t)for(var e in this)"t"===e.charAt(0)&&r.call(this,e)&&!isNaN(+e.slice(1))&&(this[e]=n)},stop:function(){this.done=!0;var t=this.tryEntries[0].completion;if("throw"===t.type)throw t.arg;return this.rval},dispatchException:function(t){if(this.done)throw t;var e=this;function i(r,i){return a.type="throw",a.arg=t,e.next=r,i&&(e.method="next",e.arg=n),!!i}for(var o=this.tryEntries.length-1;o>=0;--o){var u=this.tryEntries[o],a=u.completion;if("root"===u.tryLoc)return i("end");if(u.tryLoc<=this.prev){var c=r.call(u,"catchLoc"),s=r.call(u,"finallyLoc");if(c&&s){if(this.prev<u.catchLoc)return i(u.catchLoc,!0);if(this.prev<u.finallyLoc)return i(u.finallyLoc)}else if(c){if(this.prev<u.catchLoc)return i(u.catchLoc,!0)}else{if(!s)throw new Error("try statement without catch or finally");if(this.prev<u.finallyLoc)return i(u.finallyLoc)}}}},abrupt:function(t,n){for(var e=this.tryEntries.length-1;e>=0;--e){var i=this.tryEntries[e];if(i.tryLoc<=this.prev&&r.call(i,"finallyLoc")&&this.prev<i.finallyLoc){var o=i;break}}o&&("break"===t||"continue"===t)&&o.tryLoc<=n&&n<=o.finallyLoc&&(o=null);var u=o?o.completion:{};return u.type=t,u.arg=n,o?(this.method="next",this.next=o.finallyLoc,v):this.complete(u)},complete:function(t,n){if("throw"===t.type)throw t.arg;return"break"===t.type||"continue"===t.type?this.next=t.arg:"return"===t.type?(this.rval=this.arg=t.arg,this.method="return",this.next="end"):"normal"===t.type&&n&&(this.next=n),v},finish:function(t){for(var n=this.tryEntries.length-1;n>=0;--n){var e=this.tryEntries[n];if(e.finallyLoc===t)return this.complete(e.completion,e.afterLoc),O(e),v}},catch:function(t){for(var n=this.tryEntries.length-1;n>=0;--n){var e=this.tryEntries[n];if(e.tryLoc===t){var r=e.completion;if("throw"===r.type){var i=r.arg;O(e)}return i}}throw new Error("illegal catch attempt")},delegateYield:function(t,e,r){return this.delegate={iterator:A(t),resultName:e,nextLoc:r},"next"===this.method&&(this.arg=n),v}},t}(t.exports);try{regeneratorRuntime=r}catch(t){Function("r","regeneratorRuntime = r")(r)}},function(t,n,e){e(304),t.exports=e(127).global},function(t,n,e){var r=e(305);r(r.G,{global:e(87)})},function(t,n,e){var r=e(87),i=e(127),o=e(306),u=e(308),a=e(315),c=function(t,n,e){var s,f,l,h=t&c.F,p=t&c.G,v=t&c.S,d=t&c.P,g=t&c.B,y=t&c.W,m=p?i:i[n]||(i[n]={}),b=m.prototype,S=p?r:v?r[n]:(r[n]||{}).prototype;for(s in p&&(e=n),e)(f=!h&&S&&void 0!==S[s])&&a(m,s)||(l=f?S[s]:e[s],m[s]=p&&"function"!=typeof S[s]?e[s]:g&&f?o(l,r):y&&S[s]==l?function(t){var n=function(n,e,r){if(this instanceof t){switch(arguments.length){case 0:return new t;case 1:return new t(n);case 2:return new t(n,e)}return new t(n,e,r)}return t.apply(this,arguments)};return n.prototype=t.prototype,n}(l):d&&"function"==typeof l?o(Function.call,l):l,d&&((m.virtual||(m.virtual={}))[s]=l,t&c.R&&b&&!b[s]&&u(b,s,l)))};c.F=1,c.G=2,c.S=4,c.P=8,c.B=16,c.W=32,c.U=64,c.R=128,t.exports=c},function(t,n,e){var r=e(307);t.exports=function(t,n,e){if(r(t),void 0===n)return t;switch(e){case 1:return function(e){return t.call(n,e)};case 2:return function(e,r){return t.call(n,e,r)};case 3:return function(e,r,i){return t.call(n,e,r,i)}}return function(){return t.apply(n,arguments)}}},function(t,n){t.exports=function(t){if("function"!=typeof t)throw TypeError(t+" is not a function!");return t}},function(t,n,e){var r=e(309),i=e(314);t.exports=e(89)?function(t,n,e){return r.f(t,n,i(1,e))}:function(t,n,e){return t[n]=e,t}},function(t,n,e){var r=e(310),i=e(311),o=e(313),u=Object.defineProperty;n.f=e(89)?Object.defineProperty:function(t,n,e){if(r(t),n=o(n,!0),r(e),i)try{return u(t,n,e)}catch(t){}if("get"in e||"set"in e)throw TypeError("Accessors not supported!");return"value"in e&&(t[n]=e.value),t}},function(t,n,e){var r=e(88);t.exports=function(t){if(!r(t))throw TypeError(t+" is not an object!");return t}},function(t,n,e){t.exports=!e(89)&&!e(128)((function(){return 7!=Object.defineProperty(e(312)("div"),"a",{get:function(){return 7}}).a}))},function(t,n,e){var r=e(88),i=e(87).document,o=r(i)&&r(i.createElement);t.exports=function(t){return o?i.createElement(t):{}}},function(t,n,e){var r=e(88);t.exports=function(t,n){if(!r(t))return t;var e,i;if(n&&"function"==typeof(e=t.toString)&&!r(i=e.call(t)))return i;if("function"==typeof(e=t.valueOf)&&!r(i=e.call(t)))return i;if(!n&&"function"==typeof(e=t.toString)&&!r(i=e.call(t)))return i;throw TypeError("Can't convert object to primitive value")}},function(t,n){t.exports=function(t,n){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:n}}},function(t,n){var e={}.hasOwnProperty;t.exports=function(t,n){return e.call(t,n)}}])}));
// End device detection 

// start device detection (ES5 version without Polyfills) 

try {
    var pnFirebaseModuleInterfaceInstantiator = (function() {
    return function(rootConfiguration) {
        var moduleInterface = {
            getMessagingDeviceToken: function() { return Promise.resolve(null); },
        };

        if (rootConfiguration) {
            var loadingPromise = new Promise(function(resolve, reject) {
                var script = document.createElement('script');
                script.type = "text/javascript";
                script.src = rootConfiguration.moduleBundleUrl;
                document.getElementsByTagName("head")[0].appendChild(script);
                script.onerror = function() {
                    reject(new Error('Failed to load FCM module bundle'));
                };
                script.onload = function() {
                    window.pnFirebaseImpl.setConfiguration(rootConfiguration);
                    resolve();
                };
            });

            /*
               FIXME: If possible (due to compatibility reasons) we should use a Proxy so that any property access is passed
                      directly through to the window.pnFirebaseImpl script that is loaded.  This would allow us to NEVER need
                      to update this script to add to new functions.
                      https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Proxy
            */
            moduleInterface.getMessagingDeviceToken = function(serviceWorkerRegistration) {
                return loadingPromise.then(function() {
                    return window.pnFirebaseImpl.getMessagingDeviceToken(serviceWorkerRegistration);
                });
            }
        }

        return moduleInterface;
    };
})();
;
    var pnFirebaseModuleInterface = pnFirebaseModuleInterfaceInstantiator({"moduleBundleUrl":"https://cdn.pushnami.com/js/modules/fcm-v1-module.019781ec7a1c97363e85.bundle.js","firebaseVapidKey":"BP5FBLDL-DqjaTm-O7CAraH8SZAMVLpMKSjh0ugsiBTUwuqeSKOu-KSKgUFJL23UEURsKam0yfm45GjSLf47Axs","apiKey":"AIzaSyBZfIBbcuVcx5Zy_0jD-mvLAc629ywMc94","authDomain":"a-604b9880de717d001061a2fb-01.firebaseapp.com","projectId":"a-604b9880de717d001061a2fb-01","storageBucket":"a-604b9880de717d001061a2fb-01.appspot.com","messagingSenderId":"914798734502","appId":"1:914798734502:web:84225bfb57f0666f849867"});

    /* We will define the call to produce a socialpush opt-in now, and if the conditional below is truthy then it will
     get overwritten with the real thing.  We need to do this so that our script doesn't crash should the function be
     undefined at runtime. */
    var showFbChkOptIn = function() {};

    // start fbv2 

    // start hannity-mailnami-newsletter-form ;

    var mailnamiPromptModule = (function() {
    if (window.mailnami) {
        return window.mailnami;
    }

    //Define the class with all of the default values / functions
    var defaultInitResult = {
        shown: false,
        callerPrompt: 'now'
    };

    var localStoragePsidKey = 'pushnamiMailnamiSubscriberId',
        localStorageUnsubscribedKey = 'pushnamiMailnamiUnsubscribed';

    // @todo: fix me | hack use for sms purpose | revert back to original code after sms feature is completed
    // @todo: fix me | remove following variable and next if-statement block
    var hijackEmailSmartboxForSMS = false || false;
    if (hijackEmailSmartboxForSMS) {
        localStoragePsidKey = 'pushnamiSmsSubscriberId';
        localStorageUnsubscribedKey = 'pushnamiSmsUnsubscribed';
    }

    /**
     * Convenience function for getting the current PSID for this mailnami subscriber (if applicable).
     * @return String|null The mailnami PSID if it exists, null otherwise. */
    var getPSID = function() {
        if (localStorage.getItem(localStorageUnsubscribedKey) === 'true') {
            return null;
        }
        return localStorage.getItem(localStoragePsidKey) || null;
    };

    var mailnami = {
        enabled: false,
        init: function() {
            return Promise.resolve(defaultInitResult);
        },
        on: function() {},
        getPSID: getPSID,
        subscribe: function() { return Promise.resolve({subscriberId: null}); },
        unsubscribe: function() { return Promise.resolve(false); },
        update: function() { return mailnami; },

        // @todo: fix me | hack use for sms purpose | remove after SMS feature is completed and remove the check for this in the main script(s)
        hijackEmailSmartboxForSMS: hijackEmailSmartboxForSMS,
    };

    // start mailnami 

    return (window.mailnami = mailnami);
})();
;
    mailnamiPromptModule.init({promptEvent: 'webpush-optin-load'});

    // start osxSafari 

    Pushnami = (function (window) {
        'use strict';
        var start = Date.now();
        // API Key for backend
        var key = "60eeeecc6fa2b800105569f0";
        var websiteId = "60eeeecc6fa2b800105569ef";
        var swPath = "/service-worker.js";

        var supportedTags = ["pstag", "pstag_android"];

        var isOSXSafari = ('safari' in window && 'pushNotification' in window.safari);

        if ((!isOSXSafari && !navigator.serviceWorker) || !localStorage || (window.location.protocol !== 'https:' && Boolean(window.location.hostname !== 'localhost' && window.location.hostname !== '[::1]' && !window.location.hostname.match(/^127(?:\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/)))) {
            var o = {
                setVariables: function () {
                    return o
                },
                on: function () {
                    return o
                },
                fire: function () {
                    return o
                },
                convert: function () {
                    return o
                },
                update: function () {
                    return o
                },
                enroll: function () {
                    return o
                },
                unenroll: function () {
                    return o
                },
                clear: function () {
                    return o
                },
                showOverlay: function () {
                    return o
                },
                prompt: function () {
                    return o
                },
                getPSID: function () {
                    return o
                },
                unsubscribe: function () {
                    return o
                },
                setSWPath: function () {
                    return o
                }
            };

            if (window.location.protocol !== 'https:' && !(window.location.protocol === 'https:' || Boolean(window.location.hostname === 'localhost' || window.location.hostname === '[::1]' || window.location.hostname.match(/^127(?:\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/)))) {
                console.error("Pushnami - error not SSL");
                pushnamiTrack({
                    event: 'webpush-error-not-ssl',
                    scope: 'Website',
                    scopeId: websiteId,
                    l: encodeURIComponent(location.href)
                });
            }

            return o;
        }

        var vapidPublicKey = "BP5FBLDL-DqjaTm-O7CAraH8SZAMVLpMKSjh0ugsiBTUwuqeSKOu-KSKgUFJL23UEURsKam0yfm45GjSLf47Axs";
        var convertedVapidKey = vapidPublicKey && vapidPublicKey.length > 0 ? urlBase64ToUint8Array(vapidPublicKey) : undefined;

        // HELPERS
        // Read a page's GET URL variables and return them as an associative array.
        var getUrlParams = function () {
            // 

            var vars = {}, href = window.location.href.split('#')[0], hash;

            if (href.indexOf('?') > 0) {
                var hashes = href.slice(href.indexOf('?') + 1).split('&');
                for (var i = 0; i < hashes.length; i++) {
                    try {
                        hash = hashes[i].split('=');
                        if (hash && hash[0] && hash[1]) vars[hash[0]] = decodeURIComponent(hash[1]);
                    } catch (e) {
                        console.log('Failed to decode variable ' + e);
                    }
                }
            }

            var pushnamiVars = Pushnami.data;
            for (var key in pushnamiVars) {
                if (pushnamiVars.hasOwnProperty(key)) {
                    vars[key] = pushnamiVars[key];
                }
            }

            return vars;
        };

        //TODO: Establish a query builder to clean up the request body, use supportedTags
        function pushnamiTrack(details) {
            console.log(JSON.stringify(details));

            var trackingBody = encodeURI('event=' + details.event + '&scope=' + details.scope + '&scopeId=' + details.scopeId + ((details.pstag) ? '&pstag=' + details.pstag : '') + ((details.pstag_android) ? '&pstag_android=' + details.pstag_android : '') + ((ua === '1' && navigator && navigator.userAgent) ? '&ua=' + navigator.userAgent : '') + ((details.l) ? "&l=" + details.l : "") + ((details.e) ? "&e=" + details.e : "") + (details.state ? '&state=' + details.state : '') + (details.custom ? "&custom=" + details.custom : ""));

            // TODO: Remove this hotfix to disable pstag overloading
            // 

            var ua = "0";
            return fetch('https://trc.pushnami.com/api/push/track', {
                method: 'POST',
                body: trackingBody,
                mode: 'cors',
                redirect: 'follow',
                headers: new Headers({
                    'Accept': 'application/json, text/plain, */*',
                    'Content-Type': 'application/x-www-form-urlencoded',
                    'key': key
                })
            })
                .then(function (response) {
                    if (response.ok) {
                        console.log('Tracking OK', response);
                        return true;
                    } else {
                        console.error('Tracking error', response);
                        return false;
                    }
                })
                .catch(function (err) {
                    if (isRollbar) Rollbar.error(err);
                    return false;
                });
        }

        function detectOtherPush () {
            var vendorWindow = {
                upush: ['upushPermission', 'upushRequest'],
                accengage: ['AccengageWebSDKObject'],
                aimtell: ['aimtellDebugBox', '_aimtellVersion'],
                cleverpush: ['CleverPush'],
                foxpush: ['_foxpush'],
                frizbit: ['frizbit'],
                izooto: ['Izooto'],
                letreach: ['ltr'],
                letsocify: ['let_socify'],
                onesignal: ['OneSignal'],
                push_monkey: ['PushMonkey'],
                pushalert: ['PushAlertCo'],
                pushcrew: ['pushcrew'],
                pushe: ['PusheHttp'],
                pushflew: ['PushflewLibrary'],
                pushwoosh: ['Pushwoosh'],
                sendmsgs: ['sendMessageToSW'],
                shophero_io: ['SHOPHERO'],
                urban_airship:['UA'],
                wonderpush: ['WonderPush'],
                goroost: ['_roost']
            };
            var vendors = [];
            for (var k in vendorWindow) {
                if(!vendorWindow.hasOwnProperty(k)) continue;
                vendorWindow[k].forEach(function(_v) {
                    if (typeof window !==undefined && window[_v]) vendors.push(k);
                });
            }
            // Just considering one for now
            return vendors[0] || null;
        }

        // Start unsub reporter 

        function urlBase64ToUint8Array(base64String) {
            // IE still doesn't support String.prototype.repeat
            var paddingLength = (4 - base64String.length % 4) % 4;
            var padding = '';
            for (var ji = 0; ji < paddingLength; ji++) padding += "=";
            var base64 = (base64String + padding)
                .replace(/\-/g, '+')
                .replace(/_/g, '/');

            var rawData = window.atob(base64);
            var outputArray = new Uint8Array(rawData.length);

            for (var i = 0; i < rawData.length; ++i) {
                outputArray[i] = rawData.charCodeAt(i);
            }
            return outputArray;
        }

        var commitEnrollment = function(subscriberId, tag, opts) {
            //Wipe any pending enrollment for this tag
            delete Pushnami.pendingEnrollments[tag];
            var payload = {
                psid: subscriberId,
                tag: tag,
                renew: !!opts.renew
            };
            if (typeof opts.renewThreshold === 'number') {
                payload.renewThreshold = opts.renewThreshold;
            }
            fetch('https://api.pushnami.com/api/push/waterfall/enrollment', {
                method: 'POST',
                body: JSON.stringify(payload),
                mode: 'cors',
                redirect: 'follow',
                headers: new Headers({key: '60eeeecc6fa2b800105569f0'})
            }).then(function(response) {
                return response.json()
            }).then(function(data) {
                if (!data) {
                    throw new Error('No data returned by API');
                }
                if (data.errors) {
                    throw new Error(JSON.stringify(data.errors));
                }
                if (!data.results || data.results.processed !== 1) {
                    throw new Error('No results returned by API');
                }
                return data;
            }).catch(function (err) {
                if (isRollbar) Rollbar.error("Pushnami - Error enrolling subscriber: ", err);
            });
        };

        var commitUnenrollment = function(subscriberId, tag, opts) {
            fetch('https://api.pushnami.com/api/push/waterfall/enrollment?psid='+subscriberId+'&tag='+tag, {
                method: 'DELETE',
                mode: 'cors',
                redirect: 'follow',
                headers: new Headers({key: '60eeeecc6fa2b800105569f0'})
            }).then(function(response) {
                return response.json()
            }).then(function(data) {
                if (!data) {
                    throw new Error('No data returned by API');
                }
                if (data.errors) {
                    throw new Error(JSON.stringify(data.errors));
                }
                if (!data.results || data.results.processed !== 1) {
                    throw new Error('No results returned by API');
                }
                return data;
            }).catch(function (err) {
                if (isRollbar) Rollbar.error("Pushnami - Error unenrolling subscriber: ", err);
            });
        };

        // 

        function showPrompt(opts) {
            // 

            if ((getUrlParams()||{}).pnblock) {
                return;
            }

            // 
            // to bot or not to bot
            var userAgent = window && window.navigator && window.navigator.userAgent ? window.navigator.userAgent : undefined;
            if (/(Ads|Google|Yandex|Pinterest|Cookie|HeadlessChrome)(Mobile)?bot/i.test(userAgent)) {
                pushnamiTrack({
                    event: 'optin-notshown-bot',
                    scope: 'Website',
                    scopeId: websiteId,
                    l: encodeURIComponent(location.href)
                });
                return;
            }
            // 

            // TODO: Remove hardcoding
            // Testing 2db19f42ae59126f34dd95b7c3485555
            // 

            if (opts && opts.ts){
                // start androidStrategy 
                var androidStrategy = [{"key":"b","type":"modern","delay":0,"_id":"65650614f0b3320013d33b08","name":"Default on Scroll","behavior":"always","rules":[{"variable":"Device","operator":"is","value":"desktop"}],"dist":1,"advanced":{"enabled":false},"qnp":{"enabled":false},"switch":{"enabled":false,"advancedStyle":"standard-v4","sticky":{"enabled":false},"closeButton":{"enabled":true},"watermark":{"enabled":false}},"oneStep":{"style":"minimal","arrowShadow":false,"showOverlay":false,"overlayMessage":"Subscribe to Notifications","overlaySubMessage":"Click \"allow\" for push notifications to receive updates","overlayImage":"http://cdn.pushnami.com/img/optin/one-step/minimal.png"},"traditional":{"enabled":true,"advancedStyle":"standard-v4","sticky":{"enabled":false},"closeButton":{"enabled":true},"watermark":{"enabled":false}},"behaviorOptions":{"showRequirements":[{"requirement":"once_per_session"}],"overlayOptions":[],"showTriggers":[{"trigger":"on_scroll_activity"}],"dismissalTriggers":[],"effects":[]}}];
                var enabled = false;
                androidStrategy.forEach(function(strategy) {
                    if (strategy.traditional && strategy.traditional.enabled && !enabled){
                        var _type = strategy.type,
                            _advanced = strategy.advanced,
                            _qnp = strategy.qnp,
                            _switch = strategy.switch,
                            _traditional = strategy.traditional;

                        if (_switch && _switch.enabled){
                            if (!opts) opts = {};
                            opts.advancedStyle = _switch.advancedStyle || null;
                            if (_advanced && _advanced.enabled) Pushnami.showOverlay({aggressive: _advanced, advancedStyle: opts.advancedStyle}); // Advanced
                            opts.qnp = _qnp;
                            opts.logo = _switch.logo || null;
                            opts.logoStyles = _switch.logoStyles || null;
                            opts.closeButton = _switch.closeButton || null;
                            opts.containerStyles = _switch.containerStyles || null;
                            opts.message = opts && opts.tsMsg || _switch.message || "Get Alert Notifications Personalized for You";
                            opts.messageStyles = opts && opts.tsMsgStyles || _switch.messageStyles || null;
                            opts.subMessage = opts && opts.tsSubMsg || _switch.subMessage || "";
                            opts.subMessageStyles = opts && opts.tsSubMsgStyles || _switch.subMessageStyles || null;
                            opts.watermark = _switch.watermark || null;
                            opts.sticky = _switch.sticky || null;
                            opts.switch = true;
                            Pushnami.showTwoStep.init(opts, Pushnami.showPrompt);
                        } else {
                            if (!opts) opts = {};
                            opts.advancedStyle = _traditional && _traditional.advancedStyle || null;
                            if (_advanced && _advanced.enabled) Pushnami.showOverlay({aggressive: _advanced, advancedStyle: opts.advancedStyle}); // Advanced
                            opts.qnp = _qnp;
                            opts.logo = _traditional && _traditional.logo || null;
                            opts.logoStyles = _traditional && _traditional.logoStyles || null;
                            opts.closeButton = _traditional && _traditional.closeButton || null;
                            opts.containerStyles = _traditional && _traditional.containerStyles || null;
                            opts.message = opts && opts.tsMsg || _traditional && _traditional.message || "Get Alert Notifications Personalized for You";
                            opts.messageStyles = opts && opts.tsMsgStyles || _traditional && _traditional.messageStyles || null;
                            opts.subMessage = opts && opts.tsSubMsg || _traditional && _traditional.subMessage || "";
                            opts.subMessageStyles = opts && opts.tsSubMsgStyles || _traditional && _traditional.subMessageStyles || null;
                            opts.sticky = _traditional && _traditional.sticky || null;
                            opts.buttonContainerStyles = _traditional && _traditional.buttonContainerStyles || null;
                            opts.allow = _traditional && _traditional.allow || "Allow";
                            opts.allowStyles = _traditional && _traditional.allowStyles || null;
                            opts.block = _traditional && _traditional.block || "Block";
                            opts.blockStyles = _traditional && _traditional.blockStyles || null;
                            opts.watermark = _traditional && _traditional.watermark || null;
                            opts.switch = false;
                            Pushnami.showTwoStep.init(opts, Pushnami.showPrompt);
                        }

                        enabled = true;
                    }
                });
                if (enabled) return;
                // End androidStrategy 

            }
            if (localStorage.getItem("pushnamiSubscriptionBlock")) return Pushnami;

            if (Pushnami.twoStepNativePromptDisabled) return Pushnami;
            Pushnami.fire('permissions-initializing');
            var isLocalhost = Boolean(window.location.hostname === 'localhost' || window.location.hostname === '[::1]' || window.location.hostname.match(/^127(?:\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/));
            if ('serviceWorker' in navigator && (window.location.protocol === 'https:' || isLocalhost)) {

                // start shopify 
                // start unreg 
                // start shopify 
                navigator.serviceWorker.register(swPath || '/service-worker.js').catch(function (error) {
                    if (isRollbar) Rollbar.error('Pushnami - error registering service-worker', error);
                    pushnamiTrack({
                        event: 'webpush-error-no-sw',
                        scope: 'Website',
                        scopeId: websiteId,
                        l: encodeURIComponent(location.href),
                        e: (error && error.message && error.message !== "Registration failed - permission denied") ? error.message : null
                    });
                });
                // End shopify 

                navigator.serviceWorker.ready.then(function (registration) {
                    console.log(JSON.stringify(registration));

                    var scriptUrl = registration && registration.active && registration.active.scriptURL || null;
                    // We have fired this function for the registration of a service worker that may not correspond to Pushnami
                    if (scriptUrl && !scriptUrl.indexOf(swPath || '/service-worker.js') === -1) {
                        pushnamiTrack({
                            event: 'webpush-error-unrecognized-sw',
                            scope: 'Website',
                            scopeId: websiteId,
                            l: encodeURIComponent(location.href),
                            e: null
                        });
                    }

                    if (detectOtherPush()) {
                        pushnamiTrack({
                            event: 'webpush-error-sw-conflict-detected',
                            scope: 'Website',
                            scopeId: websiteId,
                            l: encodeURIComponent(location.href),
                            e: null
                        });
                    }


                    // Ignore Safari's incomplete service-worker support
                    if ('safari' in window && 'pushNotification' in window.safari) {
                        return;
                    }

                    var subOpts = {userVisibleOnly: true};
                    if (convertedVapidKey) subOpts.applicationServerKey = convertedVapidKey;

                    // start multi 

                    // start promptOncePerSession 

                    (new Promise(function(resolve){
                        if (!opts || !opts.multi) return resolve('granted');
                        if (Pushnami.ts && Pushnami.ash && Pushnami.ash.behaviorOptionsSatisfied('overlayOptions', opts.behaviorOptions, 'show_for_native_prompt')) {
                            console.warn && console.warn('[Pushnami] Warning: Native opt-ins for two-step with a persistent overlay may not work correctly while "multi" is enabled because the "permissions-blocked-ignored" event may never fire to hide the overlay.');
                        }
                        window.Notification.requestPermission(resolve);
                    }))
                        .then(function(notificationPerm) {
                            if (notificationPerm === 'granted'){
                                if (!registration || !registration.pushManager || !registration.pushManager.subscribe) return;

                                // Check the useragent and check if they are already subscribed as far as we can tell
                                var preemptSubscription = window && window.navigator && window.navigator.userAgent && /samsungbrowser/i.test(window.navigator.userAgent);

                                // Should we force preempting a subscription for this website? 

                                var createSubscriptionRequest = function() {
                                    return pnFirebaseModuleInterface.getMessagingDeviceToken(registration)
                                        .catch(function (err) {
                                            pushnamiTrack({
                                                event: 'webpush-error-fcm-general',
                                                scope: 'Website',
                                                scopeId: websiteId,
                                                e: (err && err.message) ? err.message : null
                                            });
                                            // Allowing normal subscription without token
                                            return Promise.resolve(null);
                                        })
                                        .then(function (deviceToken) {
                                            var buildSubscriptionInfoPackage = function(sub) {
                                                return { sub: sub, token: deviceToken };
                                            };
                                            var createNewSubscription = function() {
                                                return registration.pushManager.subscribe(subOpts).then(buildSubscriptionInfoPackage);
                                            };
                                            if (preemptSubscription) {
                                                return registration.pushManager.getSubscription().then(function(sub) {
                                                    return sub ? buildSubscriptionInfoPackage(sub) : createNewSubscription();
                                                });
                                            }
                                            return createNewSubscription();
                                        });
                                };

                                var subscriptionRequest = createSubscriptionRequest();

                                // start Recap 

                                subscriptionRequest.then(function (subscriptionInfoPackage) {
                                    // console.log('endpoint:', JSON.stringify(subscriptionInfoPackage));
                                    var sub = subscriptionInfoPackage && subscriptionInfoPackage.sub;
                                    var token = subscriptionInfoPackage && subscriptionInfoPackage.token;
                                    var data = {
                                        sub: sub,
                                        subscriberId: localStorage.getItem("pushnamiSubscriberId"),
                                        urlParams: getUrlParams()
                                    };
                                    if (token) {
                                        data.token = token;
                                    }
                                    if (websiteId) data.websiteId = websiteId;
                                    if (Pushnami && Pushnami.psfp && Pushnami.psfp.data) {
                                        localStorage.removeItem('pushnami-psp-status');
                                        data.psfp = Pushnami.psfp.data.toString();
                                    } else {
                                        // Mark status as incomplete if it did not build in time
                                        var psfpStatus = localStorage.getItem('pushnami-psp-status');
                                        if (psfpStatus === 'pending') {
                                            localStorage.setItem('pushnami-psp-status', 'incomplete');
                                        }
                                    }
                                    if (Pushnami && Pushnami.psfpv2) data.psfpv2 = Pushnami.psfpv2;
                                    if (Pushnami && Pushnami.psfp && Pushnami.psfp.psfpv4) data.psfpv4 = Pushnami.psfp.psfpv4;
                                    if (Pushnami && Pushnami.psfp && Pushnami.psfp.psfpv5) data.psfpv5 = Pushnami.psfp.psfpv5;
                                    var pkid = 'fcmV1:66703c2a0836a26a8e4ff116';
                                    var isCredentialV2 = pkid.startsWith("fcmV1:");
                                    if (!token && isCredentialV2) {
                                        pkid = '';
                                    }
                                    if (pkid) {
                                        data.pkid = pkid;
                                    }
                                    // @todo: fix me | hack use for sms purpose | revert back to original code after sms feature is completed
                                    if (!mailnamiPromptModule.hijackEmailSmartboxForSMS) {
                                        var emailSubscriberId = mailnamiPromptModule.getPSID();
                                        if (emailSubscriberId) data.emailSubscriberId = emailSubscriberId;
                                    }
                                    return fetch('https://api.pushnami.com/api/push/subscribe', {
                                        method: 'POST',
                                        body: JSON.stringify(data),
                                        mode: 'cors',
                                        redirect: 'follow',
                                        headers: new Headers({key: key})
                                    })
                                        .then(function (response) {
                                            if (!response.ok && response.status == 403) {
                                                localStorage.setItem('pushnamiSubscriptionBlock', 'BLOCKED');
                                                throw new Error('Subscription blocked');
                                            }
                                            return response.json();
                                        })
                                        .then(function (data) {
                                            var alreadySubscribed = (localStorage.getItem('pushnamiSubscriptionStatus') === "SUBSCRIBED");
                                            if (data && data.subscriberId) {
                                                localStorage.setItem("pushnamiSubscriberId", data.subscriberId);
                                                localStorage.setItem("pushnamiSubscriptionStatus", "SUBSCRIBED");
                                                Pushnami.fire('permissions-action-subscribed');
                                                if (!alreadySubscribed) {
                                                    Pushnami.fire('permissions-action-subscribed-new');
                                                }
                                            }
                                            return data;
                                        })

                                        // start tbid 

                                        .then(function (data) {

                                            if (!window || !window.pushnamiStorage) return data;

                                            return window.pushnamiStorage.onConnect()
                                                .then(function() {
                                                    return window.pushnamiStorage.set('psfp:59ec6cf417cd4c4f63cb4f89faeeddce', data.subscriberId);
                                                })
                                                .then(function(res) {
                                                    return data;
                                                })
                                                .catch(function(err) {
                                                    pushWrap.report(err);
                                                    return true;
                                                });
                                        })
                                        .then(function (data) {
                                            if (Pushnami.pendingEnrollments) {
                                                for (var tag in Pushnami.pendingEnrollments) {
                                                    if (Pushnami.pendingEnrollments.hasOwnProperty(tag))
                                                        commitEnrollment(data.subscriberId, tag, Pushnami.pendingEnrollments[tag]);
                                                }
                                            }
                                            return data;
                                        })
                                        .catch(function (err) {
                                            Pushnami.fire('permissions-failed');
                                            pushnamiTrack({
                                                event: 'webpush-error-subscription',
                                                scope: 'Website',
                                                scopeId: websiteId,
                                                e: (err && err.message) ? err.message : null
                                            });
                                            if (isRollbar) Rollbar.error("Pushnami - Subscription Error", err);
                                            return false;
                                        });
                                }).catch(function (err) {
                                    var notErrors = [
                                        "Registration failed - permission denied",
                                        "User denied permission to use the Push API.",
                                        "Failed to register a ServiceWorker: The user denied permission to use Service Worker.",
                                        "User denied permission to use the Push API",
                                        "Subscription blocked"
                                    ];
                                    var notAnError = !!(err && err.message && notErrors.indexOf(err.message) > -1);

                                    if (notAnError) {
                                        Pushnami.fire('permissions-blocked-ignored');
                                    } else {
                                        Pushnami.fire('permissions-failed');
                                    }
                                    if (err.message && err.message === "Registration failed - missing applicationServerKey, and manifest empty or missing") {
                                        var hasManifest = false;
                                        if (document && document.head && document.head.childNodes)
                                            document.head.childNodes.forEach(function (node) {
                                                if (node.rel === 'manifest') hasManifest = true;
                                            });

                                        if (hasManifest) {
                                            console.error("Pushnami - error manifest not found");
                                            pushnamiTrack({
                                                event: 'webpush-error-no-manifest',
                                                scope: 'Website',
                                                scopeId: websiteId,
                                                l: encodeURIComponent(location.href)
                                            });
                                        } else {
                                            console.error("Pushnami - error manifest tag not found");
                                            pushnamiTrack({
                                                event: 'webpush-error-no-manifest-tag',
                                                scope: 'Website',
                                                scopeId: websiteId,
                                                l: encodeURIComponent(location.href)
                                            });
                                        }
                                    } else if (!notAnError) {
                                        console.error("Pushnami - error ", err);
                                        pushnamiTrack({
                                            event: 'webpush-error-general',
                                            scope: 'Website',
                                            scopeId: websiteId,
                                            e: (err && err.message) ? err.message : null
                                        });
                                    }
                                    return false;
                                });
                            }
                        });
                }).catch(function (e) {
                    Pushnami.fire('permissions-failed');
                    if (isRollbar) Rollbar.error('Error during service worker registration:', e);
                });

            } else {
                Pushnami.fire('permissions-not-showing');
                if (window.location.protocol !== 'https:' && !isLocalhost) {
                    console.error("Pushnami - error not SSL");
                    pushnamiTrack({
                        event: 'webpush-error-not-ssl',
                        scope: 'Website',
                        scopeId: websiteId,
                        l: encodeURIComponent(location.href)
                    });
                }
            }

            const isIos = (['iPad Simulator', 'iPhone Simulator', 'iPod Simulator', 'iPad', 'iPhone', 'iPod'].includes(navigator.platform)
                || (navigator.userAgent.includes("Mac") && "ontouchend" in document));
            const shouldQueryPermissions = isIos ? 'PushManager' in window : 'permissions' in navigator;

            if (shouldQueryPermissions) {
                navigator.permissions.query({name: 'notifications'}).then(function (notificationPerm) {
                    // notificationPerm.state is one of 'granted', 'denied', or 'prompt'.
                    // At this point you can compare notificationPerm.state to a previously
                    // cached value, and also listen for changes while the page is open via
                    // the onchange handler.

                    var iframeSubscribeModule = (function() {
    //Define the class with all of the default values / functions
    const klass = {
        requestPermission: function() {},
        show: function() {}
    };

    // start iframeSubscribe 

    return klass;
})();
;

                    Pushnami.state = notificationPerm.state;
                    Pushnami.fire('permissions-prompt-' + notificationPerm.state);
                    var isTwoStep = Pushnami && Pushnami.ts; // Need to prevent opt-in stat on second step of two step
                    var twoStepGranted = localStorage.getItem('pushnamiTSGranted');
                    // this event needs to be called for iframeSubscribeModule two step as well.
                    // code does not have much effect if iframeSubscribeModule is not enabled.
                    // this code is essential after granted because sw does not work as expected when iframeSubscribeModule is used.
                    if (notificationPerm && notificationPerm.state && notificationPerm.state == 'prompt' && (!isTwoStep || twoStepGranted)) {
                        iframeSubscribeModule.requestPermission();
                        // this event is already called before in case of two step is enabled
                        if(!isTwoStep) {
                            var _paramsTemp = getUrlParams(),
                                trackingOpts = {
                                    event: 'webpush-ssl-optin-shown',
                                    scope: 'Website',
                                    scopeId: websiteId
                                };

                            supportedTags.forEach(function(tag) {
                                if (_paramsTemp && _paramsTemp[tag]) trackingOpts[tag] = _paramsTemp[tag];
                            });
                            pushnamiTrack(trackingOpts);
                        }
                    }

                    /* This is a special case to troubleshoot potential issues whereby a user is prompted via a two-step
                       strategy, never grants the two-step prompt, but is still shown the native prompt.  We noticed that
                       our statistics suggest such a thing is happening, but we're not sure if it's actually the case.
                       In order to help us track down if we have a bug somewhere we will SIMULATE that the two-step prompt
                       was granted with some extra information. */
                    if (isTwoStep && !twoStepGranted) {
                        var _paramsTemp = getUrlParams(),
                            trackingOpts = {
                                event: 'webpush-two-step-granted',
                                scope: 'Website',
                                scopeId: websiteId,
                                state: notificationPerm.state
                            };
                        supportedTags.forEach(function(tag) {
                            if (_paramsTemp && _paramsTemp[tag]) trackingOpts[tag] = _paramsTemp[tag];
                        });
                        pushnamiTrack(trackingOpts);
                    }

                    // console.log('Webpush permission state is ', notificationPerm.state);

                    notificationPerm.onchange = function () {
                        Pushnami.state = this.state;
                        // Permissions have changed while the page is open.
                        // console.log('Webpush permission state has changed to ', this.state);
                        // Do something based on the current notificationPerm.state value.
                        if (this.state === "denied") Pushnami.fire('permissions-prompt-action-deny');
                        var pushnamiSubscriberId = localStorage.getItem("pushnamiSubscriberId");
                        if (this.state === 'granted') {
                            iframeSubscribeModule.show(true);
                        }
                        if (this.state !== 'granted' && pushnamiSubscriberId) {
                            var data = {
                                state: this.state,
                                subscriberId: pushnamiSubscriberId
                            };

                            return fetch('https://api.pushnami.com/api/push/unsubscribe', {
                                method: 'POST',
                                body: JSON.stringify(data),
                                mode: 'cors',
                                redirect: 'follow',
                                headers: new Headers({key: key})
                            })
                                .then(function (response) {
                                    if (response.ok) {
                                        Pushnami.fire('permissions-action-unsubscribed');
                                        localStorage.setItem("pushnamiSubscriptionStatus", "UNSUBSCRIBED");
                                        return true;
                                    } else {
                                        console.error(response);
                                        return false;
                                    }
                                })
                                .catch(function (err) {
                                    if (isRollbar) Rollbar.error(err);
                                    return false;
                                });
                        }
                    };
                });
            } else {
                Pushnami.fire('permissions-not-compatible');
                var _params = getUrlParams(),
                    opts = {
                        event: 'webpush-ssl-optin-not-compatible',
                        scope: 'Website',
                        scopeId: websiteId
                    };

                supportedTags.forEach(function(tag) {
                    if (_params && _params[tag]) opts[tag] = _params[tag];
                });
                pushnamiTrack(opts);
            }
        }

        var initialData = {};

        // start iframeSubscribeVars 

        var isMedia = false
        var mediaAbandonedCartStategy = null;
        if (isMedia) {
            mediaAbandonedCartStategy = undefined;
        }
        var o = {
            apiUrl: "https://api.pushnami.com",
            websiteId: "60eeeecc6fa2b800105569ef",
            apiKey: "60eeeecc6fa2b800105569f0",
            mediaAbandonedCartStategy: mediaAbandonedCartStategy,
            data: initialData,
            pendingEnrollments: {},
            state: null,
            callbacks: {},
            setVariables: function (vars) {
                for (var key in vars) {
                    if (vars.hasOwnProperty(key) && key !== "pstag_android" && vars[key] !== "" && vars[key] != null) {
                        Pushnami.data[key] = vars[key];
                    }
                }

                return Pushnami;
            },
            on: function (event, cb) {
                if (typeof event === 'string') {
                    if (Pushnami.callbacks[event]) {
                        Pushnami.callbacks[event].push(cb);
                    } else {
                        Pushnami.callbacks[event] = [cb];
                    }
                } else if (Object.prototype.toString.call(event) === '[object Array]') {
                    event.forEach(function (e) {
                        Pushnami.on(e, cb);
                    });
                }
                return Pushnami;
            },
            testError: function(){throw 'testing error'},
            fire: function (event) {
                if (Pushnami.callbacks[event]) {
                    Pushnami.callbacks[event].forEach(function (cb) {
                        try {
                            cb();
                        } catch (e) {
                            if (isRollbar) Rollbar.error("Callback Error ", e);
                        }
                    });
                }
            },
            convert: function(campaign){

                if (!/^[a-z0-9]{24}$/.test(campaign)) return false;

                var opts = {
                    event: 'webpush-conversion',
                    scope: 'Campaign',
                    scopeId: campaign,
                    l: encodeURIComponent(location.href),
                };

                var uri = 'event=' + opts.event
                    + '&scope=' + opts.scope
                    + '&scopeId=' + opts.scopeId
                    + ((opts.l) ? "&l=" + opts.l : "")
                    + ((opts.e) ? "&e=" + opts.e : "");

                if (typeof fetch === 'function')
                    fetch('https://trc.pushnami.com/api/push/track', {
                        method: 'POST',
                        body: encodeURI(uri),
                        mode: 'cors',
                        redirect: 'follow',
                        headers: new Headers({
                            'Accept': 'application/json, text/plain, */*',
                            'Content-Type': 'application/x-www-form-urlencoded',
                            'key': '60eeeecc6fa2b800105569f0'
                        })
                    });
            },
            update: function (vars) {
                if (!vars) vars = {};

                for (var _key in vars) {
                    if (vars.hasOwnProperty(_key) && vars[_key] === "") delete vars[_key];
                }

                var href = window.location.href.split('#')[0];
                // 
                var hash;
                vars = vars || {};
                if (href.indexOf('?') > 0) {
                    var hashes = href.slice(href.indexOf('?') + 1).split('&');
                    for (var i = 0; i < hashes.length; i++) {
                        try {
                            hash = hashes[i].split('=');
                            var decodedHash = decodeURIComponent(hash[1]);
                            if (decodedHash && hash && hash[0] && !vars[hash[0]]) vars[hash[0]] = decodedHash;
                        } catch (e) {
                            console.log('Pushnami - Failed to decode variable ' + e);
                        }
                    }
                }

                var pushnamiVars = Pushnami.data;
                // 
                for (var key in pushnamiVars) {
                    if (pushnamiVars.hasOwnProperty(key)) {
                        var value = pushnamiVars[key];
                        if (value) vars[key] = value;
                    }
                }

                if (vars['pstag_android']) delete vars['pstag_android'];
                var psidOverride = vars.psid;
                // Start verifyParamPsid 
                delete vars.psid;

                var psid = psidOverride || localStorage.getItem('pushnamiSubscriberId');
                Pushnami.setVariables(vars); // Set Variables Either Way
                if (!psid) return Pushnami; // Return if not subscribed

                // TODO: Remove hardcoding
                // Deactivates any utm_source 'rrm' subscribers
                // Testing 2db19f42ae59126f34dd95b7c3485555
                // 

                vars.svu = true;	// Set subscriber variable update key
                var data = {sub: {}, urlParams: vars, subscriberId: psid};

                if (!!localStorage.getItem("pushnamiSubscriptionBlock")) return Pushnami;

                if ("60eeeecc6fa2b800105569ef") data.websiteId = "60eeeecc6fa2b800105569ef";

                if (Pushnami && Pushnami.psfp && Pushnami.psfp.data) {
                    data.psfp = Pushnami.psfp.data.toString();
                }

                if (Pushnami && Pushnami.psfp && Pushnami.psfp.psfpv4) {
                    data.psfpv4 = Pushnami.psfp.psfpv4;
                }
                if (Pushnami && Pushnami.psfp && Pushnami.psfp.psfpv5) {
                    data.psfpv5 = Pushnami.psfp.psfpv5;
                }

                fetch('https://api.pushnami.com/api/push/subscribe', {
                    method: 'POST',
                    body: JSON.stringify(data),
                    mode: 'cors',
                    redirect: 'follow',
                    headers: new Headers({key: '60eeeecc6fa2b800105569f0'})
                })
                    .catch(function (err) {
                        if (isRollbar) Rollbar.error("Pushnami - Error updating subscriber: ", err);
                    });
                return Pushnami;
            },
            enroll: function (tag, opts) {
                if (tag) {
                    opts = opts || {};
                    var subscriberId = localStorage.getItem('pushnamiSubscriberId');
                    if (subscriberId) {
                        commitEnrollment(subscriberId, tag, opts);
                    } else {
                        Pushnami.pendingEnrollments[tag] = opts;
                    }
                } else {
                    console.error('Must specify a tag during enrollment');
                }
                return Pushnami;
            },
            unenroll: function (tag, opts) {
                if (tag) {
                    opts = opts || {};
                    var subscriberId = localStorage.getItem('pushnamiSubscriberId');
                    if (subscriberId) {
                        commitUnenrollment(subscriberId, tag, opts);
                    }
                } else {
                    console.error('Must specify a tag during enrollment');
                }
                return Pushnami;
            },
            clear: function () {
                Pushnami.callbacks = {};
            },


            showTwoStep: {
                init: function(opts, promptFunction){

                    // Start domain hp 

                    // Start url hp 

                    // Start hp 

                    Pushnami.showTwoStep.initCalled = true;

                    (function() {
                        if ('safari' in window && 'pushNotification' in window.safari) {
                            Pushnami.pendingSafariPrompt = true;
                            return Promise.resolve({state: 'prompt'});
                        } else {
                            return navigator.permissions.query({name: 'notifications'})
                        }
                    })().then( function(p) {
                        if (p.state !== 'prompt') {

                            // Unset any strategy which we may have picked since it will not be used
                            if (typeof(Pushnami) !== 'undefined' && Pushnami.data && Pushnami.data["pstag_android"]) {
                                delete Pushnami.data["pstag_android"];
                            }

                            return promptFunction && promptFunction(opts) || Pushnami.prompt(opts);
                        }
                        if ((opts && opts.ts) || (Pushnami.ash && Pushnami.ash.invokeBasedOnBehavior(opts.behavior))) {
                            if (opts && opts.ts) delete opts['ts'];

                            var blockKey = localStorage.getItem("pushnamiSubscriptionBlock"),
                                blockExpKey = localStorage.getItem("pushnamiSubscriptionBlockExpr");

                            var notBlocked = !blockKey || (blockExpKey && new Date().getTime() > blockExpKey);

                            if (notBlocked) {
                                // We need to tell our overlay implementations if a two-step opt-in strategy with a persistent overlay was invoked
                                if (Pushnami.ash && Pushnami.ash.behaviorOptionsSatisfied('overlayOptions', opts.behaviorOptions, 'show_for_native_prompt')) {
                                    Pushnami.showTwoStep.showOverlayOnNativePrompt = true;
                                }

                                if (sessionStorage.getItem("pushnamiTSSubscriptionShown")) {
                                    promptFunction && promptFunction(opts) || Pushnami.prompt(opts);
                                } else {
                                    // We will explicitly say this is two-step so we can later prevent standard behavior
                                    Pushnami.ts = true;
                                    // Record a flag indicating that an android was strategy was shown in this session
                                    sessionStorage.setItem('pushnamiAndroidStrategyShown', 'true');
                                    // Record a timestamp indicating the last time an android strategy was shown
                                    localStorage.setItem('pushnamiAndroidStrategyShownTimestamp', ''+Date.now());
                                    // Reset the flag that the two-step was granted since it is being shown again
                                    localStorage.removeItem('pushnamiTSGranted');

                                    Pushnami.showOverlay();
                                    if (opts && opts.qnp) Pushnami.showTwoStep.qnp = opts.qnp;
                                    if (opts && opts.logo) Pushnami.showTwoStep.logo = opts.logo;
                                    if (opts && opts.logoStyles) Pushnami.showTwoStep.logoStyles = opts.logoStyles;
                                    if (opts && opts.closeButton) Pushnami.showTwoStep.closeButton = opts.closeButton;
                                    if (opts && opts.containerStyles) Pushnami.showTwoStep.containerStyles = opts.containerStyles;
                                    if (opts && opts.message) Pushnami.showTwoStep.message = opts.message;
                                    if (opts && opts.messageStyles) Pushnami.showTwoStep.messageStyles = opts.messageStyles;
                                    if (opts && opts.subMessage) Pushnami.showTwoStep.subMessage = opts.subMessage;
                                    if (opts && opts.subMessageStyles) Pushnami.showTwoStep.subMessageStyles = opts.subMessageStyles;
                                    if (opts && opts.sticky) Pushnami.showTwoStep.sticky = opts.sticky;
                                    if (opts && opts.switch) Pushnami.showTwoStep.switch = true;
                                    if (opts && opts.buttonContainerStyles) Pushnami.showTwoStep.buttonContainerStyles = opts.buttonContainerStyles;
                                    if (opts && opts.allow) Pushnami.showTwoStep.allowText = opts.allow;
                                    if (opts && opts.allowStyles) Pushnami.showTwoStep.allowStyles = opts.allowStyles;
                                    if (opts && opts.block) Pushnami.showTwoStep.blockText = opts.block;
                                    if (opts && opts.blockStyles) Pushnami.showTwoStep.blockStyles = opts.blockStyles;
                                    if (opts && opts.watermark) Pushnami.showTwoStep.watermark = opts.watermark;
                                    if (opts && opts.location) Pushnami.showTwoStep.location = opts.location;
                                    if (opts && opts.behaviorOptions && opts.behaviorOptions.effects) Pushnami.showTwoStep.effects = opts.behaviorOptions.effects;
                                    var advancedStyle = opts && opts.advancedStyle || '' || null,
                                        twoStepUrlParams = (advancedStyle && advancedStyle !== 'standard')
                                            ? '?style=' + advancedStyle
                                            : '',
                                        twoStepStylesUrl = "https://api.pushnami.com/scripts/v1/pushnami-two-step-styles/60eeeecc6fa2b800105569f0" + twoStepUrlParams,
                                        twoStepScriptUrl = "https://api.pushnami.com/scripts/v1/pushnami-two-step/60eeeecc6fa2b800105569f0" + twoStepUrlParams;
                                    var optInCss = document.createElement("link");
                                    optInCss.href = twoStepStylesUrl;
                                    optInCss.type = "text/css";
                                    optInCss.rel = "stylesheet";
                                    optInCss.media = "screen,print";

                                    // Start CLS Optimization 
                                        document.getElementsByTagName("head")[0].appendChild(optInCss);
                                        var script = document.createElement("script");
                                        script.src = twoStepScriptUrl;
                                        script.type = "text/javascript";
                                        document.getElementsByTagName("head")[0].appendChild(script);
                                    // 

                                    Pushnami.state = 'prompt';
                                    Pushnami.fire('permissions-two-step-shown');
                                    var _params = getUrlParams(),
                                        _opts = {
                                            event: 'webpush-ssl-optin-shown',
                                            scope: 'Website',
                                            scopeId: "60eeeecc6fa2b800105569ef"
                                        };

                                    supportedTags.forEach(function(tag) {
                                        if (_params && _params[tag]) _opts[tag] = _params[tag];
                                    });
                                    pushnamiTrack(_opts);
                                }
                            }
                        } else {
                            Pushnami.showOverlay();
                            promptFunction && promptFunction(opts) || Pushnami.prompt(opts);
                        }
                        o.showTwoStep.dismiss = function() {
                            var push_container = document.getElementById("push-container");
                            if (push_container) push_container.style.display = "none";
                            Pushnami.fire('permissions-two-step-dismissed');
                        };
                        o.showTwoStep.block = function() {
                            localStorage.setItem("pushnamiSubscriptionBlock", "BLOCKED");
                            if (opts && opts.tsExp){
                                localStorage.setItem("pushnamiSubscriptionBlockExpr", new Date().getTime() + opts.tsExp);
                            }
                            var push_container = document.getElementById("push-container");
                            if (push_container) push_container.style.display = "none";
                            var push_popup_container = document.getElementById("push-popup-container");
                            if (push_popup_container) push_popup_container.style.display = "none";
                            Pushnami.fire('permissions-two-step-blocked');
                        };
                        o.showTwoStep.allow = function() {
                            Pushnami.twoStepNativePromptDisabled = false;
                            sessionStorage.setItem("pushnamiTSSubscriptionShown", true);
                            var push_container = document.getElementById("push-container");
                            if (push_container) push_container.style.display = "none";
                            var push_popup_container = document.getElementById("push-popup-container");
                            if (push_popup_container) push_popup_container.style.display = "none";
                            Pushnami.showOverlay();
                            Pushnami.fire('permissions-two-step-granted');
                            localStorage.setItem("pushnamiTSGranted", "true");

                            var _params = getUrlParams(),
                                opts = {
                                    event: 'webpush-two-step-granted',
                                    scope: 'Website',
                                    scopeId: websiteId
                                };

                            supportedTags.forEach(function(tag) {
                                if (_params && _params[tag]) {
                                    opts[tag] = _params[tag];
                                }
                            });
                            pushnamiTrack(opts);

                            promptFunction && promptFunction(opts) || Pushnami.prompt(opts);
                        };
                    });
                }
            },
            showOverlay: function (opts) {
                var forceOverlayToShow = opts && opts.force,
                    aggressiveOpts = opts && opts.aggressive,
                    advancedStyleOpt = (aggressiveOpts && aggressiveOpts.style) || (opts && opts.advancedStyle),
                    override = aggressiveOpts && aggressiveOpts.enabled || false,
                    aggressive = "false",
                    isOverlayBlockedByOptinPolicy = typeof(Pushnami) !== 'undefined' && Pushnami.ash && Pushnami.ash.preventOverlay;
                if (!localStorage.getItem("pushnamiSubscriptionBlock") && (aggressive !== 'false' || override) && (forceOverlayToShow || !isOverlayBlockedByOptinPolicy)) {
                    // Store the aggressive options on the Pushnami instance so that the overlay scripts can easily access it
                    var aggressiveTitle = override && aggressiveOpts && aggressiveOpts.title || "";
                    var aggressiveMessage = override && aggressiveOpts && aggressiveOpts.message || "";
                    if (aggressiveTitle) {
                        Pushnami.aggressiveTitle = aggressiveTitle;
                    }
                    if (aggressiveMessage) {
                        Pushnami.aggressiveMessage = aggressiveMessage;
                    }
                    if (override && aggressiveOpts && aggressiveOpts.titleStyles) {
                        Pushnami.aggressiveTitleStyles = aggressiveOpts.titleStyles;
                    }
                    if (override && aggressiveOpts && aggressiveOpts.messageStyles) {
                        Pushnami.aggressiveMessageStyles = aggressiveOpts.messageStyles;
                    }

                    /* The newer aggressive overlay scripts expect all options to be encapsulated in a single object on the
                       Pushnami instance instead of on individual properties.  This is primarily because these new scripts
                       support a wider variety of configurations and placing that data on the instance root would cause too
                       much clutter. */
                    Pushnami.aggressive = JSON.parse(JSON.stringify(aggressiveOpts || {}));
                    Pushnami.aggressive.title = aggressiveTitle;
                    Pushnami.aggressive.message = aggressiveMessage;

                    // Load the overlay script and styles if it hasen't already been injected into the DOM
                    if (!Pushnami.showOverlay.advancedScriptsInjected) {
                        Pushnami.showOverlay.advancedScriptsInjected = true;
                        var advancedStyle = advancedStyleOpt || '' || null,
                            advancedOverlayFilePrefix = (advancedStyle && advancedStyle !== 'standard')
                                ? 'opt-in-' + advancedStyle
                                : 'opt-in',
                            advancedOverlayScriptUrl = 'https://cdn.pushnami.com/js/opt-in/' + advancedOverlayFilePrefix + '.js',
                            advancedOverlayStylesUrl = 'https://cdn.pushnami.com/css/opt-in/' + advancedOverlayFilePrefix + '.css';
                        var optInCss = document.createElement("link");
                        optInCss.href = advancedOverlayStylesUrl;
                        optInCss.type = "text/css";
                        optInCss.rel = "stylesheet";
                        optInCss.media = "screen,print";
                        document.getElementsByTagName("head")[0].appendChild(optInCss);

                        var script = document.createElement("script");
                        script.src = advancedOverlayScriptUrl;
                        script.type = "text/javascript";
                        document.getElementsByTagName("head")[0].appendChild(script);
                    }

                    /* Even after we load these scripts it doesn't mean that the overlay is guaranteed to show since we
                       have a flag in the sessionStorage that indicates to each overlay implementation if it should be
                       rendered.  Since we need to track when the overlay was last shown, we will try and determine if
                       the implementation would normally show the overlay under the current conditions. */
                    if (localStorage && sessionStorage && !sessionStorage.getItem("hide-overlay")) {
                        localStorage.setItem('pushnamiAndroidStrategyOverlayShownTimestamp', ''+Date.now());
                    }
                }
                return Pushnami;
            },
            prompt: function (opts) {
                opts = opts || {};
                var _skipMailnamiPrompt = opts._skipMailnamiPrompt;
                delete opts._skipMailnamiPrompt;
                if (!_skipMailnamiPrompt) {
                    var alreadyPromptedWithoutMailnami = false;
                    var promptWithoutMailnami = function() {
                        //This function should never get called more than once, but we'll add some checking just to be sure
                        if (alreadyPromptedWithoutMailnami) {
                            if (isRollbar) Rollbar.warn('Already attempted to prompt without Mailnami');
                        } else {
                            opts._skipMailnamiPrompt = true;
                            Pushnami.prompt(opts);
                        }
                        alreadyPromptedWithoutMailnami = true;
                        //Returning false will cause this event handler to be removed from the Mailnami event hooks
                        return false;
                    };
                    mailnamiPromptModule.init({promptEvent: 'webpush-optin-prompt', config: opts && opts.mailnami})
                        .then(function(result) {
                            var shown = result.shown,
                                callerPrompt = result.callerPrompt;
                            if (!shown) {
                                promptWithoutMailnami();
                                return;
                            }
                            switch (callerPrompt) {
                                case 'wait':
                                    //Wait for the mailnami prompt to disappear
                                    mailnamiPromptModule.on(['optin', 'optin-failed', 'optout'], promptWithoutMailnami);
                                    break;
                                case 'never':
                                    //Do nothing
                                    break;
                                case 'now':
                                default:
                                    //Immediately try to show the webpush prompt
                                    promptWithoutMailnami();
                                    break;
                            }
                        })
                        .catch(function(err) {
                            if (isRollbar) Rollbar.error('Mailnami initialization during prompt failed', err);
                            promptWithoutMailnami();
                        });
                    return Pushnami;
                }

                var show = function (opts) {
                    var cb = showPrompt.bind(showPrompt, opts || {});

                    // 

                    // Allow APN to detect when Safari prompt has already been fired
                    if ('safari' in window && 'pushNotification' in window.safari) {
                        Pushnami.pendingSafariPrompt = true;
                    }

                    // TODO: Remove hardcoding
                    // Prevents reactivation when the permission is already granted
                    // Testing 2db19f42ae59126f34dd95b7c3485555
                    // 

                    if (opts) {
                        if (opts.onClick && opts.delay) {
                            document.getElementById(opts.onClick).onclick = function () {
                                setTimeout(cb, opts.delay)
                            };
                        } else if (opts.onClick) {
                            document.getElementById(opts.onClick).onclick = cb;
                        } else if (opts.delay) {
                            setTimeout(cb, opts.delay)
                        } else {
                            cb()
                        }
                    } else {
                        cb();
                    }
                };

                // Start domain hp 

                // Start url hp 

                // Start hp 

                // Start prevent duplicate override 
                // Start (else) prevent duplicate override 
                var preventDuplicate = opts && opts.preventDuplicate;
                // 

                if (typeof preventDuplicate === 'undefined') {
                    preventDuplicate = false;
                }
                if (preventDuplicate && Pushnami && Pushnami.psfp && Pushnami.psfp.done) {
                    // 
                    var psfpPermissionTimeout = 5000;
                    // 
                    Promise.race([
                        Pushnami.psfp.done,
                        new Promise(function(res, rej) {
                            window.setTimeout(function () {
                                res(true);
                            }, psfpPermissionTimeout);
                        })
                    ]).then(function(res){
                        if (res) return show(opts);

                        // Hide the opt-in (preventDuplicate)
                        return pushnamiTrack({
                            event: 'webpush-prevent-duplicate',
                            scope: 'Website',
                            scopeId: '60eeeecc6fa2b800105569ef',
                            l: encodeURIComponent(document.documentURI)
                        });
                    }).catch(function(err){
                        show(opts);
                        pushWrap.report(err);
                    });
                } else {
                    show(opts);
                }
                // if we open this up to more websites, we will want to severely limit how many times we send this message to rollbar, so we will need the Math.random if statement
                // if (Math.random() > 0.98) {
                    if (isRollbar) {
                        Rollbar.info('Pushnami script executed in ' + ((Date.now() - start) / 1000) + 's');
                    }
                // }
                return Pushnami;
            },
            getPSID: function () {
                return localStorage.getItem("pushnamiSubscriberId")
            },
            unsubscribe: function (opts) {
                opts = opts || {};
                var isOSXSafari = ('safari' in window && 'pushNotification' in window.safari);

                if (isOSXSafari) {
                    Pushnami.unsubscribeAPN();
                } else {
                    Pushnami.unsubscribeSW(opts);
                }
            },
            unsubscribeAPN: function() {
                var apnAPIVersion = "v2";
                var websitePushID = "undefined";
                var deviceToken = window.safari.pushNotification.permission(websitePushID).deviceToken;

                var baseUrl = "https://api.pushnami.com";
                var endpoint = '/api/apn/' + apnAPIVersion + '/devices/' + deviceToken + '/registrations/' + websitePushID;

                fetch(baseUrl + endpoint, {
                    method: 'DELETE',
                    mode: 'cors',
                    redirect: 'follow',
                    // headers: new Headers({key: "60eeeecc6fa2b800105569f0"})
                })
                    .then(function (response) {
                        if (response.ok) {
                            localStorage.setItem("pushnamiSubscriptionStatus", "UNSUBSCRIBED");
                            localStorage.setItem("pushnamiSubscriptionBlock", "BLOCKED");
                            console.log('Pushnami - unsubscribed');
                            return true;
                        } else {
                            console.error("Pushnami - unsubscribe [api] error: ", err);
                            return false;
                        }
                    })
                    .catch(function (err) {
                        if (isRollbar) Rollbar.error("Pushnami - unsubscribe [fetch] error: ", err);
                        return false;
                    });
            },
            unsubscribeSW: function(opts) {
                var pushnamiSubscriberId = localStorage.getItem("pushnamiSubscriberId");
                if (navigator && navigator.serviceWorker && pushnamiSubscriberId) {
                    navigator.serviceWorker.ready.then(function (reg) {
                        return reg.pushManager.getSubscription().then(function (subscription) {
                            return subscription.unsubscribe().then(function (successful) {
                                var baseUrl = "https://api.pushnami.com";
                                var endpoint = '/api/push/unsubscribe';
                                return fetch(baseUrl + endpoint, {
                                    method: 'POST',
                                    body: JSON.stringify({
                                        state: "blocked",
                                        subscriberId: pushnamiSubscriberId,
                                        forget: opts.forget || false
                                    }),
                                    mode: 'cors',
                                    redirect: 'follow',
                                    headers: new Headers({key: "60eeeecc6fa2b800105569f0"})
                                })
                                    .then(function (response) {
                                        if (response.ok) {
                                            localStorage.setItem("pushnamiSubscriptionStatus", "UNSUBSCRIBED");
                                            localStorage.setItem("pushnamiSubscriptionBlock", "BLOCKED");
                                            return true;
                                        } else {
                                            console.error("Unsubscribe [api] error: ", err);
                                            return false;
                                        }
                                    })
                                    .catch(function (err) {
                                        if (isRollbar) Rollbar.error("Unsubscribe [fetch] error: ", err);
                                        return false;
                                    });

                            }).catch(function (err) {
                                if (isRollbar) Rollbar.error("Unsubscribe [sub] error: ", err);
                                return false;
                            })
                        })
                    });
                }
                return Pushnami;
            },
            setSWPath: function(path) {
                swPath = path;
                return Pushnami;
            }
        };

        // start androidStrategy 

        var androidStrategyHandler = {
            initialized: false,
            lastPsTagAndroid: null,
            browserTest: function(){

                // Don't try to remap behavior if they have already subscribed
                if (!localStorage || localStorage.getItem("pushnamiSubscriberId")) return false;

                // Don't try to remap behavior if the browser isn't supported
                if (!navigator.serviceWorker || (window.location.protocol !== 'https:' && Boolean(window.location.hostname !== 'localhost' && window.location.hostname !== '[::1]' && !window.location.hostname.match(/^127(?:\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/)))) return false;

                if (window && window.navigator && window.navigator.userAgent && /chrome/i.test(window.navigator.userAgent) && /android/i.test(window.navigator.userAgent)){
                    // Target particular chrome versions 63+
                    var raw = window.navigator.userAgent.match(/Chrom(e|ium)\/([0-9]+)\./);
                    var version = raw ? parseInt(raw[2], 10) : false;
                    if (version && version > 62){
                        return true;
                    }
                }
                return false;
            },
            testStrategyRule: function (rule) {

                if (typeof(rule.variable) === 'undefined' || typeof(rule.operator) === 'undefined' || typeof(rule.value) === 'undefined' || typeof(bowser) === 'undefined') {
                    return false;
                }

                var browser = bowser.getParser(window.navigator.userAgent);
                if (rule.operator === 'is') {
                    // check browser locale for country
                    if(rule.variable === 'Country') {
                        try {
                            return navigator.language === rule.value;
                        } catch (error) {
                            return false;
                        }
                    }
                    return browser.is(rule.value);
                }
                if (rule.variable === 'OS Version') {
                    var os = browser.parseOS();
                    try {
                        var specificVersion = os && os.versionName || os && os.version,
                            specificVersionNumber = parseFloat(specificVersion),
                            checkVersionNumber = parseFloat(rule.value);

                        // console.log(`Checking os version ${specificVersionNumber} against ${checkVersionNumber}`);

                        return rule.operator === '=' ? checkVersionNumber === specificVersionNumber :
                            rule.operator === '>' ? specificVersionNumber > checkVersionNumber :
                                rule.operator === '>=' ? specificVersionNumber >= checkVersionNumber :
                                    rule.operator === '<' ? specificVersionNumber < checkVersionNumber :
                                        rule.operator === '<=' ? specificVersionNumber <= checkVersionNumber : false;

                    } catch (err) {
                        return false;
                    }
                } else if (rule.variable === 'Browser Version') {
                    var browserMatch = browser.parseBrowser();
                    try {
                        var specificVersion = browserMatch && browserMatch.version,
                            specificVersionNumber = parseFloat(specificVersion),
                            checkVersionNumber = parseFloat(rule.value);

                        // console.log(`Checking browser version ${specificVersionNumber} against ${checkVersionNumber}`);

                        return rule.operator === '=' ? checkVersionNumber === specificVersionNumber :
                            rule.operator === '>' ? specificVersionNumber > checkVersionNumber :
                                rule.operator === '>=' ? specificVersionNumber >= checkVersionNumber :
                                    rule.operator === '<' ? specificVersionNumber < checkVersionNumber :
                                        rule.operator === '<=' ? specificVersionNumber <= checkVersionNumber : false;

                    } catch (err) {
                        return false;
                    }
                }
                return false;
            },
            hasSpecialMacOSBehavior: function(strategy) {
                return strategy && (strategy.behavior === 'always-macos-only' || strategy.behavior === 'always-macos-only-all-versions');
            },
            testStrategy: function (strategy){
                // Eliminate strategies that can never be selected
                if (strategy && (typeof strategy.dist !== 'number' || strategy.dist <= 0)) {
                    return false;
                }
                // Eliminate special macOS strategies
                if (androidStrategyHandler.hasSpecialMacOSBehavior(strategy)) {
                    return false;
                }
                // TODO: test if a strategy can be used by this device/browser
                if (!strategy || !strategy.rules || strategy.rules.length === 0) {
                    return true;
                }
                return strategy.rules.reduce(function (acc, rule) {
                    return acc && androidStrategyHandler.testStrategyRule(rule);
                }, true);
            },
            getPreviouslySelectedStrategy: function(strategies, overrideStrategyId) {
                // Attempt to grab the previous strategy ID from local storage if an override was not specified.
                var strategyIdToFind = overrideStrategyId || localStorage.getItem('pushnamiAndroidStrategySelected');
                if (!strategyIdToFind) {
                    return null;
                }
                for (var i = 0, len = strategies && strategies.length || 0; i < len; i++) {
                    var candidate = strategies[i];
                    if (!candidate || !candidate._id) {
                        console.error('[Pushnami] getPreviouslySelectedStrategy | Android Strategy is missing an _id: ', candidate);
                        continue;
                    }
                    if (strategyIdToFind === candidate._id) {
                        return candidate;
                    }
                }
                return null;
            },
            setPreviouslySelectedStrategy: function(strategy) {
                if (strategy && strategy._id) {
                    localStorage.setItem('pushnamiAndroidStrategySelected', strategy._id);
                } else {
                    console.error('[Pushnami] setPreviouslySelectedStrategy | Android Strategy is missing and _id: ', strategy);
                }
            },
            init: function(_oldPromptFunction){
                if (androidStrategyHandler.initialized) {
                    // We should never see this log message or there's a bug somewhere
                    console.error('[Pushnami] androidStrategyHandler.init | Error: already initialized!');
                }
                androidStrategyHandler.initialized = true;

                var globalPolicies = undefined;
                var androidStrategy = [{"key":"b","type":"modern","delay":0,"_id":"65650614f0b3320013d33b08","name":"Default on Scroll","behavior":"always","rules":[{"variable":"Device","operator":"is","value":"desktop"}],"dist":1,"advanced":{"enabled":false},"qnp":{"enabled":false},"switch":{"enabled":false,"advancedStyle":"standard-v4","sticky":{"enabled":false},"closeButton":{"enabled":true},"watermark":{"enabled":false}},"oneStep":{"style":"minimal","arrowShadow":false,"showOverlay":false,"overlayMessage":"Subscribe to Notifications","overlaySubMessage":"Click \"allow\" for push notifications to receive updates","overlayImage":"http://cdn.pushnami.com/img/optin/one-step/minimal.png"},"traditional":{"enabled":true,"advancedStyle":"standard-v4","sticky":{"enabled":false},"closeButton":{"enabled":true},"watermark":{"enabled":false}},"behaviorOptions":{"showRequirements":[{"requirement":"once_per_session"}],"overlayOptions":[],"showTriggers":[{"trigger":"on_scroll_activity"}],"dismissalTriggers":[],"effects":[]}}];

                // Get potential override
                var routeParams = {}, href = window.location.href.split('#')[0], hash;
                if (href.indexOf('?') > 0) {
                    var hashes = href.slice(href.indexOf('?') + 1).split('&');
                    for (var i = 0; i < hashes.length; i++) {
                        try {
                            hash = hashes[i].split('=');
                            if (hash && hash[0] && hash[1]) routeParams[hash[0]] = decodeURIComponent(hash[1]);
                        } catch (e) {
                            console.log('Failed to decode variable ' + e);
                        }
                    }
                }

                /* Allow developers to override the android strategy that will be used for debugging purposes.  The two
                   options (in order of precedence) are to:

                   1) Assign the JSON.stringify() version of the strategy object to 'pushnamiAndroidStrategyForce' in local
                      storage.

                   2) Apply a query parameter of 'pstestid' that is equal to a strategy ID that is already being provided
                      to this script.  This is useful for testing a specific strategy that is already installed for this
                      website. */
                var forcedAndroidStrategy = null,
                    forcedAndroidStrategyJson = localStorage.getItem('pushnamiAndroidStrategyForce');
                if (forcedAndroidStrategyJson) {
                    try {
                        forcedAndroidStrategy = JSON.parse(forcedAndroidStrategyJson);
                        console.log('[Pushnami] Using forced strategy: ', forcedAndroidStrategy);
                    } catch (err) {
                        console.error('[Pushnami] Error: Failed to parse forced strategy: ', err);
                    }
                } else if (routeParams['pstestid']) {
                    var testStrategy = androidStrategyHandler.getPreviouslySelectedStrategy(androidStrategy, routeParams['pstestid']);
                    if (testStrategy) {
                        forcedAndroidStrategy = testStrategy;
                    } else {
                        console.error('[Pushnami] Error: Cannot find the test strategy with ID "' + routeParams['pstestid'] + '"');
                    }
                }
                if (forcedAndroidStrategy) {
                    androidStrategyHandler.useStrategy(forcedAndroidStrategy, _oldPromptFunction);
                    return;
                }

                // Attempt to load the previously selected strategy
                var previousStrategy = androidStrategyHandler.getPreviouslySelectedStrategy(androidStrategy);
                if (previousStrategy) {
                    androidStrategyHandler.useStrategy(previousStrategy, _oldPromptFunction);
                    return;
                }

                var pickPolicy = function(policies) {
                    if (!policies) {
                        return null;
                    }

                    /* There is a special case whereby if a set of strategies exists that have a behavior of "always-macos-only" or
                       "always-macos-only-all-versions" AND this device is macOS running safari, then we must select the LAST policy
                       in that set. */
                    if (isOSXSafari) {
                        // We use reverse-iteration because we only care about the last matching policy
                        for (var asIdx = (policies && policies.length || 0) - 1; asIdx >= 0; asIdx--) {
                            var policy = policies[asIdx];
                            if (androidStrategyHandler.hasSpecialMacOSBehavior(policy)) {
                                return policy;
                            }
                        }
                    }

                    /* Filter out strategies which are not applicable to this device.  If any of the strategies that remain
                       have rules, then filter the list again to remove any strategies that DO NOT have rules. */
                    var filteredStrategies = policies.filter(androidStrategyHandler.testStrategy),
                        doesStrategyHaveRules = function(policy) {
                            return policy && policy.rules && policy.rules.length > 0;
                        };
                    // TODO: select most "specific" set of rules
                    if (filteredStrategies.find(doesStrategyHaveRules)) {
                        filteredStrategies = filteredStrategies.filter(doesStrategyHaveRules);
                    }

                    // There is a special case whereby if we only have one candidate policy, then we will always select it.
                    if (filteredStrategies.length === 1) {
                        return filteredStrategies[0];
                    }

                    /* None of our special cases got matched, so what we're going to do now is pick a random policy from
                       the filtered set of strategies.  We will do this by first generating a random number within the distribution
                       boundaries of all of the strategies.  Then we will simply search through the distribution of strategies
                       and find out which policy we randomly selected. */
                    var distributionBoundary = filteredStrategies.reduce(
                            function (boundaryEnd, policy) {
                                return boundaryEnd + policy.dist;
                            },
                            0
                        ),
                        selectedDistributionOffset = Math.random() * distributionBoundary,
                        currentDistributionOffset = 0;
                    for (var fsIdx = 0, fsLen = filteredStrategies.length; fsIdx < fsLen; fsIdx++) {
                        var policy = filteredStrategies[fsIdx];
                        currentDistributionOffset += policy.dist;
                        if (selectedDistributionOffset <= currentDistributionOffset) {
                            // Sweet, we found the policy according to the selected offset!
                            return policy;
                        }
                    }

                    return null;
                };

                /* Next we need to support testing of global policies that have yet to be deployed to this website.  */
                if (Math.random() <= 0.005) {
                    var selectedGlobalTestPolicy = pickPolicy(globalPolicies);
                    if (selectedGlobalTestPolicy) {
                        androidStrategyHandler.useStrategy(selectedGlobalTestPolicy, _oldPromptFunction, {doNotPersistSelection: true});
                        return;
                    }
                }

                /* Finally, just try and pick a policy from the website's list like normal */
                var selectedPolicy = pickPolicy(androidStrategy);
                if (selectedPolicy) {
                    androidStrategyHandler.useStrategy(selectedPolicy, _oldPromptFunction);
                    return;
                }
            },
            getStrategyName: function(strategy) {
                return (strategy.globalId ? ('global_' + (strategy.globalVertical || '') + '_') : '')
                    + (strategy.type || "na")
                    + ((strategy.switch && strategy.switch.enabled) ? "_swipe" : "")
                    + ((strategy.traditional && strategy.traditional.enabled) ? "_traditional" : "")
                    + ((strategy.advanced && strategy.advanced.enabled) ? "_advanced" : "")
                    + '_' + strategy.name;
            },
            invokeBasedOnBehavior: function(behavior) {
                switch (behavior) {
                    default:
                    case 'always':
                        //We want to only show the prompt if the browser looks like it will support it
                        var isLocalhost = Boolean(window.location.hostname === 'localhost' || window.location.hostname === '[::1]' || window.location.hostname.match(/^127(?:\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/)),
                            isHttps = (window.location.protocol === 'https:'),
                            hasServiceWorkerCapabilities = ('serviceWorker' in navigator);
                        return (hasServiceWorkerCapabilities || isOSXSafari) && (isHttps || isLocalhost);

                    case 'always-macos-only':
                        if (!isOSXSafari) return false;
                        var ua = navigator && navigator.userAgent;
                        if (!ua) return false;
                        var uaMatch = /Version\/(.*?) /.exec(ua);
                        if (!uaMatch || uaMatch.length < 1) return false;
                        var uaMatchVersion = -1;
                        try {
                            uaMatchVersion =  parseFloat(uaMatch[1]);
                        } catch (err) {
                            return false;
                        }
                        return uaMatchVersion && uaMatchVersion >= 12.1;

                    case 'always-macos-only-all-versions':
                        if (!isOSXSafari) return false;
                        return true;

                    case 'always-android-only':
                        return androidStrategyHandler.browserTest();
                }
            },
            behaviorOptionsSatisfied: function(configType, behaviorOptions, behaviorName) {
                var satisfied = true;

                var behaviorOptionsConfig = behaviorOptions && behaviorOptions[configType] || [];
                if (configType === 'showRequirements') {
                    if (behaviorName) {
                        console.error('[Pushnami] behaviorOptionsSatisfied | Warning: improper usage of the "'+configType+'" configuration type (expected null)');
                    }
                    for (var i = 0, len = behaviorOptionsConfig.length; i < len; i++) {
                        var requirement = behaviorOptionsConfig[i];
                        switch (requirement.requirement) {
                            case 'every_visit':
                                satisfied = true;
                                break;

                            case 'on_visit_count':
                                var visitCount = parseInt(localStorage.getItem('pushnamiAndroidStrategyVisitCount'));
                                if (isNaN(visitCount)) {
                                    break;
                                }
                                satisfied = (visitCount === requirement.opts.count);
                                break;

                            case 'on_min_visit_count':
                                var visitCount = parseInt(localStorage.getItem('pushnamiAndroidStrategyVisitCount'));
                                if (isNaN(visitCount)) {
                                    break;
                                }
                                satisfied = (visitCount >= requirement.opts.count);
                                break;

                            case 'once_per_session':
                                if (sessionStorage && sessionStorage.getItem('pushnamiAndroidStrategyShown')) {
                                    satisfied = false;
                                }
                                break;

                            case 'once_per_n_days':
                                var timestampStr = localStorage.getItem('pushnamiAndroidStrategyShownTimestamp');
                                if (!timestampStr) {
                                    break;
                                }
                                var timestampDiff = Date.now() - parseInt(timestampStr);
                                if (isNaN(timestampDiff)) {
                                    break;
                                }
                                satisfied = (timestampDiff >= requirement.opts.days * 24 * 60 * 60 * 1000);
                                break;

                            default:
                                console.error('[Pushnami] behaviorOptionsSatisfied | Unknown strategy behavior show requirement: ', requirement);
                                break;
                        }
                    }
                } else {
                    if (!behaviorName) {
                        console.error('[Pushnami] behaviorOptionsSatisfied | Warning: improper usage of the "'+configType+'" configuration type (expected string)');
                    }
                    satisfied = false;
                    var nameKey = (configType === 'overlayOptions' ? 'option' : 'trigger')
                    for (var i = 0, len = behaviorOptionsConfig.length; i < len; i++) {
                        var config = behaviorOptionsConfig[i];
                        if (config[nameKey] === behaviorName) {
                            if (configType === 'overlayOptions' && behaviorName === 'show_once_per_n_days') {
                                var timestampStr = localStorage.getItem('pushnamiAndroidStrategyOverlayShownTimestamp');
                                if (timestampStr) {
                                    var timestampDiff = Date.now() - parseInt(timestampStr);
                                    if (!isNaN(timestampDiff)) {
                                        satisfied = (timestampDiff >= option.opts.days * 24 * 60 * 60 * 1000);
                                    }
                                } else {
                                    satisfied = true;
                                }
                            } else {
                                satisfied = true;
                            }
                            break;
                        }
                    }
                }

                /* Here are some debugging statements if you need them!
                 if (satisfied) {
                 console.log('[Pushnami] behaviorOptionsSatisfied | Behavior Options satisfied for configType "'+configType+'" with name "'+behaviorName+'"');
                 } else {
                 console.log('[Pushnami] behaviorOptionsSatisfied | Behavior Options NOT satisfied for configType "'+configType+'" with name "'+behaviorName+'"');
                 }*/
                return satisfied;
            },
            useStrategy: function(strategy, _oldPromptFunction, opts) {
                var doNotPersistSelection = opts && opts.doNotPersistSelection;
                if (!doNotPersistSelection) {
                    androidStrategyHandler.setPreviouslySelectedStrategy(strategy);
                }

                var _type = strategy.type,
                    _advanced = strategy.advanced,
                    _qnp = strategy.qnp,
                    _switch = strategy.switch,
                    _traditional = strategy.traditional,
                    _delay = strategy.delay,
                    _behavior = strategy.behavior,
                    _behaviorOptions = strategy.behaviorOptions,
                    _location = strategy.location,
                    _name = androidStrategyHandler.getStrategyName(strategy);

                androidStrategyHandler.lastPsTagAndroid = _name;

                // Increment the counter that denotes how many times we have used an android strategy
                if (localStorage) {
                    var currentVisitCount = parseInt(localStorage.getItem('pushnamiAndroidStrategyVisitCount'));
                    if (isNaN(currentVisitCount)) {
                        currentVisitCount = 1;
                    } else if (currentVisitCount < 1e6) {
                        /* NOTICE: We only increment the visitation count if it's below a million because we want
                         to avoid any integer overflow issues, and also because I doubt any user will have behavior
                         options that require opt-ins to be shown after the millionth visit (that'd just be crazy,
                         right?  righhhhhhttt?? *sweating intensifies*) */
                        currentVisitCount++;
                    }
                    localStorage.setItem('pushnamiAndroidStrategyVisitCount', ''+currentVisitCount);
                }

                if (!androidStrategyHandler.invokeBasedOnBehavior(_behavior)) {
                    // For always-macos-only we will show the original prompt if the behavior is not required
                    if ((_behavior === 'always-macos-only' || _behavior === 'always-macos-only-all-versions') && isOSXSafari) {
                        _oldPromptFunction && _oldPromptFunction() || o.prompt()
                    }
                    return;
                }

                // Check if there are any behavior options that would stop this two-step opt-in from showing
                var twoStepAlreadyAccepted = sessionStorage && sessionStorage.getItem('pushnamiTSSubscriptionShown')
                if (!twoStepAlreadyAccepted && !androidStrategyHandler.behaviorOptionsSatisfied('showRequirements', _behaviorOptions)) {
                    // The behavior options were not satisfied, so don't let the prompt show
                    o.prompt = function() { return o; };
                    return;
                }

                // Log the Strategy
                o.data["pstag_android"] = _name;

                // Do not allow a native prompt to be shown if this policy requires the two-step to be granted each time
                if (androidStrategyHandler.behaviorOptionsSatisfied('showTriggers', _behaviorOptions, 'only_native_prompt_on_two_step_granted')) {
                    o.twoStepNativePromptDisabled = true;
                }

                // Execute the Strategy

                var oldPromptFunction = _oldPromptFunction || o.prompt,
                    newPromptFunction;

                // Do not show the overlay when it is not enabled by this policy
                if ((!_advanced || !_advanced.enabled)) {
                    androidStrategyHandler.preventOverlay = true;
                }

                if (_type === 'modern' || _type === 'one_step'){
                    // Call the normal Chrome 'prompt'
                    newPromptFunction = function(opts){
                        if (_advanced && _advanced.enabled) o.showOverlay({aggressive: _advanced}); // Advanced
                        oldPromptFunction(opts);
                    };
                } else if (_type === 'legacy'){
                    if (_switch && _switch.enabled){
                        newPromptFunction = function(opts){
                            if (!opts) opts = {};
                            opts.advancedStyle = _switch.advancedStyle || null;
                            if (_advanced && _advanced.enabled) o.showOverlay({aggressive: _advanced, advancedStyle: opts.advancedStyle}); // Advanced
                            opts.qnp = _qnp;
                            opts.logo = _switch.logo || null;
                            opts.logoStyles = _switch.logoStyles || null;
                            opts.closeButton = _switch.closeButton || null;
                            opts.containerStyles = _switch.containerStyles || null;
                            opts.message = opts && opts.tsMsg || _switch.message || "Get Alert Notifications Personalized for You";
                            opts.messageStyles = opts && opts.tsMsgStyles || _switch.messageStyles || null;
                            opts.subMessage = opts && opts.tsSubMsg || _switch.subMessage || "";
                            opts.subMessageStyles = opts && opts.tsSubMsgStyles || _switch.subMessageStyles || null;
                            opts.watermark = _switch.watermark || null;
                            opts.sticky = _switch.sticky || null;
                            opts.switch = true;
                            opts.behavior = _behavior;
                            opts.behaviorOptions = _behaviorOptions;
                            opts.location = _location;
                            o.showTwoStep.init(opts, oldPromptFunction);
                        };
                    } else {
                        newPromptFunction = function(opts){
                            if (!opts) opts = {};
                            opts.advancedStyle = _traditional && _traditional.advancedStyle || null;
                            if (_advanced && _advanced.enabled) o.showOverlay({aggressive: _advanced, advancedStyle: opts.advancedStyle}); // Advanced
                            opts.qnp = _qnp;
                            opts.logo = _traditional && _traditional.logo || null;
                            opts.logoStyles = _traditional && _traditional.logoStyles || null;
                            opts.closeButton = _traditional && _traditional.closeButton || null;
                            opts.containerStyles = _traditional && _traditional.containerStyles || null;
                            opts.message = opts && opts.tsMsg || _traditional && _traditional.message || "Get Alert Notifications Personalized for You";
                            opts.messageStyles = opts && opts.tsMsgStyles || _traditional && _traditional.messageStyles || null;
                            opts.subMessage = opts && opts.tsSubMsg || _traditional && _traditional.subMessage || "";
                            opts.subMessageStyles = opts && opts.tsSubMsgStyles || _traditional && _traditional.subMessageStyles || null;
                            opts.sticky = _traditional && _traditional.sticky || null;
                            opts.buttonContainerStyles = _traditional && _traditional.buttonContainerStyles || null;
                            opts.allow = _traditional && _traditional.allow || "Allow";
                            opts.allowStyles = _traditional && _traditional.allowStyles || null;
                            opts.block = _traditional && _traditional.block || "Block";
                            opts.blockStyles = _traditional && _traditional.blockStyles || null;
                            opts.watermark = _traditional && _traditional.watermark || null;
                            opts.switch = false;
                            opts.behavior = _behavior;
                            opts.behaviorOptions = _behaviorOptions;
                            opts.location = _location;
                            o.showTwoStep.init(opts, oldPromptFunction);
                        };
                    }
                }

                if (_delay && parseInt(_delay) > 0 && setTimeout) {
                    /* Track an event showing that we delayed an opt-in prompt for this website.
                       NOTE: This is delayed to ensure that `window.Pushnami` is defined when `getUrlParams` is called. */
                    var trackOptinDelayStatistic = function() {
                        var _paramsTemp = getUrlParams(),
                            trackingOpts = {
                                event: 'webpush-optin-delay-initiated',
                                scope: 'Website',
                                scopeId: websiteId
                            };
                        supportedTags.forEach(function(tag) {
                            if (_paramsTemp && _paramsTemp[tag]) trackingOpts[tag] = _paramsTemp[tag];
                        });
                        pushnamiTrack(trackingOpts);
                    };
                    setTimeout(trackOptinDelayStatistic, 0);

                    // Override the prompt function with one that delays the original prompt function
                    newPromptFunction = (function(fnToDelay, delayMillis) {
                        return function(opts) {
                            setTimeout(
                                function() { fnToDelay(opts); },
                                delayMillis
                            );
                        };
                    })(newPromptFunction, parseInt(_delay));
                }

                // Some android strategy behavior options can be completely ignored if the user has already accepted the two-step opt-in
                if (!twoStepAlreadyAccepted) {
                    if (androidStrategyHandler.behaviorOptionsSatisfied('showTriggers', _behaviorOptions, 'on_scroll_activity')) {
                        /* NOTICE: Not all browsers support "addEventListener" and furthermore those that do may not support some
                         of the newer features such as "capture", "once", "passive", etc.  Because of this, please attempt
                         to use the simplest possible form of "addEventListener" if it can be used at all! */
                        if (window && window.addEventListener) {
                            /* The prompt should only be shown once the user scrolls down the page, regardless of how many times
                             or when the prompt function is called. */
                            newPromptFunction = (function(fnToDelayUntilScroll) {
                                var registeredScrollFn = null;
                                return function(opts) {
                                    if (!registeredScrollFn) {
                                        registeredScrollFn = function() {
                                            window.removeEventListener('scroll', registeredScrollFn);
                                            registeredScrollFn = null;
                                            fnToDelayUntilScroll(opts);
                                        };
                                        window.addEventListener('scroll', registeredScrollFn);
                                    }
                                }
                            })(newPromptFunction);
                        }
                    }

                    if (androidStrategyHandler.behaviorOptionsSatisfied('dismissalTriggers', _behaviorOptions, 'on_scroll_activity')) {
                        newPromptFunction = (function(promptFn) {
                            var registeredScrollFn = null;
                            return function(opts) {
                                promptFn(opts);
                                registeredScrollFn = function() {
                                    window.removeEventListener('scroll', registeredScrollFn);
                                    registeredScrollFn = null;
                                    if (window && window.tsDismissAction) {
                                        window.tsDismissAction();
                                    }
                                };
                                /* We need to wait a short moment before binding the event handler otherwise scrolling
                                 during initial page load may cause problems (such as missing the "tsDismissAction"
                                 on the window because resources are still loading). */
                                setTimeout(function() {
                                    window.addEventListener('scroll', registeredScrollFn);
                                }, 500);
                            };
                        })(newPromptFunction);
                    }

                    if (androidStrategyHandler.behaviorOptionsSatisfied('dismissalTriggers', _behaviorOptions, 'on_click_outside')) {
                        newPromptFunction = (function(promptFn) {
                            var registeredClickFn = null,
                                isDescendant = function(parent, child) {
                                    if (parent === child) {
                                        return true;
                                    }
                                    var node = child.parentNode;
                                    while (node !== null) {
                                        if (node === parent) {
                                            return true;
                                        }
                                        node = node.parentNode;
                                    }
                                    return false;
                                };
                            return function(opts) {
                                promptFn(opts);
                                registeredClickFn = function(event) {
                                    // Check if the user clicked on our two-step prompt
                                    var clickTarget = event && event.target;
                                    if (clickTarget) {
                                        var twoStepContainer = document.getElementById('push-popup-container');
                                        if (!twoStepContainer || !isDescendant(twoStepContainer, clickTarget)) {
                                            //Yep, the user clicked outside of the two-step modal, so dismiss it!
                                            window.removeEventListener('click', registeredClickFn);
                                            registeredClickFn = null;
                                            if (window && window.tsDismissAction) {
                                                window.tsDismissAction();
                                            }
                                        }
                                    }
                                };
                                /* We will wait a very short amount of time so that we don't register immediate clicks
                                   due to the user not realizing the two-step modal has just been shown. */
                                setTimeout(function() {
                                    window.addEventListener('click', registeredClickFn);
                                }, 500);
                            };
                        })(newPromptFunction);
                    }
                }

                if (androidStrategyHandler.behaviorOptionsSatisfied('overlayOptions', _behaviorOptions, 'never_show')) {
                    if (sessionStorage) {
                        sessionStorage.setItem('hide-overlay', 'true');
                    }
                }

                if (androidStrategyHandler.behaviorOptionsSatisfied('overlayOptions', _behaviorOptions, 'show_every_visit')) {
                    if (sessionStorage) {
                        sessionStorage.removeItem('hide-overlay');
                    }
                }

                if (androidStrategyHandler.behaviorOptionsSatisfied('overlayOptions', _behaviorOptions, 'show_once_per_n_days')) {
                    if (sessionStorage) {
                        sessionStorage.removeItem('hide-overlay');
                    }
                }

                o.prompt = newPromptFunction
            }
        };

        o.ash = androidStrategyHandler;
        // Initialize the Strategy Handler to patch the prompt function
        // Note - APN routines will call this function directly
        if (!isOSXSafari) {
            androidStrategyHandler.init();
        }

        // End androidStrategy 

        // start psfp 

        var psfp = {
            data: null,
            build: function () {
                // Mark status as pending
                var pspStatus = localStorage.getItem('pushnami-psp-status');
                if (pspStatus !== 'incomplete') {
                    localStorage.setItem('pushnami-psp-status', 'pending');
                }

                // zendesk/cross-storage (client)
                // https://github.com/zendesk/cross-storage/blob/master/dist/client.min.js
                !function(e){function t(e,r){r=r||{},this._id=t._generateUUID(),this._promise=r.promise||Promise,this._frameId=r.frameId||"CrossStorageClient-"+this._id,this._origin=t._getOrigin(e),this._requests={},this._connected=!1,this._closed=!1,this._count=0,this._timeout=r.timeout||5e3,this._listener=null,this._installListener();var o;r.frameId&&(o=document.getElementById(r.frameId)),o&&this._poll(),o=o||this._createFrame(e),this._hub=o.contentWindow}t.frameStyle={display:"none",position:"absolute",top:"-999px",left:"-999px"},t._getOrigin=function(e){var t,r,o;return t=document.createElement("a"),t.href=e,t.host||(t=window.location),r=t.protocol&&":"!==t.protocol?t.protocol:window.location.protocol,o=r+"//"+t.host,o=o.replace(/:80$|:443$/,"")},t._generateUUID=function(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(e){var t=16*Math.random()|0,r="x"==e?t:3&t|8;return r.toString(16)})},t.prototype.onConnect=function(){var e=this;return this._connected?this._promise.resolve():this._closed?this._promise.reject(new Error("CrossStorageClient has closed")):(this._requests.connect||(this._requests.connect=[]),new this._promise(function(t,r){var o=setTimeout(function(){r(new Error("CrossStorageClient could not connect"))},e._timeout);e._requests.connect.push(function(e){return clearTimeout(o),e?r(e):(t(),void 0)})}))},t.prototype.set=function(e,t){return this._request("set",{key:e,value:t})},t.prototype.get=function(){var e=Array.prototype.slice.call(arguments);return this._request("get",{keys:e})},t.prototype.del=function(){var e=Array.prototype.slice.call(arguments);return this._request("del",{keys:e})},t.prototype.clear=function(){return this._request("clear")},t.prototype.getKeys=function(){return this._request("getKeys")},t.prototype.close=function(){var e=document.getElementById(this._frameId);e&&e.parentNode.removeChild(e),window.removeEventListener?window.removeEventListener("message",this._listener,!1):window.detachEvent("onmessage",this._listener),this._connected=!1,this._closed=!0},t.prototype._installListener=function(){var e=this;this._listener=function(t){var r,o,n,s;if(!e._closed&&t.data&&"string"==typeof t.data&&(o="null"===t.origin?"file://":t.origin,o===e._origin))if("cross-storage:unavailable"!==t.data){if(-1!==t.data.indexOf("cross-storage:")&&!e._connected){if(e._connected=!0,!e._requests.connect)return;for(r=0;r<e._requests.connect.length;r++)e._requests.connect[r](n);delete e._requests.connect}if("cross-storage:ready"!==t.data){try{s=JSON.parse(t.data)}catch(i){return}s.id&&e._requests[s.id]&&e._requests[s.id](s.error,s.result)}}else{if(e._closed||e.close(),!e._requests.connect)return;for(n=new Error("Closing client. Could not access localStorage in hub."),r=0;r<e._requests.connect.length;r++)e._requests.connect[r](n)}},window.addEventListener?window.addEventListener("message",this._listener,!1):window.attachEvent("onmessage",this._listener)},t.prototype._poll=function(){var e,t,r;e=this,r="file://"===e._origin?"*":e._origin,t=setInterval(function(){return e._connected?clearInterval(t):(e._hub&&e._hub.postMessage("cross-storage:poll",r),void 0)},1e3)},t.prototype._createFrame=function(e){var r,o;r=window.document.createElement("iframe"),r.id=this._frameId;for(o in t.frameStyle)t.frameStyle.hasOwnProperty(o)&&(r.style[o]=t.frameStyle[o]);return document.body.appendChild(r),r.src=e,r},t.prototype._request=function(e,t){var r,o;return this._closed?this._promise.reject(new Error("CrossStorageClient has closed")):(o=this,o._count++,r={id:this._id+":"+o._count,method:"cross-storage:"+e,params:t},new this._promise(function(e,t){var n,s,i;n=setTimeout(function(){o._requests[r.id]&&(delete o._requests[r.id],t(new Error("Timeout: could not perform "+r.method)))},o._timeout),o._requests[r.id]=function(s,i){return clearTimeout(n),delete o._requests[r.id],s?t(new Error(s)):(e(i),void 0)},Array.prototype.toJSON&&(s=Array.prototype.toJSON,Array.prototype.toJSON=null),i="file://"===o._origin?"*":o._origin,o._hub.postMessage(JSON.stringify(r),i),s&&(Array.prototype.toJSON=s)}))},e.CrossStorageClient=t}(window);

                window.pushnamiStorage = new window.CrossStorageClient('https://api.pushnami.com/scripts/v1/hub');

                // Generate UUID
                !function(e){window.uuid=e()}(function(){return function e(n,r,o){function t(u,f){if(!r[u]){if(!n[u]){var a="function"==typeof require&&require;if(!f&&a)return a(u,!0);if(i)return i(u,!0);var s=new Error("Cannot find module '"+u+"'");throw s.code="MODULE_NOT_FOUND",s}var d=r[u]={exports:{}};n[u][0].call(d.exports,function(e){var r=n[u][1][e];return t(r?r:e)},d,d.exports,e,n,r,o)}return r[u].exports}for(var i="function"==typeof require&&require,u=0;u<o.length;u++)t(o[u]);return t}({1:[function(e,n,r){var o=e("./v1"),t=e("./v4"),i=t;i.v1=o,i.v4=t,n.exports=i},{"./v1":4,"./v4":5}],2:[function(e,n,r){function o(e,n){var r=n||0,o=t;return[o[e[r++]],o[e[r++]],o[e[r++]],o[e[r++]],"-",o[e[r++]],o[e[r++]],"-",o[e[r++]],o[e[r++]],"-",o[e[r++]],o[e[r++]],"-",o[e[r++]],o[e[r++]],o[e[r++]],o[e[r++]],o[e[r++]],o[e[r++]]].join("")}for(var t=[],i=0;i<256;++i)t[i]=(i+256).toString(16).substr(1);n.exports=o},{}],3:[function(e,n,r){var o="undefined"!=typeof crypto&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto)||"undefined"!=typeof msCrypto&&"function"==typeof window.msCrypto.getRandomValues&&msCrypto.getRandomValues.bind(msCrypto);if(o){var t=new Uint8Array(16);n.exports=function(){return o(t),t}}else{var i=new Array(16);n.exports=function(){for(var e,n=0;n<16;n++)0===(3&n)&&(e=4294967296*Math.random()),i[n]=e>>>((3&n)<<3)&255;return i}}},{}],4:[function(e,n,r){function o(e,n,r){var o=n&&r||0,d=n||[];e=e||{};var l=e.node||t,c=void 0!==e.clockseq?e.clockseq:i;if(null==l||null==c){var v=u();null==l&&(l=t=[1|v[0],v[1],v[2],v[3],v[4],v[5]]),null==c&&(c=i=16383&(v[6]<<8|v[7]))}var p=void 0!==e.msecs?e.msecs:(new Date).getTime(),y=void 0!==e.nsecs?e.nsecs:s+1,b=p-a+(y-s)/1e4;if(b<0&&void 0===e.clockseq&&(c=c+1&16383),(b<0||p>a)&&void 0===e.nsecs&&(y=0),y>=1e4)throw new Error("uuid.v1(): Can't create more than 10M uuids/sec");a=p,s=y,i=c,p+=122192928e5;var m=(1e4*(268435455&p)+y)%4294967296;d[o++]=m>>>24&255,d[o++]=m>>>16&255,d[o++]=m>>>8&255,d[o++]=255&m;var g=p/4294967296*1e4&268435455;d[o++]=g>>>8&255,d[o++]=255&g,d[o++]=g>>>24&15|16,d[o++]=g>>>16&255,d[o++]=c>>>8|128,d[o++]=255&c;for(var w=0;w<6;++w)d[o+w]=l[w];return n?n:f(d)}var t,i,u=e("./lib/rng"),f=e("./lib/bytesToUuid"),a=0,s=0;n.exports=o},{"./lib/bytesToUuid":2,"./lib/rng":3}],5:[function(e,n,r){function o(e,n,r){var o=n&&r||0;"string"==typeof e&&(n="binary"===e?new Array(16):null,e=null),e=e||{};var u=e.random||(e.rng||t)();if(u[6]=15&u[6]|64,u[8]=63&u[8]|128,n)for(var f=0;f<16;++f)n[o+f]=u[f];return n||i(u)}var t=e("./lib/rng"),i=e("./lib/bytesToUuid");n.exports=o},{"./lib/bytesToUuid":2,"./lib/rng":3}]},{},[1])(1)});

                var uuid_v4 = uuid.v4();

                // Grab PSFP or UUID (if it doesn't exist)
                var getUUID = window.pushnamiStorage.onConnect()
                    .then(function() {
                        // Retrieve keys
                        //   psfp: 59ec6cf417cd4c4f63cb4f89faeeddce - psid for account-level subscriber
                        //   pdid: uuid

                        return window.pushnamiStorage.get('psfp:59ec6cf417cd4c4f63cb4f89faeeddce', 'pdid');
                    })
                    .then(function(res) {
                        // Process storage contents

                        var hidePrompt = res && res[0];
                        var pdid = res && res[1];

                        return {key: pdid, hidePrompt: !!hidePrompt}
                    })
                    .then(function(res) {
                        // Set the uuid for new subscribers

                        if (res.key) return res;
                        return window.pushnamiStorage.set('pdid', uuid_v4)
                            .then(function(){
                                res.key = uuid_v4;
                                return res;
                            });
                    })
                    .catch(function(err) {
                        pushWrap.report(err);
                        return null;
                    });

                // start psfpv2 

                if (typeof fetch !== 'function') return;

                // start psfpv4 
                // 
getUUID = getUUID.then(function(res) {
    return new Promise(function(resolve) {
        try {
            var psfp = res && res.key;
            var crc32 = function(r){for(var a,o=[],c=0;c<256;c++){a=c;for(var f=0;f<8;f++)a=1&a?3988292384^a>>>1:a>>>1;o[c]=a}for(var n=-1,t=0;t<r.length;t++)n=n>>>8^o[255&(n^r.charCodeAt(t))];return(-1^n)>>>0};
            var pspl = crc32(psfp) % 10;
            var allowedSplits = [
                0,1,2,3,4,5,6,7,8,9
            ];
            if ((pspl === 0 || pspl) && (allowedSplits.indexOf(pspl) > -1 || allowedSplits.indexOf('all') > -1)) {    
                // load psfp script and wait
                var script = document.createElement("script");
                script.type = "text/javascript";
                script.src = "https://cdn.pushnami.com/js/exp/psfpv4_client_1.136.0_a0691e6e53e4fef184d7e40de6e900062ea56958de08ca655c27679b9ca8e878.js";
                script.onload = function () {
                    Psfp.compute(res && res.key)
                        .then(function(psfp) {
                            if (!psfp) {
                                return resolve(res);
                            }
                            res.psfpv4 = psfp;
                            return resolve(res);
                        })
                        .catch(function() {
                            return resolve(res);
                        });
                };
                script.onerror = function () {
                    return resolve(res);
                };
                document.getElementsByTagName("head")[0].appendChild(script);
            } else {
                return resolve(res);    
            }
        } catch (err) {
            // log error
            return resolve(res);
        }
    });
});
                // end psfpv4 
                // start psfpv5 
                // 
getUUID = getUUID.then(function(res) {
    return new Promise(function(resolve) {
        try {
            var testMode = 'true' === 'true';
            if (testMode) {
                var urlContainsTestParam = window.location.href.indexOf('pnpsfpv5') !== -1;
                if (!urlContainsTestParam) {
                    return resolve(res);
                }
            }
            var mintDomain = 'PSP.pushnami.com';
            fetch('https://' + mintDomain + '/v5/auth', {
                credentials: 'include'
            })
            .then(function(response) {
                if (!response.ok) {
                    throw new Error('Auth failed: ' + response.status);
                }
                return response.json();
            })
            .then(function(result) {
                if (result && result.psfp) {
                    try {
                        if (typeof window !== 'undefined' && window.localStorage) {
                            window.localStorage.setItem('pushnami-psfp', result.psfp);
                        }
                    } catch (e) {}
                    
                    res.psfpv5 = result.psfp;
                }
                return resolve(res);
            })
            .catch(function() {
                return resolve(res);
            });
        } catch (err) {
            return resolve(res);
        }
    });
});

                // end psfpv5 
                // start fraudDetection 

                getUUID.then(function(res) {
                    if (!res || !res.key) return null;

                    var tblaRegex = document.cookie && /trc_cookie_storage=taboola%2520global%253Auser-id%3D(.*?)(;|$)/.exec(document.cookie);
                    var tbla = tblaRegex && tblaRegex[1] || '';
                    var psfp = res.key;

                    // start psfpv4 
                    if (res.psfpv4) {
                        psfp = res.psfpv4;
                    }
                    // end psfpv4 
                    // start psfpv5 
                    if (res.psfpv5) {
                        psfp = res.psfpv5;
                    }
                    // end psfpv5 
                    var pspBody = 'psp=' + psfp + '&tbla=' + tbla;

                    // start psfpv4/psfpv5 
                    if ((res.psfpv4 || res.psfpv5) && res.key) {
                        pspBody += '&altPsfp=' + res.key;
                    }
                    // end psfpv4/psfpv5 

                    // Check if we can report psid to maximize psfp coverage
                    var psfpStatus = localStorage.getItem('pushnami-psp-status');
                    if (psfpStatus === 'incomplete') {
                        var psid = localStorage.getItem("pushnamiSubscriberId");
                        if (psid) {
                            pspBody += '&psid='+psid;

                            // Remove the key for now
                            localStorage.removeItem('pushnami-psp-status');
                        }
                    }

                    // start fraudDetection 

                    // Visit Tracking 

                    // start tbid-visit 

                    // Ecommerce Browse Abandonment 

                    // ddomain tracking 

                    // Adds psfp to localstorage for sms/email optin upon Shopify checkout
                    localStorage.setItem('pushnami-psfp', res.key);

                    return fetch('https://psp.pushnami.com/api/psp', {
                        method: 'POST',
                        body: encodeURI(pspBody),
                        mode: 'cors',
                        redirect: 'follow',
                        headers: new Headers({
                            'Accept': 'application/json, text/plain, */*',
                            'Content-Type': 'application/x-www-form-urlencoded',
                            'key': '60eeeecc6fa2b800105569f0'
                        })
                    }).then(function(response) {
                        try {
                            response.json()
                                .then(function(responseJson) {
                                    var pspBundlesBaseUrl = "https://cdn.pushnami.com/js/modules";
                                    if (responseJson && responseJson.success && responseJson.loadBundle && pspBundlesBaseUrl) {
                                        var bundles = responseJson.loadBundle;
                                        for (var bundleIdx = 0; bundleIdx < bundles.length; bundleIdx++) {
                                            var bundlePath = bundles[bundleIdx];
                                            var bundleScript = document.createElement("script");
                                            bundleScript.type = "text/javascript";
                                            bundleScript.src = pspBundlesBaseUrl + bundlePath;
                                            document.getElementsByTagName("head")[0].appendChild(bundleScript);
                                            pushnamiTrack({ event: 'psp-bundle-loaded', scope: 'Website', scopeId: '60eeeecc6fa2b800105569ef' });
                                        }
                                    }
                                })
                                .catch(function () { /* silently discard the error */ });
                        } catch(e) { /* silently discard the error */ }
                    }).then(function(){
                        return res
                    }).catch(function(err){
                        pushWrap.report({ msg: "PSP Error", err: err && err.toString() });
                    });
                });

                // End psfpv2 

                return getUUID.catch(function(err) {
                    pushWrap.report(err);
                    return null;
                });


            },
            check: function () {
                return psfp.build()
                    .then(function(res){
                        if (!res) return true;
                        var key = res.key;
                        var hidePrompt = res.hidePrompt;
                        psfp.data =key;
                        if (res.psfpv5) {
                            psfp.psfpv5 = res.psfpv5;
                        } else if (res.psfpv4) {
                            psfp.psfpv4 = res.psfpv4;
                        }
                        return !hidePrompt;
                    });
            },
            done: null
        };

        // Start Running Immediately
        psfp.done = (function(){
            // Wait for document to be loaded
            if (document.readyState === "complete"){
                return psfp.check();
            } else {
                return (new Promise(function(resolve, reject){
                    window.addEventListener('load', resolve);

                })).then(psfp.check)
            }
        })();
        o.psfp = psfp;
        // End PSFP 
        pushWrap.wrapObj(o);
        return o;
    })(window);

    // start inPagePush 

    //Try and show the socialpush opt-in depending on the events that occur with the webpush opt-in
    Pushnami.on([
        'permissions-not-compatible',
        'permissions-not-showing'
    ], function () {
        var promptEvent = 'webpush-optin-cannot-be-shown';
        showFbChkOptIn(promptEvent);
        mailnamiPromptModule.init({promptEvent: promptEvent});
    });
    Pushnami.on('permissions-failed', function() {
        var promptEvent = 'webpush-optin-failed';
        showFbChkOptIn(promptEvent);
        mailnamiPromptModule.init({promptEvent: promptEvent});
    });
    Pushnami.on([
        'permissions-action-subscribed',
        'permissions-action-apn-subscribed'
    ], function () {
        var promptEvent = 'webpush-optin-subscribed';
        showFbChkOptIn(promptEvent);
        mailnamiPromptModule.init({promptEvent: promptEvent});
    });
    /* This code is originally taken from opt-in.js, responsible for hiding the overlay. Loading the
     pushnami-iframe-subscribe-template file (for deep-path configuration) overwrites the existing Pushnami callbacks
     that were created on page-load, with the functions that occur on this page.  In this event we will need to
     get the parent document that houses this iframe, lookup the two-step overlay element, and the hide it. */
    Pushnami.on([
        'permissions-action-subscribed',
        'permissions-failed',
        'permissions-not-showing',
        'permissions-prompt-granted',
        'permissions-prompt-denied',
        'permissions-prompt-action-deny',
        'permissions-blocked-ignored',
        'permissions-two-step-granted',
        'permissions-two-step-blocked'
    ], function () {
        try {
            /* TODO: This code will most likely need to be refactored for clients that want to use a deep-path configuration
             (our special iframe opt-in logic) so that it properly supports behavior options for android strategies.

             For example, we just hide the overlay in this code, but what can happen for an android strategy is that
             the overlay may continue to show (and get updated) when the native opt-in is shown after a two-step opt-in
             is allowed.  Our advanced overlay implementations handle this by checking the value of
             "Pushnami.showTwoStep.persistOverlayOnNativePrompt".

             For now I am NOT going to attempt to refactor this because we don't have such a requirement for our
             android behavior options featureset. */
            var parentDocument = window.parent && window !== window.parent && window.parent.document;
            if (parentDocument && parentDocument.getElementById) {
                var po = parentDocument.getElementById('push-overlay');
                if (po) {
                    po.style.display = 'none';  // hide main div if users post an event
                }
            }
        } catch (err) {
            if (isRollbar) Rollbar.warn("Failed to close parent document's push-overlay");
        }
    });
} catch (err) {
    if (typeof Pushnami === "undefined"){
        var o = {setVariables: function () {return o},convert: function () {return o},on: function () {return o},fire: function () {return o},update: function () {return o},enroll: function () {return o},unenroll: function () {return o},clear: function () {return o},showOverlay: function () {return o},prompt: function () {return o},getPSID: function () {return o},unsubscribe: function () {return o}};
        Pushnami = o;
    }
    pushWrap.report(err);
}
