1!function(){try{var e="u">typeof window?window:"u">typeof global?global:"u">typeof globalThis?globalThis:"u">typeof self?self:{};e._sentryModuleMetadata=e._sentryModuleMetadata||{},e._sentryModuleMetadata[(new e.Error).stack]=function(e){for(var t=1;t<arguments.length;t++){var i=arguments[t];if(null!=i)for(var s in i)i.hasOwnProperty(s)&&(e[s]=i[s])}return e}({},e._sentryModuleMetadata[(new e.Error).stack],{"_sentryBundlerPluginAppKey:landing-next":!0});var t=(new e.Error).stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="722b6b15-c500-473c-8d26-b3827dde1cc0",e._sentryDebugIdIdentifier="sentry-dbid-722b6b15-c500-473c-8d26-b3827dde1cc0")}catch(e){}}(),(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[7054],{3269:()=>{},31560:()=>{},37176:()=>{},42895:()=>{},59732:()=>{},62139:()=>{},62574:(e,t,i)=>{"use strict";i.d(t,{default:()=>h});var s=i(1433),n=i(95906),r=i(37851),o=i(97896),a=(e,t,i)=>new Promise((s,n)=>{var r=e=>{try{a(i.next(e))}catch(e){n(e)}},o=e=>{try{a(i.throw(e))}catch(e){n(e)}},a=e=>e.done?s(e.value):Promise.resolve(e.value).then(r,o);a((i=i.apply(e,t)).next())});class h{constructor(e,t,i=24,s=640,n=480){this.threshold=2,this.front=null,this.detectionInProgress=!1,this.livenessFinished=!1,this.disposed=!1,this.onLivenessFinishedListener=()=>{},this.onLivenessReadyListener=()=>{},this.element=e,this.modelPath=t,this.frontFaceWidth=s,this.frontFaceHeight=n,this.rectsReference=Array.from({length:i})}setup(){return a(this,null,function*(){r.zj(this.modelPath,!0),yield n.Gc4(),yield n.jh6("wasm");let e={scoreThreshold:.95,maxFaces:1,modelUrl:this.modelPath+"model.json",fromTFHub:!1};if(this.model=yield s.H(e),this.disposed)return;let t=document.getElementById(this.element);if(!t)throw Error("Alpha liveness camera container was not found");t.innerHTML=this.template();let i=t.querySelector(".alpha-countdown-container");if(!i)throw Error("Alpha liveness countdown container was not found");if(this.countdown=new d(3,1500,i,"countdown-animate"),this.stream=yield navigator.mediaDevices.getUserMedia({video:{width:this.frontFaceWidth,height:this.frontFaceHeight,frameRate:{ideal:15}},audio:!1}),this.disposed)return void this.releaseCameraAccess();let o=t.querySelector("#alphasdk-video");if(!o)throw Error("Alpha liveness video element was not found");this.videoElement=o,o.srcObject=this.stream,yield new Promise((e,t)=>{let i=()=>{o.removeEventListener("error",s),e()},s=()=>{o.removeEventListener("loadeddata",i),t(Error("Alpha liveness camera could not start"))};o.addEventListener("loadeddata",i,{once:!0}),o.addEventListener("error",s,{once:!0})});let a=Math.min(o.videoHeight,300),h=o.videoWidth*a/o.videoHeight;this.gifCanvas=document.createElement("canvas"),this.gifCanvas.height=a,this.gifCanvas.width=h})}start(){if(!this.countdown)throw Error("Alpha liveness SDK must be set up before start");this.countdown.start(()=>this.recursiveDetections())}finished(){var e;this.disposed=!0,void 0!==this.animationFrame&&cancelAnimationFrame(this.animationFrame),null==(e=this.countdown)||e.stop(),this.releaseCameraAccess()}onLivenessFinished(e){this.onLivenessFinishedListener=e}onLivenessReady(e){this.onLivenessReadyListener=e}releaseCameraAccess(){var e;null==(e=this.stream)||e.getTracks().forEach(e=>e.stop()),this.videoElement&&(this.videoElement.srcObject=null)}recursiveDetections(){this.disposed||this.livenessFinished||this.detectionInProgress||(this.detectionInProgress=!0,this.animationFrame=requestAnimationFrame(()=>{this.detectFace().then(()=>{if(this.detectionInProgress=!1,this.disposed)return;if(this.rectsReference.some(e=>void 0===e))return void this.recursiveDetections();this.livenessFinished=!0,this.onLivenessFinishedListener();let e=(0,o.GIFEncoder)();this.rectsReference.forEach(t=>{t&&e.writeFrame(t.index,t.width,t.height,{palette:t.palette})}),e.finish();let t=Uint8Array.from(e.bytes());this.onLivenessReadyListener(this.front,new Blob([t.buffer],{type:"image/gif"}))}).catch(()=>{this.detectionInProgress=!1,this.disposed||this.recursiveDetections()})}))}detectFace(){return a(this,null,function*(){var e,t;if(!this.model||!this.videoElement||!this.gifCanvas)return;let i=(yield this.model.estimateFaces(this.videoElement,!1))[0];if(!i)return;let[s,n]=i.topLeft,[r,a]=i.bottomRight,h=r-s,d=a-n,[l,c,v]=i.landmarks;if(Math.abs(l[1]-c[1])/d>.1)return;let u=(c[0]+(l[0]-c[0])/2-v[0])/h*10;if(u=Math.max(-this.threshold,Math.min(this.threshold,u)),!this.front&&u<=.15&&u>=-.15){let t=document.createElement("canvas"),i=Math.max(s-.25*h,0),r=Math.max(n-.25*d,0);t.width=i+1.5*h>this.videoElement.videoWidth?this.videoElement.videoWidth-i:1.5*h,t.height=r+1.5*d>this.videoElement.videoHeight?this.videoElement.videoHeight-r:1.5*d,null==(e=t.getContext("2d"))||e.drawImage(this.videoElement,i,r,t.width,t.height,0,0,t.width,t.height),this.front=function(e){let t=atob(e.split(",")[1]),i=e.split(",")[0].split(":")[1].split(";")[0],s=new Uint8Array(t.length);for(let e=0;e<t.length;e+=1)s[e]=t.charCodeAt(e);return new Blob([s],{type:i})}(t.toDataURL())}let m=function(e,t){let i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:2;return Math.max(0,Math.min(t-1,Math.floor((e+i)/(2*i)*t)))}(u,this.rectsReference.length,this.threshold);if(void 0===this.rectsReference[m]){let e=this.gifCanvas.getContext("2d",{willReadFrequently:!0});if(!e)return;e.drawImage(this.videoElement,0,0,this.videoElement.videoWidth,this.videoElement.videoHeight,0,0,this.gifCanvas.width,this.gifCanvas.height);let{data:t,width:i,height:s}=e.getImageData(0,0,this.gifCanvas.width,this.gifCanvas.height),n=(0,o.quantize)(t,256);this.rectsReference[m]={index:(0,o.applyPalette)(t,n),width:i,height:s,palette:n}}null==(t=document.getElementById(`rect-${m}`))||t.classList.add("stretched")})}template(){return`<div> 2 <div class="alpha-video-wrapper">
3 <video autoplay muted playsinline id="alphasdk-video"></video> 4 <div class="alpha-countdown-container"><div class="alpha-countdown"></div></div> 5 </div> 6 <div class="rects-container alpha-rects-container">${this.rectsReference.map((e,t)=>`<div class="rect" id="rect-${t}"></div>`).join("")}</div> 7 </div>`}}class d{constructor(e,t,i,s){this.initialCountdown=e,this.countdown=e,this.interval=t,this.wrapper=i,this.animationClass=s;const n=i.querySelector(".alpha-countdown");if(!n)throw Error("Alpha liveness countdown was not found");this.element=n}start(e){this.element.textContent=String(this.countdown),this.animationClass&&this.element.classList.add(this.animationClass),this.element.style.animationDuration=this.interval+"ms",this.element.style.animationIterationCount=String(this.countdown),this.intervalController=setInterval(()=>{this.countdown-=1,this.element.textContent=String(this.countdown),this.countdown<=0&&(this.stopInterval(),this.wrapper.hidden=!0)},this.interval),this.timeoutController=setTimeout(e,this.countdown*this.interval)}stop(){this.stopInterval(),this.timeoutController&&clearTimeout(this.timeoutController),this.countdown=this.initialCountdown}stopInterval(){this.intervalController&&clearInterval(this.intervalController)}}},63957:()=>{},67585:()=>{},84892:()=>{}}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.