class AgeVerifyDeviceID{constructor(){this.properties={},this.loadedFingerPrint=!1}async getRawFingerprintData(){return this.properties={screenResolution:this.getScreenResolution(),hardwareConcurrency:this.getHardwareConcurrency(),deviceMemory:this.getDeviceMemory(),platform:await this.getPlatform(),colorDepth:this.getColorDepth(),webGLRenderer:this.getWebGLRenderer(),timezone:this.getTimezone(),vendor:this.getVendor(),webGLVendor:this.getWebGLVendor()},this.loadedFingerPrint=!0,this.properties}async getFingerprint(){return this.loadedFingerPrint||await this.getRawFingerprintData(),this.hashObject(this.properties)}getScreenResolution(){const e=screen.width,t=screen.height;return e>t?`${e}x${t}`:`${t}x${e}`}getHardwareConcurrency(){return navigator.hardwareConcurrency||0}getDeviceMemory(){return navigator.deviceMemory||0}async getPlatform(){if(navigator.userAgentData){return(await navigator.userAgentData.getHighEntropyValues(["platform"])).platform||"Unknown"}return navigator.platform||"Unknown"}getColorDepth(){return screen.colorDepth}getWebGLRenderer(){const e=document.createElement("canvas"),t=e.getContext("webgl")||e.getContext("experimental-webgl");if(!t)return"Unavailable";const n=t.getExtension("WEBGL_debug_renderer_info");return n?t.getParameter(n.UNMASKED_RENDERER_WEBGL):"Unknown"}getWebGLVendor(){const e=document.createElement("canvas"),t=e.getContext("webgl")||e.getContext("experimental-webgl");if(!t)return"Unavailable";const n=t.getExtension("WEBGL_debug_renderer_info");return n?t.getParameter(n.UNMASKED_VENDOR_WEBGL):"Unknown"}getMathPrecision(){return[Math.sin(1.23456),Math.cos(1.23456),Math.tan(1.23456)].join(",")}async getInstalledFonts(){const e=document.body,t=document.createElement("span");t.style.fontSize="72px",t.style.visibility="hidden",t.style.position="absolute",t.innerText="mmmmmmmmmmlli",e.appendChild(t);const n={},r=[];return["monospace","sans-serif","serif"].forEach((e=>{t.style.fontFamily=e,n[e]=t.offsetWidth})),["Arial","Verdana","Courier","Georgia","Times New Roman","Comic Sans MS"].forEach((e=>{t.style.fontFamily=e+", sans-serif",t.offsetWidth!==n["sans-serif"]&&r.push(e)})),e.removeChild(t),r.join(",")}getTimezone(){return Intl.DateTimeFormat().resolvedOptions().timeZone}getVendor(){return navigator.vendor||"Unknown"}async getBrowserInfo(){let e="Unknown",t="Unknown",n="Desktop",r=JSON.stringify(await this.getRawFingerprintData());if(navigator.userAgentData){const r=navigator.userAgentData;e=r.brands[0]?.brand||"Unknown",t=r.brands[0]?.version||"Unknown",n=r.mobile?"Mobile":"Desktop"}else{const r=navigator.userAgent;/firefox|fxios/i.test(r)?(e="Firefox",t=r.match(/firefox\/(\d+)/i)?.[1]||"Unknown"):/chrome|crios/i.test(r)&&!/edge|edg/i.test(r)?(e="Chrome",t=r.match(/chrome\/(\d+)/i)?.[1]||"Unknown"):/safari/i.test(r)&&!/chrome|crios/i.test(r)?(e="Safari",t=r.match(/version\/(\d+)/i)?.[1]||"Unknown"):/edg/i.test(r)?(e="Edge",t=r.match(/edg\/(\d+)/i)?.[1]||"Unknown"):/opr|opera/i.test(r)&&(e="Opera",t=r.match(/(opera|opr)\/(\d+)/i)?.[2]||"Unknown"),/mobi|android|iphone|ipad|ipod/i.test(r)&&(n="Mobile")}return{rawFingerprint:r,browser:e,version:t,mobile:n}}base64Encode(e){return btoa(JSON.stringify(e))}getCookieValue(e){const t=document.cookie.match(new RegExp("(^| )"+e+"=([^;]+)"));return t?t[2]:null}setCookieAndLocalStorage(e,t,n){if(this.getCookieValue(e)!==t){let r="";if(n){const e=new Date;e.setTime(e.getTime()+24*n*60*60*1e3),r="; expires="+e.toUTCString()}const o=this.getBaseDomain();document.cookie=`${e}=${t}; path=/; domain=${o}; SameSite=Lax; Secure; ${r}`}localStorage.getItem(e)!==t&&localStorage.setItem(e,t)}getBaseDomain(){const e=window.location.hostname.split(".");return e.length>2?`.${e.slice(-2).join(".")}`:`.${window.location.hostname}`}async hashObject(e){const t=JSON.stringify(e,Object.keys(e).sort()),n=(new TextEncoder).encode(t),r=await crypto.subtle.digest("SHA-256",n);return Array.from(new Uint8Array(r)).map((e=>e.toString(16).padStart(2,"0"))).join("")}}(async()=>{const e=new AgeVerifyDeviceID;e.setCookieAndLocalStorage("avs_id",await e.getFingerprint(),365);const t=await e.getBrowserInfo(),n=e.base64Encode(t);e.setCookieAndLocalStorage("avs_extra",n,365)})();