Socket
Socket
Sign inDemoInstall

@fingerprintjs/fingerprintjs-pro

Package Overview
Dependencies
2
Maintainers
2
Versions
61
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 3.0.0-beta.3 to 3.0.0

4

dist/fp.cjs.min.js
/**
* FingerprintJS Pro v3.0.0-beta.3 - Copyright (c) FingerprintJS, Inc, 2020 (https://fingerprintjs.com)
* FingerprintJS Pro v3.0.0 - Copyright (c) FingerprintJS, Inc, 2020 (https://fingerprintjs.com)
*

@@ -8,2 +8,2 @@ * This software contains code from open-source projects:

"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var t=require("tslib"),e=require("@fingerprintjs/fingerprintjs");function n(t,e){return new Promise((n=>setTimeout((()=>n(e)),t)))}function i(e,i,r){return t.__awaiter(this,void 0,void 0,(function*(){const t=yield Promise.race([n(i,[!0]),("function"==typeof e?e():e).then((t=>[!1,t]))]);return t[0]?null==r?void 0:r():t[1]}))}function r(e){return t.__awaiter(this,void 0,void 0,(function*(){let n;try{n=yield function(e,n){var{timeout:r}=n,o=t.__rest(n,["timeout"]);return t.__awaiter(this,void 0,void 0,(function*(){let t="undefined"==typeof AbortController?void 0:new AbortController;return i(fetch(e,Object.assign(Object.assign({},o),{signal:null==t?void 0:t.signal})),r,(()=>{throw null==t||t.abort(),new DOMException("The request timed out.","TimeoutError")}))}))}("https://api.sjpf.io",{timeout:e})}catch(o){switch(o.name){case"AbortError":throw new Error("Abort");case"TimeoutError":throw new Error("Timeout");default:throw new Error("Connection error")}}const r=yield n.text();if(200===n.status)return r;throw new Error(r.slice(0,255))}))}const o="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",s=o.length;function a(t="us",e){if(e)return/^(https?:)?\/\//i.test(e)?e:"https://"+e;let n="api.fpjs.io";return"us"!==t&&(n=`${t}.${n}`),"https://"+n}function u(e){var{endpoint:n,extendedResult:i,debug:r}=e,a=t.__rest(e,["endpoint","extendedResult","debug"]);return t.__awaiter(this,void 0,void 0,(function*(){const e=function(t){let e="";for(let n=0;n<t;n++)e+=o.charAt(Math.random()*s);return e}(20),u=function({components:t,token:e,visitorId:n,tag:i,ipResolution:r,extendedResult:o,linkedId:s,tls:a,tlsError:u,requestId:v}){const _=Object.keys(t).reduce(((e,n)=>e+t[n].duration),0),h="full"===r?2:1;return{rid:v,cv:"3.0.0-beta.3",c:e,url:location.href,d:_,vid:n[0]||n[1]||void 0,ls:n[1]?1:void 0,t:c(i),i:h,cbd:o?1:void 0,lid:s,cr:document.referrer||void 0,j:a,je:null==u?void 0:u.message,k1:d(t.osCpu),k2:d(t.languages),k3:d(t.colorDepth),k4:d(t.deviceMemory),k5:d(t.screenResolution),k6:d(t.availableScreenResolution,void 0,[]),k7:d(t.hardwareConcurrency),k8:d(t.timezoneOffset),k9:d(t.timezone),k10:l(d(t.sessionStorage)),k11:l(d(t.localStorage)),k12:l(d(t.indexedDB)),k13:l(d(t.openDatabase)),k14:d(t.cpuClass),k15:d(t.platform),k16:d(t.plugins,[]),k17:f(t.canvas),k18:0,k19:d(t.touchSupport),k20:d(t.fonts,[]),k21:d(t.audio,-1),k22:l(d(t.pluginsSupport)),k23:d(t.productSub),k24:d(t.emptyEvalLength),k25:l(d(t.errorFF)),k26:l(d(t[0])),k27:d(t.vendor),k28:l(d(t.chrome)),k29:l(d(t[1])),k30:l(d(t[2])),k31:l(d(t[3],!1)),k32:l(d(t.cookiesEnabled,!1)),k33:l(d(t[4]))}}(Object.assign({extendedResult:i,requestId:e},a));return function(e,n,i,r){return t.__awaiter(this,void 0,void 0,(function*(){const o=yield e.text();let s;try{s=JSON.parse(o)}catch(a){}if(r&&console.log(`Visitor response status: ${e.status}\nVisitor response body:\n\`\`\`json\n${void 0===s?o:JSON.stringify(s,void 0,2)}\n\`\`\``),404===e.status||e.status>=500)throw new Error(e.statusText);if(void 0===s)throw new Error(o);if(function(t){return t&&"object"==typeof t&&"string"==typeof t.visitorId&&"n/a"!==t.visitorId}(s))return function(e){const n=e,{botProbability:i}=n,r=t.__rest(n,["botProbability"]),o=Object.assign({},r);i&&(o.bot={probability:i});return o}(s);if(function(t){return t&&"object"==typeof t&&"n/a"===t.visitorId}(s)){if("Not available for crawl bots"===s.reason||"Not available when User-Agent is unspecified"===s.reason)return function(t,e,n){const i={requestId:e,visitorFound:!1,visitorId:""};if(!n)return i;const r=Object.assign(Object.assign({},i),{bot:{probability:1},incognito:!1,browserName:"n/a",browserVersion:"n/a",device:"n/a",ip:"n/a",ipLocation:{},os:"n/a",osVersion:"n/a"});"Not available for crawl bots"===t&&(r.bot.safe=!0);return r}(s.reason,n,i);throw new Error(s.reason)}throw new Error(o)}))}(yield function(e,n,i){return t.__awaiter(this,void 0,void 0,(function*(){i&&console.log(`Visitor request:\n\`\`\`json\n${JSON.stringify(n,void 0,2)}\n\`\`\``);const t=JSON.stringify(n);try{return yield fetch(e,{method:"POST",body:t,headers:{"Content-Type":"text/plain"},credentials:"include"})}catch(r){throw new Error("AbortError"===r.name?"Network request aborted":"Network connection error")}}))}(n,u,r),e,i,r)}))}function c(t){return t&&"object"==typeof t?t:null!=t?{tag:t}:void 0}function d(t,e,n){var i;return t.error?e:null!==(i=t.value)&&void 0!==i?i:n}function l(t){return!0===t?1:!1===t?0:t}function f({value:t}){if(t)return Object.assign(Object.assign({},t),{data:e.murmurX64Hash128(t.data)})}const v=window,_=document;const h=window;const p=navigator,w=window;const g=window,m=navigator;const b=[[function(){return e.isChromium()},function(){return t.__awaiter(this,void 0,void 0,(function*(){return function(){const t=p.userAgent.match(/Chrom(e|ium)\/([0-9]+)\./);if(!t)throw"UserAgent is not Google Chrome";return parseInt(t[2],10)}()>=76?function(){return t.__awaiter(this,void 0,void 0,(function*(){if("storage"in p&&"estimate"in p.storage){const{quota:t}=yield p.storage.estimate();return!!t&&t<function(){var t,e,n;const i=(null===(t=p.userAgent)||void 0===t?void 0:t.indexOf("Mac OS"))>0&&-1===(null===(e=p.userAgent)||void 0===e?void 0:e.indexOf("iPhone")),r=(null===(n=p.userAgent)||void 0===n?void 0:n.indexOf("CrOS"))>0;return i||r?3221225472:1073741824}()}return!1}))}():new Promise((t=>{w.webkitRequestFileSystem(0,1,(()=>t(!1)),(()=>t(!0)))}))}))}],[function(){return/Apple/.test(m.vendor)&&/Safari/.test(m.userAgent)},function(){return t.__awaiter(this,void 0,void 0,(function*(){return function(){const t=navigator.userAgent.match(/Version\/([0-9._]+).*Safari/);if(!t)throw new Error("UserAgent is not Safari");const e=t[1].split("."),[n,i,r]=e.map((t=>isNaN(parseInt(t))?0:parseInt(t)));return{major:n,minor:i,patch:r}}().major<13?function(){try{g.openDatabase(null,null,null,null)}catch(t){return!0}try{return g.localStorage.setItem("test","1"),g.localStorage.removeItem("test"),!1}catch(t){return!0}}():function(){return t.__awaiter(this,void 0,void 0,(function*(){return e.isDesktopSafari()?function(){try{g.safari.pushNotification.requestPermission("https://example.com","private",{},(()=>{}))}catch(e){return t=e,!new RegExp([103,101,115,116,117,114,101].map((t=>String.fromCharCode(t))).join("")).test(t)}var t;throw new Error("Unexpected lack of error")}():function(){return t.__awaiter(this,void 0,void 0,(function*(){const t=document.createElement("iframe");t.style.display="none";try{return document.body.appendChild(t),i(new Promise((e=>{t.contentWindow?t.contentWindow.applicationCache.addEventListener("error",(()=>e(!0))):e(!1)})),20,(()=>!1))}finally{t.remove()}}))}()}))}()}))}],[function(){return e.isGecko()},function(){return t.__awaiter(this,void 0,void 0,(function*(){return new Promise((t=>{try{const e=h.indexedDB.open("test");e.onerror=()=>t(!0),e.onsuccess=()=>t(!1)}catch(e){return t(!0)}}))}))}],[function(){return e.isIEOrOldEdge()},function(){try{if(!window.indexedDB)return!0}catch(t){return!0}return!1}]];function y(t,e){if(0==e.length||e.length>t.length)return-1;for(let n=0;n<t.length;n++){let i=0;for(let r=0;r<e.length;r++){if(t[n+r]!==e[r]){i=0;break}i++}if(i==e.length)return n}return-1}const k=window,E=document;const R={0:function(){return void 0!==navigator.webdriver},1:function(){return navigator.permissions.query({name:"notifications"}).then((function(t){return"denied"===Notification.permission&&"prompt"===t.state}))},2:function(){const{documentElement:t}=_;return"webdriver"in v||"_Selenium_IDE_Recorder"in v||"callSelenium"in v||"_selenium"in v||"__webdriver_script_fn"in _||"__driver_evaluate"in _||"__webdriver_evaluate"in _||"__selenium_evaluate"in _||"__fxdriver_evaluate"in _||"__driver_unwrapped"in _||"__webdriver_unwrapped"in _||"__selenium_unwrapped"in _||"__fxdriver_unwrapped"in _||"__webdriver_script_func"in _||null!==t.getAttribute("selenium")||null!==t.getAttribute("webdriver")||null!==t.getAttribute("driver")},3:function(){return t.__awaiter(this,void 0,void 0,(function*(){const e=function(){try{const t=localStorage.getItem("_inc");if(!t)return;return"1"===t}catch(t){return}}();if(void 0!==e)return e;try{const e=yield function(){return t.__awaiter(this,void 0,void 0,(function*(){for(const[t,e]of b)if(t())return yield e();return!1}))}();return function(t){try{localStorage.setItem("_inc",t?"1":"0")}catch(e){}}(e),e}catch(n){return!1}}))},4:function(){if(!e.isChromium())return!1;try{if([66,114,97,118,101].map((t=>String.fromCharCode(t))).join("")in k)return!0;const t=E.createElement("canvas");t.width=4,t.height=4,t.style.display="inline";const e=t.toDataURL();if(""===e)return!0;const n=window.atob(e.split(",")[1]),i=n.length,r=new Uint8Array(i);for(let u=0;u<i;u++)r[u]=n.charCodeAt(u);const o=y(r,[73,68,65,84,24]);if(-1===o)return!1;const s=y(r,[73,69,78,68]);if(-1===o)return!1;const a=r.slice(o+5,s);return 1321!==a.reduce(((t,e)=>t+e),0)}catch(t){return!1}}};const O=document,S=location;function I(t){const e=t+"=";for(const n of O.cookie.split(";")){let t=0;for(;" "===n[t]&&t<n.length;++t);if(n.indexOf(e)===t)return n.slice(t+e.length)}}function x(t,e,n,i){const r=`${t}=${e}`,o="expires="+new Date(Date.now()+24*n*60*60*1e3).toUTCString(),s=i?"domain="+i:"";O.cookie=[r,"path=/",o,s].join("; ")}function j(t,e,n){const i=S.hostname;P(i,(e=>{!function(t,e){x(t,"",-1,e)}(t,e)}));P(i,(i=>(x(t,e,n,i),I(t)!==e)))&&x(t,e,n)}function P(t,e){let n=t.length;do{if(n=n>0?t.lastIndexOf(".",n-1):-1,!1===e(t.slice(n+1)))return!1}while(n>=0);return!0}const{localStorage:N}=window;function T(t="_vid"){return[I(t),C(t)]}function A(t,e="_vid"){j(e,t,365),function(t,e){if(null==N?void 0:N.setItem)try{N.setItem(t,e)}catch(n){}}(e,t)}function C(t){var e;if(null==N?void 0:N.getItem)try{return null!==(e=N.getItem(t))&&void 0!==e?e:void 0}catch(n){}}var F,q,G,M,D,W,U,L;class V{constructor(n,i,o,s,a){F.set(this,void 0),q.set(this,void 0),G.set(this,void 0),M.set(this,void 0),D.set(this,void 0),W.set(this,((e,n)=>t.__awaiter(this,void 0,void 0,(function*(){if(!n)return r(e).then((t=>({tls:t})),(t=>({tlsError:t})))})))),U.set(this,(()=>t.__awaiter(this,void 0,void 0,(function*(){const n=yield t.__classPrivateFieldGet(this,F).get(),i=yield e.getComponents(R,void 0,[]);return Object.assign(Object.assign({},n.components),i)})))),L.set(this,(e=>{const n={token:t.__classPrivateFieldGet(this,q),region:t.__classPrivateFieldGet(this,G),endpoint:t.__classPrivateFieldGet(this,M),storageKey:t.__classPrivateFieldGet(this,D)};console.log(`Getting the visitor identifier:\n\`\`\`\nversion: 3.0.0-beta.3\ninitOptions: ${JSON.stringify(n,void 0,2)}\ngetOptions: ${JSON.stringify(e,void 0,2)}\n\`\`\``)})),t.__classPrivateFieldSet(this,F,n),t.__classPrivateFieldSet(this,q,i),t.__classPrivateFieldSet(this,G,o),t.__classPrivateFieldSet(this,M,s),t.__classPrivateFieldSet(this,D,a)}get(e={}){const{timeout:n=1e4,tag:r,linkedId:o,disableTls:s,extendedResult:c,ipResolution:d,debug:l}=e;return l&&t.__classPrivateFieldGet(this,L).call(this,e),f="Client timeout",i((()=>t.__awaiter(this,void 0,void 0,(function*(){const[e,i]=yield Promise.all([t.__classPrivateFieldGet(this,W).call(this,n/2,s),t.__classPrivateFieldGet(this,U).call(this)]),f=yield u(Object.assign(Object.assign({token:t.__classPrivateFieldGet(this,q),endpoint:a(t.__classPrivateFieldGet(this,G),t.__classPrivateFieldGet(this,M))},e),{components:i,tag:r,visitorId:T(t.__classPrivateFieldGet(this,D)),linkedId:o,extendedResult:c,ipResolution:d,debug:l}));return A(f.visitorId,t.__classPrivateFieldGet(this,D)),f}))),n,(()=>{throw new Error(f)}));var f}}F=new WeakMap,q=new WeakMap,G=new WeakMap,M=new WeakMap,D=new WeakMap,W=new WeakMap,U=new WeakMap,L=new WeakMap;exports.ERROR_BAD_REQUEST_FORMAT="Request cannot be parsed",exports.ERROR_CLIENT_TIMEOUT="Client timeout",exports.ERROR_GENERAL_SERVER_FAILURE="Request failed",exports.ERROR_NETWORK_ABORT="Network request aborted",exports.ERROR_NETWORK_CONNECTION="Network connection error",exports.ERROR_RATE_LIMIT="Too many requests, rate limit exceeded",exports.ERROR_SERVER_TIMEOUT="Request failed to process",exports.ERROR_TOKEN_INVALID="Token not found",exports.ERROR_TOKEN_MISSING="Token required",exports.load=function({token:n,region:i,endpoint:r,storageKey:o,delayFallback:s}){return t.__awaiter(this,void 0,void 0,(function*(){if(!n||"string"!=typeof n)throw new Error("Token required");const t=yield e.load({delayFallback:s});return new V(t,n,i,r,o)}))};
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var t=require("tslib"),e=require("@fingerprintjs/fingerprintjs");function n(t,e){return new Promise((n=>setTimeout((()=>n(e)),t)))}function r(e,r,i){return t.__awaiter(this,void 0,void 0,(function*(){const t=yield Promise.race([n(r,[!0]),("function"==typeof e?e():e).then((t=>[!1,t]))]);return t[0]?null==i?void 0:i():t[1]}))}function i(e){return t.__awaiter(this,void 0,void 0,(function*(){let n;try{n=yield function(e,n){var{timeout:i}=n,o=t.__rest(n,["timeout"]);return t.__awaiter(this,void 0,void 0,(function*(){let t="undefined"==typeof AbortController?void 0:new AbortController;return r(fetch(e,Object.assign(Object.assign({},o),{signal:null==t?void 0:t.signal})),i,(()=>{throw null==t||t.abort(),new DOMException("The request timed out.","TimeoutError")}))}))}("https://api.sjpf.io",{timeout:e})}catch(o){switch(o.name){case"AbortError":throw new Error("Abort");case"TimeoutError":throw new Error("Timeout");default:throw new Error("Connection error")}}const i=yield n.text();if(200===n.status)return i;throw new Error(i.slice(0,255))}))}const o="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",s=o.length;function a(t="us",e){if(e)return/^(https?:)?\/\//i.test(e)?e:"https://"+e;let n="api.fpjs.io";return"us"!==t&&(n=`${t}.${n}`),"https://"+n}function u(e){var{endpoint:n,extendedResult:r,debug:i}=e,a=t.__rest(e,["endpoint","extendedResult","debug"]);return t.__awaiter(this,void 0,void 0,(function*(){const e=function(t){let e="";for(let n=0;n<t;n++)e+=o.charAt(Math.random()*s);return e}(20),u=function({components:t,token:e,visitorId:n,tag:r,ipResolution:i,extendedResult:o,linkedId:s,tls:a,tlsError:u,requestId:_}){const v=Object.keys(t).reduce(((e,n)=>e+t[n].duration),0),h="full"===i?2:1;return{rid:_,cv:"3.0.0",c:e,url:location.href,d:v,vid:n[0]||n[1]||void 0,ls:n[1]?1:void 0,t:c(r),i:h,cbd:o?1:void 0,lid:s,cr:document.referrer||void 0,j:a,je:null==u?void 0:u.message,k1:d(t.osCpu),k2:d(t.languages),k3:d(t.colorDepth),k4:d(t.deviceMemory),k5:d(t.screenResolution),k6:d(t.availableScreenResolution,void 0,[]),k7:d(t.hardwareConcurrency),k8:d(t.timezoneOffset),k9:d(t.timezone),k10:l(d(t.sessionStorage)),k11:l(d(t.localStorage)),k12:l(d(t.indexedDB)),k13:l(d(t.openDatabase)),k14:d(t.cpuClass),k15:d(t.platform),k16:d(t.plugins,[]),k17:f(t.canvas),k18:0,k19:d(t.touchSupport),k20:d(t.fonts,[]),k21:d(t.audio,-1),k22:l(d(t.pluginsSupport)),k23:d(t.productSub),k24:d(t.emptyEvalLength),k25:l(d(t.errorFF)),k26:l(d(t[0])),k27:d(t.vendor),k28:l(d(t.chrome)),k29:l(d(t[1])),k30:l(d(t[2])),k31:l(d(t[3],!1)),k32:l(d(t.cookiesEnabled,!1)),k33:l(d(t[4]))}}(Object.assign({extendedResult:r,requestId:e},a));return function(e,n,r,i){return t.__awaiter(this,void 0,void 0,(function*(){const o=yield e.text();let s;try{s=JSON.parse(o)}catch(a){}if(i&&console.log(`Visitor response status: ${e.status}\nVisitor response body:\n\`\`\`json\n${void 0===s?o:JSON.stringify(s,void 0,2)}\n\`\`\``),404===e.status||e.status>=500)throw new Error(e.statusText);if(void 0===s)throw new Error(o);if(function(t){return t&&"object"==typeof t&&"string"==typeof t.visitorId&&"n/a"!==t.visitorId}(s))return function(e){const n=e,{botProbability:r}=n,i=t.__rest(n,["botProbability"]),o=Object.assign({},i);r&&(o.bot={probability:r});return o}(s);if(function(t){return t&&"object"==typeof t&&"n/a"===t.visitorId}(s)){if("Not available for crawl bots"===s.reason||"Not available when User-Agent is unspecified"===s.reason)return function(t,e,n){const r={requestId:e,visitorFound:!1,visitorId:""};if(!n)return r;const i=Object.assign(Object.assign({},r),{bot:{probability:1},incognito:!1,browserName:"n/a",browserVersion:"n/a",device:"n/a",ip:"n/a",ipLocation:{},os:"n/a",osVersion:"n/a"});"Not available for crawl bots"===t&&(i.bot.safe=!0);return i}(s.reason,n,r);throw new Error(s.reason)}throw new Error(o)}))}(yield function(e,n,r){return t.__awaiter(this,void 0,void 0,(function*(){r&&console.log(`Visitor request:\n\`\`\`json\n${JSON.stringify(n,void 0,2)}\n\`\`\``);const t=JSON.stringify(n);try{return yield fetch(e,{method:"POST",body:t,headers:{"Content-Type":"text/plain"},credentials:"include"})}catch(i){throw new Error("AbortError"===i.name?"Network request aborted":"Network connection error")}}))}(n,u,i),e,r,i)}))}function c(t){return t&&"object"==typeof t?t:null!=t?{tag:t}:void 0}function d(t,e,n){var r;return t.error?e:null!==(r=t.value)&&void 0!==r?r:n}function l(t){return!0===t?1:!1===t?0:t}function f({value:t}){if(t)return Object.assign(Object.assign({},t),{data:e.murmurX64Hash128(t.data)})}const _=window,v=document;const h=window;const p=navigator,w=window;const R=window,g=navigator;const m=[[function(){return e.isChromium()},function(){return t.__awaiter(this,void 0,void 0,(function*(){return function(){const t=p.userAgent.match(/Chrom(e|ium)\/([0-9]+)\./);if(!t)throw"UserAgent is not Google Chrome";return parseInt(t[2],10)}()>=76?function(){return t.__awaiter(this,void 0,void 0,(function*(){if("storage"in p&&"estimate"in p.storage){const{quota:t}=yield p.storage.estimate();return!!t&&t<function(){var t,e,n;const r=(null===(t=p.userAgent)||void 0===t?void 0:t.indexOf("Mac OS"))>0&&-1===(null===(e=p.userAgent)||void 0===e?void 0:e.indexOf("iPhone")),i=(null===(n=p.userAgent)||void 0===n?void 0:n.indexOf("CrOS"))>0;return r||i?3221225472:1073741824}()}return!1}))}():new Promise((t=>{w.webkitRequestFileSystem(0,1,(()=>t(!1)),(()=>t(!0)))}))}))}],[function(){return/Apple/.test(g.vendor)&&/Safari/.test(g.userAgent)},function(){return t.__awaiter(this,void 0,void 0,(function*(){return function(){const t=navigator.userAgent.match(/Version\/([0-9._]+).*Safari/);if(!t)throw new Error("UserAgent is not Safari");const e=t[1].split("."),[n,r,i]=e.map((t=>isNaN(parseInt(t))?0:parseInt(t)));return{major:n,minor:r,patch:i}}().major<13?function(){try{R.openDatabase(null,null,null,null)}catch(t){return!0}try{return R.localStorage.setItem("test","1"),R.localStorage.removeItem("test"),!1}catch(t){return!0}}():function(){return t.__awaiter(this,void 0,void 0,(function*(){return e.isDesktopSafari()?function(){try{R.safari.pushNotification.requestPermission("https://example.com","private",{},(()=>{}))}catch(e){return t=e,!new RegExp([103,101,115,116,117,114,101].map((t=>String.fromCharCode(t))).join("")).test(t)}var t;throw new Error("Unexpected lack of error")}():function(){return t.__awaiter(this,void 0,void 0,(function*(){const t=document.createElement("iframe");t.style.display="none";try{return document.body.appendChild(t),r(new Promise((e=>{t.contentWindow?t.contentWindow.applicationCache.addEventListener("error",(()=>e(!0))):e(!1)})),20,(()=>!1))}finally{t.remove()}}))}()}))}()}))}],[function(){return e.isGecko()},function(){return t.__awaiter(this,void 0,void 0,(function*(){return new Promise((t=>{try{const e=h.indexedDB.open("test");e.onerror=()=>t(!0),e.onsuccess=()=>t(!1)}catch(e){return t(!0)}}))}))}],[function(){return e.isIEOrOldEdge()},function(){try{if(!window.indexedDB)return!0}catch(t){return!0}return!1}]];function E(t,e){if(0==e.length||e.length>t.length)return-1;for(let n=0;n<t.length;n++){let r=0;for(let i=0;i<e.length;i++){if(t[n+i]!==e[i]){r=0;break}r++}if(r==e.length)return n}return-1}const b=window,O=document;const k={0:function(){return void 0!==navigator.webdriver},1:function(){return navigator.permissions.query({name:"notifications"}).then((function(t){return"denied"===Notification.permission&&"prompt"===t.state}))},2:function(){const{documentElement:t}=v;return"webdriver"in _||"_Selenium_IDE_Recorder"in _||"callSelenium"in _||"_selenium"in _||"__webdriver_script_fn"in v||"__driver_evaluate"in v||"__webdriver_evaluate"in v||"__selenium_evaluate"in v||"__fxdriver_evaluate"in v||"__driver_unwrapped"in v||"__webdriver_unwrapped"in v||"__selenium_unwrapped"in v||"__fxdriver_unwrapped"in v||"__webdriver_script_func"in v||null!==t.getAttribute("selenium")||null!==t.getAttribute("webdriver")||null!==t.getAttribute("driver")},3:function(){return t.__awaiter(this,void 0,void 0,(function*(){const e=function(){try{const t=localStorage.getItem("_inc");if(!t)return;return"1"===t}catch(t){return}}();if(void 0!==e)return e;try{const e=yield function(){return t.__awaiter(this,void 0,void 0,(function*(){for(const[t,e]of m)if(t())return yield e();return!1}))}();return function(t){try{localStorage.setItem("_inc",t?"1":"0")}catch(e){}}(e),e}catch(n){return!1}}))},4:function(){if(!e.isChromium())return!1;try{if([66,114,97,118,101].map((t=>String.fromCharCode(t))).join("")in b)return!0;const t=O.createElement("canvas");t.width=4,t.height=4,t.style.display="inline";const e=t.toDataURL();if(""===e)return!0;const n=window.atob(e.split(",")[1]),r=n.length,i=new Uint8Array(r);for(let u=0;u<r;u++)i[u]=n.charCodeAt(u);const o=E(i,[73,68,65,84,24]);if(-1===o)return!1;const s=E(i,[73,69,78,68]);if(-1===o)return!1;const a=i.slice(o+5,s);return 1321!==a.reduce(((t,e)=>t+e),0)}catch(t){return!1}}};const y=document,I=location;function T(t){const e=t+"=";for(const n of y.cookie.split(";")){let t=0;for(;" "===n[t]&&t<n.length;++t);if(n.indexOf(e)===t)return n.slice(t+e.length)}}function S(t,e,n,r){const i=`${t}=${e}`,o="expires="+new Date(Date.now()+24*n*60*60*1e3).toUTCString(),s=r?"domain="+r:"";y.cookie=[i,"path=/",o,s].join("; ")}function N(t,e,n){const r=I.hostname;x(r,(e=>{!function(t,e){S(t,"",-1,e)}(t,e)}));x(r,(r=>(S(t,e,n,r),T(t)!==e)))&&S(t,e,n)}function x(t,e){let n=t.length;do{if(n=n>0?t.lastIndexOf(".",n-1):-1,!1===e(t.slice(n+1)))return!1}while(n>=0);return!0}const{localStorage:A}=window;function P(t="_vid"){return[T(t),C(t)]}function j(t,e="_vid"){N(e,t,365),function(t,e){if(null==A?void 0:A.setItem)try{A.setItem(t,e)}catch(n){}}(e,t)}function C(t){var e;if(null==A?void 0:A.getItem)try{return null!==(e=A.getItem(t))&&void 0!==e?e:void 0}catch(n){}}var F,q,M,G,D,U,L,W;class K{constructor(n,r,o,s,a){F.set(this,void 0),q.set(this,void 0),M.set(this,void 0),G.set(this,void 0),D.set(this,void 0),U.set(this,((e,n)=>t.__awaiter(this,void 0,void 0,(function*(){if(!n)return i(e).then((t=>({tls:t})),(t=>({tlsError:t})))})))),L.set(this,(()=>t.__awaiter(this,void 0,void 0,(function*(){const n=yield t.__classPrivateFieldGet(this,F).get(),r=yield e.getComponents(k,void 0,[]);return Object.assign(Object.assign({},n.components),r)})))),W.set(this,(e=>{const n={token:t.__classPrivateFieldGet(this,q),region:t.__classPrivateFieldGet(this,M),endpoint:t.__classPrivateFieldGet(this,G),storageKey:t.__classPrivateFieldGet(this,D)};console.log(`Getting the visitor identifier:\n\`\`\`\nversion: 3.0.0\ninitOptions: ${JSON.stringify(n,void 0,2)}\ngetOptions: ${JSON.stringify(e,void 0,2)}\n\`\`\``)})),t.__classPrivateFieldSet(this,F,n),t.__classPrivateFieldSet(this,q,r),t.__classPrivateFieldSet(this,M,o),t.__classPrivateFieldSet(this,G,s),t.__classPrivateFieldSet(this,D,a)}get(e={}){const{timeout:n=1e4,tag:i,linkedId:o,disableTls:s,extendedResult:c,ipResolution:d,debug:l}=e;return l&&t.__classPrivateFieldGet(this,W).call(this,e),f="Client timeout",r((()=>t.__awaiter(this,void 0,void 0,(function*(){const[e,r]=yield Promise.all([t.__classPrivateFieldGet(this,U).call(this,n/2,s),t.__classPrivateFieldGet(this,L).call(this)]),f=yield u(Object.assign(Object.assign({token:t.__classPrivateFieldGet(this,q),endpoint:a(t.__classPrivateFieldGet(this,M),t.__classPrivateFieldGet(this,G))},e),{components:r,tag:i,visitorId:P(t.__classPrivateFieldGet(this,D)),linkedId:o,extendedResult:c,ipResolution:d,debug:l}));return j(f.visitorId,t.__classPrivateFieldGet(this,D)),f}))),n,(()=>{throw new Error(f)}));var f}}function V({token:n,region:r,endpoint:i,storageKey:o,delayFallback:s}){return t.__awaiter(this,void 0,void 0,(function*(){if(!n||"string"!=typeof n)throw new Error("Token required");const t=yield e.load({delayFallback:s});return new K(t,n,r,i,o)}))}F=new WeakMap,q=new WeakMap,M=new WeakMap,G=new WeakMap,D=new WeakMap,U=new WeakMap,L=new WeakMap,W=new WeakMap;var $={load:V,ERROR_CLIENT_TIMEOUT:"Client timeout",ERROR_NETWORK_CONNECTION:"Network connection error",ERROR_NETWORK_ABORT:"Network request aborted",ERROR_TOKEN_MISSING:"Token required",ERROR_TOKEN_INVALID:"Token not found",ERROR_TOKEN_EXPIRED:"Token expired",ERROR_BAD_REQUEST_FORMAT:"Request cannot be parsed",ERROR_GENERAL_SERVER_FAILURE:"Request failed",ERROR_SERVER_TIMEOUT:"Request failed to process",ERROR_RATE_LIMIT:"Too many requests, rate limit exceeded"};exports.ERROR_BAD_REQUEST_FORMAT="Request cannot be parsed",exports.ERROR_CLIENT_TIMEOUT="Client timeout",exports.ERROR_GENERAL_SERVER_FAILURE="Request failed",exports.ERROR_NETWORK_ABORT="Network request aborted",exports.ERROR_NETWORK_CONNECTION="Network connection error",exports.ERROR_RATE_LIMIT="Too many requests, rate limit exceeded",exports.ERROR_SERVER_TIMEOUT="Request failed to process",exports.ERROR_TOKEN_EXPIRED="Token expired",exports.ERROR_TOKEN_INVALID="Token not found",exports.ERROR_TOKEN_MISSING="Token required",exports.default=$,exports.load=V;
/**
* FingerprintJS Pro v3.0.0-beta.3 - Copyright (c) FingerprintJS, Inc, 2020 (https://fingerprintjs.com)
* FingerprintJS Pro v3.0.0 - Copyright (c) FingerprintJS, Inc, 2020 (https://fingerprintjs.com)
*

@@ -10,3 +10,89 @@ * This software contains code from open-source projects:

declare type Region =
/** N. Virginia, USA */
'us' |
/** Frankfurt, Germany */
'eu';
declare type IPResolution =
/** Resolution on a city level */
'city' |
/**
* Resolution on a city level + ISP info using a live query to MaxMind service.
* Will take longer to complete, because requires a separate network request.
*/
'full';
/**
* Options for FingerprintJS agent loading
*/
interface LoadOptions extends Pick<LoadOptions$1, 'delayFallback'> {
/**
* Pro client key
*/
token: string;
/**
* Region of the FingerprintJS service server
* @default 'us'
*/
region?: Region;
/**
* Your custom API endpoint. Must contain protocol.
* @example
* 'https://fp.example.com'
*/
endpoint?: string;
/**
* Override storages name (cookies, localStorage, etc).
* Should only be used when the default name conflicts with some of your existing names.
* @default '_vid'
*/
storageKey?: string;
}
/**
* Options of getting a visitor identifier
*/
interface GetOptions<TExtended extends boolean, TIP extends IPResolution> {
/**
* Controls client-side timeout. Client timeout controls total time (both client-side and server-side) that any
* identification event is allowed to run. The value is in milliseconds.
* @default 10000
* @see https://docs.fingerprintjs.com/pro/js-agent#client-timeout
*/
timeout?: number;
/**
* `Tag` is a user-provided value or object that will be returned back to you in a webhook message.
* You may want to use the `tag` value to be able to associate a server-side webhook event with a web request of the
* current visitor.
*
* What values can be used as a `tag`?
* Anything that identifies a visitor or a request.
* You can pass the requestId as a `tag` and then get this requestId back in the webhook, associated with a visitorId.
*/
tag?: unknown;
/**
* `linkedId` is a way of linking current identification event with a custom identifier.
* This can be helpful to be able to filter API visit information later.
*/
linkedId?: string;
/**
* Disables the extra server request for getting a TLS identification
*/
disableTls?: boolean;
/**
* Adds details about the visitor to the result
*/
extendedResult?: TExtended;
/**
* IP resolution mode.
* @default 'city'
* @see https://docs.fingerprintjs.com/pro/geolocation
*/
ipResolution?: TIP;
/**
* Whether to print debug messages to the console.
* Required to ease investigations of problems.
*/
debug?: boolean;
}
/**
* n/a - special response from the API, means visitorId is not available.

@@ -22,2 +108,3 @@ * Reason will be specified in the `reason` field of the response.

TokenInvalid = "Token not found",
TokenExpired = "Token expired",
BadRequestFormat = "Request cannot be parsed",

@@ -199,88 +286,2 @@ GeneralServerFailure = "Request failed",

declare type Region =
/** N. Virginia, USA */
'us' |
/** Frankfurt, Germany */
'eu';
declare type IPResolution =
/** Resolution on a city level */
'city' |
/**
* Resolution on a city level + ISP info using a live query to MaxMind service.
* Will take longer to complete, because requires a separate network request.
*/
'full';
/**
* Options for FingerprintJS agent loading
*/
interface LoadOptions extends Pick<LoadOptions$1, 'delayFallback'> {
/**
* Pro client key
*/
token: string;
/**
* Region of the FingerprintJS service server
* @default 'us'
*/
region?: Region;
/**
* Your custom API endpoint. Must contain protocol.
* @example
* 'https://fp.example.com'
*/
endpoint?: string;
/**
* Override storages name (cookies, localStorage, etc).
* Should only be used when the default name conflicts with some of your existing names.
* @default '_vid'
*/
storageKey?: string;
}
/**
* Options of getting a visitor identifier
*/
interface GetOptions<TExtended extends boolean, TIP extends IPResolution> {
/**
* Controls client-side timeout. Client timeout controls total time (both client-side and server-side) that any
* identification event is allowed to run. The value is in milliseconds.
* @default 10000
* @see https://docs.fingerprintjs.com/pro/js-agent#client-timeout
*/
timeout?: number;
/**
* `Tag` is a user-provided value or object that will be returned back to you in a webhook message.
* You may want to use the `tag` value to be able to associate a server-side webhook event with a web request of the
* current visitor.
*
* What values can be used as a `tag`?
* Anything that identifies a visitor or a request.
* You can pass the requestId as a `tag` and then get this requestId back in the webhook, associated with a visitorId.
*/
tag?: unknown;
/**
* `linkedId` is a way of linking current identification event with a custom identifier.
* This can be helpful to be able to filter API visit information later.
*/
linkedId?: string;
/**
* Disables the extra server request for getting a TLS identification
*/
disableTls?: boolean;
/**
* Adds details about the visitor to the result
*/
extendedResult?: TExtended;
/**
* IP resolution mode.
* @default 'city'
* @see https://docs.fingerprintjs.com/pro/geolocation
*/
ipResolution?: TIP;
/**
* Whether to print debug messages to the console.
* Required to ease investigations of problems.
*/
debug?: boolean;
}
interface BotInformation {

@@ -351,2 +352,3 @@ /**

declare const ERROR_TOKEN_INVALID = NotAvailableVisitorIdReason.TokenInvalid;
declare const ERROR_TOKEN_EXPIRED = NotAvailableVisitorIdReason.TokenExpired;
declare const ERROR_BAD_REQUEST_FORMAT = NotAvailableVisitorIdReason.BadRequestFormat;

@@ -356,2 +358,15 @@ declare const ERROR_GENERAL_SERVER_FAILURE = NotAvailableVisitorIdReason.GeneralServerFailure;

declare const ERROR_RATE_LIMIT = NotAvailableVisitorIdReason.RateLimit;
declare const _default: {
load: typeof load;
ERROR_CLIENT_TIMEOUT: string;
ERROR_NETWORK_CONNECTION: string;
ERROR_NETWORK_ABORT: string;
ERROR_TOKEN_MISSING: NotAvailableVisitorIdReason;
ERROR_TOKEN_INVALID: NotAvailableVisitorIdReason;
ERROR_TOKEN_EXPIRED: NotAvailableVisitorIdReason;
ERROR_BAD_REQUEST_FORMAT: NotAvailableVisitorIdReason;
ERROR_GENERAL_SERVER_FAILURE: NotAvailableVisitorIdReason;
ERROR_SERVER_TIMEOUT: NotAvailableVisitorIdReason;
ERROR_RATE_LIMIT: NotAvailableVisitorIdReason;
};
/**

@@ -363,2 +378,3 @@ * This is a workaround for a bug of rollup-plugin-dts. Without this export, the NotAvailableVisitorIdReason type

export { Agent, BotInformation, ERROR_BAD_REQUEST_FORMAT, ERROR_CLIENT_TIMEOUT, ERROR_GENERAL_SERVER_FAILURE, ERROR_NETWORK_ABORT, ERROR_NETWORK_CONNECTION, ERROR_RATE_LIMIT, ERROR_SERVER_TIMEOUT, ERROR_TOKEN_INVALID, ERROR_TOKEN_MISSING, ExtendedGetResult, FullIpExtendedGetResult, FullIpLocation, GetOptions, GetResult, IPResolution, IpLocation, LoadOptions, Region, __workaround, load };
export default _default;
export { Agent, BotInformation, ERROR_BAD_REQUEST_FORMAT, ERROR_CLIENT_TIMEOUT, ERROR_GENERAL_SERVER_FAILURE, ERROR_NETWORK_ABORT, ERROR_NETWORK_CONNECTION, ERROR_RATE_LIMIT, ERROR_SERVER_TIMEOUT, ERROR_TOKEN_EXPIRED, ERROR_TOKEN_INVALID, ERROR_TOKEN_MISSING, ExtendedGetResult, FullIpExtendedGetResult, FullIpLocation, GetOptions, GetResult, IPResolution, IpLocation, LoadOptions, Region, __workaround, load };
/**
* FingerprintJS Pro v3.0.0-beta.3 - Copyright (c) FingerprintJS, Inc, 2020 (https://fingerprintjs.com)
* FingerprintJS Pro v3.0.0 - Copyright (c) FingerprintJS, Inc, 2020 (https://fingerprintjs.com)
*

@@ -8,2 +8,2 @@ * This software contains code from open-source projects:

import{__awaiter as t,__rest as e,__classPrivateFieldGet as n,__classPrivateFieldSet as r}from"tslib";import{murmurX64Hash128 as i,isGecko as o,isChromium as s,isDesktopSafari as u,isIEOrOldEdge as c,getComponents as a,load as d}from"@fingerprintjs/fingerprintjs";function l(t,e){return new Promise((n=>setTimeout((()=>n(e)),t)))}function f(e,n,r){return t(this,void 0,void 0,(function*(){const t=yield Promise.race([l(n,[!0]),("function"==typeof e?e():e).then((t=>[!1,t]))]);return t[0]?null==r?void 0:r():t[1]}))}function v(n){return t(this,void 0,void 0,(function*(){let r;try{r=yield function(n,r){var{timeout:i}=r,o=e(r,["timeout"]);return t(this,void 0,void 0,(function*(){let t="undefined"==typeof AbortController?void 0:new AbortController;return f(fetch(n,Object.assign(Object.assign({},o),{signal:null==t?void 0:t.signal})),i,(()=>{throw null==t||t.abort(),new DOMException("The request timed out.","TimeoutError")}))}))}("https://api.sjpf.io",{timeout:n})}catch(o){switch(o.name){case"AbortError":throw new Error("Abort");case"TimeoutError":throw new Error("Timeout");default:throw new Error("Connection error")}}const i=yield r.text();if(200===r.status)return i;throw new Error(i.slice(0,255))}))}const h="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",p=h.length;const g="Client timeout",m="Network connection error",w="Network request aborted";function b(t="us",e){if(e)return/^(https?:)?\/\//i.test(e)?e:"https://"+e;let n="api.fpjs.io";return"us"!==t&&(n=`${t}.${n}`),"https://"+n}function y(n){var{endpoint:r,extendedResult:i,debug:o}=n,s=e(n,["endpoint","extendedResult","debug"]);return t(this,void 0,void 0,(function*(){const n=function(t){let e="";for(let n=0;n<t;n++)e+=h.charAt(Math.random()*p);return e}(20),u=function({components:t,token:e,visitorId:n,tag:r,ipResolution:i,extendedResult:o,linkedId:s,tls:u,tlsError:c,requestId:a}){const d=Object.keys(t).reduce(((e,n)=>e+t[n].duration),0),l="full"===i?2:1;return{rid:a,cv:"3.0.0-beta.3",c:e,url:location.href,d:d,vid:n[0]||n[1]||void 0,ls:n[1]?1:void 0,t:k(r),i:l,cbd:o?1:void 0,lid:s,cr:document.referrer||void 0,j:u,je:null==c?void 0:c.message,k1:_(t.osCpu),k2:_(t.languages),k3:_(t.colorDepth),k4:_(t.deviceMemory),k5:_(t.screenResolution),k6:_(t.availableScreenResolution,void 0,[]),k7:_(t.hardwareConcurrency),k8:_(t.timezoneOffset),k9:_(t.timezone),k10:O(_(t.sessionStorage)),k11:O(_(t.localStorage)),k12:O(_(t.indexedDB)),k13:O(_(t.openDatabase)),k14:_(t.cpuClass),k15:_(t.platform),k16:_(t.plugins,[]),k17:j(t.canvas),k18:0,k19:_(t.touchSupport),k20:_(t.fonts,[]),k21:_(t.audio,-1),k22:O(_(t.pluginsSupport)),k23:_(t.productSub),k24:_(t.emptyEvalLength),k25:O(_(t.errorFF)),k26:O(_(t[0])),k27:_(t.vendor),k28:O(_(t.chrome)),k29:O(_(t[1])),k30:O(_(t[2])),k31:O(_(t[3],!1)),k32:O(_(t.cookiesEnabled,!1)),k33:O(_(t[4]))}}(Object.assign({extendedResult:i,requestId:n},s));return function(n,r,i,o){return t(this,void 0,void 0,(function*(){const t=yield n.text();let s;try{s=JSON.parse(t)}catch(u){}if(o&&console.log(`Visitor response status: ${n.status}\nVisitor response body:\n\`\`\`json\n${void 0===s?t:JSON.stringify(s,void 0,2)}\n\`\`\``),404===n.status||n.status>=500)throw new Error(n.statusText);if(void 0===s)throw new Error(t);if(function(t){return t&&"object"==typeof t&&"string"==typeof t.visitorId&&"n/a"!==t.visitorId}(s))return function(t){const n=t,{botProbability:r}=n,i=e(n,["botProbability"]),o=Object.assign({},i);r&&(o.bot={probability:r});return o}(s);if(function(t){return t&&"object"==typeof t&&"n/a"===t.visitorId}(s)){if("Not available for crawl bots"===s.reason||"Not available when User-Agent is unspecified"===s.reason)return function(t,e,n){const r={requestId:e,visitorFound:!1,visitorId:""};if(!n)return r;const i=Object.assign(Object.assign({},r),{bot:{probability:1},incognito:!1,browserName:"n/a",browserVersion:"n/a",device:"n/a",ip:"n/a",ipLocation:{},os:"n/a",osVersion:"n/a"});"Not available for crawl bots"===t&&(i.bot.safe=!0);return i}(s.reason,r,i);throw new Error(s.reason)}throw new Error(t)}))}(yield function(e,n,r){return t(this,void 0,void 0,(function*(){r&&console.log(`Visitor request:\n\`\`\`json\n${JSON.stringify(n,void 0,2)}\n\`\`\``);const t=JSON.stringify(n);try{return yield fetch(e,{method:"POST",body:t,headers:{"Content-Type":"text/plain"},credentials:"include"})}catch(i){throw new Error("AbortError"===i.name?"Network request aborted":"Network connection error")}}))}(r,u,o),n,i,o)}))}function k(t){return t&&"object"==typeof t?t:null!=t?{tag:t}:void 0}function _(t,e,n){var r;return t.error?e:null!==(r=t.value)&&void 0!==r?r:n}function O(t){return!0===t?1:!1===t?0:t}function j({value:t}){if(t)return Object.assign(Object.assign({},t),{data:i(t.data)})}const S=window,E=document;const x=window;const I=navigator,A=window;const C=window,N=navigator;const R=[[function(){return s()},function(){return t(this,void 0,void 0,(function*(){return function(){const t=I.userAgent.match(/Chrom(e|ium)\/([0-9]+)\./);if(!t)throw"UserAgent is not Google Chrome";return parseInt(t[2],10)}()>=76?function(){return t(this,void 0,void 0,(function*(){if("storage"in I&&"estimate"in I.storage){const{quota:t}=yield I.storage.estimate();return!!t&&t<function(){var t,e,n;const r=(null===(t=I.userAgent)||void 0===t?void 0:t.indexOf("Mac OS"))>0&&-1===(null===(e=I.userAgent)||void 0===e?void 0:e.indexOf("iPhone")),i=(null===(n=I.userAgent)||void 0===n?void 0:n.indexOf("CrOS"))>0;return r||i?3221225472:1073741824}()}return!1}))}():new Promise((t=>{A.webkitRequestFileSystem(0,1,(()=>t(!1)),(()=>t(!0)))}))}))}],[function(){return/Apple/.test(N.vendor)&&/Safari/.test(N.userAgent)},function(){return t(this,void 0,void 0,(function*(){return function(){const t=navigator.userAgent.match(/Version\/([0-9._]+).*Safari/);if(!t)throw new Error("UserAgent is not Safari");const e=t[1].split("."),[n,r,i]=e.map((t=>isNaN(parseInt(t))?0:parseInt(t)));return{major:n,minor:r,patch:i}}().major<13?function(){try{C.openDatabase(null,null,null,null)}catch(t){return!0}try{return C.localStorage.setItem("test","1"),C.localStorage.removeItem("test"),!1}catch(t){return!0}}():function(){return t(this,void 0,void 0,(function*(){return u()?function(){try{C.safari.pushNotification.requestPermission("https://example.com","private",{},(()=>{}))}catch(e){return t=e,!new RegExp([103,101,115,116,117,114,101].map((t=>String.fromCharCode(t))).join("")).test(t)}var t;throw new Error("Unexpected lack of error")}():function(){return t(this,void 0,void 0,(function*(){const t=document.createElement("iframe");t.style.display="none";try{return document.body.appendChild(t),f(new Promise((e=>{t.contentWindow?t.contentWindow.applicationCache.addEventListener("error",(()=>e(!0))):e(!1)})),20,(()=>!1))}finally{t.remove()}}))}()}))}()}))}],[function(){return o()},function(){return t(this,void 0,void 0,(function*(){return new Promise((t=>{try{const e=x.indexedDB.open("test");e.onerror=()=>t(!0),e.onsuccess=()=>t(!1)}catch(e){return t(!0)}}))}))}],[function(){return c()},function(){try{if(!window.indexedDB)return!0}catch(t){return!0}return!1}]];function q(t,e){if(0==e.length||e.length>t.length)return-1;for(let n=0;n<t.length;n++){let r=0;for(let i=0;i<e.length;i++){if(t[n+i]!==e[i]){r=0;break}r++}if(r==e.length)return n}return-1}const T=window,M=document;const D={0:function(){return void 0!==navigator.webdriver},1:function(){return navigator.permissions.query({name:"notifications"}).then((function(t){return"denied"===Notification.permission&&"prompt"===t.state}))},2:function(){const{documentElement:t}=E;return"webdriver"in S||"_Selenium_IDE_Recorder"in S||"callSelenium"in S||"_selenium"in S||"__webdriver_script_fn"in E||"__driver_evaluate"in E||"__webdriver_evaluate"in E||"__selenium_evaluate"in E||"__fxdriver_evaluate"in E||"__driver_unwrapped"in E||"__webdriver_unwrapped"in E||"__selenium_unwrapped"in E||"__fxdriver_unwrapped"in E||"__webdriver_script_func"in E||null!==t.getAttribute("selenium")||null!==t.getAttribute("webdriver")||null!==t.getAttribute("driver")},3:function(){return t(this,void 0,void 0,(function*(){const e=function(){try{const t=localStorage.getItem("_inc");if(!t)return;return"1"===t}catch(t){return}}();if(void 0!==e)return e;try{const e=yield function(){return t(this,void 0,void 0,(function*(){for(const[t,e]of R)if(t())return yield e();return!1}))}();return function(t){try{localStorage.setItem("_inc",t?"1":"0")}catch(e){}}(e),e}catch(n){return!1}}))},4:function(){if(!s())return!1;try{if([66,114,97,118,101].map((t=>String.fromCharCode(t))).join("")in T)return!0;const t=M.createElement("canvas");t.width=4,t.height=4,t.style.display="inline";const e=t.toDataURL();if(""===e)return!0;const n=window.atob(e.split(",")[1]),r=n.length,i=new Uint8Array(r);for(let c=0;c<r;c++)i[c]=n.charCodeAt(c);const o=q(i,[73,68,65,84,24]);if(-1===o)return!1;const s=q(i,[73,69,78,68]);if(-1===o)return!1;const u=i.slice(o+5,s);return 1321!==u.reduce(((t,e)=>t+e),0)}catch(t){return!1}}};const P=document,W=location;function $(t){const e=t+"=";for(const n of P.cookie.split(";")){let t=0;for(;" "===n[t]&&t<n.length;++t);if(n.indexOf(e)===t)return n.slice(t+e.length)}}function U(t,e,n,r){const i=`${t}=${e}`,o="expires="+new Date(Date.now()+24*n*60*60*1e3).toUTCString(),s=r?"domain="+r:"";P.cookie=[i,"path=/",o,s].join("; ")}function F(t,e,n){const r=W.hostname;J(r,(e=>{!function(t,e){U(t,"",-1,e)}(t,e)}));J(r,(r=>(U(t,e,n,r),$(t)!==e)))&&U(t,e,n)}function J(t,e){let n=t.length;do{if(n=n>0?t.lastIndexOf(".",n-1):-1,!1===e(t.slice(n+1)))return!1}while(n>=0);return!0}const{localStorage:V}=window;function L(t="_vid"){return[$(t),z(t)]}function B(t,e="_vid"){F(e,t,365),function(t,e){if(null==V?void 0:V.setItem)try{V.setItem(t,e)}catch(n){}}(e,t)}function z(t){var e;if(null==V?void 0:V.getItem)try{return null!==(e=V.getItem(t))&&void 0!==e?e:void 0}catch(n){}}var G,K,H,Q,X,Y,Z,tt;class et{constructor(e,i,o,s,u){G.set(this,void 0),K.set(this,void 0),H.set(this,void 0),Q.set(this,void 0),X.set(this,void 0),Y.set(this,((e,n)=>t(this,void 0,void 0,(function*(){if(!n)return v(e).then((t=>({tls:t})),(t=>({tlsError:t})))})))),Z.set(this,(()=>t(this,void 0,void 0,(function*(){const t=yield n(this,G).get(),e=yield a(D,void 0,[]);return Object.assign(Object.assign({},t.components),e)})))),tt.set(this,(t=>{const e={token:n(this,K),region:n(this,H),endpoint:n(this,Q),storageKey:n(this,X)};console.log(`Getting the visitor identifier:\n\`\`\`\nversion: 3.0.0-beta.3\ninitOptions: ${JSON.stringify(e,void 0,2)}\ngetOptions: ${JSON.stringify(t,void 0,2)}\n\`\`\``)})),r(this,G,e),r(this,K,i),r(this,H,o),r(this,Q,s),r(this,X,u)}get(e={}){const{timeout:r=1e4,tag:i,linkedId:o,disableTls:s,extendedResult:u,ipResolution:c,debug:a}=e;return a&&n(this,tt).call(this,e),d="Client timeout",f((()=>t(this,void 0,void 0,(function*(){const[t,e]=yield Promise.all([n(this,Y).call(this,r/2,s),n(this,Z).call(this)]),d=yield y(Object.assign(Object.assign({token:n(this,K),endpoint:b(n(this,H),n(this,Q))},t),{components:e,tag:i,visitorId:L(n(this,X)),linkedId:o,extendedResult:u,ipResolution:c,debug:a}));return B(d.visitorId,n(this,X)),d}))),r,(()=>{throw new Error(d)}));var d}}function nt({token:e,region:n,endpoint:r,storageKey:i,delayFallback:o}){return t(this,void 0,void 0,(function*(){if(!e||"string"!=typeof e)throw new Error("Token required");const t=yield d({delayFallback:o});return new et(t,e,n,r,i)}))}G=new WeakMap,K=new WeakMap,H=new WeakMap,Q=new WeakMap,X=new WeakMap,Y=new WeakMap,Z=new WeakMap,tt=new WeakMap;const rt="Token required",it="Token not found",ot="Request cannot be parsed",st="Request failed",ut="Request failed to process",ct="Too many requests, rate limit exceeded";export{ot as ERROR_BAD_REQUEST_FORMAT,g as ERROR_CLIENT_TIMEOUT,st as ERROR_GENERAL_SERVER_FAILURE,w as ERROR_NETWORK_ABORT,m as ERROR_NETWORK_CONNECTION,ct as ERROR_RATE_LIMIT,ut as ERROR_SERVER_TIMEOUT,it as ERROR_TOKEN_INVALID,rt as ERROR_TOKEN_MISSING,nt as load};
import{__awaiter as t,__rest as e,__classPrivateFieldGet as n,__classPrivateFieldSet as r}from"tslib";import{murmurX64Hash128 as o,isGecko as i,isChromium as s,isDesktopSafari as u,isIEOrOldEdge as c,getComponents as a,load as d}from"@fingerprintjs/fingerprintjs";function l(t,e){return new Promise((n=>setTimeout((()=>n(e)),t)))}function f(e,n,r){return t(this,void 0,void 0,(function*(){const t=yield Promise.race([l(n,[!0]),("function"==typeof e?e():e).then((t=>[!1,t]))]);return t[0]?null==r?void 0:r():t[1]}))}function v(n){return t(this,void 0,void 0,(function*(){let r;try{r=yield function(n,r){var{timeout:o}=r,i=e(r,["timeout"]);return t(this,void 0,void 0,(function*(){let t="undefined"==typeof AbortController?void 0:new AbortController;return f(fetch(n,Object.assign(Object.assign({},i),{signal:null==t?void 0:t.signal})),o,(()=>{throw null==t||t.abort(),new DOMException("The request timed out.","TimeoutError")}))}))}("https://api.sjpf.io",{timeout:n})}catch(i){switch(i.name){case"AbortError":throw new Error("Abort");case"TimeoutError":throw new Error("Timeout");default:throw new Error("Connection error")}}const o=yield r.text();if(200===r.status)return o;throw new Error(o.slice(0,255))}))}const h="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",p=h.length;const g="Client timeout",m="Network connection error",w="Network request aborted";function b(t="us",e){if(e)return/^(https?:)?\/\//i.test(e)?e:"https://"+e;let n="api.fpjs.io";return"us"!==t&&(n=`${t}.${n}`),"https://"+n}function k(n){var{endpoint:r,extendedResult:o,debug:i}=n,s=e(n,["endpoint","extendedResult","debug"]);return t(this,void 0,void 0,(function*(){const n=function(t){let e="";for(let n=0;n<t;n++)e+=h.charAt(Math.random()*p);return e}(20),u=function({components:t,token:e,visitorId:n,tag:r,ipResolution:o,extendedResult:i,linkedId:s,tls:u,tlsError:c,requestId:a}){const d=Object.keys(t).reduce(((e,n)=>e+t[n].duration),0),l="full"===o?2:1;return{rid:a,cv:"3.0.0",c:e,url:location.href,d:d,vid:n[0]||n[1]||void 0,ls:n[1]?1:void 0,t:y(r),i:l,cbd:i?1:void 0,lid:s,cr:document.referrer||void 0,j:u,je:null==c?void 0:c.message,k1:R(t.osCpu),k2:R(t.languages),k3:R(t.colorDepth),k4:R(t.deviceMemory),k5:R(t.screenResolution),k6:R(t.availableScreenResolution,void 0,[]),k7:R(t.hardwareConcurrency),k8:R(t.timezoneOffset),k9:R(t.timezone),k10:_(R(t.sessionStorage)),k11:_(R(t.localStorage)),k12:_(R(t.indexedDB)),k13:_(R(t.openDatabase)),k14:R(t.cpuClass),k15:R(t.platform),k16:R(t.plugins,[]),k17:E(t.canvas),k18:0,k19:R(t.touchSupport),k20:R(t.fonts,[]),k21:R(t.audio,-1),k22:_(R(t.pluginsSupport)),k23:R(t.productSub),k24:R(t.emptyEvalLength),k25:_(R(t.errorFF)),k26:_(R(t[0])),k27:R(t.vendor),k28:_(R(t.chrome)),k29:_(R(t[1])),k30:_(R(t[2])),k31:_(R(t[3],!1)),k32:_(R(t.cookiesEnabled,!1)),k33:_(R(t[4]))}}(Object.assign({extendedResult:o,requestId:n},s));return function(n,r,o,i){return t(this,void 0,void 0,(function*(){const t=yield n.text();let s;try{s=JSON.parse(t)}catch(u){}if(i&&console.log(`Visitor response status: ${n.status}\nVisitor response body:\n\`\`\`json\n${void 0===s?t:JSON.stringify(s,void 0,2)}\n\`\`\``),404===n.status||n.status>=500)throw new Error(n.statusText);if(void 0===s)throw new Error(t);if(function(t){return t&&"object"==typeof t&&"string"==typeof t.visitorId&&"n/a"!==t.visitorId}(s))return function(t){const n=t,{botProbability:r}=n,o=e(n,["botProbability"]),i=Object.assign({},o);r&&(i.bot={probability:r});return i}(s);if(function(t){return t&&"object"==typeof t&&"n/a"===t.visitorId}(s)){if("Not available for crawl bots"===s.reason||"Not available when User-Agent is unspecified"===s.reason)return function(t,e,n){const r={requestId:e,visitorFound:!1,visitorId:""};if(!n)return r;const o=Object.assign(Object.assign({},r),{bot:{probability:1},incognito:!1,browserName:"n/a",browserVersion:"n/a",device:"n/a",ip:"n/a",ipLocation:{},os:"n/a",osVersion:"n/a"});"Not available for crawl bots"===t&&(o.bot.safe=!0);return o}(s.reason,r,o);throw new Error(s.reason)}throw new Error(t)}))}(yield function(e,n,r){return t(this,void 0,void 0,(function*(){r&&console.log(`Visitor request:\n\`\`\`json\n${JSON.stringify(n,void 0,2)}\n\`\`\``);const t=JSON.stringify(n);try{return yield fetch(e,{method:"POST",body:t,headers:{"Content-Type":"text/plain"},credentials:"include"})}catch(o){throw new Error("AbortError"===o.name?"Network request aborted":"Network connection error")}}))}(r,u,i),n,o,i)}))}function y(t){return t&&"object"==typeof t?t:null!=t?{tag:t}:void 0}function R(t,e,n){var r;return t.error?e:null!==(r=t.value)&&void 0!==r?r:n}function _(t){return!0===t?1:!1===t?0:t}function E({value:t}){if(t)return Object.assign(Object.assign({},t),{data:o(t.data)})}const O=window,I=document;const T=window;const S=navigator,N=window;const x=window,j=navigator;const A=[[function(){return s()},function(){return t(this,void 0,void 0,(function*(){return function(){const t=S.userAgent.match(/Chrom(e|ium)\/([0-9]+)\./);if(!t)throw"UserAgent is not Google Chrome";return parseInt(t[2],10)}()>=76?function(){return t(this,void 0,void 0,(function*(){if("storage"in S&&"estimate"in S.storage){const{quota:t}=yield S.storage.estimate();return!!t&&t<function(){var t,e,n;const r=(null===(t=S.userAgent)||void 0===t?void 0:t.indexOf("Mac OS"))>0&&-1===(null===(e=S.userAgent)||void 0===e?void 0:e.indexOf("iPhone")),o=(null===(n=S.userAgent)||void 0===n?void 0:n.indexOf("CrOS"))>0;return r||o?3221225472:1073741824}()}return!1}))}():new Promise((t=>{N.webkitRequestFileSystem(0,1,(()=>t(!1)),(()=>t(!0)))}))}))}],[function(){return/Apple/.test(j.vendor)&&/Safari/.test(j.userAgent)},function(){return t(this,void 0,void 0,(function*(){return function(){const t=navigator.userAgent.match(/Version\/([0-9._]+).*Safari/);if(!t)throw new Error("UserAgent is not Safari");const e=t[1].split("."),[n,r,o]=e.map((t=>isNaN(parseInt(t))?0:parseInt(t)));return{major:n,minor:r,patch:o}}().major<13?function(){try{x.openDatabase(null,null,null,null)}catch(t){return!0}try{return x.localStorage.setItem("test","1"),x.localStorage.removeItem("test"),!1}catch(t){return!0}}():function(){return t(this,void 0,void 0,(function*(){return u()?function(){try{x.safari.pushNotification.requestPermission("https://example.com","private",{},(()=>{}))}catch(e){return t=e,!new RegExp([103,101,115,116,117,114,101].map((t=>String.fromCharCode(t))).join("")).test(t)}var t;throw new Error("Unexpected lack of error")}():function(){return t(this,void 0,void 0,(function*(){const t=document.createElement("iframe");t.style.display="none";try{return document.body.appendChild(t),f(new Promise((e=>{t.contentWindow?t.contentWindow.applicationCache.addEventListener("error",(()=>e(!0))):e(!1)})),20,(()=>!1))}finally{t.remove()}}))}()}))}()}))}],[function(){return i()},function(){return t(this,void 0,void 0,(function*(){return new Promise((t=>{try{const e=T.indexedDB.open("test");e.onerror=()=>t(!0),e.onsuccess=()=>t(!1)}catch(e){return t(!0)}}))}))}],[function(){return c()},function(){try{if(!window.indexedDB)return!0}catch(t){return!0}return!1}]];function C(t,e){if(0==e.length||e.length>t.length)return-1;for(let n=0;n<t.length;n++){let r=0;for(let o=0;o<e.length;o++){if(t[n+o]!==e[o]){r=0;break}r++}if(r==e.length)return n}return-1}const q=window,M=document;const D={0:function(){return void 0!==navigator.webdriver},1:function(){return navigator.permissions.query({name:"notifications"}).then((function(t){return"denied"===Notification.permission&&"prompt"===t.state}))},2:function(){const{documentElement:t}=I;return"webdriver"in O||"_Selenium_IDE_Recorder"in O||"callSelenium"in O||"_selenium"in O||"__webdriver_script_fn"in I||"__driver_evaluate"in I||"__webdriver_evaluate"in I||"__selenium_evaluate"in I||"__fxdriver_evaluate"in I||"__driver_unwrapped"in I||"__webdriver_unwrapped"in I||"__selenium_unwrapped"in I||"__fxdriver_unwrapped"in I||"__webdriver_script_func"in I||null!==t.getAttribute("selenium")||null!==t.getAttribute("webdriver")||null!==t.getAttribute("driver")},3:function(){return t(this,void 0,void 0,(function*(){const e=function(){try{const t=localStorage.getItem("_inc");if(!t)return;return"1"===t}catch(t){return}}();if(void 0!==e)return e;try{const e=yield function(){return t(this,void 0,void 0,(function*(){for(const[t,e]of A)if(t())return yield e();return!1}))}();return function(t){try{localStorage.setItem("_inc",t?"1":"0")}catch(e){}}(e),e}catch(n){return!1}}))},4:function(){if(!s())return!1;try{if([66,114,97,118,101].map((t=>String.fromCharCode(t))).join("")in q)return!0;const t=M.createElement("canvas");t.width=4,t.height=4,t.style.display="inline";const e=t.toDataURL();if(""===e)return!0;const n=window.atob(e.split(",")[1]),r=n.length,o=new Uint8Array(r);for(let c=0;c<r;c++)o[c]=n.charCodeAt(c);const i=C(o,[73,68,65,84,24]);if(-1===i)return!1;const s=C(o,[73,69,78,68]);if(-1===i)return!1;const u=o.slice(i+5,s);return 1321!==u.reduce(((t,e)=>t+e),0)}catch(t){return!1}}};const P=document,W=location;function U(t){const e=t+"=";for(const n of P.cookie.split(";")){let t=0;for(;" "===n[t]&&t<n.length;++t);if(n.indexOf(e)===t)return n.slice(t+e.length)}}function L(t,e,n,r){const o=`${t}=${e}`,i="expires="+new Date(Date.now()+24*n*60*60*1e3).toUTCString(),s=r?"domain="+r:"";P.cookie=[o,"path=/",i,s].join("; ")}function V(t,e,n){const r=W.hostname;F(r,(e=>{!function(t,e){L(t,"",-1,e)}(t,e)}));F(r,(r=>(L(t,e,n,r),U(t)!==e)))&&L(t,e,n)}function F(t,e){let n=t.length;do{if(n=n>0?t.lastIndexOf(".",n-1):-1,!1===e(t.slice(n+1)))return!1}while(n>=0);return!0}const{localStorage:$}=window;function K(t="_vid"){return[U(t),B(t)]}function J(t,e="_vid"){V(e,t,365),function(t,e){if(null==$?void 0:$.setItem)try{$.setItem(t,e)}catch(n){}}(e,t)}function B(t){var e;if(null==$?void 0:$.getItem)try{return null!==(e=$.getItem(t))&&void 0!==e?e:void 0}catch(n){}}var G,z,Q,X,H,Y,Z,tt;class et{constructor(e,o,i,s,u){G.set(this,void 0),z.set(this,void 0),Q.set(this,void 0),X.set(this,void 0),H.set(this,void 0),Y.set(this,((e,n)=>t(this,void 0,void 0,(function*(){if(!n)return v(e).then((t=>({tls:t})),(t=>({tlsError:t})))})))),Z.set(this,(()=>t(this,void 0,void 0,(function*(){const t=yield n(this,G).get(),e=yield a(D,void 0,[]);return Object.assign(Object.assign({},t.components),e)})))),tt.set(this,(t=>{const e={token:n(this,z),region:n(this,Q),endpoint:n(this,X),storageKey:n(this,H)};console.log(`Getting the visitor identifier:\n\`\`\`\nversion: 3.0.0\ninitOptions: ${JSON.stringify(e,void 0,2)}\ngetOptions: ${JSON.stringify(t,void 0,2)}\n\`\`\``)})),r(this,G,e),r(this,z,o),r(this,Q,i),r(this,X,s),r(this,H,u)}get(e={}){const{timeout:r=1e4,tag:o,linkedId:i,disableTls:s,extendedResult:u,ipResolution:c,debug:a}=e;return a&&n(this,tt).call(this,e),d="Client timeout",f((()=>t(this,void 0,void 0,(function*(){const[t,e]=yield Promise.all([n(this,Y).call(this,r/2,s),n(this,Z).call(this)]),d=yield k(Object.assign(Object.assign({token:n(this,z),endpoint:b(n(this,Q),n(this,X))},t),{components:e,tag:o,visitorId:K(n(this,H)),linkedId:i,extendedResult:u,ipResolution:c,debug:a}));return J(d.visitorId,n(this,H)),d}))),r,(()=>{throw new Error(d)}));var d}}function nt({token:e,region:n,endpoint:r,storageKey:o,delayFallback:i}){return t(this,void 0,void 0,(function*(){if(!e||"string"!=typeof e)throw new Error("Token required");const t=yield d({delayFallback:i});return new et(t,e,n,r,o)}))}G=new WeakMap,z=new WeakMap,Q=new WeakMap,X=new WeakMap,H=new WeakMap,Y=new WeakMap,Z=new WeakMap,tt=new WeakMap;const rt="Token required",ot="Token not found",it="Token expired",st="Request cannot be parsed",ut="Request failed",ct="Request failed to process",at="Too many requests, rate limit exceeded";var dt={load:nt,ERROR_CLIENT_TIMEOUT:"Client timeout",ERROR_NETWORK_CONNECTION:"Network connection error",ERROR_NETWORK_ABORT:"Network request aborted",ERROR_TOKEN_MISSING:"Token required",ERROR_TOKEN_INVALID:"Token not found",ERROR_TOKEN_EXPIRED:"Token expired",ERROR_BAD_REQUEST_FORMAT:"Request cannot be parsed",ERROR_GENERAL_SERVER_FAILURE:"Request failed",ERROR_SERVER_TIMEOUT:"Request failed to process",ERROR_RATE_LIMIT:"Too many requests, rate limit exceeded"};export default dt;export{st as ERROR_BAD_REQUEST_FORMAT,g as ERROR_CLIENT_TIMEOUT,ut as ERROR_GENERAL_SERVER_FAILURE,w as ERROR_NETWORK_ABORT,m as ERROR_NETWORK_CONNECTION,at as ERROR_RATE_LIMIT,ct as ERROR_SERVER_TIMEOUT,it as ERROR_TOKEN_EXPIRED,ot as ERROR_TOKEN_INVALID,rt as ERROR_TOKEN_MISSING,nt as load};
/**
* FingerprintJS Pro v3.0.0-beta.3 - Copyright (c) FingerprintJS, Inc, 2020 (https://fingerprintjs.com)
* FingerprintJS Pro v3.0.0 - Copyright (c) FingerprintJS, Inc, 2020 (https://fingerprintjs.com)
*

@@ -8,2 +8,2 @@ * This software contains code from open-source projects:

var FingerprintJS=function(t){"use strict";function e(t,e){var n={};for(var o in t)Object.prototype.hasOwnProperty.call(t,o)&&e.indexOf(o)<0&&(n[o]=t[o]);if(null!=t&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(o=Object.getOwnPropertySymbols(t);r<o.length;r++)e.indexOf(o[r])<0&&Object.prototype.propertyIsEnumerable.call(t,o[r])&&(n[o[r]]=t[o[r]])}return n}function n(t,e,n,o){return new(n||(n=Promise))((function(r,i){function a(t){try{c(o.next(t))}catch(e){i(e)}}function s(t){try{c(o.throw(t))}catch(e){i(e)}}function c(t){var e;t.done?r(t.value):(e=t.value,e instanceof n?e:new n((function(t){t(e)}))).then(a,s)}c((o=o.apply(t,e||[])).next())}))}function o(t,e){if(!e.has(t))throw new TypeError("attempted to get private field on non-instance");return e.get(t)}function r(t,e,n){if(!e.has(t))throw new TypeError("attempted to set private field on non-instance");return e.set(t,n),n}function i(t,e){t=[t[0]>>>16,65535&t[0],t[1]>>>16,65535&t[1]],e=[e[0]>>>16,65535&e[0],e[1]>>>16,65535&e[1]];var n=[0,0,0,0];return n[3]+=t[3]+e[3],n[2]+=n[3]>>>16,n[3]&=65535,n[2]+=t[2]+e[2],n[1]+=n[2]>>>16,n[2]&=65535,n[1]+=t[1]+e[1],n[0]+=n[1]>>>16,n[1]&=65535,n[0]+=t[0]+e[0],n[0]&=65535,[n[0]<<16|n[1],n[2]<<16|n[3]]}function a(t,e){t=[t[0]>>>16,65535&t[0],t[1]>>>16,65535&t[1]],e=[e[0]>>>16,65535&e[0],e[1]>>>16,65535&e[1]];var n=[0,0,0,0];return n[3]+=t[3]*e[3],n[2]+=n[3]>>>16,n[3]&=65535,n[2]+=t[2]*e[3],n[1]+=n[2]>>>16,n[2]&=65535,n[2]+=t[3]*e[2],n[1]+=n[2]>>>16,n[2]&=65535,n[1]+=t[1]*e[3],n[0]+=n[1]>>>16,n[1]&=65535,n[1]+=t[2]*e[2],n[0]+=n[1]>>>16,n[1]&=65535,n[1]+=t[3]*e[1],n[0]+=n[1]>>>16,n[1]&=65535,n[0]+=t[0]*e[3]+t[1]*e[2]+t[2]*e[1]+t[3]*e[0],n[0]&=65535,[n[0]<<16|n[1],n[2]<<16|n[3]]}function s(t,e){return 32===(e%=64)?[t[1],t[0]]:e<32?[t[0]<<e|t[1]>>>32-e,t[1]<<e|t[0]>>>32-e]:(e-=32,[t[1]<<e|t[0]>>>32-e,t[0]<<e|t[1]>>>32-e])}function c(t,e){return 0===(e%=64)?t:e<32?[t[0]<<e|t[1]>>>32-e,t[1]<<e]:[t[1]<<e-32,0]}function u(t,e){return[t[0]^e[0],t[1]^e[1]]}function l(t){return t=u(t,[0,t[0]>>>1]),t=u(t=a(t,[4283543511,3981806797]),[0,t[0]>>>1]),t=u(t=a(t,[3301882366,444984403]),[0,t[0]>>>1])}function d(t,e){e=e||0;for(var n=(t=t||"").length%16,o=t.length-n,r=[0,e],d=[0,e],f=[0,0],h=[0,0],v=[2277735313,289559509],g=[1291169091,658871167],p=0;p<o;p+=16)f=[255&t.charCodeAt(p+4)|(255&t.charCodeAt(p+5))<<8|(255&t.charCodeAt(p+6))<<16|(255&t.charCodeAt(p+7))<<24,255&t.charCodeAt(p)|(255&t.charCodeAt(p+1))<<8|(255&t.charCodeAt(p+2))<<16|(255&t.charCodeAt(p+3))<<24],h=[255&t.charCodeAt(p+12)|(255&t.charCodeAt(p+13))<<8|(255&t.charCodeAt(p+14))<<16|(255&t.charCodeAt(p+15))<<24,255&t.charCodeAt(p+8)|(255&t.charCodeAt(p+9))<<8|(255&t.charCodeAt(p+10))<<16|(255&t.charCodeAt(p+11))<<24],f=s(f=a(f,v),31),r=i(r=s(r=u(r,f=a(f,g)),27),d),r=i(a(r,[0,5]),[0,1390208809]),h=s(h=a(h,g),33),d=i(d=s(d=u(d,h=a(h,v)),31),r),d=i(a(d,[0,5]),[0,944331445]);switch(f=[0,0],h=[0,0],n){case 15:h=u(h,c([0,t.charCodeAt(p+14)],48));case 14:h=u(h,c([0,t.charCodeAt(p+13)],40));case 13:h=u(h,c([0,t.charCodeAt(p+12)],32));case 12:h=u(h,c([0,t.charCodeAt(p+11)],24));case 11:h=u(h,c([0,t.charCodeAt(p+10)],16));case 10:h=u(h,c([0,t.charCodeAt(p+9)],8));case 9:h=a(h=u(h,[0,t.charCodeAt(p+8)]),g),d=u(d,h=a(h=s(h,33),v));case 8:f=u(f,c([0,t.charCodeAt(p+7)],56));case 7:f=u(f,c([0,t.charCodeAt(p+6)],48));case 6:f=u(f,c([0,t.charCodeAt(p+5)],40));case 5:f=u(f,c([0,t.charCodeAt(p+4)],32));case 4:f=u(f,c([0,t.charCodeAt(p+3)],24));case 3:f=u(f,c([0,t.charCodeAt(p+2)],16));case 2:f=u(f,c([0,t.charCodeAt(p+1)],8));case 1:f=a(f=u(f,[0,t.charCodeAt(p)]),v),r=u(r,f=a(f=s(f,31),g))}return r=i(r=u(r,[0,t.length]),d=u(d,[0,t.length])),d=i(d,r),r=i(r=l(r),d=l(d)),d=i(d,r),("00000000"+(r[0]>>>0).toString(16)).slice(-8)+("00000000"+(r[1]>>>0).toString(16)).slice(-8)+("00000000"+(d[0]>>>0).toString(16)).slice(-8)+("00000000"+(d[1]>>>0).toString(16)).slice(-8)}function f(t){return"number"==typeof t?0|t:parseInt(t)}function h(t){return t.reduce(((t,e)=>t+(e?1:0)),0)}const v=navigator,g=window;const p=document,m=["monospace","sans-serif","serif"],w=["sans-serif-thin","ARNO PRO","Agency FB","Arabic Typesetting","Arial Unicode MS","AvantGarde Bk BT","BankGothic Md BT","Batang","Bitstream Vera Sans Mono","Calibri","Century","Century Gothic","Clarendon","EUROSTILE","Franklin Gothic","Futura Bk BT","Futura Md BT","GOTHAM","Gill Sans","HELV","Haettenschweiler","Helvetica Neue","Humanst521 BT","Leelawadee","Letter Gothic","Levenim MT","Lucida Bright","Lucida Sans","Menlo","MS Mincho","MS Outlook","MS Reference Specialty","MS UI Gothic","MT Extra","MYRIAD PRO","Marlett","Meiryo UI","Microsoft Uighur","Minion Pro","Monotype Corsiva","PMingLiU","Pristina","SCRIPTINA","Segoe UI Light","Serifa","SimHei","Small Fonts","Staccato222 BT","TRAJAN PRO","Univers CE 55 Medium","Vrinda","ZWAdobeF"],y={fontStyle:"normal",fontWeight:"normal",letterSpacing:"normal",lineBreak:"auto",lineHeight:"normal",textTransform:"none",textAlign:"left",textDecoration:"none",textShadow:"none",whiteSpace:"normal",wordBreak:"normal",wordSpacing:"normal"};function b(t){return t.toDataURL()}const S=navigator,k=window;const O=window,C=navigator,A=document;function E(){return h(["msWriteProfilerMark"in O,"msLaunchUri"in C,"msSaveBlob"in C])>=2}function R(){return h(["userActivation"in C,"mediaSession"in C,0===C.vendor.indexOf("Google"),"BackgroundFetchManager"in O,"BatteryManager"in O,"webkitMediaStream"in O,"webkitSpeechGrammar"in O])>=5}const T=navigator;const I=window;const M=window;const _=window;const x=document;const P={osCpu:function(){return navigator.oscpu},languages:function(){const t=[],e=T.language||T.userLanguage||T.browserLanguage||T.systemLanguage;if(void 0!==e&&t.push([e]),Array.isArray(T.languages))R()&&h([!("MediaSettingsRange"in O),!("PhotoCapabilities"in O),"RTCEncodedAudioFrame"in O,""+O.Intl=="[object Intl]"])>=2||t.push(T.languages);else if("string"==typeof T.languages){const e=T.languages;e&&t.push(e.split(","))}return t},colorDepth:function(){return window.screen.colorDepth},deviceMemory:function(){return navigator.deviceMemory},screenResolution:function(){const t=[f(I.screen.width),f(I.screen.height)];return t.sort().reverse(),t},availableScreenResolution:function(){if(M.screen.availWidth&&M.screen.availHeight){const t=[f(M.screen.availWidth),f(M.screen.availHeight)];return t.sort().reverse(),t}},hardwareConcurrency:function(){try{const t=f(navigator.hardwareConcurrency);return isNaN(t)?1:t}catch(t){return 1}},timezoneOffset:function(){return(new Date).getTimezoneOffset()},timezone:function(){var t;if(null===(t=_.Intl)||void 0===t?void 0:t.DateTimeFormat)return(new _.Intl.DateTimeFormat).resolvedOptions().timeZone},sessionStorage:function(){try{return!!window.sessionStorage}catch(t){return!0}},localStorage:function(){try{return!!window.localStorage}catch(t){return!0}},indexedDB:function(){if(!E())try{return!!window.indexedDB}catch(t){return!0}},openDatabase:function(){return!!window.openDatabase},cpuClass:function(){return navigator.cpuClass},platform:function(){return navigator.platform},plugins:function(){if(!navigator.plugins)return;const t=[];for(let e=0;e<navigator.plugins.length;++e){const n=navigator.plugins[e];if(!n)continue;const o=[];for(const t of n)o.push({type:t.type,suffixes:t.suffixes});t.push({name:n.name,description:n.description,mimeTypes:o})}return t},canvas:function(){const[t,e]=function(){const t=document.createElement("canvas");return t.width=240,t.height=140,t.style.display="inline",[t,t.getContext("2d")]}();if(!function(t,e){return!(!e||!t.toDataURL)}(t,e))return{winding:!1,data:""};e.rect(0,0,10,10),e.rect(2,2,6,6);const n=!e.isPointInPath(5,5,"evenodd");e.textBaseline="alphabetic",e.fillStyle="#f60",e.fillRect(125,1,62,20),e.fillStyle="#069",e.font="11pt no-real-font-123";const o="Cwm fjordbank 😃 gly";return e.fillText(o,2,15),e.fillStyle="rgba(102, 204, 0, 0.2)",e.font="18pt Arial",e.fillText(o,4,45),e.globalCompositeOperation="multiply",e.fillStyle="rgb(255,0,255)",e.beginPath(),e.arc(50,50,50,0,2*Math.PI,!0),e.closePath(),e.fill(),e.fillStyle="rgb(0,255,255)",e.beginPath(),e.arc(100,50,50,0,2*Math.PI,!0),e.closePath(),e.fill(),e.fillStyle="rgb(255,255,0)",e.beginPath(),e.arc(75,100,50,0,2*Math.PI,!0),e.closePath(),e.fill(),e.fillStyle="rgb(255,0,255)",e.arc(75,75,75,0,2*Math.PI,!0),e.arc(75,75,25,0,2*Math.PI,!0),e.fill("evenodd"),{winding:n,data:b(t)}},touchSupport:function(){let t,e=0;void 0!==S.maxTouchPoints?e=f(S.maxTouchPoints):void 0!==S.msMaxTouchPoints&&(e=S.msMaxTouchPoints);try{document.createEvent("TouchEvent"),t=!0}catch(n){t=!1}return{maxTouchPoints:e,touchEvent:t,touchStart:"ontouchstart"in k}},fonts:function(){const t=p.body,e=p.createElement("div"),n=p.createElement("div"),o={},r={},i=()=>{const t=p.createElement("span");return Object.assign(t.style,y,{position:"absolute",left:"-9999px",fontSize:"48px"}),t.textContent="mmMwWLliI0O&1",t},a=(t,e)=>{const n=i();return n.style.fontFamily=`'${t}',${e}`,n},s=t=>m.some(((e,n)=>t[n].offsetWidth!==o[e]||t[n].offsetHeight!==r[e])),c=m.map((t=>{const n=i();return n.style.fontFamily=t,e.appendChild(n),n}));t.appendChild(e);for(let d=0,f=m.length;d<f;d++)o[m[d]]=c[d].offsetWidth,r[m[d]]=c[d].offsetHeight;const u=(()=>{const t={};for(const e of w)t[e]=m.map((t=>{const o=a(e,t);return n.appendChild(o),o}));return t})();t.appendChild(n);const l=[];for(let d=0,f=w.length;d<f;d++)s(u[w[d]])&&l.push(w[d]);return t.removeChild(n),t.removeChild(e),l},audio:function(){return n(this,void 0,void 0,(function*(){if(v.userAgent.match(/OS 11.+Version\/11.+Safari/))return-1;const t=g.OfflineAudioContext||g.webkitOfflineAudioContext;if(!t)return-2;const e=new t(1,44100,44100),n=e.createOscillator();n.type="triangle",n.frequency.setValueAtTime(1e4,e.currentTime);const o=e.createDynamicsCompressor();for(const[r,i]of[["threshold",-50],["knee",40],["ratio",12],["reduction",-20],["attack",0],["release",.25]])"function"==typeof o[r].setValueAtTime&&o[r].setValueAtTime(i,e.currentTime);return n.connect(o),o.connect(e.destination),n.start(0),e.startRendering(),new Promise((t=>{const r=setTimeout((()=>{e.oncomplete=()=>{},t(-3)}),1e3);e.oncomplete=e=>{let i;try{clearTimeout(r),i=e.renderedBuffer.getChannelData(0).slice(4500,5e3).reduce(((t,e)=>t+Math.abs(e)),0),n.disconnect(),o.disconnect()}catch(a){return void t(-4)}t(i)}}))}))},pluginsSupport:function(){return void 0!==navigator.plugins},productSub:function(){return navigator.productSub},emptyEvalLength:function(){return eval.toString().length},errorFF:function(){try{throw"a"}catch(t){try{return t.toSource(),!0}catch(e){return!1}}},vendor:function(){return navigator.vendor},chrome:function(){return void 0!==window.chrome},cookiesEnabled:function(){try{x.cookie="cookietest=1";const t=-1!==x.cookie.indexOf("cookietest=");return x.cookie="cookietest=1; expires=Thu, 01-Jan-1970 00:00:01 GMT",t}catch(t){return!1}}};function j(t,e,o){return n(this,void 0,void 0,(function*(){let n=Date.now();const r={};for(const a of Object.keys(t)){if(function(t,e){for(let n=0,o=t.length;n<o;++n)if(t[n]===e)return!0;return!1}(o,a))continue;let s,c;try{s={value:yield t[a](e)}}catch(i){s=i&&"object"==typeof i&&"message"in i?{error:i}:{error:{message:i}}}c=Date.now(),r[a]=Object.assign(Object.assign({},s),{duration:c-n}),n=c}return r}))}function N(t){let e;return{components:t,get visitorId(){return void 0===e&&(e=d(function(t){let e="";for(const n of Object.keys(t)){const o=t[n],r=o.error?"error":JSON.stringify(o.value);e+=`${e?"|":""}${n.replace(/([:|\\])/g,"\\$1")}:${r}`}return e}(this.components))),e},set visitorId(t){e=t}}}class D{get(t={}){return n(this,void 0,void 0,(function*(){const e=yield j(P,void 0,[]),n=N(e);return t.debug&&console.log(`Copy the text below to get the debug data:\n\n\`\`\`\nversion: 3.0.0-beta.3\ngetOptions: ${JSON.stringify(t,void 0,2)}\nvisitorId: ${n.visitorId}\ncomponents: ${function(t){return JSON.stringify(t,((t,e)=>{var n;return e instanceof Error?Object.assign(Object.assign({},e),{message:e.message,stack:null===(n=e.stack)||void 0===n?void 0:n.split("\n")}):e}),2)}(e)}\n\`\`\``),n}))}}function B({delayFallback:t=50}={}){return n(this,void 0,void 0,(function*(){var e;return yield(e=t,new Promise((t=>{window.requestIdleCallback?window.requestIdleCallback((()=>t())):setTimeout(t,e)}))),new D}))}const L=d;var F="3.0.0-beta.3";function U(t,e){return new Promise((n=>setTimeout((()=>n(e)),t)))}function W(t,e,o){return n(this,void 0,void 0,(function*(){const n=yield Promise.race([U(e,[!0]),("function"==typeof t?t():t).then((t=>[!1,t]))]);return n[0]?null==o?void 0:o():n[1]}))}const q="TimeoutError";function $(t){return n(this,void 0,void 0,(function*(){let o;try{o=yield function(t,o){var{timeout:r}=o,i=e(o,["timeout"]);return n(this,void 0,void 0,(function*(){let e="undefined"==typeof AbortController?void 0:new AbortController;return W(fetch(t,Object.assign(Object.assign({},i),{signal:null==e?void 0:e.signal})),r,(()=>{throw null==e||e.abort(),new DOMException("The request timed out.",q)}))}))}("https://api.sjpf.io",{timeout:t})}catch(i){switch(i.name){case"AbortError":throw new Error("Abort");case q:throw new Error("Timeout");default:throw new Error("Connection error")}}const r=yield o.text();if(200===o.status)return r;throw new Error(r.slice(0,255))}))}const V="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",G=V.length;const J="Client timeout",H="Network connection error",z="Network request aborted",K="n/a";function Z(t="us",e){if(e)return/^(https?:)?\/\//i.test(e)?e:"https://"+e;let n="api.fpjs.io";return"us"!==t&&(n=`${t}.${n}`),"https://"+n}function Q(t){var{endpoint:o,extendedResult:r,debug:i}=t,a=e(t,["endpoint","extendedResult","debug"]);return n(this,void 0,void 0,(function*(){const t=function(t){let e="";for(let n=0;n<t;n++)e+=V.charAt(Math.random()*G);return e}(20),s=function({components:t,token:e,visitorId:n,tag:o,ipResolution:r,extendedResult:i,linkedId:a,tls:s,tlsError:c,requestId:u}){const l=Object.keys(t).reduce(((e,n)=>e+t[n].duration),0),d="full"===r?2:1;return{rid:u,cv:F,c:e,url:location.href,d:l,vid:n[0]||n[1]||void 0,ls:n[1]?1:void 0,t:X(o),i:d,cbd:i?1:void 0,lid:a,cr:document.referrer||void 0,j:s,je:null==c?void 0:c.message,k1:Y(t.osCpu),k2:Y(t.languages),k3:Y(t.colorDepth),k4:Y(t.deviceMemory),k5:Y(t.screenResolution),k6:Y(t.availableScreenResolution,void 0,[]),k7:Y(t.hardwareConcurrency),k8:Y(t.timezoneOffset),k9:Y(t.timezone),k10:tt(Y(t.sessionStorage)),k11:tt(Y(t.localStorage)),k12:tt(Y(t.indexedDB)),k13:tt(Y(t.openDatabase)),k14:Y(t.cpuClass),k15:Y(t.platform),k16:Y(t.plugins,[]),k17:et(t.canvas),k18:0,k19:Y(t.touchSupport),k20:Y(t.fonts,[]),k21:Y(t.audio,-1),k22:tt(Y(t.pluginsSupport)),k23:Y(t.productSub),k24:Y(t.emptyEvalLength),k25:tt(Y(t.errorFF)),k26:tt(Y(t[0])),k27:Y(t.vendor),k28:tt(Y(t.chrome)),k29:tt(Y(t[1])),k30:tt(Y(t[2])),k31:tt(Y(t[3],!1)),k32:tt(Y(t.cookiesEnabled,!1)),k33:tt(Y(t[4]))}}(Object.assign({extendedResult:r,requestId:t},a));return function(t,o,r,i){return n(this,void 0,void 0,(function*(){const n=yield t.text();let a;try{a=JSON.parse(n)}catch(s){}if(i&&console.log(`Visitor response status: ${t.status}\nVisitor response body:\n\`\`\`json\n${void 0===a?n:JSON.stringify(a,void 0,2)}\n\`\`\``),404===t.status||t.status>=500)throw new Error(t.statusText);if(void 0===a)throw new Error(n);if(function(t){return t&&"object"==typeof t&&"string"==typeof t.visitorId&&t.visitorId!==K}(a))return function(t){const n=t,{botProbability:o}=n,r=e(n,["botProbability"]),i=Object.assign({},r);o&&(i.bot={probability:o});return i}(a);if(function(t){return t&&"object"==typeof t&&t.visitorId===K}(a)){if("Not available for crawl bots"===a.reason||"Not available when User-Agent is unspecified"===a.reason)return function(t,e,n){const o={requestId:e,visitorFound:!1,visitorId:""};if(!n)return o;const r=Object.assign(Object.assign({},o),{bot:{probability:1},incognito:!1,browserName:K,browserVersion:K,device:K,ip:K,ipLocation:{},os:K,osVersion:K});"Not available for crawl bots"===t&&(r.bot.safe=!0);return r}(a.reason,o,r);throw new Error(a.reason)}throw new Error(n)}))}(yield function(t,e,o){return n(this,void 0,void 0,(function*(){o&&console.log(`Visitor request:\n\`\`\`json\n${JSON.stringify(e,void 0,2)}\n\`\`\``);const n=JSON.stringify(e);try{return yield fetch(t,{method:"POST",body:n,headers:{"Content-Type":"text/plain"},credentials:"include"})}catch(r){throw new Error("AbortError"===r.name?z:H)}}))}(o,s,i),t,r,i)}))}function X(t){return t&&"object"==typeof t?t:null!=t?{tag:t}:void 0}function Y(t,e,n){var o;return t.error?e:null!==(o=t.value)&&void 0!==o?o:n}function tt(t){return!0===t?1:!1===t?0:t}function et({value:t}){if(t)return Object.assign(Object.assign({},t),{data:L(t.data)})}const nt=window,ot=document;const rt=window;const it=navigator,at=window;const st=window,ct=navigator;const ut="_inc",lt=[[function(){return R()},function(){return n(this,void 0,void 0,(function*(){return function(){const t=it.userAgent.match(/Chrom(e|ium)\/([0-9]+)\./);if(!t)throw"UserAgent is not Google Chrome";return parseInt(t[2],10)}()>=76?function(){return n(this,void 0,void 0,(function*(){if("storage"in it&&"estimate"in it.storage){const{quota:t}=yield it.storage.estimate();return!!t&&t<function(){var t,e,n;const o=(null===(t=it.userAgent)||void 0===t?void 0:t.indexOf("Mac OS"))>0&&-1===(null===(e=it.userAgent)||void 0===e?void 0:e.indexOf("iPhone")),r=(null===(n=it.userAgent)||void 0===n?void 0:n.indexOf("CrOS"))>0;return o||r?3221225472:1073741824}()}return!1}))}():new Promise((t=>{at.webkitRequestFileSystem(0,1,(()=>t(!1)),(()=>t(!0)))}))}))}],[function(){return/Apple/.test(ct.vendor)&&/Safari/.test(ct.userAgent)},function(){return n(this,void 0,void 0,(function*(){return function(){const t=navigator.userAgent.match(/Version\/([0-9._]+).*Safari/);if(!t)throw new Error("UserAgent is not Safari");const e=t[1].split("."),[n,o,r]=e.map((t=>isNaN(parseInt(t))?0:parseInt(t)));return{major:n,minor:o,patch:r}}().major<13?function(){try{st.openDatabase(null,null,null,null)}catch(t){return!0}try{return st.localStorage.setItem("test","1"),st.localStorage.removeItem("test"),!1}catch(t){return!0}}():function(){return n(this,void 0,void 0,(function*(){return"safari"in O?function(){try{st.safari.pushNotification.requestPermission("https://example.com","private",{},(()=>{}))}catch(e){return t=e,!new RegExp([103,101,115,116,117,114,101].map((t=>String.fromCharCode(t))).join("")).test(t)}var t;throw new Error("Unexpected lack of error")}():function(){return n(this,void 0,void 0,(function*(){const t=document.createElement("iframe");t.style.display="none";try{return document.body.appendChild(t),W(new Promise((e=>{t.contentWindow?t.contentWindow.applicationCache.addEventListener("error",(()=>e(!0))):e(!1)})),20,(()=>!1))}finally{t.remove()}}))}()}))}()}))}],[function(){return h(["buildID"in C,(null===(t=A.documentElement)||void 0===t?void 0:t.style)&&"MozAppearance"in A.documentElement.style,"MediaRecorderErrorEvent"in O,"mozInnerScreenX"in O,"CSSMozDocumentRule"in O,"CanvasCaptureMediaStream"in O])>=4;var t},function(){return n(this,void 0,void 0,(function*(){return new Promise((t=>{try{const e=rt.indexedDB.open("test");e.onerror=()=>t(!0),e.onsuccess=()=>t(!1)}catch(e){return t(!0)}}))}))}],[function(){return E()},function(){try{if(!window.indexedDB)return!0}catch(t){return!0}return!1}]];function dt(t,e){if(0==e.length||e.length>t.length)return-1;for(let n=0;n<t.length;n++){let o=0;for(let r=0;r<e.length;r++){if(t[n+r]!==e[r]){o=0;break}o++}if(o==e.length)return n}return-1}const ft=window,ht=document;const vt={0:function(){return void 0!==navigator.webdriver},1:function(){return navigator.permissions.query({name:"notifications"}).then((function(t){return"denied"===Notification.permission&&"prompt"===t.state}))},2:function(){const{documentElement:t}=ot;return"webdriver"in nt||"_Selenium_IDE_Recorder"in nt||"callSelenium"in nt||"_selenium"in nt||"__webdriver_script_fn"in ot||"__driver_evaluate"in ot||"__webdriver_evaluate"in ot||"__selenium_evaluate"in ot||"__fxdriver_evaluate"in ot||"__driver_unwrapped"in ot||"__webdriver_unwrapped"in ot||"__selenium_unwrapped"in ot||"__fxdriver_unwrapped"in ot||"__webdriver_script_func"in ot||null!==t.getAttribute("selenium")||null!==t.getAttribute("webdriver")||null!==t.getAttribute("driver")},3:function(){return n(this,void 0,void 0,(function*(){const t=function(){try{const t=localStorage.getItem(ut);if(!t)return;return"1"===t}catch(t){return}}();if(void 0!==t)return t;try{const t=yield function(){return n(this,void 0,void 0,(function*(){for(const[t,e]of lt)if(t())return yield e();return!1}))}();return function(t){try{localStorage.setItem(ut,t?"1":"0")}catch(e){}}(t),t}catch(e){return!1}}))},4:function(){if(!R())return!1;try{if([66,114,97,118,101].map((t=>String.fromCharCode(t))).join("")in ft)return!0;const t=ht.createElement("canvas");t.width=4,t.height=4,t.style.display="inline";const e=t.toDataURL();if(""===e)return!0;const n=window.atob(e.split(",")[1]),o=n.length,r=new Uint8Array(o);for(let c=0;c<o;c++)r[c]=n.charCodeAt(c);const i=dt(r,[73,68,65,84,24]);if(-1===i)return!1;const a=dt(r,[73,69,78,68]);if(-1===i)return!1;const s=r.slice(i+5,a);return 1321!==s.reduce(((t,e)=>t+e),0)}catch(t){return!1}}};const gt=document,pt=location;function mt(t){const e=t+"=";for(const n of gt.cookie.split(";")){let t=0;for(;" "===n[t]&&t<n.length;++t);if(n.indexOf(e)===t)return n.slice(t+e.length)}}function wt(t,e,n,o){const r=`${t}=${e}`,i="expires="+new Date(Date.now()+24*n*60*60*1e3).toUTCString(),a=o?"domain="+o:"";gt.cookie=[r,"path=/",i,a].join("; ")}function yt(t,e,n){const o=pt.hostname;bt(o,(e=>{!function(t,e){wt(t,"",-1,e)}(t,e)}));bt(o,(o=>(wt(t,e,n,o),mt(t)!==e)))&&wt(t,e,n)}function bt(t,e){let n=t.length;do{if(n=n>0?t.lastIndexOf(".",n-1):-1,!1===e(t.slice(n+1)))return!1}while(n>=0);return!0}const{localStorage:St}=window;function kt(t="_vid"){return[mt(t),Ct(t)]}function Ot(t,e="_vid"){yt(e,t,365),function(t,e){if(null==St?void 0:St.setItem)try{St.setItem(t,e)}catch(n){}}(e,t)}function Ct(t){var e;if(null==St?void 0:St.getItem)try{return null!==(e=St.getItem(t))&&void 0!==e?e:void 0}catch(n){}}var At,Et,Rt,Tt,It,Mt,_t,xt;class Pt{constructor(t,e,i,a,s){At.set(this,void 0),Et.set(this,void 0),Rt.set(this,void 0),Tt.set(this,void 0),It.set(this,void 0),Mt.set(this,((t,e)=>n(this,void 0,void 0,(function*(){if(!e)return $(t).then((t=>({tls:t})),(t=>({tlsError:t})))})))),_t.set(this,(()=>n(this,void 0,void 0,(function*(){const t=yield o(this,At).get(),e=yield j(vt,void 0,[]);return Object.assign(Object.assign({},t.components),e)})))),xt.set(this,(t=>{const e={token:o(this,Et),region:o(this,Rt),endpoint:o(this,Tt),storageKey:o(this,It)};console.log(`Getting the visitor identifier:\n\`\`\`\nversion: 3.0.0-beta.3\ninitOptions: ${JSON.stringify(e,void 0,2)}\ngetOptions: ${JSON.stringify(t,void 0,2)}\n\`\`\``)})),r(this,At,t),r(this,Et,e),r(this,Rt,i),r(this,Tt,a),r(this,It,s)}get(t={}){const{timeout:e=1e4,tag:r,linkedId:i,disableTls:a,extendedResult:s,ipResolution:c,debug:u}=t;return u&&o(this,xt).call(this,t),l=J,W((()=>n(this,void 0,void 0,(function*(){const[t,n]=yield Promise.all([o(this,Mt).call(this,e/2,a),o(this,_t).call(this)]),l=yield Q(Object.assign(Object.assign({token:o(this,Et),endpoint:Z(o(this,Rt),o(this,Tt))},t),{components:n,tag:r,visitorId:kt(o(this,It)),linkedId:i,extendedResult:s,ipResolution:c,debug:u}));return Ot(l.visitorId,o(this,It)),l}))),e,(()=>{throw new Error(l)}));var l}}At=new WeakMap,Et=new WeakMap,Rt=new WeakMap,Tt=new WeakMap,It=new WeakMap,Mt=new WeakMap,_t=new WeakMap,xt=new WeakMap;return t.ERROR_BAD_REQUEST_FORMAT="Request cannot be parsed",t.ERROR_CLIENT_TIMEOUT=J,t.ERROR_GENERAL_SERVER_FAILURE="Request failed",t.ERROR_NETWORK_ABORT=z,t.ERROR_NETWORK_CONNECTION=H,t.ERROR_RATE_LIMIT="Too many requests, rate limit exceeded",t.ERROR_SERVER_TIMEOUT="Request failed to process",t.ERROR_TOKEN_INVALID="Token not found",t.ERROR_TOKEN_MISSING="Token required",t.load=function({token:t,region:e,endpoint:o,storageKey:r,delayFallback:i}){return n(this,void 0,void 0,(function*(){if(!t||"string"!=typeof t)throw new Error("Token required");const n=yield B({delayFallback:i});return new Pt(n,t,e,o,r)}))},t}({});
var FingerprintJS=function(t){"use strict";function e(t,e){var n={};for(var o in t)Object.prototype.hasOwnProperty.call(t,o)&&e.indexOf(o)<0&&(n[o]=t[o]);if(null!=t&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(o=Object.getOwnPropertySymbols(t);r<o.length;r++)e.indexOf(o[r])<0&&Object.prototype.propertyIsEnumerable.call(t,o[r])&&(n[o[r]]=t[o[r]])}return n}function n(t,e,n,o){return new(n||(n=Promise))((function(r,i){function a(t){try{c(o.next(t))}catch(e){i(e)}}function s(t){try{c(o.throw(t))}catch(e){i(e)}}function c(t){var e;t.done?r(t.value):(e=t.value,e instanceof n?e:new n((function(t){t(e)}))).then(a,s)}c((o=o.apply(t,e||[])).next())}))}function o(t,e){if(!e.has(t))throw new TypeError("attempted to get private field on non-instance");return e.get(t)}function r(t,e,n){if(!e.has(t))throw new TypeError("attempted to set private field on non-instance");return e.set(t,n),n}function i(t,e){t=[t[0]>>>16,65535&t[0],t[1]>>>16,65535&t[1]],e=[e[0]>>>16,65535&e[0],e[1]>>>16,65535&e[1]];var n=[0,0,0,0];return n[3]+=t[3]+e[3],n[2]+=n[3]>>>16,n[3]&=65535,n[2]+=t[2]+e[2],n[1]+=n[2]>>>16,n[2]&=65535,n[1]+=t[1]+e[1],n[0]+=n[1]>>>16,n[1]&=65535,n[0]+=t[0]+e[0],n[0]&=65535,[n[0]<<16|n[1],n[2]<<16|n[3]]}function a(t,e){t=[t[0]>>>16,65535&t[0],t[1]>>>16,65535&t[1]],e=[e[0]>>>16,65535&e[0],e[1]>>>16,65535&e[1]];var n=[0,0,0,0];return n[3]+=t[3]*e[3],n[2]+=n[3]>>>16,n[3]&=65535,n[2]+=t[2]*e[3],n[1]+=n[2]>>>16,n[2]&=65535,n[2]+=t[3]*e[2],n[1]+=n[2]>>>16,n[2]&=65535,n[1]+=t[1]*e[3],n[0]+=n[1]>>>16,n[1]&=65535,n[1]+=t[2]*e[2],n[0]+=n[1]>>>16,n[1]&=65535,n[1]+=t[3]*e[1],n[0]+=n[1]>>>16,n[1]&=65535,n[0]+=t[0]*e[3]+t[1]*e[2]+t[2]*e[1]+t[3]*e[0],n[0]&=65535,[n[0]<<16|n[1],n[2]<<16|n[3]]}function s(t,e){return 32===(e%=64)?[t[1],t[0]]:e<32?[t[0]<<e|t[1]>>>32-e,t[1]<<e|t[0]>>>32-e]:(e-=32,[t[1]<<e|t[0]>>>32-e,t[0]<<e|t[1]>>>32-e])}function c(t,e){return 0===(e%=64)?t:e<32?[t[0]<<e|t[1]>>>32-e,t[1]<<e]:[t[1]<<e-32,0]}function u(t,e){return[t[0]^e[0],t[1]^e[1]]}function l(t){return t=u(t,[0,t[0]>>>1]),t=u(t=a(t,[4283543511,3981806797]),[0,t[0]>>>1]),t=u(t=a(t,[3301882366,444984403]),[0,t[0]>>>1])}function d(t,e){e=e||0;for(var n=(t=t||"").length%16,o=t.length-n,r=[0,e],d=[0,e],f=[0,0],h=[0,0],v=[2277735313,289559509],g=[1291169091,658871167],p=0;p<o;p+=16)f=[255&t.charCodeAt(p+4)|(255&t.charCodeAt(p+5))<<8|(255&t.charCodeAt(p+6))<<16|(255&t.charCodeAt(p+7))<<24,255&t.charCodeAt(p)|(255&t.charCodeAt(p+1))<<8|(255&t.charCodeAt(p+2))<<16|(255&t.charCodeAt(p+3))<<24],h=[255&t.charCodeAt(p+12)|(255&t.charCodeAt(p+13))<<8|(255&t.charCodeAt(p+14))<<16|(255&t.charCodeAt(p+15))<<24,255&t.charCodeAt(p+8)|(255&t.charCodeAt(p+9))<<8|(255&t.charCodeAt(p+10))<<16|(255&t.charCodeAt(p+11))<<24],f=s(f=a(f,v),31),r=i(r=s(r=u(r,f=a(f,g)),27),d),r=i(a(r,[0,5]),[0,1390208809]),h=s(h=a(h,g),33),d=i(d=s(d=u(d,h=a(h,v)),31),r),d=i(a(d,[0,5]),[0,944331445]);switch(f=[0,0],h=[0,0],n){case 15:h=u(h,c([0,t.charCodeAt(p+14)],48));case 14:h=u(h,c([0,t.charCodeAt(p+13)],40));case 13:h=u(h,c([0,t.charCodeAt(p+12)],32));case 12:h=u(h,c([0,t.charCodeAt(p+11)],24));case 11:h=u(h,c([0,t.charCodeAt(p+10)],16));case 10:h=u(h,c([0,t.charCodeAt(p+9)],8));case 9:h=a(h=u(h,[0,t.charCodeAt(p+8)]),g),d=u(d,h=a(h=s(h,33),v));case 8:f=u(f,c([0,t.charCodeAt(p+7)],56));case 7:f=u(f,c([0,t.charCodeAt(p+6)],48));case 6:f=u(f,c([0,t.charCodeAt(p+5)],40));case 5:f=u(f,c([0,t.charCodeAt(p+4)],32));case 4:f=u(f,c([0,t.charCodeAt(p+3)],24));case 3:f=u(f,c([0,t.charCodeAt(p+2)],16));case 2:f=u(f,c([0,t.charCodeAt(p+1)],8));case 1:f=a(f=u(f,[0,t.charCodeAt(p)]),v),r=u(r,f=a(f=s(f,31),g))}return r=i(r=u(r,[0,t.length]),d=u(d,[0,t.length])),d=i(d,r),r=i(r=l(r),d=l(d)),d=i(d,r),("00000000"+(r[0]>>>0).toString(16)).slice(-8)+("00000000"+(r[1]>>>0).toString(16)).slice(-8)+("00000000"+(d[0]>>>0).toString(16)).slice(-8)+("00000000"+(d[1]>>>0).toString(16)).slice(-8)}function f(t){return"number"==typeof t?0|t:parseInt(t)}function h(t){return t.reduce(((t,e)=>t+(e?1:0)),0)}const v=navigator,g=window;const p=document,m=["monospace","sans-serif","serif"],w=["sans-serif-thin","ARNO PRO","Agency FB","Arabic Typesetting","Arial Unicode MS","AvantGarde Bk BT","BankGothic Md BT","Batang","Bitstream Vera Sans Mono","Calibri","Century","Century Gothic","Clarendon","EUROSTILE","Franklin Gothic","Futura Bk BT","Futura Md BT","GOTHAM","Gill Sans","HELV","Haettenschweiler","Helvetica Neue","Humanst521 BT","Leelawadee","Letter Gothic","Levenim MT","Lucida Bright","Lucida Sans","Menlo","MS Mincho","MS Outlook","MS Reference Specialty","MS UI Gothic","MT Extra","MYRIAD PRO","Marlett","Meiryo UI","Microsoft Uighur","Minion Pro","Monotype Corsiva","PMingLiU","Pristina","SCRIPTINA","Segoe UI Light","Serifa","SimHei","Small Fonts","Staccato222 BT","TRAJAN PRO","Univers CE 55 Medium","Vrinda","ZWAdobeF"],y={fontStyle:"normal",fontWeight:"normal",letterSpacing:"normal",lineBreak:"auto",lineHeight:"normal",textTransform:"none",textAlign:"left",textDecoration:"none",textShadow:"none",whiteSpace:"normal",wordBreak:"normal",wordSpacing:"normal"};function b(t){return t.toDataURL()}const R=navigator,E=window;const O=window,S=navigator,k=document;function A(){return h(["msWriteProfilerMark"in O,"msLaunchUri"in S,"msSaveBlob"in S])>=2}function C(){return h(["userActivation"in S,"mediaSession"in S,0===S.vendor.indexOf("Google"),"BackgroundFetchManager"in O,"BatteryManager"in O,"webkitMediaStream"in O,"webkitSpeechGrammar"in O])>=5}const T=navigator;const _=window;const I=window;const M=window;const x=document;const N={osCpu:function(){return navigator.oscpu},languages:function(){const t=[],e=T.language||T.userLanguage||T.browserLanguage||T.systemLanguage;if(void 0!==e&&t.push([e]),Array.isArray(T.languages))C()&&h([!("MediaSettingsRange"in O),!("PhotoCapabilities"in O),"RTCEncodedAudioFrame"in O,""+O.Intl=="[object Intl]"])>=2||t.push(T.languages);else if("string"==typeof T.languages){const e=T.languages;e&&t.push(e.split(","))}return t},colorDepth:function(){return window.screen.colorDepth},deviceMemory:function(){return navigator.deviceMemory},screenResolution:function(){const t=[f(_.screen.width),f(_.screen.height)];return t.sort().reverse(),t},availableScreenResolution:function(){if(I.screen.availWidth&&I.screen.availHeight){const t=[f(I.screen.availWidth),f(I.screen.availHeight)];return t.sort().reverse(),t}},hardwareConcurrency:function(){try{const t=f(navigator.hardwareConcurrency);return isNaN(t)?1:t}catch(t){return 1}},timezoneOffset:function(){return(new Date).getTimezoneOffset()},timezone:function(){var t;if(null===(t=M.Intl)||void 0===t?void 0:t.DateTimeFormat)return(new M.Intl.DateTimeFormat).resolvedOptions().timeZone},sessionStorage:function(){try{return!!window.sessionStorage}catch(t){return!0}},localStorage:function(){try{return!!window.localStorage}catch(t){return!0}},indexedDB:function(){if(!A())try{return!!window.indexedDB}catch(t){return!0}},openDatabase:function(){return!!window.openDatabase},cpuClass:function(){return navigator.cpuClass},platform:function(){return navigator.platform},plugins:function(){if(!navigator.plugins)return;const t=[];for(let e=0;e<navigator.plugins.length;++e){const n=navigator.plugins[e];if(!n)continue;const o=[];for(const t of n)o.push({type:t.type,suffixes:t.suffixes});t.push({name:n.name,description:n.description,mimeTypes:o})}return t},canvas:function(){const[t,e]=function(){const t=document.createElement("canvas");return t.width=240,t.height=140,t.style.display="inline",[t,t.getContext("2d")]}();if(!function(t,e){return!(!e||!t.toDataURL)}(t,e))return{winding:!1,data:""};e.rect(0,0,10,10),e.rect(2,2,6,6);const n=!e.isPointInPath(5,5,"evenodd");e.textBaseline="alphabetic",e.fillStyle="#f60",e.fillRect(125,1,62,20),e.fillStyle="#069",e.font="11pt no-real-font-123";const o="Cwm fjordbank 😃 gly";return e.fillText(o,2,15),e.fillStyle="rgba(102, 204, 0, 0.2)",e.font="18pt Arial",e.fillText(o,4,45),e.globalCompositeOperation="multiply",e.fillStyle="rgb(255,0,255)",e.beginPath(),e.arc(50,50,50,0,2*Math.PI,!0),e.closePath(),e.fill(),e.fillStyle="rgb(0,255,255)",e.beginPath(),e.arc(100,50,50,0,2*Math.PI,!0),e.closePath(),e.fill(),e.fillStyle="rgb(255,255,0)",e.beginPath(),e.arc(75,100,50,0,2*Math.PI,!0),e.closePath(),e.fill(),e.fillStyle="rgb(255,0,255)",e.arc(75,75,75,0,2*Math.PI,!0),e.arc(75,75,25,0,2*Math.PI,!0),e.fill("evenodd"),{winding:n,data:b(t)}},touchSupport:function(){let t,e=0;void 0!==R.maxTouchPoints?e=f(R.maxTouchPoints):void 0!==R.msMaxTouchPoints&&(e=R.msMaxTouchPoints);try{document.createEvent("TouchEvent"),t=!0}catch(n){t=!1}return{maxTouchPoints:e,touchEvent:t,touchStart:"ontouchstart"in E}},fonts:function(){const t=p.body,e=p.createElement("div"),n=p.createElement("div"),o={},r={},i=()=>{const t=p.createElement("span");return Object.assign(t.style,y,{position:"absolute",left:"-9999px",fontSize:"48px"}),t.textContent="mmMwWLliI0O&1",t},a=(t,e)=>{const n=i();return n.style.fontFamily=`'${t}',${e}`,n},s=t=>m.some(((e,n)=>t[n].offsetWidth!==o[e]||t[n].offsetHeight!==r[e])),c=m.map((t=>{const n=i();return n.style.fontFamily=t,e.appendChild(n),n}));t.appendChild(e);for(let d=0,f=m.length;d<f;d++)o[m[d]]=c[d].offsetWidth,r[m[d]]=c[d].offsetHeight;const u=(()=>{const t={};for(const e of w)t[e]=m.map((t=>{const o=a(e,t);return n.appendChild(o),o}));return t})();t.appendChild(n);const l=[];for(let d=0,f=w.length;d<f;d++)s(u[w[d]])&&l.push(w[d]);return t.removeChild(n),t.removeChild(e),l},audio:function(){return n(this,void 0,void 0,(function*(){if(v.userAgent.match(/OS 11.+Version\/11.+Safari/))return-1;const t=g.OfflineAudioContext||g.webkitOfflineAudioContext;if(!t)return-2;const e=new t(1,44100,44100),n=e.createOscillator();n.type="triangle",n.frequency.setValueAtTime(1e4,e.currentTime);const o=e.createDynamicsCompressor();for(const[r,i]of[["threshold",-50],["knee",40],["ratio",12],["reduction",-20],["attack",0],["release",.25]])"function"==typeof o[r].setValueAtTime&&o[r].setValueAtTime(i,e.currentTime);return n.connect(o),o.connect(e.destination),n.start(0),e.startRendering(),new Promise((t=>{const r=setTimeout((()=>{e.oncomplete=()=>{},t(-3)}),1e3);e.oncomplete=e=>{let i;try{clearTimeout(r),i=e.renderedBuffer.getChannelData(0).slice(4500,5e3).reduce(((t,e)=>t+Math.abs(e)),0),n.disconnect(),o.disconnect()}catch(a){return void t(-4)}t(i)}}))}))},pluginsSupport:function(){return void 0!==navigator.plugins},productSub:function(){return navigator.productSub},emptyEvalLength:function(){return eval.toString().length},errorFF:function(){try{throw"a"}catch(t){try{return t.toSource(),!0}catch(e){return!1}}},vendor:function(){return navigator.vendor},chrome:function(){return void 0!==window.chrome},cookiesEnabled:function(){try{x.cookie="cookietest=1";const t=-1!==x.cookie.indexOf("cookietest=");return x.cookie="cookietest=1; expires=Thu, 01-Jan-1970 00:00:01 GMT",t}catch(t){return!1}}};function P(t,e,o){return n(this,void 0,void 0,(function*(){let n=Date.now();const r={};for(const a of Object.keys(t)){if(function(t,e){for(let n=0,o=t.length;n<o;++n)if(t[n]===e)return!0;return!1}(o,a))continue;let s,c;try{s={value:yield t[a](e)}}catch(i){s=i&&"object"==typeof i&&"message"in i?{error:i}:{error:{message:i}}}c=Date.now(),r[a]=Object.assign(Object.assign({},s),{duration:c-n}),n=c}return r}))}function j(t){return d(function(t){let e="";for(const n of Object.keys(t)){const o=t[n],r=o.error?"error":JSON.stringify(o.value);e+=`${e?"|":""}${n.replace(/([:|\\])/g,"\\$1")}:${r}`}return e}(t))}class D{get(t={}){return n(this,void 0,void 0,(function*(){const e=yield P(N,void 0,[]),n=function(t){let e;return{components:t,get visitorId(){return void 0===e&&(e=j(this.components)),e},set visitorId(t){e=t}}}(e);return t.debug&&console.log(`Copy the text below to get the debug data:\n\n\`\`\`\nversion: 3.0.0\ngetOptions: ${JSON.stringify(t,void 0,2)}\nvisitorId: ${n.visitorId}\ncomponents: ${function(t){return JSON.stringify(t,((t,e)=>{var n;return e instanceof Error?Object.assign(Object.assign({},e),{message:e.message,stack:null===(n=e.stack)||void 0===n?void 0:n.split("\n")}):e}),2)}(e)}\n\`\`\``),n}))}}function L({delayFallback:t=50}={}){return n(this,void 0,void 0,(function*(){var e;return yield(e=t,new Promise((t=>{window.requestIdleCallback?window.requestIdleCallback((()=>t())):setTimeout(t,e)}))),new D}))}const B=d;var F="3.0.0";function U(t,e){return new Promise((n=>setTimeout((()=>n(e)),t)))}function W(t,e,o){return n(this,void 0,void 0,(function*(){const n=yield Promise.race([U(e,[!0]),("function"==typeof t?t():t).then((t=>[!1,t]))]);return n[0]?null==o?void 0:o():n[1]}))}const q="TimeoutError";function V(t){return n(this,void 0,void 0,(function*(){let o;try{o=yield function(t,o){var{timeout:r}=o,i=e(o,["timeout"]);return n(this,void 0,void 0,(function*(){let e="undefined"==typeof AbortController?void 0:new AbortController;return W(fetch(t,Object.assign(Object.assign({},i),{signal:null==e?void 0:e.signal})),r,(()=>{throw null==e||e.abort(),new DOMException("The request timed out.",q)}))}))}("https://api.sjpf.io",{timeout:t})}catch(i){switch(i.name){case"AbortError":throw new Error("Abort");case q:throw new Error("Timeout");default:throw new Error("Connection error")}}const r=yield o.text();if(200===o.status)return r;throw new Error(r.slice(0,255))}))}const G="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",$=G.length;const J="Client timeout",K="Network connection error",H="Network request aborted",z="n/a";function X(t="us",e){if(e)return/^(https?:)?\/\//i.test(e)?e:"https://"+e;let n="api.fpjs.io";return"us"!==t&&(n=`${t}.${n}`),"https://"+n}function Q(t){var{endpoint:o,extendedResult:r,debug:i}=t,a=e(t,["endpoint","extendedResult","debug"]);return n(this,void 0,void 0,(function*(){const t=function(t){let e="";for(let n=0;n<t;n++)e+=G.charAt(Math.random()*$);return e}(20),s=function({components:t,token:e,visitorId:n,tag:o,ipResolution:r,extendedResult:i,linkedId:a,tls:s,tlsError:c,requestId:u}){const l=Object.keys(t).reduce(((e,n)=>e+t[n].duration),0),d="full"===r?2:1;return{rid:u,cv:F,c:e,url:location.href,d:l,vid:n[0]||n[1]||void 0,ls:n[1]?1:void 0,t:Z(o),i:d,cbd:i?1:void 0,lid:a,cr:document.referrer||void 0,j:s,je:null==c?void 0:c.message,k1:Y(t.osCpu),k2:Y(t.languages),k3:Y(t.colorDepth),k4:Y(t.deviceMemory),k5:Y(t.screenResolution),k6:Y(t.availableScreenResolution,void 0,[]),k7:Y(t.hardwareConcurrency),k8:Y(t.timezoneOffset),k9:Y(t.timezone),k10:tt(Y(t.sessionStorage)),k11:tt(Y(t.localStorage)),k12:tt(Y(t.indexedDB)),k13:tt(Y(t.openDatabase)),k14:Y(t.cpuClass),k15:Y(t.platform),k16:Y(t.plugins,[]),k17:et(t.canvas),k18:0,k19:Y(t.touchSupport),k20:Y(t.fonts,[]),k21:Y(t.audio,-1),k22:tt(Y(t.pluginsSupport)),k23:Y(t.productSub),k24:Y(t.emptyEvalLength),k25:tt(Y(t.errorFF)),k26:tt(Y(t[0])),k27:Y(t.vendor),k28:tt(Y(t.chrome)),k29:tt(Y(t[1])),k30:tt(Y(t[2])),k31:tt(Y(t[3],!1)),k32:tt(Y(t.cookiesEnabled,!1)),k33:tt(Y(t[4]))}}(Object.assign({extendedResult:r,requestId:t},a));return function(t,o,r,i){return n(this,void 0,void 0,(function*(){const n=yield t.text();let a;try{a=JSON.parse(n)}catch(s){}if(i&&console.log(`Visitor response status: ${t.status}\nVisitor response body:\n\`\`\`json\n${void 0===a?n:JSON.stringify(a,void 0,2)}\n\`\`\``),404===t.status||t.status>=500)throw new Error(t.statusText);if(void 0===a)throw new Error(n);if(function(t){return t&&"object"==typeof t&&"string"==typeof t.visitorId&&t.visitorId!==z}(a))return function(t){const n=t,{botProbability:o}=n,r=e(n,["botProbability"]),i=Object.assign({},r);o&&(i.bot={probability:o});return i}(a);if(function(t){return t&&"object"==typeof t&&t.visitorId===z}(a)){if("Not available for crawl bots"===a.reason||"Not available when User-Agent is unspecified"===a.reason)return function(t,e,n){const o={requestId:e,visitorFound:!1,visitorId:""};if(!n)return o;const r=Object.assign(Object.assign({},o),{bot:{probability:1},incognito:!1,browserName:z,browserVersion:z,device:z,ip:z,ipLocation:{},os:z,osVersion:z});"Not available for crawl bots"===t&&(r.bot.safe=!0);return r}(a.reason,o,r);throw new Error(a.reason)}throw new Error(n)}))}(yield function(t,e,o){return n(this,void 0,void 0,(function*(){o&&console.log(`Visitor request:\n\`\`\`json\n${JSON.stringify(e,void 0,2)}\n\`\`\``);const n=JSON.stringify(e);try{return yield fetch(t,{method:"POST",body:n,headers:{"Content-Type":"text/plain"},credentials:"include"})}catch(r){throw new Error("AbortError"===r.name?H:K)}}))}(o,s,i),t,r,i)}))}function Z(t){return t&&"object"==typeof t?t:null!=t?{tag:t}:void 0}function Y(t,e,n){var o;return t.error?e:null!==(o=t.value)&&void 0!==o?o:n}function tt(t){return!0===t?1:!1===t?0:t}function et({value:t}){if(t)return Object.assign(Object.assign({},t),{data:B(t.data)})}const nt=window,ot=document;const rt=window;const it=navigator,at=window;const st=window,ct=navigator;const ut="_inc",lt=[[function(){return C()},function(){return n(this,void 0,void 0,(function*(){return function(){const t=it.userAgent.match(/Chrom(e|ium)\/([0-9]+)\./);if(!t)throw"UserAgent is not Google Chrome";return parseInt(t[2],10)}()>=76?function(){return n(this,void 0,void 0,(function*(){if("storage"in it&&"estimate"in it.storage){const{quota:t}=yield it.storage.estimate();return!!t&&t<function(){var t,e,n;const o=(null===(t=it.userAgent)||void 0===t?void 0:t.indexOf("Mac OS"))>0&&-1===(null===(e=it.userAgent)||void 0===e?void 0:e.indexOf("iPhone")),r=(null===(n=it.userAgent)||void 0===n?void 0:n.indexOf("CrOS"))>0;return o||r?3221225472:1073741824}()}return!1}))}():new Promise((t=>{at.webkitRequestFileSystem(0,1,(()=>t(!1)),(()=>t(!0)))}))}))}],[function(){return/Apple/.test(ct.vendor)&&/Safari/.test(ct.userAgent)},function(){return n(this,void 0,void 0,(function*(){return function(){const t=navigator.userAgent.match(/Version\/([0-9._]+).*Safari/);if(!t)throw new Error("UserAgent is not Safari");const e=t[1].split("."),[n,o,r]=e.map((t=>isNaN(parseInt(t))?0:parseInt(t)));return{major:n,minor:o,patch:r}}().major<13?function(){try{st.openDatabase(null,null,null,null)}catch(t){return!0}try{return st.localStorage.setItem("test","1"),st.localStorage.removeItem("test"),!1}catch(t){return!0}}():function(){return n(this,void 0,void 0,(function*(){return"safari"in O?function(){try{st.safari.pushNotification.requestPermission("https://example.com","private",{},(()=>{}))}catch(e){return t=e,!new RegExp([103,101,115,116,117,114,101].map((t=>String.fromCharCode(t))).join("")).test(t)}var t;throw new Error("Unexpected lack of error")}():function(){return n(this,void 0,void 0,(function*(){const t=document.createElement("iframe");t.style.display="none";try{return document.body.appendChild(t),W(new Promise((e=>{t.contentWindow?t.contentWindow.applicationCache.addEventListener("error",(()=>e(!0))):e(!1)})),20,(()=>!1))}finally{t.remove()}}))}()}))}()}))}],[function(){return h(["buildID"in S,(null===(t=k.documentElement)||void 0===t?void 0:t.style)&&"MozAppearance"in k.documentElement.style,"MediaRecorderErrorEvent"in O,"mozInnerScreenX"in O,"CSSMozDocumentRule"in O,"CanvasCaptureMediaStream"in O])>=4;var t},function(){return n(this,void 0,void 0,(function*(){return new Promise((t=>{try{const e=rt.indexedDB.open("test");e.onerror=()=>t(!0),e.onsuccess=()=>t(!1)}catch(e){return t(!0)}}))}))}],[function(){return A()},function(){try{if(!window.indexedDB)return!0}catch(t){return!0}return!1}]];function dt(t,e){if(0==e.length||e.length>t.length)return-1;for(let n=0;n<t.length;n++){let o=0;for(let r=0;r<e.length;r++){if(t[n+r]!==e[r]){o=0;break}o++}if(o==e.length)return n}return-1}const ft=window,ht=document;const vt={0:function(){return void 0!==navigator.webdriver},1:function(){return navigator.permissions.query({name:"notifications"}).then((function(t){return"denied"===Notification.permission&&"prompt"===t.state}))},2:function(){const{documentElement:t}=ot;return"webdriver"in nt||"_Selenium_IDE_Recorder"in nt||"callSelenium"in nt||"_selenium"in nt||"__webdriver_script_fn"in ot||"__driver_evaluate"in ot||"__webdriver_evaluate"in ot||"__selenium_evaluate"in ot||"__fxdriver_evaluate"in ot||"__driver_unwrapped"in ot||"__webdriver_unwrapped"in ot||"__selenium_unwrapped"in ot||"__fxdriver_unwrapped"in ot||"__webdriver_script_func"in ot||null!==t.getAttribute("selenium")||null!==t.getAttribute("webdriver")||null!==t.getAttribute("driver")},3:function(){return n(this,void 0,void 0,(function*(){const t=function(){try{const t=localStorage.getItem(ut);if(!t)return;return"1"===t}catch(t){return}}();if(void 0!==t)return t;try{const t=yield function(){return n(this,void 0,void 0,(function*(){for(const[t,e]of lt)if(t())return yield e();return!1}))}();return function(t){try{localStorage.setItem(ut,t?"1":"0")}catch(e){}}(t),t}catch(e){return!1}}))},4:function(){if(!C())return!1;try{if([66,114,97,118,101].map((t=>String.fromCharCode(t))).join("")in ft)return!0;const t=ht.createElement("canvas");t.width=4,t.height=4,t.style.display="inline";const e=t.toDataURL();if(""===e)return!0;const n=window.atob(e.split(",")[1]),o=n.length,r=new Uint8Array(o);for(let c=0;c<o;c++)r[c]=n.charCodeAt(c);const i=dt(r,[73,68,65,84,24]);if(-1===i)return!1;const a=dt(r,[73,69,78,68]);if(-1===i)return!1;const s=r.slice(i+5,a);return 1321!==s.reduce(((t,e)=>t+e),0)}catch(t){return!1}}};const gt=document,pt=location;function mt(t){const e=t+"=";for(const n of gt.cookie.split(";")){let t=0;for(;" "===n[t]&&t<n.length;++t);if(n.indexOf(e)===t)return n.slice(t+e.length)}}function wt(t,e,n,o){const r=`${t}=${e}`,i="expires="+new Date(Date.now()+24*n*60*60*1e3).toUTCString(),a=o?"domain="+o:"";gt.cookie=[r,"path=/",i,a].join("; ")}function yt(t,e,n){const o=pt.hostname;bt(o,(e=>{!function(t,e){wt(t,"",-1,e)}(t,e)}));bt(o,(o=>(wt(t,e,n,o),mt(t)!==e)))&&wt(t,e,n)}function bt(t,e){let n=t.length;do{if(n=n>0?t.lastIndexOf(".",n-1):-1,!1===e(t.slice(n+1)))return!1}while(n>=0);return!0}const{localStorage:Rt}=window;function Et(t="_vid"){return[mt(t),St(t)]}function Ot(t,e="_vid"){yt(e,t,365),function(t,e){if(null==Rt?void 0:Rt.setItem)try{Rt.setItem(t,e)}catch(n){}}(e,t)}function St(t){var e;if(null==Rt?void 0:Rt.getItem)try{return null!==(e=Rt.getItem(t))&&void 0!==e?e:void 0}catch(n){}}var kt,At,Ct,Tt,_t,It,Mt,xt;class Nt{constructor(t,e,i,a,s){kt.set(this,void 0),At.set(this,void 0),Ct.set(this,void 0),Tt.set(this,void 0),_t.set(this,void 0),It.set(this,((t,e)=>n(this,void 0,void 0,(function*(){if(!e)return V(t).then((t=>({tls:t})),(t=>({tlsError:t})))})))),Mt.set(this,(()=>n(this,void 0,void 0,(function*(){const t=yield o(this,kt).get(),e=yield P(vt,void 0,[]);return Object.assign(Object.assign({},t.components),e)})))),xt.set(this,(t=>{const e={token:o(this,At),region:o(this,Ct),endpoint:o(this,Tt),storageKey:o(this,_t)};console.log(`Getting the visitor identifier:\n\`\`\`\nversion: 3.0.0\ninitOptions: ${JSON.stringify(e,void 0,2)}\ngetOptions: ${JSON.stringify(t,void 0,2)}\n\`\`\``)})),r(this,kt,t),r(this,At,e),r(this,Ct,i),r(this,Tt,a),r(this,_t,s)}get(t={}){const{timeout:e=1e4,tag:r,linkedId:i,disableTls:a,extendedResult:s,ipResolution:c,debug:u}=t;return u&&o(this,xt).call(this,t),l=J,W((()=>n(this,void 0,void 0,(function*(){const[t,n]=yield Promise.all([o(this,It).call(this,e/2,a),o(this,Mt).call(this)]),l=yield Q(Object.assign(Object.assign({token:o(this,At),endpoint:X(o(this,Ct),o(this,Tt))},t),{components:n,tag:r,visitorId:Et(o(this,_t)),linkedId:i,extendedResult:s,ipResolution:c,debug:u}));return Ot(l.visitorId,o(this,_t)),l}))),e,(()=>{throw new Error(l)}));var l}}function Pt({token:t,region:e,endpoint:o,storageKey:r,delayFallback:i}){return n(this,void 0,void 0,(function*(){if(!t||"string"!=typeof t)throw new Error("Token required");const n=yield L({delayFallback:i});return new Nt(n,t,e,o,r)}))}kt=new WeakMap,At=new WeakMap,Ct=new WeakMap,Tt=new WeakMap,_t=new WeakMap,It=new WeakMap,Mt=new WeakMap,xt=new WeakMap;const jt="Token required",Dt="Token not found",Lt="Token expired",Bt="Request cannot be parsed",Ft="Request failed",Ut="Request failed to process",Wt="Too many requests, rate limit exceeded";var qt={load:Pt,ERROR_CLIENT_TIMEOUT:J,ERROR_NETWORK_CONNECTION:K,ERROR_NETWORK_ABORT:H,ERROR_TOKEN_MISSING:jt,ERROR_TOKEN_INVALID:Dt,ERROR_TOKEN_EXPIRED:Lt,ERROR_BAD_REQUEST_FORMAT:Bt,ERROR_GENERAL_SERVER_FAILURE:Ft,ERROR_SERVER_TIMEOUT:Ut,ERROR_RATE_LIMIT:Wt};return t.ERROR_BAD_REQUEST_FORMAT=Bt,t.ERROR_CLIENT_TIMEOUT=J,t.ERROR_GENERAL_SERVER_FAILURE=Ft,t.ERROR_NETWORK_ABORT=H,t.ERROR_NETWORK_CONNECTION=K,t.ERROR_RATE_LIMIT=Wt,t.ERROR_SERVER_TIMEOUT=Ut,t.ERROR_TOKEN_EXPIRED=Lt,t.ERROR_TOKEN_INVALID=Dt,t.ERROR_TOKEN_MISSING=jt,t.default=qt,t.load=Pt,t}({});
/**
* FingerprintJS Pro v3.0.0-beta.3 - Copyright (c) FingerprintJS, Inc, 2020 (https://fingerprintjs.com)
* FingerprintJS Pro v3.0.0 - Copyright (c) FingerprintJS, Inc, 2020 (https://fingerprintjs.com)
*

@@ -8,2 +8,2 @@ * This software contains code from open-source projects:

!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).FingerprintJS={})}(this,(function(t){"use strict";function e(t,e){var n={};for(var o in t)Object.prototype.hasOwnProperty.call(t,o)&&e.indexOf(o)<0&&(n[o]=t[o]);if(null!=t&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(o=Object.getOwnPropertySymbols(t);r<o.length;r++)e.indexOf(o[r])<0&&Object.prototype.propertyIsEnumerable.call(t,o[r])&&(n[o[r]]=t[o[r]])}return n}function n(t,e,n,o){return new(n||(n=Promise))((function(r,i){function a(t){try{c(o.next(t))}catch(e){i(e)}}function s(t){try{c(o.throw(t))}catch(e){i(e)}}function c(t){var e;t.done?r(t.value):(e=t.value,e instanceof n?e:new n((function(t){t(e)}))).then(a,s)}c((o=o.apply(t,e||[])).next())}))}function o(t,e){if(!e.has(t))throw new TypeError("attempted to get private field on non-instance");return e.get(t)}function r(t,e,n){if(!e.has(t))throw new TypeError("attempted to set private field on non-instance");return e.set(t,n),n}function i(t,e){t=[t[0]>>>16,65535&t[0],t[1]>>>16,65535&t[1]],e=[e[0]>>>16,65535&e[0],e[1]>>>16,65535&e[1]];var n=[0,0,0,0];return n[3]+=t[3]+e[3],n[2]+=n[3]>>>16,n[3]&=65535,n[2]+=t[2]+e[2],n[1]+=n[2]>>>16,n[2]&=65535,n[1]+=t[1]+e[1],n[0]+=n[1]>>>16,n[1]&=65535,n[0]+=t[0]+e[0],n[0]&=65535,[n[0]<<16|n[1],n[2]<<16|n[3]]}function a(t,e){t=[t[0]>>>16,65535&t[0],t[1]>>>16,65535&t[1]],e=[e[0]>>>16,65535&e[0],e[1]>>>16,65535&e[1]];var n=[0,0,0,0];return n[3]+=t[3]*e[3],n[2]+=n[3]>>>16,n[3]&=65535,n[2]+=t[2]*e[3],n[1]+=n[2]>>>16,n[2]&=65535,n[2]+=t[3]*e[2],n[1]+=n[2]>>>16,n[2]&=65535,n[1]+=t[1]*e[3],n[0]+=n[1]>>>16,n[1]&=65535,n[1]+=t[2]*e[2],n[0]+=n[1]>>>16,n[1]&=65535,n[1]+=t[3]*e[1],n[0]+=n[1]>>>16,n[1]&=65535,n[0]+=t[0]*e[3]+t[1]*e[2]+t[2]*e[1]+t[3]*e[0],n[0]&=65535,[n[0]<<16|n[1],n[2]<<16|n[3]]}function s(t,e){return 32===(e%=64)?[t[1],t[0]]:e<32?[t[0]<<e|t[1]>>>32-e,t[1]<<e|t[0]>>>32-e]:(e-=32,[t[1]<<e|t[0]>>>32-e,t[0]<<e|t[1]>>>32-e])}function c(t,e){return 0===(e%=64)?t:e<32?[t[0]<<e|t[1]>>>32-e,t[1]<<e]:[t[1]<<e-32,0]}function u(t,e){return[t[0]^e[0],t[1]^e[1]]}function l(t){return t=u(t,[0,t[0]>>>1]),t=u(t=a(t,[4283543511,3981806797]),[0,t[0]>>>1]),t=u(t=a(t,[3301882366,444984403]),[0,t[0]>>>1])}function d(t,e){e=e||0;for(var n=(t=t||"").length%16,o=t.length-n,r=[0,e],d=[0,e],f=[0,0],h=[0,0],v=[2277735313,289559509],g=[1291169091,658871167],p=0;p<o;p+=16)f=[255&t.charCodeAt(p+4)|(255&t.charCodeAt(p+5))<<8|(255&t.charCodeAt(p+6))<<16|(255&t.charCodeAt(p+7))<<24,255&t.charCodeAt(p)|(255&t.charCodeAt(p+1))<<8|(255&t.charCodeAt(p+2))<<16|(255&t.charCodeAt(p+3))<<24],h=[255&t.charCodeAt(p+12)|(255&t.charCodeAt(p+13))<<8|(255&t.charCodeAt(p+14))<<16|(255&t.charCodeAt(p+15))<<24,255&t.charCodeAt(p+8)|(255&t.charCodeAt(p+9))<<8|(255&t.charCodeAt(p+10))<<16|(255&t.charCodeAt(p+11))<<24],f=s(f=a(f,v),31),r=i(r=s(r=u(r,f=a(f,g)),27),d),r=i(a(r,[0,5]),[0,1390208809]),h=s(h=a(h,g),33),d=i(d=s(d=u(d,h=a(h,v)),31),r),d=i(a(d,[0,5]),[0,944331445]);switch(f=[0,0],h=[0,0],n){case 15:h=u(h,c([0,t.charCodeAt(p+14)],48));case 14:h=u(h,c([0,t.charCodeAt(p+13)],40));case 13:h=u(h,c([0,t.charCodeAt(p+12)],32));case 12:h=u(h,c([0,t.charCodeAt(p+11)],24));case 11:h=u(h,c([0,t.charCodeAt(p+10)],16));case 10:h=u(h,c([0,t.charCodeAt(p+9)],8));case 9:h=a(h=u(h,[0,t.charCodeAt(p+8)]),g),d=u(d,h=a(h=s(h,33),v));case 8:f=u(f,c([0,t.charCodeAt(p+7)],56));case 7:f=u(f,c([0,t.charCodeAt(p+6)],48));case 6:f=u(f,c([0,t.charCodeAt(p+5)],40));case 5:f=u(f,c([0,t.charCodeAt(p+4)],32));case 4:f=u(f,c([0,t.charCodeAt(p+3)],24));case 3:f=u(f,c([0,t.charCodeAt(p+2)],16));case 2:f=u(f,c([0,t.charCodeAt(p+1)],8));case 1:f=a(f=u(f,[0,t.charCodeAt(p)]),v),r=u(r,f=a(f=s(f,31),g))}return r=i(r=u(r,[0,t.length]),d=u(d,[0,t.length])),d=i(d,r),r=i(r=l(r),d=l(d)),d=i(d,r),("00000000"+(r[0]>>>0).toString(16)).slice(-8)+("00000000"+(r[1]>>>0).toString(16)).slice(-8)+("00000000"+(d[0]>>>0).toString(16)).slice(-8)+("00000000"+(d[1]>>>0).toString(16)).slice(-8)}function f(t){return"number"==typeof t?0|t:parseInt(t)}function h(t){return t.reduce(((t,e)=>t+(e?1:0)),0)}const v=navigator,g=window;const p=document,m=["monospace","sans-serif","serif"],w=["sans-serif-thin","ARNO PRO","Agency FB","Arabic Typesetting","Arial Unicode MS","AvantGarde Bk BT","BankGothic Md BT","Batang","Bitstream Vera Sans Mono","Calibri","Century","Century Gothic","Clarendon","EUROSTILE","Franklin Gothic","Futura Bk BT","Futura Md BT","GOTHAM","Gill Sans","HELV","Haettenschweiler","Helvetica Neue","Humanst521 BT","Leelawadee","Letter Gothic","Levenim MT","Lucida Bright","Lucida Sans","Menlo","MS Mincho","MS Outlook","MS Reference Specialty","MS UI Gothic","MT Extra","MYRIAD PRO","Marlett","Meiryo UI","Microsoft Uighur","Minion Pro","Monotype Corsiva","PMingLiU","Pristina","SCRIPTINA","Segoe UI Light","Serifa","SimHei","Small Fonts","Staccato222 BT","TRAJAN PRO","Univers CE 55 Medium","Vrinda","ZWAdobeF"],y={fontStyle:"normal",fontWeight:"normal",letterSpacing:"normal",lineBreak:"auto",lineHeight:"normal",textTransform:"none",textAlign:"left",textDecoration:"none",textShadow:"none",whiteSpace:"normal",wordBreak:"normal",wordSpacing:"normal"};function b(t){return t.toDataURL()}const S=navigator,k=window;const O=window,C=navigator,A=document;function E(){return h(["msWriteProfilerMark"in O,"msLaunchUri"in C,"msSaveBlob"in C])>=2}function R(){return h(["userActivation"in C,"mediaSession"in C,0===C.vendor.indexOf("Google"),"BackgroundFetchManager"in O,"BatteryManager"in O,"webkitMediaStream"in O,"webkitSpeechGrammar"in O])>=5}const T=navigator;const I=window;const _=window;const x=window;const M=document;const P={osCpu:function(){return navigator.oscpu},languages:function(){const t=[],e=T.language||T.userLanguage||T.browserLanguage||T.systemLanguage;if(void 0!==e&&t.push([e]),Array.isArray(T.languages))R()&&h([!("MediaSettingsRange"in O),!("PhotoCapabilities"in O),"RTCEncodedAudioFrame"in O,""+O.Intl=="[object Intl]"])>=2||t.push(T.languages);else if("string"==typeof T.languages){const e=T.languages;e&&t.push(e.split(","))}return t},colorDepth:function(){return window.screen.colorDepth},deviceMemory:function(){return navigator.deviceMemory},screenResolution:function(){const t=[f(I.screen.width),f(I.screen.height)];return t.sort().reverse(),t},availableScreenResolution:function(){if(_.screen.availWidth&&_.screen.availHeight){const t=[f(_.screen.availWidth),f(_.screen.availHeight)];return t.sort().reverse(),t}},hardwareConcurrency:function(){try{const t=f(navigator.hardwareConcurrency);return isNaN(t)?1:t}catch(t){return 1}},timezoneOffset:function(){return(new Date).getTimezoneOffset()},timezone:function(){var t;if(null===(t=x.Intl)||void 0===t?void 0:t.DateTimeFormat)return(new x.Intl.DateTimeFormat).resolvedOptions().timeZone},sessionStorage:function(){try{return!!window.sessionStorage}catch(t){return!0}},localStorage:function(){try{return!!window.localStorage}catch(t){return!0}},indexedDB:function(){if(!E())try{return!!window.indexedDB}catch(t){return!0}},openDatabase:function(){return!!window.openDatabase},cpuClass:function(){return navigator.cpuClass},platform:function(){return navigator.platform},plugins:function(){if(!navigator.plugins)return;const t=[];for(let e=0;e<navigator.plugins.length;++e){const n=navigator.plugins[e];if(!n)continue;const o=[];for(const t of n)o.push({type:t.type,suffixes:t.suffixes});t.push({name:n.name,description:n.description,mimeTypes:o})}return t},canvas:function(){const[t,e]=function(){const t=document.createElement("canvas");return t.width=240,t.height=140,t.style.display="inline",[t,t.getContext("2d")]}();if(!function(t,e){return!(!e||!t.toDataURL)}(t,e))return{winding:!1,data:""};e.rect(0,0,10,10),e.rect(2,2,6,6);const n=!e.isPointInPath(5,5,"evenodd");e.textBaseline="alphabetic",e.fillStyle="#f60",e.fillRect(125,1,62,20),e.fillStyle="#069",e.font="11pt no-real-font-123";const o="Cwm fjordbank 😃 gly";return e.fillText(o,2,15),e.fillStyle="rgba(102, 204, 0, 0.2)",e.font="18pt Arial",e.fillText(o,4,45),e.globalCompositeOperation="multiply",e.fillStyle="rgb(255,0,255)",e.beginPath(),e.arc(50,50,50,0,2*Math.PI,!0),e.closePath(),e.fill(),e.fillStyle="rgb(0,255,255)",e.beginPath(),e.arc(100,50,50,0,2*Math.PI,!0),e.closePath(),e.fill(),e.fillStyle="rgb(255,255,0)",e.beginPath(),e.arc(75,100,50,0,2*Math.PI,!0),e.closePath(),e.fill(),e.fillStyle="rgb(255,0,255)",e.arc(75,75,75,0,2*Math.PI,!0),e.arc(75,75,25,0,2*Math.PI,!0),e.fill("evenodd"),{winding:n,data:b(t)}},touchSupport:function(){let t,e=0;void 0!==S.maxTouchPoints?e=f(S.maxTouchPoints):void 0!==S.msMaxTouchPoints&&(e=S.msMaxTouchPoints);try{document.createEvent("TouchEvent"),t=!0}catch(n){t=!1}return{maxTouchPoints:e,touchEvent:t,touchStart:"ontouchstart"in k}},fonts:function(){const t=p.body,e=p.createElement("div"),n=p.createElement("div"),o={},r={},i=()=>{const t=p.createElement("span");return Object.assign(t.style,y,{position:"absolute",left:"-9999px",fontSize:"48px"}),t.textContent="mmMwWLliI0O&1",t},a=(t,e)=>{const n=i();return n.style.fontFamily=`'${t}',${e}`,n},s=t=>m.some(((e,n)=>t[n].offsetWidth!==o[e]||t[n].offsetHeight!==r[e])),c=m.map((t=>{const n=i();return n.style.fontFamily=t,e.appendChild(n),n}));t.appendChild(e);for(let d=0,f=m.length;d<f;d++)o[m[d]]=c[d].offsetWidth,r[m[d]]=c[d].offsetHeight;const u=(()=>{const t={};for(const e of w)t[e]=m.map((t=>{const o=a(e,t);return n.appendChild(o),o}));return t})();t.appendChild(n);const l=[];for(let d=0,f=w.length;d<f;d++)s(u[w[d]])&&l.push(w[d]);return t.removeChild(n),t.removeChild(e),l},audio:function(){return n(this,void 0,void 0,(function*(){if(v.userAgent.match(/OS 11.+Version\/11.+Safari/))return-1;const t=g.OfflineAudioContext||g.webkitOfflineAudioContext;if(!t)return-2;const e=new t(1,44100,44100),n=e.createOscillator();n.type="triangle",n.frequency.setValueAtTime(1e4,e.currentTime);const o=e.createDynamicsCompressor();for(const[r,i]of[["threshold",-50],["knee",40],["ratio",12],["reduction",-20],["attack",0],["release",.25]])"function"==typeof o[r].setValueAtTime&&o[r].setValueAtTime(i,e.currentTime);return n.connect(o),o.connect(e.destination),n.start(0),e.startRendering(),new Promise((t=>{const r=setTimeout((()=>{e.oncomplete=()=>{},t(-3)}),1e3);e.oncomplete=e=>{let i;try{clearTimeout(r),i=e.renderedBuffer.getChannelData(0).slice(4500,5e3).reduce(((t,e)=>t+Math.abs(e)),0),n.disconnect(),o.disconnect()}catch(a){return void t(-4)}t(i)}}))}))},pluginsSupport:function(){return void 0!==navigator.plugins},productSub:function(){return navigator.productSub},emptyEvalLength:function(){return eval.toString().length},errorFF:function(){try{throw"a"}catch(t){try{return t.toSource(),!0}catch(e){return!1}}},vendor:function(){return navigator.vendor},chrome:function(){return void 0!==window.chrome},cookiesEnabled:function(){try{M.cookie="cookietest=1";const t=-1!==M.cookie.indexOf("cookietest=");return M.cookie="cookietest=1; expires=Thu, 01-Jan-1970 00:00:01 GMT",t}catch(t){return!1}}};function j(t,e,o){return n(this,void 0,void 0,(function*(){let n=Date.now();const r={};for(const a of Object.keys(t)){if(function(t,e){for(let n=0,o=t.length;n<o;++n)if(t[n]===e)return!0;return!1}(o,a))continue;let s,c;try{s={value:yield t[a](e)}}catch(i){s=i&&"object"==typeof i&&"message"in i?{error:i}:{error:{message:i}}}c=Date.now(),r[a]=Object.assign(Object.assign({},s),{duration:c-n}),n=c}return r}))}function N(t){let e;return{components:t,get visitorId(){return void 0===e&&(e=d(function(t){let e="";for(const n of Object.keys(t)){const o=t[n],r=o.error?"error":JSON.stringify(o.value);e+=`${e?"|":""}${n.replace(/([:|\\])/g,"\\$1")}:${r}`}return e}(this.components))),e},set visitorId(t){e=t}}}class D{get(t={}){return n(this,void 0,void 0,(function*(){const e=yield j(P,void 0,[]),n=N(e);return t.debug&&console.log(`Copy the text below to get the debug data:\n\n\`\`\`\nversion: 3.0.0-beta.3\ngetOptions: ${JSON.stringify(t,void 0,2)}\nvisitorId: ${n.visitorId}\ncomponents: ${function(t){return JSON.stringify(t,((t,e)=>{var n;return e instanceof Error?Object.assign(Object.assign({},e),{message:e.message,stack:null===(n=e.stack)||void 0===n?void 0:n.split("\n")}):e}),2)}(e)}\n\`\`\``),n}))}}function B({delayFallback:t=50}={}){return n(this,void 0,void 0,(function*(){var e;return yield(e=t,new Promise((t=>{window.requestIdleCallback?window.requestIdleCallback((()=>t())):setTimeout(t,e)}))),new D}))}const L=d;var F="3.0.0-beta.3";function U(t,e){return new Promise((n=>setTimeout((()=>n(e)),t)))}function W(t,e,o){return n(this,void 0,void 0,(function*(){const n=yield Promise.race([U(e,[!0]),("function"==typeof t?t():t).then((t=>[!1,t]))]);return n[0]?null==o?void 0:o():n[1]}))}const q="TimeoutError";function $(t){return n(this,void 0,void 0,(function*(){let o;try{o=yield function(t,o){var{timeout:r}=o,i=e(o,["timeout"]);return n(this,void 0,void 0,(function*(){let e="undefined"==typeof AbortController?void 0:new AbortController;return W(fetch(t,Object.assign(Object.assign({},i),{signal:null==e?void 0:e.signal})),r,(()=>{throw null==e||e.abort(),new DOMException("The request timed out.",q)}))}))}("https://api.sjpf.io",{timeout:t})}catch(i){switch(i.name){case"AbortError":throw new Error("Abort");case q:throw new Error("Timeout");default:throw new Error("Connection error")}}const r=yield o.text();if(200===o.status)return r;throw new Error(r.slice(0,255))}))}const V="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",G=V.length;const J="Client timeout",H="Network connection error",z="Network request aborted",K="n/a";function Z(t="us",e){if(e)return/^(https?:)?\/\//i.test(e)?e:"https://"+e;let n="api.fpjs.io";return"us"!==t&&(n=`${t}.${n}`),"https://"+n}function Q(t){var{endpoint:o,extendedResult:r,debug:i}=t,a=e(t,["endpoint","extendedResult","debug"]);return n(this,void 0,void 0,(function*(){const t=function(t){let e="";for(let n=0;n<t;n++)e+=V.charAt(Math.random()*G);return e}(20),s=function({components:t,token:e,visitorId:n,tag:o,ipResolution:r,extendedResult:i,linkedId:a,tls:s,tlsError:c,requestId:u}){const l=Object.keys(t).reduce(((e,n)=>e+t[n].duration),0),d="full"===r?2:1;return{rid:u,cv:F,c:e,url:location.href,d:l,vid:n[0]||n[1]||void 0,ls:n[1]?1:void 0,t:X(o),i:d,cbd:i?1:void 0,lid:a,cr:document.referrer||void 0,j:s,je:null==c?void 0:c.message,k1:Y(t.osCpu),k2:Y(t.languages),k3:Y(t.colorDepth),k4:Y(t.deviceMemory),k5:Y(t.screenResolution),k6:Y(t.availableScreenResolution,void 0,[]),k7:Y(t.hardwareConcurrency),k8:Y(t.timezoneOffset),k9:Y(t.timezone),k10:tt(Y(t.sessionStorage)),k11:tt(Y(t.localStorage)),k12:tt(Y(t.indexedDB)),k13:tt(Y(t.openDatabase)),k14:Y(t.cpuClass),k15:Y(t.platform),k16:Y(t.plugins,[]),k17:et(t.canvas),k18:0,k19:Y(t.touchSupport),k20:Y(t.fonts,[]),k21:Y(t.audio,-1),k22:tt(Y(t.pluginsSupport)),k23:Y(t.productSub),k24:Y(t.emptyEvalLength),k25:tt(Y(t.errorFF)),k26:tt(Y(t[0])),k27:Y(t.vendor),k28:tt(Y(t.chrome)),k29:tt(Y(t[1])),k30:tt(Y(t[2])),k31:tt(Y(t[3],!1)),k32:tt(Y(t.cookiesEnabled,!1)),k33:tt(Y(t[4]))}}(Object.assign({extendedResult:r,requestId:t},a));return function(t,o,r,i){return n(this,void 0,void 0,(function*(){const n=yield t.text();let a;try{a=JSON.parse(n)}catch(s){}if(i&&console.log(`Visitor response status: ${t.status}\nVisitor response body:\n\`\`\`json\n${void 0===a?n:JSON.stringify(a,void 0,2)}\n\`\`\``),404===t.status||t.status>=500)throw new Error(t.statusText);if(void 0===a)throw new Error(n);if(function(t){return t&&"object"==typeof t&&"string"==typeof t.visitorId&&t.visitorId!==K}(a))return function(t){const n=t,{botProbability:o}=n,r=e(n,["botProbability"]),i=Object.assign({},r);o&&(i.bot={probability:o});return i}(a);if(function(t){return t&&"object"==typeof t&&t.visitorId===K}(a)){if("Not available for crawl bots"===a.reason||"Not available when User-Agent is unspecified"===a.reason)return function(t,e,n){const o={requestId:e,visitorFound:!1,visitorId:""};if(!n)return o;const r=Object.assign(Object.assign({},o),{bot:{probability:1},incognito:!1,browserName:K,browserVersion:K,device:K,ip:K,ipLocation:{},os:K,osVersion:K});"Not available for crawl bots"===t&&(r.bot.safe=!0);return r}(a.reason,o,r);throw new Error(a.reason)}throw new Error(n)}))}(yield function(t,e,o){return n(this,void 0,void 0,(function*(){o&&console.log(`Visitor request:\n\`\`\`json\n${JSON.stringify(e,void 0,2)}\n\`\`\``);const n=JSON.stringify(e);try{return yield fetch(t,{method:"POST",body:n,headers:{"Content-Type":"text/plain"},credentials:"include"})}catch(r){throw new Error("AbortError"===r.name?z:H)}}))}(o,s,i),t,r,i)}))}function X(t){return t&&"object"==typeof t?t:null!=t?{tag:t}:void 0}function Y(t,e,n){var o;return t.error?e:null!==(o=t.value)&&void 0!==o?o:n}function tt(t){return!0===t?1:!1===t?0:t}function et({value:t}){if(t)return Object.assign(Object.assign({},t),{data:L(t.data)})}const nt=window,ot=document;const rt=window;const it=navigator,at=window;const st=window,ct=navigator;const ut="_inc",lt=[[function(){return R()},function(){return n(this,void 0,void 0,(function*(){return function(){const t=it.userAgent.match(/Chrom(e|ium)\/([0-9]+)\./);if(!t)throw"UserAgent is not Google Chrome";return parseInt(t[2],10)}()>=76?function(){return n(this,void 0,void 0,(function*(){if("storage"in it&&"estimate"in it.storage){const{quota:t}=yield it.storage.estimate();return!!t&&t<function(){var t,e,n;const o=(null===(t=it.userAgent)||void 0===t?void 0:t.indexOf("Mac OS"))>0&&-1===(null===(e=it.userAgent)||void 0===e?void 0:e.indexOf("iPhone")),r=(null===(n=it.userAgent)||void 0===n?void 0:n.indexOf("CrOS"))>0;return o||r?3221225472:1073741824}()}return!1}))}():new Promise((t=>{at.webkitRequestFileSystem(0,1,(()=>t(!1)),(()=>t(!0)))}))}))}],[function(){return/Apple/.test(ct.vendor)&&/Safari/.test(ct.userAgent)},function(){return n(this,void 0,void 0,(function*(){return function(){const t=navigator.userAgent.match(/Version\/([0-9._]+).*Safari/);if(!t)throw new Error("UserAgent is not Safari");const e=t[1].split("."),[n,o,r]=e.map((t=>isNaN(parseInt(t))?0:parseInt(t)));return{major:n,minor:o,patch:r}}().major<13?function(){try{st.openDatabase(null,null,null,null)}catch(t){return!0}try{return st.localStorage.setItem("test","1"),st.localStorage.removeItem("test"),!1}catch(t){return!0}}():function(){return n(this,void 0,void 0,(function*(){return"safari"in O?function(){try{st.safari.pushNotification.requestPermission("https://example.com","private",{},(()=>{}))}catch(e){return t=e,!new RegExp([103,101,115,116,117,114,101].map((t=>String.fromCharCode(t))).join("")).test(t)}var t;throw new Error("Unexpected lack of error")}():function(){return n(this,void 0,void 0,(function*(){const t=document.createElement("iframe");t.style.display="none";try{return document.body.appendChild(t),W(new Promise((e=>{t.contentWindow?t.contentWindow.applicationCache.addEventListener("error",(()=>e(!0))):e(!1)})),20,(()=>!1))}finally{t.remove()}}))}()}))}()}))}],[function(){return h(["buildID"in C,(null===(t=A.documentElement)||void 0===t?void 0:t.style)&&"MozAppearance"in A.documentElement.style,"MediaRecorderErrorEvent"in O,"mozInnerScreenX"in O,"CSSMozDocumentRule"in O,"CanvasCaptureMediaStream"in O])>=4;var t},function(){return n(this,void 0,void 0,(function*(){return new Promise((t=>{try{const e=rt.indexedDB.open("test");e.onerror=()=>t(!0),e.onsuccess=()=>t(!1)}catch(e){return t(!0)}}))}))}],[function(){return E()},function(){try{if(!window.indexedDB)return!0}catch(t){return!0}return!1}]];function dt(t,e){if(0==e.length||e.length>t.length)return-1;for(let n=0;n<t.length;n++){let o=0;for(let r=0;r<e.length;r++){if(t[n+r]!==e[r]){o=0;break}o++}if(o==e.length)return n}return-1}const ft=window,ht=document;const vt={0:function(){return void 0!==navigator.webdriver},1:function(){return navigator.permissions.query({name:"notifications"}).then((function(t){return"denied"===Notification.permission&&"prompt"===t.state}))},2:function(){const{documentElement:t}=ot;return"webdriver"in nt||"_Selenium_IDE_Recorder"in nt||"callSelenium"in nt||"_selenium"in nt||"__webdriver_script_fn"in ot||"__driver_evaluate"in ot||"__webdriver_evaluate"in ot||"__selenium_evaluate"in ot||"__fxdriver_evaluate"in ot||"__driver_unwrapped"in ot||"__webdriver_unwrapped"in ot||"__selenium_unwrapped"in ot||"__fxdriver_unwrapped"in ot||"__webdriver_script_func"in ot||null!==t.getAttribute("selenium")||null!==t.getAttribute("webdriver")||null!==t.getAttribute("driver")},3:function(){return n(this,void 0,void 0,(function*(){const t=function(){try{const t=localStorage.getItem(ut);if(!t)return;return"1"===t}catch(t){return}}();if(void 0!==t)return t;try{const t=yield function(){return n(this,void 0,void 0,(function*(){for(const[t,e]of lt)if(t())return yield e();return!1}))}();return function(t){try{localStorage.setItem(ut,t?"1":"0")}catch(e){}}(t),t}catch(e){return!1}}))},4:function(){if(!R())return!1;try{if([66,114,97,118,101].map((t=>String.fromCharCode(t))).join("")in ft)return!0;const t=ht.createElement("canvas");t.width=4,t.height=4,t.style.display="inline";const e=t.toDataURL();if(""===e)return!0;const n=window.atob(e.split(",")[1]),o=n.length,r=new Uint8Array(o);for(let c=0;c<o;c++)r[c]=n.charCodeAt(c);const i=dt(r,[73,68,65,84,24]);if(-1===i)return!1;const a=dt(r,[73,69,78,68]);if(-1===i)return!1;const s=r.slice(i+5,a);return 1321!==s.reduce(((t,e)=>t+e),0)}catch(t){return!1}}};const gt=document,pt=location;function mt(t){const e=t+"=";for(const n of gt.cookie.split(";")){let t=0;for(;" "===n[t]&&t<n.length;++t);if(n.indexOf(e)===t)return n.slice(t+e.length)}}function wt(t,e,n,o){const r=`${t}=${e}`,i="expires="+new Date(Date.now()+24*n*60*60*1e3).toUTCString(),a=o?"domain="+o:"";gt.cookie=[r,"path=/",i,a].join("; ")}function yt(t,e,n){const o=pt.hostname;bt(o,(e=>{!function(t,e){wt(t,"",-1,e)}(t,e)}));bt(o,(o=>(wt(t,e,n,o),mt(t)!==e)))&&wt(t,e,n)}function bt(t,e){let n=t.length;do{if(n=n>0?t.lastIndexOf(".",n-1):-1,!1===e(t.slice(n+1)))return!1}while(n>=0);return!0}const{localStorage:St}=window;function kt(t="_vid"){return[mt(t),Ct(t)]}function Ot(t,e="_vid"){yt(e,t,365),function(t,e){if(null==St?void 0:St.setItem)try{St.setItem(t,e)}catch(n){}}(e,t)}function Ct(t){var e;if(null==St?void 0:St.getItem)try{return null!==(e=St.getItem(t))&&void 0!==e?e:void 0}catch(n){}}var At,Et,Rt,Tt,It,_t,xt,Mt;class Pt{constructor(t,e,i,a,s){At.set(this,void 0),Et.set(this,void 0),Rt.set(this,void 0),Tt.set(this,void 0),It.set(this,void 0),_t.set(this,((t,e)=>n(this,void 0,void 0,(function*(){if(!e)return $(t).then((t=>({tls:t})),(t=>({tlsError:t})))})))),xt.set(this,(()=>n(this,void 0,void 0,(function*(){const t=yield o(this,At).get(),e=yield j(vt,void 0,[]);return Object.assign(Object.assign({},t.components),e)})))),Mt.set(this,(t=>{const e={token:o(this,Et),region:o(this,Rt),endpoint:o(this,Tt),storageKey:o(this,It)};console.log(`Getting the visitor identifier:\n\`\`\`\nversion: 3.0.0-beta.3\ninitOptions: ${JSON.stringify(e,void 0,2)}\ngetOptions: ${JSON.stringify(t,void 0,2)}\n\`\`\``)})),r(this,At,t),r(this,Et,e),r(this,Rt,i),r(this,Tt,a),r(this,It,s)}get(t={}){const{timeout:e=1e4,tag:r,linkedId:i,disableTls:a,extendedResult:s,ipResolution:c,debug:u}=t;return u&&o(this,Mt).call(this,t),l=J,W((()=>n(this,void 0,void 0,(function*(){const[t,n]=yield Promise.all([o(this,_t).call(this,e/2,a),o(this,xt).call(this)]),l=yield Q(Object.assign(Object.assign({token:o(this,Et),endpoint:Z(o(this,Rt),o(this,Tt))},t),{components:n,tag:r,visitorId:kt(o(this,It)),linkedId:i,extendedResult:s,ipResolution:c,debug:u}));return Ot(l.visitorId,o(this,It)),l}))),e,(()=>{throw new Error(l)}));var l}}At=new WeakMap,Et=new WeakMap,Rt=new WeakMap,Tt=new WeakMap,It=new WeakMap,_t=new WeakMap,xt=new WeakMap,Mt=new WeakMap;t.ERROR_BAD_REQUEST_FORMAT="Request cannot be parsed",t.ERROR_CLIENT_TIMEOUT=J,t.ERROR_GENERAL_SERVER_FAILURE="Request failed",t.ERROR_NETWORK_ABORT=z,t.ERROR_NETWORK_CONNECTION=H,t.ERROR_RATE_LIMIT="Too many requests, rate limit exceeded",t.ERROR_SERVER_TIMEOUT="Request failed to process",t.ERROR_TOKEN_INVALID="Token not found",t.ERROR_TOKEN_MISSING="Token required",t.load=function({token:t,region:e,endpoint:o,storageKey:r,delayFallback:i}){return n(this,void 0,void 0,(function*(){if(!t||"string"!=typeof t)throw new Error("Token required");const n=yield B({delayFallback:i});return new Pt(n,t,e,o,r)}))},Object.defineProperty(t,"__esModule",{value:!0})}));
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).FingerprintJS={})}(this,(function(t){"use strict";function e(t,e){var n={};for(var o in t)Object.prototype.hasOwnProperty.call(t,o)&&e.indexOf(o)<0&&(n[o]=t[o]);if(null!=t&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(o=Object.getOwnPropertySymbols(t);r<o.length;r++)e.indexOf(o[r])<0&&Object.prototype.propertyIsEnumerable.call(t,o[r])&&(n[o[r]]=t[o[r]])}return n}function n(t,e,n,o){return new(n||(n=Promise))((function(r,i){function a(t){try{c(o.next(t))}catch(e){i(e)}}function s(t){try{c(o.throw(t))}catch(e){i(e)}}function c(t){var e;t.done?r(t.value):(e=t.value,e instanceof n?e:new n((function(t){t(e)}))).then(a,s)}c((o=o.apply(t,e||[])).next())}))}function o(t,e){if(!e.has(t))throw new TypeError("attempted to get private field on non-instance");return e.get(t)}function r(t,e,n){if(!e.has(t))throw new TypeError("attempted to set private field on non-instance");return e.set(t,n),n}function i(t,e){t=[t[0]>>>16,65535&t[0],t[1]>>>16,65535&t[1]],e=[e[0]>>>16,65535&e[0],e[1]>>>16,65535&e[1]];var n=[0,0,0,0];return n[3]+=t[3]+e[3],n[2]+=n[3]>>>16,n[3]&=65535,n[2]+=t[2]+e[2],n[1]+=n[2]>>>16,n[2]&=65535,n[1]+=t[1]+e[1],n[0]+=n[1]>>>16,n[1]&=65535,n[0]+=t[0]+e[0],n[0]&=65535,[n[0]<<16|n[1],n[2]<<16|n[3]]}function a(t,e){t=[t[0]>>>16,65535&t[0],t[1]>>>16,65535&t[1]],e=[e[0]>>>16,65535&e[0],e[1]>>>16,65535&e[1]];var n=[0,0,0,0];return n[3]+=t[3]*e[3],n[2]+=n[3]>>>16,n[3]&=65535,n[2]+=t[2]*e[3],n[1]+=n[2]>>>16,n[2]&=65535,n[2]+=t[3]*e[2],n[1]+=n[2]>>>16,n[2]&=65535,n[1]+=t[1]*e[3],n[0]+=n[1]>>>16,n[1]&=65535,n[1]+=t[2]*e[2],n[0]+=n[1]>>>16,n[1]&=65535,n[1]+=t[3]*e[1],n[0]+=n[1]>>>16,n[1]&=65535,n[0]+=t[0]*e[3]+t[1]*e[2]+t[2]*e[1]+t[3]*e[0],n[0]&=65535,[n[0]<<16|n[1],n[2]<<16|n[3]]}function s(t,e){return 32===(e%=64)?[t[1],t[0]]:e<32?[t[0]<<e|t[1]>>>32-e,t[1]<<e|t[0]>>>32-e]:(e-=32,[t[1]<<e|t[0]>>>32-e,t[0]<<e|t[1]>>>32-e])}function c(t,e){return 0===(e%=64)?t:e<32?[t[0]<<e|t[1]>>>32-e,t[1]<<e]:[t[1]<<e-32,0]}function u(t,e){return[t[0]^e[0],t[1]^e[1]]}function l(t){return t=u(t,[0,t[0]>>>1]),t=u(t=a(t,[4283543511,3981806797]),[0,t[0]>>>1]),t=u(t=a(t,[3301882366,444984403]),[0,t[0]>>>1])}function d(t,e){e=e||0;for(var n=(t=t||"").length%16,o=t.length-n,r=[0,e],d=[0,e],f=[0,0],h=[0,0],v=[2277735313,289559509],g=[1291169091,658871167],p=0;p<o;p+=16)f=[255&t.charCodeAt(p+4)|(255&t.charCodeAt(p+5))<<8|(255&t.charCodeAt(p+6))<<16|(255&t.charCodeAt(p+7))<<24,255&t.charCodeAt(p)|(255&t.charCodeAt(p+1))<<8|(255&t.charCodeAt(p+2))<<16|(255&t.charCodeAt(p+3))<<24],h=[255&t.charCodeAt(p+12)|(255&t.charCodeAt(p+13))<<8|(255&t.charCodeAt(p+14))<<16|(255&t.charCodeAt(p+15))<<24,255&t.charCodeAt(p+8)|(255&t.charCodeAt(p+9))<<8|(255&t.charCodeAt(p+10))<<16|(255&t.charCodeAt(p+11))<<24],f=s(f=a(f,v),31),r=i(r=s(r=u(r,f=a(f,g)),27),d),r=i(a(r,[0,5]),[0,1390208809]),h=s(h=a(h,g),33),d=i(d=s(d=u(d,h=a(h,v)),31),r),d=i(a(d,[0,5]),[0,944331445]);switch(f=[0,0],h=[0,0],n){case 15:h=u(h,c([0,t.charCodeAt(p+14)],48));case 14:h=u(h,c([0,t.charCodeAt(p+13)],40));case 13:h=u(h,c([0,t.charCodeAt(p+12)],32));case 12:h=u(h,c([0,t.charCodeAt(p+11)],24));case 11:h=u(h,c([0,t.charCodeAt(p+10)],16));case 10:h=u(h,c([0,t.charCodeAt(p+9)],8));case 9:h=a(h=u(h,[0,t.charCodeAt(p+8)]),g),d=u(d,h=a(h=s(h,33),v));case 8:f=u(f,c([0,t.charCodeAt(p+7)],56));case 7:f=u(f,c([0,t.charCodeAt(p+6)],48));case 6:f=u(f,c([0,t.charCodeAt(p+5)],40));case 5:f=u(f,c([0,t.charCodeAt(p+4)],32));case 4:f=u(f,c([0,t.charCodeAt(p+3)],24));case 3:f=u(f,c([0,t.charCodeAt(p+2)],16));case 2:f=u(f,c([0,t.charCodeAt(p+1)],8));case 1:f=a(f=u(f,[0,t.charCodeAt(p)]),v),r=u(r,f=a(f=s(f,31),g))}return r=i(r=u(r,[0,t.length]),d=u(d,[0,t.length])),d=i(d,r),r=i(r=l(r),d=l(d)),d=i(d,r),("00000000"+(r[0]>>>0).toString(16)).slice(-8)+("00000000"+(r[1]>>>0).toString(16)).slice(-8)+("00000000"+(d[0]>>>0).toString(16)).slice(-8)+("00000000"+(d[1]>>>0).toString(16)).slice(-8)}function f(t){return"number"==typeof t?0|t:parseInt(t)}function h(t){return t.reduce(((t,e)=>t+(e?1:0)),0)}const v=navigator,g=window;const p=document,m=["monospace","sans-serif","serif"],w=["sans-serif-thin","ARNO PRO","Agency FB","Arabic Typesetting","Arial Unicode MS","AvantGarde Bk BT","BankGothic Md BT","Batang","Bitstream Vera Sans Mono","Calibri","Century","Century Gothic","Clarendon","EUROSTILE","Franklin Gothic","Futura Bk BT","Futura Md BT","GOTHAM","Gill Sans","HELV","Haettenschweiler","Helvetica Neue","Humanst521 BT","Leelawadee","Letter Gothic","Levenim MT","Lucida Bright","Lucida Sans","Menlo","MS Mincho","MS Outlook","MS Reference Specialty","MS UI Gothic","MT Extra","MYRIAD PRO","Marlett","Meiryo UI","Microsoft Uighur","Minion Pro","Monotype Corsiva","PMingLiU","Pristina","SCRIPTINA","Segoe UI Light","Serifa","SimHei","Small Fonts","Staccato222 BT","TRAJAN PRO","Univers CE 55 Medium","Vrinda","ZWAdobeF"],y={fontStyle:"normal",fontWeight:"normal",letterSpacing:"normal",lineBreak:"auto",lineHeight:"normal",textTransform:"none",textAlign:"left",textDecoration:"none",textShadow:"none",whiteSpace:"normal",wordBreak:"normal",wordSpacing:"normal"};function b(t){return t.toDataURL()}const R=navigator,E=window;const O=window,S=navigator,k=document;function A(){return h(["msWriteProfilerMark"in O,"msLaunchUri"in S,"msSaveBlob"in S])>=2}function C(){return h(["userActivation"in S,"mediaSession"in S,0===S.vendor.indexOf("Google"),"BackgroundFetchManager"in O,"BatteryManager"in O,"webkitMediaStream"in O,"webkitSpeechGrammar"in O])>=5}const T=navigator;const _=window;const I=window;const M=window;const x=document;const N={osCpu:function(){return navigator.oscpu},languages:function(){const t=[],e=T.language||T.userLanguage||T.browserLanguage||T.systemLanguage;if(void 0!==e&&t.push([e]),Array.isArray(T.languages))C()&&h([!("MediaSettingsRange"in O),!("PhotoCapabilities"in O),"RTCEncodedAudioFrame"in O,""+O.Intl=="[object Intl]"])>=2||t.push(T.languages);else if("string"==typeof T.languages){const e=T.languages;e&&t.push(e.split(","))}return t},colorDepth:function(){return window.screen.colorDepth},deviceMemory:function(){return navigator.deviceMemory},screenResolution:function(){const t=[f(_.screen.width),f(_.screen.height)];return t.sort().reverse(),t},availableScreenResolution:function(){if(I.screen.availWidth&&I.screen.availHeight){const t=[f(I.screen.availWidth),f(I.screen.availHeight)];return t.sort().reverse(),t}},hardwareConcurrency:function(){try{const t=f(navigator.hardwareConcurrency);return isNaN(t)?1:t}catch(t){return 1}},timezoneOffset:function(){return(new Date).getTimezoneOffset()},timezone:function(){var t;if(null===(t=M.Intl)||void 0===t?void 0:t.DateTimeFormat)return(new M.Intl.DateTimeFormat).resolvedOptions().timeZone},sessionStorage:function(){try{return!!window.sessionStorage}catch(t){return!0}},localStorage:function(){try{return!!window.localStorage}catch(t){return!0}},indexedDB:function(){if(!A())try{return!!window.indexedDB}catch(t){return!0}},openDatabase:function(){return!!window.openDatabase},cpuClass:function(){return navigator.cpuClass},platform:function(){return navigator.platform},plugins:function(){if(!navigator.plugins)return;const t=[];for(let e=0;e<navigator.plugins.length;++e){const n=navigator.plugins[e];if(!n)continue;const o=[];for(const t of n)o.push({type:t.type,suffixes:t.suffixes});t.push({name:n.name,description:n.description,mimeTypes:o})}return t},canvas:function(){const[t,e]=function(){const t=document.createElement("canvas");return t.width=240,t.height=140,t.style.display="inline",[t,t.getContext("2d")]}();if(!function(t,e){return!(!e||!t.toDataURL)}(t,e))return{winding:!1,data:""};e.rect(0,0,10,10),e.rect(2,2,6,6);const n=!e.isPointInPath(5,5,"evenodd");e.textBaseline="alphabetic",e.fillStyle="#f60",e.fillRect(125,1,62,20),e.fillStyle="#069",e.font="11pt no-real-font-123";const o="Cwm fjordbank 😃 gly";return e.fillText(o,2,15),e.fillStyle="rgba(102, 204, 0, 0.2)",e.font="18pt Arial",e.fillText(o,4,45),e.globalCompositeOperation="multiply",e.fillStyle="rgb(255,0,255)",e.beginPath(),e.arc(50,50,50,0,2*Math.PI,!0),e.closePath(),e.fill(),e.fillStyle="rgb(0,255,255)",e.beginPath(),e.arc(100,50,50,0,2*Math.PI,!0),e.closePath(),e.fill(),e.fillStyle="rgb(255,255,0)",e.beginPath(),e.arc(75,100,50,0,2*Math.PI,!0),e.closePath(),e.fill(),e.fillStyle="rgb(255,0,255)",e.arc(75,75,75,0,2*Math.PI,!0),e.arc(75,75,25,0,2*Math.PI,!0),e.fill("evenodd"),{winding:n,data:b(t)}},touchSupport:function(){let t,e=0;void 0!==R.maxTouchPoints?e=f(R.maxTouchPoints):void 0!==R.msMaxTouchPoints&&(e=R.msMaxTouchPoints);try{document.createEvent("TouchEvent"),t=!0}catch(n){t=!1}return{maxTouchPoints:e,touchEvent:t,touchStart:"ontouchstart"in E}},fonts:function(){const t=p.body,e=p.createElement("div"),n=p.createElement("div"),o={},r={},i=()=>{const t=p.createElement("span");return Object.assign(t.style,y,{position:"absolute",left:"-9999px",fontSize:"48px"}),t.textContent="mmMwWLliI0O&1",t},a=(t,e)=>{const n=i();return n.style.fontFamily=`'${t}',${e}`,n},s=t=>m.some(((e,n)=>t[n].offsetWidth!==o[e]||t[n].offsetHeight!==r[e])),c=m.map((t=>{const n=i();return n.style.fontFamily=t,e.appendChild(n),n}));t.appendChild(e);for(let d=0,f=m.length;d<f;d++)o[m[d]]=c[d].offsetWidth,r[m[d]]=c[d].offsetHeight;const u=(()=>{const t={};for(const e of w)t[e]=m.map((t=>{const o=a(e,t);return n.appendChild(o),o}));return t})();t.appendChild(n);const l=[];for(let d=0,f=w.length;d<f;d++)s(u[w[d]])&&l.push(w[d]);return t.removeChild(n),t.removeChild(e),l},audio:function(){return n(this,void 0,void 0,(function*(){if(v.userAgent.match(/OS 11.+Version\/11.+Safari/))return-1;const t=g.OfflineAudioContext||g.webkitOfflineAudioContext;if(!t)return-2;const e=new t(1,44100,44100),n=e.createOscillator();n.type="triangle",n.frequency.setValueAtTime(1e4,e.currentTime);const o=e.createDynamicsCompressor();for(const[r,i]of[["threshold",-50],["knee",40],["ratio",12],["reduction",-20],["attack",0],["release",.25]])"function"==typeof o[r].setValueAtTime&&o[r].setValueAtTime(i,e.currentTime);return n.connect(o),o.connect(e.destination),n.start(0),e.startRendering(),new Promise((t=>{const r=setTimeout((()=>{e.oncomplete=()=>{},t(-3)}),1e3);e.oncomplete=e=>{let i;try{clearTimeout(r),i=e.renderedBuffer.getChannelData(0).slice(4500,5e3).reduce(((t,e)=>t+Math.abs(e)),0),n.disconnect(),o.disconnect()}catch(a){return void t(-4)}t(i)}}))}))},pluginsSupport:function(){return void 0!==navigator.plugins},productSub:function(){return navigator.productSub},emptyEvalLength:function(){return eval.toString().length},errorFF:function(){try{throw"a"}catch(t){try{return t.toSource(),!0}catch(e){return!1}}},vendor:function(){return navigator.vendor},chrome:function(){return void 0!==window.chrome},cookiesEnabled:function(){try{x.cookie="cookietest=1";const t=-1!==x.cookie.indexOf("cookietest=");return x.cookie="cookietest=1; expires=Thu, 01-Jan-1970 00:00:01 GMT",t}catch(t){return!1}}};function P(t,e,o){return n(this,void 0,void 0,(function*(){let n=Date.now();const r={};for(const a of Object.keys(t)){if(function(t,e){for(let n=0,o=t.length;n<o;++n)if(t[n]===e)return!0;return!1}(o,a))continue;let s,c;try{s={value:yield t[a](e)}}catch(i){s=i&&"object"==typeof i&&"message"in i?{error:i}:{error:{message:i}}}c=Date.now(),r[a]=Object.assign(Object.assign({},s),{duration:c-n}),n=c}return r}))}function j(t){return d(function(t){let e="";for(const n of Object.keys(t)){const o=t[n],r=o.error?"error":JSON.stringify(o.value);e+=`${e?"|":""}${n.replace(/([:|\\])/g,"\\$1")}:${r}`}return e}(t))}class D{get(t={}){return n(this,void 0,void 0,(function*(){const e=yield P(N,void 0,[]),n=function(t){let e;return{components:t,get visitorId(){return void 0===e&&(e=j(this.components)),e},set visitorId(t){e=t}}}(e);return t.debug&&console.log(`Copy the text below to get the debug data:\n\n\`\`\`\nversion: 3.0.0\ngetOptions: ${JSON.stringify(t,void 0,2)}\nvisitorId: ${n.visitorId}\ncomponents: ${function(t){return JSON.stringify(t,((t,e)=>{var n;return e instanceof Error?Object.assign(Object.assign({},e),{message:e.message,stack:null===(n=e.stack)||void 0===n?void 0:n.split("\n")}):e}),2)}(e)}\n\`\`\``),n}))}}function L({delayFallback:t=50}={}){return n(this,void 0,void 0,(function*(){var e;return yield(e=t,new Promise((t=>{window.requestIdleCallback?window.requestIdleCallback((()=>t())):setTimeout(t,e)}))),new D}))}const B=d;var F="3.0.0";function U(t,e){return new Promise((n=>setTimeout((()=>n(e)),t)))}function W(t,e,o){return n(this,void 0,void 0,(function*(){const n=yield Promise.race([U(e,[!0]),("function"==typeof t?t():t).then((t=>[!1,t]))]);return n[0]?null==o?void 0:o():n[1]}))}const q="TimeoutError";function V(t){return n(this,void 0,void 0,(function*(){let o;try{o=yield function(t,o){var{timeout:r}=o,i=e(o,["timeout"]);return n(this,void 0,void 0,(function*(){let e="undefined"==typeof AbortController?void 0:new AbortController;return W(fetch(t,Object.assign(Object.assign({},i),{signal:null==e?void 0:e.signal})),r,(()=>{throw null==e||e.abort(),new DOMException("The request timed out.",q)}))}))}("https://api.sjpf.io",{timeout:t})}catch(i){switch(i.name){case"AbortError":throw new Error("Abort");case q:throw new Error("Timeout");default:throw new Error("Connection error")}}const r=yield o.text();if(200===o.status)return r;throw new Error(r.slice(0,255))}))}const G="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",$=G.length;const J="Client timeout",K="Network connection error",H="Network request aborted",z="n/a";function X(t="us",e){if(e)return/^(https?:)?\/\//i.test(e)?e:"https://"+e;let n="api.fpjs.io";return"us"!==t&&(n=`${t}.${n}`),"https://"+n}function Q(t){var{endpoint:o,extendedResult:r,debug:i}=t,a=e(t,["endpoint","extendedResult","debug"]);return n(this,void 0,void 0,(function*(){const t=function(t){let e="";for(let n=0;n<t;n++)e+=G.charAt(Math.random()*$);return e}(20),s=function({components:t,token:e,visitorId:n,tag:o,ipResolution:r,extendedResult:i,linkedId:a,tls:s,tlsError:c,requestId:u}){const l=Object.keys(t).reduce(((e,n)=>e+t[n].duration),0),d="full"===r?2:1;return{rid:u,cv:F,c:e,url:location.href,d:l,vid:n[0]||n[1]||void 0,ls:n[1]?1:void 0,t:Z(o),i:d,cbd:i?1:void 0,lid:a,cr:document.referrer||void 0,j:s,je:null==c?void 0:c.message,k1:Y(t.osCpu),k2:Y(t.languages),k3:Y(t.colorDepth),k4:Y(t.deviceMemory),k5:Y(t.screenResolution),k6:Y(t.availableScreenResolution,void 0,[]),k7:Y(t.hardwareConcurrency),k8:Y(t.timezoneOffset),k9:Y(t.timezone),k10:tt(Y(t.sessionStorage)),k11:tt(Y(t.localStorage)),k12:tt(Y(t.indexedDB)),k13:tt(Y(t.openDatabase)),k14:Y(t.cpuClass),k15:Y(t.platform),k16:Y(t.plugins,[]),k17:et(t.canvas),k18:0,k19:Y(t.touchSupport),k20:Y(t.fonts,[]),k21:Y(t.audio,-1),k22:tt(Y(t.pluginsSupport)),k23:Y(t.productSub),k24:Y(t.emptyEvalLength),k25:tt(Y(t.errorFF)),k26:tt(Y(t[0])),k27:Y(t.vendor),k28:tt(Y(t.chrome)),k29:tt(Y(t[1])),k30:tt(Y(t[2])),k31:tt(Y(t[3],!1)),k32:tt(Y(t.cookiesEnabled,!1)),k33:tt(Y(t[4]))}}(Object.assign({extendedResult:r,requestId:t},a));return function(t,o,r,i){return n(this,void 0,void 0,(function*(){const n=yield t.text();let a;try{a=JSON.parse(n)}catch(s){}if(i&&console.log(`Visitor response status: ${t.status}\nVisitor response body:\n\`\`\`json\n${void 0===a?n:JSON.stringify(a,void 0,2)}\n\`\`\``),404===t.status||t.status>=500)throw new Error(t.statusText);if(void 0===a)throw new Error(n);if(function(t){return t&&"object"==typeof t&&"string"==typeof t.visitorId&&t.visitorId!==z}(a))return function(t){const n=t,{botProbability:o}=n,r=e(n,["botProbability"]),i=Object.assign({},r);o&&(i.bot={probability:o});return i}(a);if(function(t){return t&&"object"==typeof t&&t.visitorId===z}(a)){if("Not available for crawl bots"===a.reason||"Not available when User-Agent is unspecified"===a.reason)return function(t,e,n){const o={requestId:e,visitorFound:!1,visitorId:""};if(!n)return o;const r=Object.assign(Object.assign({},o),{bot:{probability:1},incognito:!1,browserName:z,browserVersion:z,device:z,ip:z,ipLocation:{},os:z,osVersion:z});"Not available for crawl bots"===t&&(r.bot.safe=!0);return r}(a.reason,o,r);throw new Error(a.reason)}throw new Error(n)}))}(yield function(t,e,o){return n(this,void 0,void 0,(function*(){o&&console.log(`Visitor request:\n\`\`\`json\n${JSON.stringify(e,void 0,2)}\n\`\`\``);const n=JSON.stringify(e);try{return yield fetch(t,{method:"POST",body:n,headers:{"Content-Type":"text/plain"},credentials:"include"})}catch(r){throw new Error("AbortError"===r.name?H:K)}}))}(o,s,i),t,r,i)}))}function Z(t){return t&&"object"==typeof t?t:null!=t?{tag:t}:void 0}function Y(t,e,n){var o;return t.error?e:null!==(o=t.value)&&void 0!==o?o:n}function tt(t){return!0===t?1:!1===t?0:t}function et({value:t}){if(t)return Object.assign(Object.assign({},t),{data:B(t.data)})}const nt=window,ot=document;const rt=window;const it=navigator,at=window;const st=window,ct=navigator;const ut="_inc",lt=[[function(){return C()},function(){return n(this,void 0,void 0,(function*(){return function(){const t=it.userAgent.match(/Chrom(e|ium)\/([0-9]+)\./);if(!t)throw"UserAgent is not Google Chrome";return parseInt(t[2],10)}()>=76?function(){return n(this,void 0,void 0,(function*(){if("storage"in it&&"estimate"in it.storage){const{quota:t}=yield it.storage.estimate();return!!t&&t<function(){var t,e,n;const o=(null===(t=it.userAgent)||void 0===t?void 0:t.indexOf("Mac OS"))>0&&-1===(null===(e=it.userAgent)||void 0===e?void 0:e.indexOf("iPhone")),r=(null===(n=it.userAgent)||void 0===n?void 0:n.indexOf("CrOS"))>0;return o||r?3221225472:1073741824}()}return!1}))}():new Promise((t=>{at.webkitRequestFileSystem(0,1,(()=>t(!1)),(()=>t(!0)))}))}))}],[function(){return/Apple/.test(ct.vendor)&&/Safari/.test(ct.userAgent)},function(){return n(this,void 0,void 0,(function*(){return function(){const t=navigator.userAgent.match(/Version\/([0-9._]+).*Safari/);if(!t)throw new Error("UserAgent is not Safari");const e=t[1].split("."),[n,o,r]=e.map((t=>isNaN(parseInt(t))?0:parseInt(t)));return{major:n,minor:o,patch:r}}().major<13?function(){try{st.openDatabase(null,null,null,null)}catch(t){return!0}try{return st.localStorage.setItem("test","1"),st.localStorage.removeItem("test"),!1}catch(t){return!0}}():function(){return n(this,void 0,void 0,(function*(){return"safari"in O?function(){try{st.safari.pushNotification.requestPermission("https://example.com","private",{},(()=>{}))}catch(e){return t=e,!new RegExp([103,101,115,116,117,114,101].map((t=>String.fromCharCode(t))).join("")).test(t)}var t;throw new Error("Unexpected lack of error")}():function(){return n(this,void 0,void 0,(function*(){const t=document.createElement("iframe");t.style.display="none";try{return document.body.appendChild(t),W(new Promise((e=>{t.contentWindow?t.contentWindow.applicationCache.addEventListener("error",(()=>e(!0))):e(!1)})),20,(()=>!1))}finally{t.remove()}}))}()}))}()}))}],[function(){return h(["buildID"in S,(null===(t=k.documentElement)||void 0===t?void 0:t.style)&&"MozAppearance"in k.documentElement.style,"MediaRecorderErrorEvent"in O,"mozInnerScreenX"in O,"CSSMozDocumentRule"in O,"CanvasCaptureMediaStream"in O])>=4;var t},function(){return n(this,void 0,void 0,(function*(){return new Promise((t=>{try{const e=rt.indexedDB.open("test");e.onerror=()=>t(!0),e.onsuccess=()=>t(!1)}catch(e){return t(!0)}}))}))}],[function(){return A()},function(){try{if(!window.indexedDB)return!0}catch(t){return!0}return!1}]];function dt(t,e){if(0==e.length||e.length>t.length)return-1;for(let n=0;n<t.length;n++){let o=0;for(let r=0;r<e.length;r++){if(t[n+r]!==e[r]){o=0;break}o++}if(o==e.length)return n}return-1}const ft=window,ht=document;const vt={0:function(){return void 0!==navigator.webdriver},1:function(){return navigator.permissions.query({name:"notifications"}).then((function(t){return"denied"===Notification.permission&&"prompt"===t.state}))},2:function(){const{documentElement:t}=ot;return"webdriver"in nt||"_Selenium_IDE_Recorder"in nt||"callSelenium"in nt||"_selenium"in nt||"__webdriver_script_fn"in ot||"__driver_evaluate"in ot||"__webdriver_evaluate"in ot||"__selenium_evaluate"in ot||"__fxdriver_evaluate"in ot||"__driver_unwrapped"in ot||"__webdriver_unwrapped"in ot||"__selenium_unwrapped"in ot||"__fxdriver_unwrapped"in ot||"__webdriver_script_func"in ot||null!==t.getAttribute("selenium")||null!==t.getAttribute("webdriver")||null!==t.getAttribute("driver")},3:function(){return n(this,void 0,void 0,(function*(){const t=function(){try{const t=localStorage.getItem(ut);if(!t)return;return"1"===t}catch(t){return}}();if(void 0!==t)return t;try{const t=yield function(){return n(this,void 0,void 0,(function*(){for(const[t,e]of lt)if(t())return yield e();return!1}))}();return function(t){try{localStorage.setItem(ut,t?"1":"0")}catch(e){}}(t),t}catch(e){return!1}}))},4:function(){if(!C())return!1;try{if([66,114,97,118,101].map((t=>String.fromCharCode(t))).join("")in ft)return!0;const t=ht.createElement("canvas");t.width=4,t.height=4,t.style.display="inline";const e=t.toDataURL();if(""===e)return!0;const n=window.atob(e.split(",")[1]),o=n.length,r=new Uint8Array(o);for(let c=0;c<o;c++)r[c]=n.charCodeAt(c);const i=dt(r,[73,68,65,84,24]);if(-1===i)return!1;const a=dt(r,[73,69,78,68]);if(-1===i)return!1;const s=r.slice(i+5,a);return 1321!==s.reduce(((t,e)=>t+e),0)}catch(t){return!1}}};const gt=document,pt=location;function mt(t){const e=t+"=";for(const n of gt.cookie.split(";")){let t=0;for(;" "===n[t]&&t<n.length;++t);if(n.indexOf(e)===t)return n.slice(t+e.length)}}function wt(t,e,n,o){const r=`${t}=${e}`,i="expires="+new Date(Date.now()+24*n*60*60*1e3).toUTCString(),a=o?"domain="+o:"";gt.cookie=[r,"path=/",i,a].join("; ")}function yt(t,e,n){const o=pt.hostname;bt(o,(e=>{!function(t,e){wt(t,"",-1,e)}(t,e)}));bt(o,(o=>(wt(t,e,n,o),mt(t)!==e)))&&wt(t,e,n)}function bt(t,e){let n=t.length;do{if(n=n>0?t.lastIndexOf(".",n-1):-1,!1===e(t.slice(n+1)))return!1}while(n>=0);return!0}const{localStorage:Rt}=window;function Et(t="_vid"){return[mt(t),St(t)]}function Ot(t,e="_vid"){yt(e,t,365),function(t,e){if(null==Rt?void 0:Rt.setItem)try{Rt.setItem(t,e)}catch(n){}}(e,t)}function St(t){var e;if(null==Rt?void 0:Rt.getItem)try{return null!==(e=Rt.getItem(t))&&void 0!==e?e:void 0}catch(n){}}var kt,At,Ct,Tt,_t,It,Mt,xt;class Nt{constructor(t,e,i,a,s){kt.set(this,void 0),At.set(this,void 0),Ct.set(this,void 0),Tt.set(this,void 0),_t.set(this,void 0),It.set(this,((t,e)=>n(this,void 0,void 0,(function*(){if(!e)return V(t).then((t=>({tls:t})),(t=>({tlsError:t})))})))),Mt.set(this,(()=>n(this,void 0,void 0,(function*(){const t=yield o(this,kt).get(),e=yield P(vt,void 0,[]);return Object.assign(Object.assign({},t.components),e)})))),xt.set(this,(t=>{const e={token:o(this,At),region:o(this,Ct),endpoint:o(this,Tt),storageKey:o(this,_t)};console.log(`Getting the visitor identifier:\n\`\`\`\nversion: 3.0.0\ninitOptions: ${JSON.stringify(e,void 0,2)}\ngetOptions: ${JSON.stringify(t,void 0,2)}\n\`\`\``)})),r(this,kt,t),r(this,At,e),r(this,Ct,i),r(this,Tt,a),r(this,_t,s)}get(t={}){const{timeout:e=1e4,tag:r,linkedId:i,disableTls:a,extendedResult:s,ipResolution:c,debug:u}=t;return u&&o(this,xt).call(this,t),l=J,W((()=>n(this,void 0,void 0,(function*(){const[t,n]=yield Promise.all([o(this,It).call(this,e/2,a),o(this,Mt).call(this)]),l=yield Q(Object.assign(Object.assign({token:o(this,At),endpoint:X(o(this,Ct),o(this,Tt))},t),{components:n,tag:r,visitorId:Et(o(this,_t)),linkedId:i,extendedResult:s,ipResolution:c,debug:u}));return Ot(l.visitorId,o(this,_t)),l}))),e,(()=>{throw new Error(l)}));var l}}function Pt({token:t,region:e,endpoint:o,storageKey:r,delayFallback:i}){return n(this,void 0,void 0,(function*(){if(!t||"string"!=typeof t)throw new Error("Token required");const n=yield L({delayFallback:i});return new Nt(n,t,e,o,r)}))}kt=new WeakMap,At=new WeakMap,Ct=new WeakMap,Tt=new WeakMap,_t=new WeakMap,It=new WeakMap,Mt=new WeakMap,xt=new WeakMap;const jt="Token required",Dt="Token not found",Lt="Token expired",Bt="Request cannot be parsed",Ft="Request failed",Ut="Request failed to process",Wt="Too many requests, rate limit exceeded";var qt={load:Pt,ERROR_CLIENT_TIMEOUT:J,ERROR_NETWORK_CONNECTION:K,ERROR_NETWORK_ABORT:H,ERROR_TOKEN_MISSING:jt,ERROR_TOKEN_INVALID:Dt,ERROR_TOKEN_EXPIRED:Lt,ERROR_BAD_REQUEST_FORMAT:Bt,ERROR_GENERAL_SERVER_FAILURE:Ft,ERROR_SERVER_TIMEOUT:Ut,ERROR_RATE_LIMIT:Wt};t.ERROR_BAD_REQUEST_FORMAT=Bt,t.ERROR_CLIENT_TIMEOUT=J,t.ERROR_GENERAL_SERVER_FAILURE=Ft,t.ERROR_NETWORK_ABORT=H,t.ERROR_NETWORK_CONNECTION=K,t.ERROR_RATE_LIMIT=Wt,t.ERROR_SERVER_TIMEOUT=Ut,t.ERROR_TOKEN_EXPIRED=Lt,t.ERROR_TOKEN_INVALID=Dt,t.ERROR_TOKEN_MISSING=jt,t.default=qt,t.load=Pt,Object.defineProperty(t,"__esModule",{value:!0})}));
{
"name": "@fingerprintjs/fingerprintjs-pro",
"version": "3.0.0-beta.3",
"description": "FingerprintJS Pro client agent",
"version": "3.0.0",
"keywords": [
"browser",
"fingerprint",
"identification",
"fraud detection"
],
"homepage": "https://fingerprintjs.com",
"bugs": {
"email": "support@fingerprintjs.com"
},
"main": "dist/fp.cjs.min.js",

@@ -18,7 +29,7 @@ "module": "dist/fp.esm.min.js",

"open-dev:on": "git submodule update --init && yarn add link:subpackages/fingerprintjs && yarn --cwd subpackages/fingerprintjs install && yarn --cwd subpackages/fingerprintjs build",
"open-dev:off": "yarn add @fingerprintjs/fingerprintjs@beta --exact",
"open-dev:off": "yarn add @fingerprintjs/fingerprintjs --exact",
"open-dev:build:watch": "yarn --cwd subpackages/fingerprintjs build:watch"
},
"dependencies": {
"@fingerprintjs/fingerprintjs": "3.0.0-beta.3",
"@fingerprintjs/fingerprintjs": "3.0.0",
"tslib": "^2.0.1"

@@ -25,0 +36,0 @@ },

@@ -1,19 +0,35 @@

# FingerprintJS Pro
<p align="center">
<a href="https://fingerprintjs.com">
<img src="https://raw.githubusercontent.com/fingerprintjs/fingerprintjs/b8b0af76a204aba9e270132be5f53d492f2232f3/resources/logo.svg" alt="FingerprintJS" width="300px" />
</a>
</p>
Work in progress, stay tuned.
Makes a website visitor identifier from a browser fingerprint.
Unlike cookies and local storage, fingerprint stays the same in incognito/private mode and even when browser data is purged.
Provides additional information and higher accuracy compared to Open Source FingerprintJS.
## Quick start
Get a pro key at [dashboard.fingerprintjs.com](https://dashboard.fingerprintjs.com/) (free trial).
Get a pro key:
### In browser
1. Register a new PRO account at [dashboard.fingerprintjs.com/signup](dashboard.fingerprintjs.com/signup) (there is a free trial)
2. After registration go to the [dashboard](dashboard.fingerprintjs.com) and select the created subscription
3. Go the "Tokens" page in the navigation side bar on the left side of the page
4. Copy a token with type "Browser"
### Install from CDN
```html
<script>
function onFingerprintJSLoad(fp) {
fp.get().then(({ visitorId }) => console.log(visitorId));
function onFingerprintJSLoad(fpAgent) {
// The FingerprintJS agent is ready. Get a visitor identifier when you'd like to.
fpAgent.get().then(result => {
// This is the visitor identifier:
const visitorId = result.visitorId;
console.log(visitorId);
});
}
</script>
<script
async src="https://cdn.jsdelivr.net/npm/@fingerprintjs/fingerprintjs-pro@3.0.0-beta.2/dist/fp.min.js"
async src="https://cdn.jsdelivr.net/npm/@fingerprintjs/fingerprintjs-pro@3/dist/fp.min.js"
onload="FingerprintJS.load({ token: 'your-pro-key' }).then(onFingerprintJSLoad)"

@@ -23,17 +39,25 @@ ></script>

A simple way to start but not recommended because AdBlock and similar browser extensions often block this URL.
You should at least upload it to your server.
We recommend to upload [the JS script](https://cdn.jsdelivr.net/npm/@fingerprintjs/fingerprintjs-pro@3/dist/fp.min.js)
to your server because AdBlock and other browser extensions can block the public script URL.
### Webpack/Rollup/Browserify
### Alternatively you can install from NPM to use with Webpack/Rollup/Browserify
```bash
npm i @fingerprintjs/fingerprintjs-pro
# or
yarn add @fingerprintjs/fingerprintjs-pro
```
```js
import * as FPJS from '@fingerprintjs/fingerprintjs-pro';
import FingerprintJS from '@fingerprintjs/fingerprintjs-pro';
(async () => {
const fpjs = await FPJS.load({ token: 'your-pro-key' });
const { visitorId } = await fpjs.get();
// We recommend to call `load` at application startup.
const fpAgent = await FingerprintJS.load({ token: 'your-pro-key' });
// The FingerprintJS agent is ready. Get a visitor identifier when you'd like to.
const result = await fpAgent.get();
// This is the visitor identifier:
const visitorId = result.visitorId;
console.log(visitorId);

@@ -43,6 +67,6 @@ })();

## Browser support
🍿 [Live demo](https://fingerprintjs.com/demo)
```bash
npx browserslist "> 1% in us"
```
⏱ [How to upgrade from Open Source to Pro in 30 seconds](https://dev.fingerprintjs.com/v3/docs/migrating-from-previous-versions#from-fingerprintjs-open-source-version-3)
📕 [FingerprintJS Pro documentation](https://dev.fingerprintjs.com)
SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc