1var __defProp=Object.defineProperty;var __typeError=msg=>{throw TypeError(msg)};var __name=(target,value)=>__defProp(target,"name",{value,configurable:!0});var __accessCheck=(obj,member,msg)=>member.has(obj)||__typeError("Cannot "+msg);var __privateGet=(obj,member,getter)=>(__accessCheck(obj,member,"read from private field"),getter?getter.call(obj):member.get(obj)),__privateAdd=(obj,member,value)=>member.has(obj)?__typeError("Cannot add the same private member more than once"):member instanceof WeakSet?member.add(obj):member.set(obj,value),__privateSet=(obj,member,value,setter)=>(__accessCheck(obj,member,"write to private field"),setter?setter.call(obj,value):member.set(obj,value),value),__privateMethod=(obj,member,method)=>(__accessCheck(obj,member,"access private method"),method);(function(){"use strict";var _a,_b,_c,_d,_e,_f,_widgets,_fieldClass,_sdk,_FriendlyCaptcha_instances,handlerSubmitClick_fn,moveField_fn,cf7FormId_fn,eventFormId_fn;function flatPromise(executor){let resolve,reject;return{promise:new Promise((res,rej)=>{resolve=res,reject=rej}),resolve,reject}}__name(flatPromise,"flatPromise");function stringHasPrefix(str,word){return str.lastIndexOf(word,0)===0}__name(stringHasPrefix,"stringHasPrefix");var originRegex=/^((?:\w+:)?\/\/([^\/]+))/;function encodeQuery(queryParams){let out=[];const k=Object.keys(queryParams),eu=encodeURIComponent;for(let i=0;i<k.length;i++)out.push(`${eu(k[i])}=${eu(queryParams[k[i]])}`);return out.join("&")}__name(encodeQuery,"encodeQuery");function originOf(url){const l=document.location;if(stringHasPrefix(url,"/")||stringHasPrefix(url,"."))return l.origin?l.origin:l.protocol+"//"+l.host;const match=url.match(originRegex);if(!match)throw new Error("Invalid URL: "+url);return match[1]}__name(originOf,"originOf");var IFrameCommunicationTarget=(_a=class{constructor(opts){this.ready=!1,this.buffer=[],this.id=opts.id,this.type=opts.type,this.element=opts.element,this.onReady=opts.onReady,this.origin=originOf(opts.element.src)}send(msg){this.ready?this.element.contentWindow.postMessage(msg,this.origin):this.buffer.push(msg)}setReady(ready){this.onReady(),this.ready=ready,this.ready&&this.flush()}flush(){for(let i=0;i<this.buffer.length;i++)this.element.contentWindow.postMessage(this.buffer[i],this.origin);this.buffer=[]}},__name(_a,"IFrameCommunicationTarget"),_a);function isAllowedOrigin(origin,allowedOrigins){return origin==="*"||allowedOrigins.has(origin)}__name(isAllowedOrigin,"isAllowedOrigin");var CommunicationBus=(_b=class{constructor(){this.origins=new Set,this.targets={},this.answered=new Set,this.onReceiveRootMessage=()=>{},window.addEventListener("message",ev=>{this.onReceive(ev)})}listen(onReceiveRootMessage){let orig=this.onReceiveRootMessage;this.onReceiveRootMessage=msg=>{orig(msg),onReceiveRootMessage(msg)}}addOrigin(origin){this.origins.add(origin)}send(msg){if(msg.from_id){const messageSender=this.targets[msg.from_id];if(!messageSender){console.error(`[bus] Unexpected message from unknown sender ${msg.from_id}`,msg);return}(msg.type==="widget_announce"||msg.type==="agent_announce")&&messageSender.setReady(!0)}const rid=msg.rid;if(rid){if(this.answered.has(rid+msg.to_id))return;this.answered.add(rid+msg.to_id)}if(msg.to_id===""){this.onReceiveRootMessage(msg);return}const messageTarget=this.targets[msg.to_id];if(!messageTarget){console.error(`[bus] Unexpected message to unknown target ${msg.to_id}`,msg);return}messageTarget.send(msg)}onReceive(ev){if(!isAllowedOrigin(ev.origin,this.origins))return;const msg=ev.data;!msg||!msg._frc||this.send(msg)}registerTarget(ct){this.targets[ct.id]=ct}registerTargetIFrame(type,id,iframe,timeout){const fp=flatPromise();let timeoutPromise=new Promise(resolve=>setTimeout(()=>resolve("timeout"),timeout));const t=new IFrameCommunicationTarget({id,element:iframe,type,onReady:__name(()=>fp.resolve("registered"),"onReady")});return this.registerTarget(t),Promise.race([fp.promise,timeoutPromise])}removeTarget(id){delete this.targets[id]}},__name(_b,"CommunicationBus"),_b);function randomId(length,chars="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"){let out="";for(let i=0;i<length;i++)out+=chars.charAt(Math.floor(Math.random()*chars.length));return out}__name(randomId,"randomId");function promisifyRequest(request){return new Promise((resolve,reject)=>{request.oncomplete=request.onsuccess=()=>resolve(request.result),request.onabort=request.onerror=()=>reject(request.error)})}__name(promisifyRequest,"promisifyRequest");function createStore(dbName,storeName){const request=indexedDB.open(dbName);request.onupgradeneeded=()=>request.result.createObjectStore(storeName);const dbp=promisifyRequest(request);return(txMode,callback)=>dbp.then(db=>callback(db.transaction(storeName,txMode).objectStore(storeName)))}__name(createStore,"createStore");var defaultGetStoreFunc;function defaultGetStore(){return defaultGetStoreFunc||(defaultGetStoreFunc=createStore("keyval-store","keyval")),defaultGetStoreFunc}__name(defaultGetStore,"defaultGetStore");function get(key,customStore=defaultGetStore()){return customStore("readonly",store=>promisifyRequest(store.get(key)))}__name(get,"get");function set(key,value,customStore=defaultGetStore()){return customStore("readwrite",store=>(store.put(value,key),promisifyRequest(store.transaction)))}__name(set,"set");var SESSION_COUNT_KEY="frc_sc",SESSION_ID_KEY="frc_sid",SEPARATOR="__",sc="0",sid="__"+randomId(10);function sessionCount(increase){{let scnumber=0;try{scnumber=parseInt(sessionStorage.getItem(SESSION_COUNT_KEY)||"",10)}catch{}isNaN(scnumber)&&(scnumber=0),increase&&scnumber++,sc=scnumber.toString();try{sessionStorage.setItem(SESSION_COUNT_KEY,sc)}catch{}}return sc}__name(sessionCount,"sessionCount");function sessionId(){let id;try{id=sessionStorage.getItem(SESSION_ID_KEY)}catch{return sid}return id||(id=randomId(12),sessionStorage.setItem(SESSION_ID_KEY,id)),id}__name(sessionId,"sessionId");var Store=(_c=class{constructor(prefix){this.mem=new Map,this.storePrefix=prefix}setup(){return new Promise((resolve,reject)=>{if(this._hasSA!==void 0)return resolve(this._hasSA);try{indexedDB.open("")}catch{return resolve(this._hasSA=!1)}if(!document.hasStorageAccess)return resolve(this._hasSA=!0);document.hasStorageAccess().then(hasSA=>(this._hasSA=hasSA,this._hasSA?this.idb=createStore("friendlycaptcha","frc"):console.debug("FRC has no storage access"),resolve(this._hasSA))).catch(reject)})}get(key,opts){return this.setup().then(hasSA=>{const storeKey=this.storePrefix+SEPARATOR+key;if(opts.p)return hasSA?get(storeKey,this.idb):this.mem.get(key);try{const sessValue=sessionStorage.getItem(storeKey);return sessValue===null?void 0:sessValue}catch{}return this.mem.get(key)})}set(key,value,opts){return this.setup().then(hasSA=>{const storeKey=this.storePrefix+SEPARATOR+key;if(opts.p){if(hasSA)return set(storeKey,value,this.idb);value===void 0?this.mem.delete(key):this.mem.set(key,value)}else try{value===void 0?(this.mem.delete(key),sessionStorage.removeItem(storeKey)):(this.mem.set(key,value),sessionStorage.setItem(storeKey,value))}catch{}})}hasSA(){return this._hasSA}},__name(_c,"Store"),_c),supportAllowClipboardWrite=typeof navigator<"u"&&navigator.userAgentData!==void 0;function findCaptchaElements(){return document.querySelectorAll(".frc-captcha")}__name(findCaptchaElements,"findCaptchaElements");function findParentFormElement(element){for(;element.tagName!=="FORM";)if(element=element.parentElement,!element)return null;return element}__name(findParentFormElement,"findParentFormElement");function executeOnceOnFocusInEvent(element,listener){element.addEventListener("focusin",listener,{once:!0,passive:!0})}__name(executeOnceOnFocusInEvent,"executeOnceOnFocusInEvent");function styleIfNotAlreadySet(el,name,value){el.style[name]===""&&(el.style[name]=value)}__name(styleIfNotAlreadySet,"styleIfNotAlreadySet");function setWidgetRootStyles(el){const sinas=styleIfNotAlreadySet;sinas(el,"position","relative"),sinas(el,"height","70px"),sinas(el,"padding","0"),sinas(el,"width","316px"),sinas(el,"maxWidth","100%"),sinas(el,"maxHeight","100%"),sinas(el,"overflow","hidden"),sinas(el,"borderRadius","4px")}__name(setWidgetRootStyles,"setWidgetRootStyles");function removeWidgetRootStyles(el){el.removeAttribute("style")}__name(removeWidgetRootStyles,"removeWidgetRootStyles");function runOnDocumentLoaded(func){document.readyState!=="loading"?func():document.addEventListener("DOMContentLoaded",func)}__name(runOnDocumentLoaded,"runOnDocumentLoaded");function fireFRCEvent(element,eventData){let event;typeof window.CustomEvent=="function"?event=new CustomEvent(eventData.name,{bubbles:!0,detail:eventData}):(event=document.createEvent("CustomEvent"),event.initCustomEvent(eventData.name,!0,!1,eventData)),element.dispatchEvent(event)}__name(fireFRCEvent,"fireFRCEvent");function findFirstParentLangAttribute(element){for(;!element.lang||typeof element.lang!="string";)if(element=element.parentElement,!element)return null;return element.lang}__name(findFirstParentLangAttribute,"findFirstParentLangAttribute");var PLACEHOLDER_LOCALIZATIONS={ar:{title:"Ø§ÙØªØÙÙ Ù Ù Ù ÙØ§ÙØØ© Ø§ÙØ±ÙØ¨ÙØªØ§Øª",connecting:"Ø§ÙØªØÙÙ Ù Ù Ù ÙØ§ÙØØ© Ø§ÙØ±ÙØ¨ÙØªØ§Øª ÙÙØ¯ Ø§ÙØ§ØªØµØ§Ùâ¦",retrying:`Ø§Ø³ØªØºØ±Ù Ø§ÙØ§ØªØµØ§Ù Ø¨Ø§ÙØªØÙÙ Ù Ù Ù ÙØ§ÙØØ© Ø§ÙØ±ÙØ¨ÙØªØ§Øª ÙÙØªÙا Ø·ÙÙÙØ§Ù. 2 3إعادة اÙÙ ØØ§ÙÙØ©â¦`,failed:"ÙØ´Ù Ø§ÙØ§ØªØµØ§Ù Ø¨Ø§ÙØªØÙÙ Ù Ù Ù ÙØ§ÙØØ© Ø§ÙØ±ÙØ¨ÙØªØ§Øª."},bg:{title:"ÐÑовеÑка ÑÑеÑÑ ÑобоÑи",connecting:"ÐаÑежда Ñе задаÑаÑаâ¦",retrying:`ÐеÑÑпеÑно ÑвÑÑзване. 4 5ÐÐ¿Ð¸Ñ Ð·Ð° повÑоÑно ÑвÑÑзванеâ¦`,failed:"ÐеÑÑпеÑно ÑвÑÑзване."},ca:{title:"Verificació anti-robot",connecting:"Carregant el desafiamentâ¦",retrying:`Errada de conexió. 6 7Reintentantâ¦`,failed:"Errada de conexió."},cs:{title:"OvÄÅenà proti robotům",connecting:"PÅipojovánà kontroly proti robotůmâ¦",retrying:`PÅipojenà kontroly proti robotům trvalo pÅÃliÅ¡ dlouho. 8 9Opakuji pokusâ¦`,failed:"Kontrola proti robotům se nepodaÅilo pÅipojit."},da:{title:"Anti-robot-verifikation",connecting:"Anti-robot-kontrol forbinderâ¦",retrying:`Anti-robot-kontrol tog for lang tid at oprette forbindelse. 10 11Prøver igenâ¦`,failed:"Anti-robot-kontrol kunne ikke oprette forbindelse."},nl:{title:"Anti-robotcheck",connecting:"Verbinden met Anti-robotcheckâ¦",retrying:`Verbinden met Anti-robotcheck mislukt. 12 13Opnieuw aan het proberenâ¦`,failed:"Verbinden met Anti-robotcheck mislukt."},en:{title:"Anti-Robot verification",connecting:"Anti-Robot check connectingâ¦",retrying:`Anti-Robot check took too long to connect. 14 15Retryingâ¦`,failed:"Anti-Robot check failed to connect."},fi:{title:"Robottien torjunnan vahvistus",connecting:"Robottien torjunnan tarkistus käynnissäâ¦",retrying:`Robottien torjunnan tarkistus kesti liian kauan. 16 17Yritetään uudelleenâ¦`,failed:"Robottien torjunnan tarkistus epäonnistui."},fr:{title:"Vérification anti-robot",connecting:"Connexion à la vérification anti-robotâ¦",retrying:`La connexion à la vérification anti-robot a pris trop de temps. 18 19Nouvelle tentativeâ¦`,failed:"Ãchec de la connexion à la vérification anti-robot."},de:{title:"Anti-Roboter-Verifizierung",connecting:"Verbindung zur Anti-Roboter-Verifizierung wird hergestelltâ¦",retrying:`Verbindung zur Anti-Roboter-Verifizierung hat zu lange gedauert. 20 21Erneuter Versuchâ¦`,failed:"Verbindung zur Anti-Roboter-Verifizierung ist fehlgeschlagen."},hi:{title:"à¤à¤à¤à¥-रà¥à¤¬à¥à¤ सतà¥à¤¯à¤¾à¤ªà¤¨",connecting:"à¤à¥à¤¨à¥à¤¤à¥ लà¥à¤¡ हॠरहॠहà¥â¦",retrying:`à¤à¤¨à¥à¤à¥à¤¶à¤¨ विफल. 22 23पà¥à¤¨à¤ पà¥à¤°à¤¯à¤¾à¤¸ à¤à¤° रहॠहà¥à¤â¦`,failed:"à¤à¤¨à¥à¤à¥à¤¶à¤¨ विफल."},hu:{title:"RobotellenÅrzés",connecting:"RobotellenÅrzés csatlakozásâ¦",retrying:`A robotellenÅrzés túl sokáig tartott a csatlakozáshoz. 24 25Ãjrapróbálomâ¦`,failed:"A robotellenÅrzés nem tudott csatlakozni."},id:{title:"Verifikasi Anti-Robot",connecting:"Pemeriksaan Anti-Robot sedang terhubungâ¦",retrying:`Pemeriksaan Anti-Robot memakan waktu terlalu lama untuk terhubung. 26 27Mencoba lagiâ¦`,failed:"Pemeriksaan Anti-Robot gagal terhubung."},ja:{title:"ãããã鲿¢èªè¨¼",connecting:"ãã£ã¬ã³ã¸ãèªã¿è¾¼ãã§ãã¾ãâ¦",retrying:`æ¥ç¶å¤±æ. 28 29å試è¡ä¸â¦`,failed:"æ¥ç¶å¤±æ."},it:{title:"Verifica anti-robot",connecting:"Connessione verifica anti-robot in corsoâ¦",retrying:`La connessione alla verifica anti-robot ha richiesto troppo tempo. 30 31Riprovandoâ¦`,failed:"Impossibile connettersi alla verifica anti-robot."},nb:{title:"Anti-robot-verifisering",connecting:"Laster inn utfordringâ¦",retrying:`Klarte ikke Ã¥ koble til. 32 33Prøver igjenâ¦`,failed:"Klarte ikke Ã¥ koble til."},pl:{title:"Weryfikacja antyrobotowa",connecting:"ÅÄ czenie siÄ z kontrolÄ antyrobotowÄ â¦",retrying:`ÅÄ czenie siÄ z kontrolÄ antyrobotowÄ trwaÅo zbyt dÅugo. 34 35Ponowna próbaâ¦`,failed:"Nie udaÅo siÄ poÅÄ czyÄ z kontrolÄ antyrobotowÄ ."},ro:{title:"Verificare anti-robot",connecting:"Se incarca testulâ¦",retrying:`Conexiunea a esuat. 36 37Reincercareâ¦`,failed:"Conexiunea a esuat."},pt:{title:"Verificação anti-robô",connecting:"Verificação anti-robô a ligarâ¦",retrying:`A verificação anti-robô demorou demasiado tempo a ligar-se. 38 39A tentar novamenteâ¦`,failed:"A verificação anti-robô não conseguiu ligar-se."},ru:{title:"ÐÑовеÑка анÑиÑобоÑа",connecting:"ÐодклÑÑение к пÑовеÑке анÑиÑобоÑаâ¦",retrying:`ÐодклÑÑение к пÑовеÑке анÑиÑобоÑа занÑло ÑлиÑком много вÑемени. 40 41ÐовÑоÑÑем попÑÑкÑâ¦`,failed:"Ðе ÑдалоÑÑ Ð¿Ð¾Ð´ÐºÐ»ÑÑиÑÑÑÑ Ðº пÑовеÑке анÑиÑобоÑа."},sk:{title:"Overovanie proti robotom",connecting:"Pripojenie kontroly proti robotomâ¦",retrying:`Pripojenie kontroly proti robotom trvalo prÃliÅ¡ dlho. 42 43Opakujem pokusâ¦`,failed:"Pripojenie kontroly proti robotom sa nepod
43arilo."},sl:{title:"Preverjanje proti robotom",connecting:"Nalaganje izzivaâ¦",retrying:`Povezava ni uspela. 44 45Ponovni poskusâ¦`,failed:"Povezava ni uspela."},es:{title:"Verificación antirrobot",connecting:"Conectando verificación antirrobotâ¦",retrying:`La verificación antirrobot tardó demasiado en conectarse. 46 47Reintentandoâ¦`,failed:"Error al conectar la verificación antirrobot."},sv:{title:"Anti-robotverifiering",connecting:"Anti-robotverifiering ansluterâ¦",retrying:`Anti-robotverifiering tog för lÃ¥ng tid att ansluta. 48 49Försöker igenâ¦`,failed:"Anti-robotverifiering kunde inte ansluta."},th:{title:"à¸à¸²à¸£à¸à¸£à¸§à¸à¸ªà¸à¸à¸à¹à¸à¸à¸à¸±à¸à¸à¸à¸",connecting:"à¸à¸³à¸¥à¸±à¸à¹à¸«à¸¥à¸à¸à¸²à¸£à¸à¹à¸²à¸à¸²à¸¢â¦",retrying:`à¹à¸à¸·à¹à¸à¸¡à¸à¹à¸à¹à¸¡à¹à¸ªà¸³à¹à¸£à¹à¸. 50 51à¸à¸³à¸¥à¸±à¸à¸¥à¸à¸à¹à¸«à¸¡à¹â¦`,failed:"à¹à¸à¸·à¹à¸à¸¡à¸à¹à¸à¹à¸¡à¹à¸ªà¸³à¹à¸£à¹à¸."},tr:{title:"Robot önleme doÄrulaması",connecting:"Robot önleme kontrolü baÄlanıyorâ¦",retrying:`Robot önleme kontrolü baÄlanmak için çok uzun sürdü. 52 53Yeniden deniyorâ¦`,failed:"Robot önleme kontrolü baÄlanamadı."},vi:{title:"Xác minh chá»ng robot",connecting:"Kiá»m tra robot Äang kết ná»iâ¦",retrying:`Kiá»m tra chá»ng robot mất quá nhiá»u thá»i gian Äá» kết ná»i. 54 55Äang thá» lạiâ¦`,failed:"Kiá»m tra chá»ng robot không thá» kết ná»i."},zh:{title:"åæºå¨äººéªè¯",connecting:"åæºå¨äººéªè¯æ£å¨è¿æ¥â¦",retrying:`åæºå¨äººéªè¯è¿æ¥èæ¶è¿é¿ã 56 57æ£å¨éè¯â¦`,failed:"åæºå¨äººéªè¯è¿æ¥å¤±è´¥ã"}},RTL_LANGUAGES=["ar","he","fa","ur","ps","sd","yi"];function getLanguageCode(lang){return lang.toLowerCase().split("-")[0].split("_")[0]}__name(getLanguageCode,"getLanguageCode");function isRTLLanguage(lang){return lang=getLanguageCode(lang),RTL_LANGUAGES.indexOf(lang)!==-1}__name(isRTLLanguage,"isRTLLanguage");function getLocalizedWidgetTitle(lang){return lang=getLanguageCode(lang),(PLACEHOLDER_LOCALIZATIONS[lang]||PLACEHOLDER_LOCALIZATIONS.en).title+" - Widget"}__name(getLocalizedWidgetTitle,"getLocalizedWidgetTitle");function getLocalizedPlaceholderText(lang,type){return lang=getLanguageCode(lang),(PLACEHOLDER_LOCALIZATIONS[lang]||PLACEHOLDER_LOCALIZATIONS.en)[type]}__name(getLocalizedPlaceholderText,"getLocalizedPlaceholderText");var FRAME_ID_DATASET_FIELD="FrcFrameId",AGENT_FRAME_CLASSNAME="frc-i-agent",WIDGET_FRAME_CLASSNAME="frc-i-widget",WIDGET_PLACEHOLDER_CLASSNAME="frc-widget-placeholder";function createAgentIFrame(frcSDK,agentId,src){const frameParams={origin:document.location.origin,sess_id:sessionId(),sess_c:sessionCount(!0),comm_id:agentId,sdk_v:"0.1.37",v:"1",agent_id:agentId,ts:Date.now().toString()},el=document.createElement("iframe");el.className=AGENT_FRAME_CLASSNAME,el.dataset[FRAME_ID_DATASET_FIELD]=agentId,el.src=src+"?"+encodeQuery(frameParams),el.frcSDK=frcSDK;const s=el.style;return s.width=s.height=s.border=s.visibility="0",s.display="none",el}__name(createAgentIFrame,"createAgentIFrame");function createWidgetIFrame(agentId,widgetId,widgetUrl,opts){const el=document.createElement("iframe"),language=getLanguageFromOptionsOrParent(opts),frameData={origin:document.location.origin,sess_id:sessionId(),sess_c:sessionCount(!0),comm_id:widgetId,sdk_v:"0.1.37",v:"1",agent_id:agentId,lang:language,sitekey:opts.sitekey||"",ts:Date.now().toString()};opts.theme&&(frameData.theme=opts.theme),supportAllowClipboardWrite&&(el.allow="clipboard-write"),el.frameBorder="0",el.src=widgetUrl+"?"+encodeQuery(frameData),el.className=WIDGET_FRAME_CLASSNAME,el.title=getLocalizedWidgetTitle(language),el.dataset[FRAME_ID_DATASET_FIELD]=widgetId;const s=el.style;return s.border=s.visibility="0",s.position="absolute",s.height=s.width="100%",s.userSelect="none",s["-webkit-tap-highlight-color"]="transparent",s.display="none",opts.element.appendChild(el),el}__name(createWidgetIFrame,"createWidgetIFrame");function createWidgetPlaceholder(opts){const el=document.createElement("div");el.classList.add(WIDGET_PLACEHOLDER_CLASSNAME);const s=el.style,isDark=opts.theme==="dark"||opts.theme==="auto"&&window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches;return s.color=isDark?"#fff":"#222",s.backgroundColor=isDark?"#171717":"#fafafa",s.borderRadius="4px",s.border="1px solid",s.borderColor="#ddd",s.padding="8px",s.height=s.width="100%",s.fontSize="14px",s.boxSizing="border-box",setCommonTextStyles(s),opts.element.appendChild(el),el}__name(createWidgetPlaceholder,"createWidgetPlaceholder");function setCommonTextStyles(s){s.textDecoration=s.fontStyle="none",s.fontWeight="500",s.fontFamily='-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif',s.lineHeight="1",s.letterSpacing="-0.0125rem"}__name(setCommonTextStyles,"setCommonTextStyles");function createBanner(opts){const el=document.createElement("div");el.classList.add("frc-banner");const language=getLanguageFromOptionsOrParent(opts),isDark=opts.theme==="dark"||opts.theme==="auto"&&window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches;let primaryColor="#565656",secondaryColor="#a2a2a2";isDark&&(primaryColor="#a2a2a2",secondaryColor="#565656");const els=el.style;
57els.position="absolute",els.bottom="6px",isRTLLanguage(language)?els.left="6px":els.right="6px",els.lineHeight="1";const a=document.createElement("a");a.href="https://friendlycaptcha.com",a.rel="noopener";const s=a.style;setCommonTextStyles(s),s.color=primaryColor,s.fontSize="10px",s.userSelect="none",s.textDecorationLine="underline",s.textDecorationThickness="1px",s.textDecorationColor=secondaryColor,s.letterSpacing="-0.0125rem",a.target="_blank",a.textContent="Friendly Captcha",a.onmouseenter=()=>s.textDecorationColor=primaryColor,a.onmouseleave=()=>s.textDecorationColor=secondaryColor,el.appendChild(a),opts.element.appendChild(el)}__name(createBanner,"createBanner");function getLanguageFromOptionsOrParent(opts){let language=opts.language;return(!language||language==="html")&&(language=findFirstParentLangAttribute(opts.element)||""),language}__name(getLanguageFromOptionsOrParent,"getLanguageFromOptionsOrParent");function createFallback(el,apiOrigin,language){const link=__name((href,text)=>{const l=document.createElement("a");l.href=href,l.target="_blank",l.rel="noopener",l.textContent=text;const style=l.style;return setCommonTextStyles(style),style.textDecoration="underline",style.color="#565656",l.onmouseenter=()=>style.textDecoration="none",l.onmouseleave=()=>style.textDecoration="underline",l},"link"),failedText=getLocalizedPlaceholderText(language,"failed"),els=[link(`${apiOrigin}/connectionTest`,failedText)];el.textContent="",els.forEach(e=>el.appendChild(e))}__name(createFallback,"createFallback");function windowPerformanceNow(){const p=window.performance;return p?p.now():0}__name(windowPerformanceNow,"windowPerformanceNow");function getTrigger(type,startMode,el,ev){const t=windowPerformanceNow(),bcr=el.getBoundingClientRect(),trigger={v:1,tt:type,pnow:t,sm:startMode,el:{bcr:[bcr.left,bcr.top,bcr.width,bcr.height],con:document.body.contains(el)},stack:new Error().stack||"",we:!!window.event,weit:!!window.event&&!!window.event.isTrusted};return ev&&(trigger.ev={ts:ev.timeStamp,rt:!!ev.relatedTarget,eot:!!ev.explicitOriginalTarget,it:ev.isTrusted}),trigger}__name(getTrigger,"getTrigger");function mergeObject(target,...sources){for(let i=0;i<sources.length;i++){const source=sources[i];for(var key in source)source.hasOwnProperty(key)&&(target[key]=source[key])}return target}__name(mergeObject,"mergeObject");var DEFAULT_FORM_FIELD_NAME="frc-captcha-response",WidgetHandle=(_d=class{constructor(opts){this.state="init",this.response=".UNINITIALIZED",this.focusEventPending=!1,this.isDestroyed=!1,this.id=opts.id;const createOpts=opts.createOpts;if(this.e=createOpts.element,this.ready=opts.registered,!this.e)throw new Error("No element provided to mount widget under.");if(this.e.frcWidget=this,this.formFieldName=createOpts.formFieldName===void 0?DEFAULT_FORM_FIELD_NAME:createOpts.formFieldName,this.sitekey=createOpts.sitekey,this._reset=opts.callbacks.onReset,this._destroy=opts.callbacks.onDestroy,this._trigger=opts.callbacks.onTrigger,this.startMode=opts.createOpts.startMode||"focus",this.formFieldName!==null){const iel=document.createElement("input");iel.type="hidden",iel.style.display="none",iel.name=this.formFieldName,this.hiddenFormEl=iel,this.e.appendChild(iel)}this.setState({response:".UNCONNECTED",state:"init"}),this.ready.then(()=>{this.handleStartMode()})}handleStartMode(){if(this.startMode==="focus"&&!this.focusEventPending&&!this.isDestroyed){const formElement=findParentFormElement(this.e);formElement&&(this.focusEventPending=!0,executeOnceOnFocusInEvent(formElement,ev=>{this.trigger("focus",{ev}),this.focusEventPending=!1}))}else this.startMode==="auto"&&this.trigger("auto")}reset(opts={trigger:"root"}){if(this.isDestroyed)throw new Error("Can not reset destroyed widget.");this.setState({response:".RESET",state:"reset",resetTrigger:opts.trigger}),this._reset(opts),this.handleStartMode()}destroy(){this.isDestroyed=!0,this.hiddenFormEl&&this.hiddenFormEl.remove(),this.hiddenFormEl=void 0,this.setState({response:".DESTROYED",state:"destroyed"}),this._destroy()}trigger(triggerType,data={}){if(this.isDestroyed)throw new Error("Can not start destroyed widget.");const trigger=getTrigger(triggerType,this.startMode,this.e,data.ev);this._trigger({trigger})}start(){this.trigger("programmatic")}setState(s){const didStateChange=this.state!==s.state;this.response=s.response,this.state=s.state,this.hiddenFormEl&&this.e.isConnected!==!1&&(this.hiddenFormEl.value=s.response),didStateChange&&this.dispatchWidgetEvent({name:"frc:widget.statechange",error:s.error,mode:s.mode}),this.state==="expired"?this.dispatchWidgetEvent({name:"frc:widget.expire"}):this.state==="completed"?this.dispatchWidgetEvent({name:"frc:widget.complete"}):this.state==="error"?this.dispatchWidgetEvent({name:"frc:widget.error",error:s.error}):this.state==="reset"&&this.dispatchWidgetEvent({name:"frc:widget.reset",trigger:s.resetTrigger})}dispatchWidgetEvent(eventData){const ed={response:this.response,state:this.state,id:this.id};mergeObject(ed,eventData),fireFRCEvent(this.e,ed)}addEventListener(type,listener,options){this.e.addEventListener(type,listener,options)}removeEventListener(type,listener,options){this.e.removeEventListener(type,listener,options)}getState(){return this.state}getResponse(){return this.response}getElement(){return this.e}},__name(_d,"WidgetHandle"),_d),isFunc=__name(function(value){return typeof value=="function"},"isFunc"),patchNativeFunctions=__name(function(opts){const queue=[],origPatchMap=new Map,takeRecords=__name(function(){return queue.splice(0,queue.length)},"takeRecords"),w=window,$window=__name(function(){try{const iframe=document.createElement("iframe");
57iframe.style.display="none",(document.body||document.head).appendChild(iframe);const $window2=iframe?iframe.contentWindow:0;return iframe.remove(),$window2||w}catch{return w}},"getRealmSafely")(),originalFuncToString=Function.prototype.toString,newFuncToString=__name(function(...args){const patchedRef=isFunc(this)?origPatchMap.get(this):!1,ref=this===newFuncToString?originalFuncToString:patchedRef||this;return originalFuncToString.apply(ref,args)},"toString");Function.prototype.toString=newFuncToString;const getStackSafely=__name(function(){return($window.Error||w.Error)("FriendlyCaptcha_DummyTrace").stack||""},"FC_DummyTrace"),p="prototype",dispatchEvent=w.EventTarget?w.EventTarget[p].dispatchEvent:{},patches=[["Document."+p+".documentElement",w.Document[p],"documentElement"],["Element."+p+".shadowRoot",w.Element[p],"shadowRoot"],["Node."+p+".nodeType",w.Node[p],"nodeType"],["Object.is",w.Object,"is"],["Array."+p+".slice",w.Array[p],"slice"],["Document."+p+".querySelectorAll",w.Document[p],"querySelectorAll"],["Document."+p+".createElement",w.Document[p],"createElement"],["EventTarget."+p+".dispatchEvent",dispatchEvent,"dispatchEvent"]];return opts.disableEvalPatching||patches.push(["eval",w,"eval"]),patches.forEach(function([name,target,prop]){const descriptor=Object.getOwnPropertyDescriptor(target,prop),hasGetterOrSetter=descriptor&&(descriptor.get||descriptor.set);if(descriptor){if(hasGetterOrSetter){if(!descriptor.get)return}else if(typeof descriptor.value!="object"&&typeof descriptor.value!="function")return}else return;let l=0,c=0;const newAccessor=__name(function(...args){const now=Date.now();if(now-l>=1e3&&(c=0,l=now),c<50){const record={d:now,pnow:windowPerformanceNow(),n:name,st:getStackSafely()};queue.length>2e4&&queue.splice(0,1e3),queue.push(record),c++}return(hasGetterOrSetter?descriptor.get:descriptor.value).apply(this,args)},"fcPatch");try{const descriptorValue=hasGetterOrSetter?descriptor.get?descriptor.get():void 0:descriptor.value();descriptorValue&&(newAccessor.length=descriptorValue.length,newAccessor.name=descriptorValue.name)}catch{}try{const newDescriptor=mergeObject({},descriptor);hasGetterOrSetter?newDescriptor.get=newAccessor:newDescriptor.value=newAccessor,Object.defineProperty(target,prop,newDescriptor),origPatchMap.set(newAccessor,hasGetterOrSetter?descriptor.get:descriptor.value)}catch{}}),takeRecords},"patchNativeFunctions");function buildOnlineMetric(){const s=[0,0,0,0,0,0,0];return{s,add(x2){const n=++s[0],d=x2-s[1],dN=d/n,dN2=dN*dN,t1=d*dN*(n-1);s[1]+=dN,s[4]+=t1*dN2*(n*n-3*n+3)+6*dN2*s[2]-4*dN*s[3],s[3]+=t1*dN*(n-2)-3*dN*s[2],s[2]+=t1,n==1?s[5]=s[6]=x2:(x2<s[5]&&(s[5]=x2),x2>s[6]&&(s[6]=x2))}}}__name(buildOnlineMetric,"buildOnlineMetric");var x="addEventListener",M=Math,ssig;function isAndroidUA(){return/Android/i.test(navigator.userAgent)}__name(isAndroidUA,"isAndroidUA");function onOffEventMetric(onEventName,offEventName,retrigger=!1,target){const m=buildOnlineMetric();let on=!1,ts;return runOnDocumentLoaded(()=>{target=target||document.body,target[x](onEventName,ev=>{(!on||retrigger)&&(ts=ev.timeStamp,on=!0)}),target[x](offEventName,ev=>{on&&(m.add(ev.timeStamp-ts),on=!1)})}),m.s}__name(onOffEventMetric,"onOffEventMetric");function eventCounts(events){const out=[];for(let i=0;i<events.length;i++)out.push(0),document[x](events[i],_=>out[i]++);return out}__name(eventCounts,"eventCounts");function keyCountMetric(){const out=[0,0,0,0,0,0,0,0],m={8:1,46:1,9:2,45:3,17:4,13:5,37:6,38:6,39:6,40:6,33:7,34:7};return document[x]("keydown",ev=>{const kc=ev.keyCode;m[kc]?out[m[kc]]++:kc>=112&&kc<=123&&out[0]++}),out}__name(keyCountMetric,"keyCountMetric");function euclidean2d(x0,x1,y0,y1){return M.sqrt(M.pow(x0-x1,2)+M.pow(y0-y1,2))}__name(euclidean2d,"euclidean2d");function vector3Length(x2,y,z){return M.sqrt(M.pow(x2,2)+M.pow(y,2)+M.pow(z,2))}__name(vector3Length,"vector3Length");function deltaAngle(a,b){let angle=b-a;return angle+=angle>180?-360:angle<-180?360:0,angle}__name(deltaAngle,"deltaAngle");var Signals=(_e=class{constructor(opts){this.rn=0,this.i=0,this.smel={n:0,ts:0,d:0};const $="mouse",sm=this.smel,updateMouseEnterMouseLeave=__name(e=>{sm.n||(sm.fts=e.timeStamp,sm.fxy=[e.clientX,e.clientY,e.screenX,e.screenY]),sm.n++,e.type===$+"leave"&&(sm.d+=e.timeStamp-sm.ts),sm.ts=e.timeStamp,sm.xy=[e.clientX,e.clientY]},"updateMouseEnterMouseLeave"),d=document;runOnDocumentLoaded(()=>{const b=d.body;b[x]($+"enter",updateMouseEnterMouseLeave),b[x]($+"leave",updateMouseEnterMouseLeave)}
57),this.bh={onoff:{kdu:onOffEventMetric("keydown","keyup"),cse:onOffEventMetric("compositionstart","compositionend"),mdu:onOffEventMetric($+"down",$+"up"),mle:onOffEventMetric($+"leave",$+"enter"),med:onOffEventMetric($+"enter",$+"down",!0),semd:onOffEventMetric("scrollend",$+"down",!0,d),se:onOffEventMetric("scroll","scrollend",!1,d),pdc:onOffEventMetric("pointerdown","pointercancel",!0),mmc:onOffEventMetric($+"move","click",!0),tse:onOffEventMetric("touchstart","touchend"),fikd:onOffEventMetric("focusin","keydown",!0)},nev:eventCounts([$+"out","pointercancel","focus","focusin","blur","visibilitychange","copy","paste","cut","contextmenu","click","auxclick","wheel","resize"]),nk:keyCountMetric(),mov:this.setupMovementMetrics(),dm:this.setupMotionMetrics(),do:this.setupOrientationMetrics()},this.dep=opts.disableEvalPatching||!1,this.takeTraceRecords=patchNativeFunctions(opts)}setupMovementMetrics(){let intervalHandle,sample=[];const duration=buildOnlineMetric(),distance=buildOnlineMetric(),vel=buildOnlineMetric(),out={t:duration.s,v:vel.s,d:distance.s,ns:0},updateFunc=__name(()=>{const lastSample=sample[sample.length-1];if(sample.length>=1e4/50||lastSample&&(lastSample[0]&&this.tm.timeStamp===lastSample[1]||!lastSample[0]&&this.mm.timeStamp===lastSample[1])){if(clearInterval(intervalHandle),intervalHandle=void 0,sample.length===1){out.ns++,sample=[];return}const firstSample=sample[0];duration.add(lastSample[1]-firstSample[1]),distance.add(euclidean2d(lastSample[2],firstSample[2],lastSample[3],firstSample[3]));for(let i=1;i<sample.length;i++){const c=sample[i],p=sample[i-1],dist=euclidean2d(c[2],p[2],c[3],p[3])*1e3,dt=c[1]-p[1];vel.add(dist/dt)}sample=[];return}let evType=0;if(lastSample?evType=lastSample[0]:this.mm&&this.tm?evType=this.mm.timeStamp>this.tm.timeStamp?0:1:this.mm||(evType=1),evType){const t=this.tm.touches[0];t&&sample.push([1,this.tm.timeStamp,t.screenX,t.screenY])}else sample.push([0,this.mm.timeStamp,this.mm.screenX,this.mm.screenY])},"updateFunc");let lastRadius=-1;return runOnDocumentLoaded(()=>{const b=document.body;b[x]("mousemove",e=>{this.mm=e,intervalHandle===void 0&&(updateFunc(),intervalHandle=setInterval(updateFunc,50))}),b[x]("touchmove",e=>{this.tm=e;const t=e.touches[0];if(t){const newRadius=t.radiusX+t.radiusY*1.234;newRadius!==lastRadius&&(lastRadius=newRadius,this.rn++)}intervalHandle===void 0&&(updateFunc(),intervalHandle=setInterval(updateFunc,50))})}),out}setupMotionMetrics(){const acc=buildOnlineMetric(),rr=buildOnlineMetric(),sig={n:0,ts:0,ac:acc.s,rr:rr.s,i:0,g:!1};return isAndroidUA()&&window[x]("devicemotion",e=>{sig.ts=e.timeStamp,sig.i=e.interval,sig.g=!e.acceleration;const a=e.acceleration||e.accelerationIncludingGravity;a&&acc.add(vector3Length(a.x,a.y,a.z));const r=e.rotationRate;r&&rr.add(vector3Length(r.alpha,r.beta,r.gamma))}),sig}setupOrientationMetrics(){const gd=buildOnlineMetric(),bd=buildOnlineMetric(),sig={fts:0,ts:0,gd:gd.s,bd:bd.s};if(!isAndroidUA())return sig;let hasPrevious;return window[x]("deviceorientation",e=>{e.gamma==null||e.beta==null||e.alpha==null||(sig.ts=e.timeStamp,sig.a=e.alpha,sig.b=e.beta,sig.g=e.gamma,hasPrevious?(gd.add(deltaAngle(e.gamma,sig.g)),bd.add(deltaAngle(sig.b,e.beta))):(sig.fts=sig.ts,hasPrevious=!0))}),sig}gmm(){const e=this.mm;return e&&{xy:[e.clientX,e.clientY,e.screenX,e.screenY,e.offsetX,e.offsetY,e.pageX,e.pageY,e.movementX,e.movementY],ts:e.timeStamp}}gtm(){const tm=this.tm,tt=tm&&tm.touches,tm0=tt&&tt[0];return tm&&tm0&&{id:tm0.identifier,xy:[tm0.clientX,tm0.clientY,tm0.screenX,tm0.screenY,tm0.pageX,tm0.pageY],r:[tm0.radiusX,tm0.radiusX,tm0.rotationAngle,tm0.force],n:tt.length,ts:tm.timeStamp,rn:this.rn}}get(widgetId){const b=document.body,w=window,p=w.performance;return{v:1,i:++this.i,hl:history.length,fe:!!window.frameElement,dep:this.dep,wid:widgetId,sc:parseInt(sessionCount(!1)),sid:sessionId(),conv:0,t:{pnow:windowPerformanceNow(),pto:p&&p.timeOrigin||0,ts:Date.now()},dims:{d:[w.innerWidth,w.innerHeight,w.outerWidth,w.outerHeight,w.screenX,w.screenY,w.pageXOffset,w.pageYOffset,b.clientWidth,b.clientHeight],dpr:w.devicePixelRatio},mel:this.smel,mm:this.gmm(),tm:this.gtm(),bh:this.bh,stack:new Error().stack||"",trc:this.takeTraceRecords()}}},__name(_e,"Signals"),_e);function getSignals(opts){return ssig||(ssig=new Signals(opts))}__name(getSignals,"getSignals");var SHORTHANDS={eu:"https://eu.frcapi.com",global:"https://global.frcapi.com"};function resolveAPIOrigin(optionValue){let v=optionValue;return v?SHORTHANDS[v]&&(v=SHORTHANDS[v]):v=SHORTHANDS.global,originOf(v)}__name(resolveAPIOrigin,"resolveAPIOrigin");
57function getSDKDisableEvalPatching(){const m=document.querySelector('meta[name="frc-disable-eval-patching"]');return m?!!m.content:!1}__name(getSDKDisableEvalPatching,"getSDKDisableEvalPatching");function getSDKAPIEndpoint(){const m=document.querySelector('meta[name="frc-api-endpoint"]');if(m)return m.content;const cs=document.currentScript;if(cs){const endpoint=cs.dataset.frcApiEndpoint;if(endpoint)return endpoint}const we=document.querySelector(".frc-captcha[data-api-endpoint]");if(we){const endpoint=we.dataset.apiEndpoint;if(endpoint)return endpoint}}__name(getSDKAPIEndpoint,"getSDKAPIEndpoint");function tz(){const intl=window.Intl;if(!intl||!intl.DateTimeFormat)return;const dtf=new intl.DateTimeFormat;if(!(!dtf||!dtf.resolvedOptions))return dtf.resolvedOptions().timeZone}__name(tz,"tz");var CHARS="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_";function encodeStringToBase64Url(str){return window.TextEncoder?encodeBase64Url(new TextEncoder().encode(str)):""}__name(encodeStringToBase64Url,"encodeStringToBase64Url");function encodeBase64Url(bytes){const len=bytes.length;let base64="";for(let i=0;i<len;i+=3){const b0=bytes[i+0],b1=bytes[i+1],b2=bytes[i+2];let t="";t+=CHARS.charAt(b0>>>2),t+=CHARS.charAt((b0&3)<<4|b1>>>4),t+=CHARS.charAt((b1&15)<<2|b2>>>6),t+=CHARS.charAt(b2&63),base64+=t}return len%3===2?base64=base64.substring(0,base64.length-1)+"=":len%3===1&&(base64=base64.substring(0,base64.length-2)+"=="),base64}__name(encodeBase64Url,"encodeBase64Url");var agentEndpoint="/api/v2/captcha/agent",widgetEndpoint="/api/v2/captcha/widget",FRAME_ID_DATASET_FIELD2="FrcFrameId",IFRAME_EXP_TIME=1e3*60*60*36,cbus,sdkC=0,FriendlyCaptchaSDK=(_f=class{constructor(opts={}){if(this.agents=new Map,this.agentState=new Map,this.widgets=new Map,this._attached=flatPromise(),this.attached=this._attached.promise,this.apiEndpoint=opts.apiEndpoint,cbus=cbus||new CommunicationBus,cbus.listen(msg=>this.onReceiveMessage(msg)),this.bus=cbus,sdkC++,sdkC>1&&console.warn("Multiple Friendly Captcha SDKs created, this is not recommended. Please use a single SDK instance."),this.signals=getSignals({disableEvalPatching:opts.disableEvalPatching||getSDKDisableEvalPatching()}),opts.startAgent){const o=resolveAPIOrigin(this.apiEndpoint||getSDKAPIEndpoint());this.ensureAgentIFrame(o)}this.setupPeriodicRefresh()}onReceiveMessage(msg){if(msg.type==="root_set_response"){const w=this.widgets.get(msg.widget_id);if(!w){sdkC===1&&console.warn(`Received set response message for widget ${msg.widget_id} that doesn't exist`);return}w.setState(msg)}else if(stringHasPrefix(msg.type,"root_store"))this.handleStoreMessage(msg);else if(msg.type==="root_signals_get")this.handleSignalsGetMessage(msg);else if(msg.type==="widget_language_change")this.handleWidgetLanguageChange(msg);else if(msg.type==="widget_reset"){const w=this.widgets.get(msg.from_id);if(!w){sdkC===1&&console.warn(`Received reset message for widget ${msg.from_id} that doesn't exist`);return}w.reset({trigger:"widget"})}}handleWidgetLanguageChange(msg){const w=this.widgets.get(msg.from_id);if(!w){sdkC===1&&console.warn(`Received language change message for widget ${msg.from_id} that doesn't exist`);return}const element=w.getElement(),iframe=element.querySelector("iframe");iframe&&(iframe.title=getLocalizedWidgetTitle(msg.language));const banner=element.querySelector(".frc-banner");if(banner){const bs=banner.style;isRTLLanguage(msg.language)?(bs.left="6px",bs.right="auto"):(bs.left="auto",b
57s.right="6px")}}handleSignalsGetMessage(msg){const sigs=this.signals.get(msg.widget_id);this.bus.send({type:"root_signals_get_reply",from_id:"",to_id:msg.from_id,_frc:1,rid:msg.rid,value:sigs})}handleStoreMessage(msg){const from=msg.from_id,s=this.agentState.get(from);if(!s){console.error(`Store not found ${from}`);return}msg.type==="root_store_get"?s.store.get(msg.key,{p:msg.p}).then(v=>{this.bus.send({type:"root_store_get_reply",from_id:"",to_id:from,_frc:1,rid:msg.rid,value:v,sa:s.store.hasSA()})}):msg.type==="root_store_set"&&s.store.set(msg.key,msg.value,{p:msg.p}).then(()=>{this.bus.send({type:"root_store_set_reply",from_id:"",to_id:from,_frc:1,rid:msg.rid,sa:s.store.hasSA()})})}ensureAgentIFrame(origin){const src=origin+agentEndpoint;let agentIFrames=document.getElementsByClassName(AGENT_FRAME_CLASSNAME);for(let index=0;index<agentIFrames.length;index++){const i=agentIFrames[index];if(originOf(i.src)===origin&&i.dataset[FRAME_ID_DATASET_FIELD2])return i.dataset[FRAME_ID_DATASET_FIELD2]}const agentId="a_"+randomId(12),el=createAgentIFrame(this,agentId,src);this.agents.set(origin,el),this.agentState.set(agentId,{store:new Store(origin),origin}),document.body.appendChild(el);let retryLoadCounter=1;const registerWithRetry=__name(()=>{this.bus.registerTargetIFrame("agent",agentId,el,this.getRetryTimeout(retryLoadCounter)).then(status=>{if(status==="timeout"){if(retryLoadCounter>4){console.error("[Friendly Captcha] Failed to load agent iframe after 4 retries."),el.remove(),this.agents.delete(origin);return}console.warn("[Friendly Captcha] Retrying agent iframe load."),el.src+="&retry="+retryLoadCounter++,registerWithRetry()}})},"registerWithRetry");return registerWithRetry(),agentId}setupPeriodicRefresh(){let count=1;setInterval(()=>{const e="&expire="+count++;this.agents.forEach((el,origin)=>{el.src+=e}),this.widgets.forEach((w,id)=>{const iframe=w.getElement().querySelector("iframe");iframe.src+=e})},IFRAME_EXP_TIME)}getRetryTimeout(retryLoadCounter){return Math.pow(retryLoadCounter,1.8)*1e3+2e3}attach(elements){elements===void 0&&(elements=findCaptchaElements()),Array.isArray(elements)||elements instanceof NodeList||(elements=[elements]);const newWidgets=[];for(let index=0;index<elements.length;index++){const hElement=elements[index];if(hElement&&!hElement.frcWidget){const ds=hElement.dataset,opts={element:hElement,sitekey:ds.sitekey,formFieldName:ds.formFieldName,apiEndpoint:ds.apiEndpoint,language:ds.lang,theme:ds.theme,startMode:ds.start};newWidgets.push(this.createWidget(opts))}}const allWidgets=this.getAllWidgets();return this._attached.resolve(allWidgets),this.attached=Promise.resolve(allWidgets),newWidgets}createWidget(opts){const origin=resolveAPIOrigin(opts.apiEndpoint||this.apiEndpoint||getSDKAPIEndpoint());this.bus.addOrigin(origin);const agentId=this.ensureAgentIFrame(origin),widgetId="w_"+randomId(12),send=__name(msg=>{const msgToSend={from_id:widgetId,to_id:agentId,_frc:1};this.bus.send(mergeObject(msgToSend,msg))},"send"),callbacks={onDestroy:__name(()=>{send({type:"root_destroy_widget"}),this.bus.removeTarget(widgetId),this.widgets.delete(widgetId),opts.element.innerHTML="",removeWidgetRootStyles(opts.element)},"onDestroy"),onReset:__name(()=>{send({type:"root_reset_widget"})},"onReset"),onTrigger:__name(data=>{send({type:"root_trigger_widget",trigger:data.trigger})},"onTrigger")},registered=flatPromise(),widgetHandle=new WidgetHandle({id:widgetId,createOpts:opts,callbacks,registered:registered.promise});this.widgets.set(widgetId,widgetHandle);const widgetUrl=origin+widgetEndpoint,wel=createWidgetIFrame(agentId,widgetId,widgetUrl,opts),widgetPlaceholder=createWidgetPlaceholder(opts);setWidgetRootStyles(opts.element),createBanner(opts);let language=getLanguageFromOptionsOrParent(opts);isRTLLanguage(language)&&(opts.element.dir="rtl");const widgetPlaceholderStyle=widgetPlaceholder.style;widgetPlaceholder.textContent=getLocalizedPlaceholderText(language,"connecting");let retryLoadCounter=1;function setUnreachableState(detail){const debugString=encodeStringToBase64Url(JSON.stringify({sdk_v:"0.1.37",sitekey:opts.sitekey||"",retry:retryLoadCounter+"",endpoint:origin,ua:navigator.userAgent,tz:tz()||""}));let resp=".ERROR.UNREACHABLE";debugString&&(resp+="~"+debugString),widgetHandle.setState({state:"error",response:resp,error:{code:"network_error",detail}})}__name(setUnreachableState,"setUnreachableState");const registerWithRetry=__name(()=>{this.bus.registerTargetIFrame("widget",widgetId,wel,this.getRetryTimeout(retr
57yLoadCounter)).then(status=>{if(status==="timeout"){if(retryLoadCounter>4){console.error("[Friendly Captcha] Failed to load widget iframe after 4 retries."),setUnreachableState("Widget load timeout, stopped retrying"),widgetPlaceholderStyle.borderColor="#f00",widgetPlaceholderStyle.fontSize="12px",createFallback(widgetPlaceholder,originOf(wel.src),language);return}widgetPlaceholderStyle.backgroundColor="#fee",widgetPlaceholderStyle.color="#222",widgetPlaceholder.textContent=getLocalizedPlaceholderText(language,"retrying")+` (${retryLoadCounter})`,console.warn(`[Friendly Captcha] Retrying widget ${widgetId} iframe load.`),setUnreachableState("Widget load timeout, will retry"),wel.src+="&retry="+retryLoadCounter++,registerWithRetry()}else status==="registered"&&(opts.element.removeChild(widgetPlaceholder),wel.style.display="")})},"registerWithRetry");return registerWithRetry(),registered.resolve(),widgetHandle}getAllWidgets(){const out=[];return this.widgets.forEach(w=>{out.push(w)}),out}getWidgetById(id){return this.widgets.get(id)}clear(){this.widgets.forEach(w=>{w.destroy()}),this.agents.forEach(el=>{el.remove()}),this.agents.clear()}},__name(_f,"FriendlyCaptchaSDK"),_f);const _FriendlyCaptcha=class _FriendlyCaptcha{constructor(){__privateAdd(this,_FriendlyCaptcha_instances);__privateAdd(this,_widgets,{});__privateAdd(this,_fieldClass,"frc-captcha");__privateAdd(this,_sdk)}init(){__privateSet(this,_sdk,new FriendlyCaptchaSDK),document.querySelectorAll(".wpcf7[id]").forEach(cf7=>this.createWidget(__privateMethod(this,_FriendlyCaptcha_instances,cf7FormId_fn).call(this,cf7))),document.addEventListener("wpcf7mailsent",e=>this.resetWidget(__privateMethod(this,_FriendlyCaptcha_instances,eventFormId_fn).call(this,e)))}createWidget(formId){this.destroyWidget(formId);const component=document.querySelector(`[data-wpcf7-id="${formId}"]`);if(!component)return;const field=component.querySelector(`.${__privateGet(this,_fieldClass)}`);!field||!(field.dataset?.sitekey??"")||((field.dataset?.automove??"0")==="1"&&__privateMethod(this,_FriendlyCaptcha_instances,moveField_fn).call(this,field),__privateGet(this,_widgets)[formId]=__privateGet(this,_sdk).createWidget({element:field,sitekey:field.dataset.sitekey,startMode:"focus",theme:field.dataset?.theme??"auto",apiEndpoint:field.dataset?.apiEndpoint??"eu",formFieldName:field.dataset?.formFieldName??"frc-captcha-response"}),component.querySelector(".wpcf7-submit").addEventListener("click",e=>__privateMethod(this,_FriendlyCaptcha_instances,handlerSubmitClick_fn).call(this,e)))}resetWidget(formId){!formId||!__privateGet(this,_widgets)[formId]||__privateGet(this,_widgets)[formId].reset()}reset(){for(const id in __privateGet(this,_widgets))this.resetWidget(id)}destroyWidget(formId){!formId||!__privateGet(this,_widgets)[formId]||(__privateGet(this,_widgets)[formId].destroy(),delete __privateGet(this,_widgets)[formId])}destroy(){for(const id in __privateGet(this,_widgets))this.destroyWidget(id)}};_widgets=new WeakMap,_fieldClass=new WeakMap,_sdk=new WeakMap,_FriendlyCaptcha_instances=new WeakSet,handlerSubmitClick_fn=__name(function(e){const cf7=e.target.closest(".wpcf7");if(!cf7)return;const formId=__privateMethod(this,_FriendlyCaptcha_instances,cf7FormId_fn).call(this,cf7);!formId||!__privateGet(this,_widgets)[formId]||__privateGet(this,_widgets)[formId].getState()==="completed"||(e.preventDefault(),e.stopImmediatePropagation())},"#handlerSubmitClick"),moveField_fn=__name(function($field){const button=$field.closest(".wpcf7-form").querySelector(".wpcf7-submit");button&&button.parentNode.insertBefore($field,button)},"#moveField"),cf7FormId_fn=__name(function(cf7){return cf7.dataset?.wpcf7Id??""},"#cf7FormId"),eventFormId_fn=__name(function(e){return e.detail?.contactFormId??""},"#eventFormId"),__name(_FriendlyCaptcha,"FriendlyCaptcha");let FriendlyCaptcha=_FriendlyCaptcha;document.addEventListener("DOMContentLoaded",()=>{new FriendlyCaptcha().init()})})(); 58//# sourceMappingURL=app-CP-t0YW9.js.map
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.