1(()=>{document.addEventListener("DOMContentLoaded",function(){function n(s,l){let r=!1;return function(){r||(s.apply(this,arguments),r=!0,setTimeout(function(){r=!1},l))}}function i(){let s=document.querySelectorAll("object.lazy-svg");if("IntersectionObserver"in window){let r=new IntersectionObserver(function(d,a){d.forEach(function(f){if(f.isIntersecting){let c=f.target;c.dataset.src&&(c.data=c.dataset.src,c.onload=function(){c.classList.add("loaded")}),r.unobserve(c)}})},{rootMargin:"400px 0px",threshold:.1});s.forEach(function(d){r.observe(d)})}else{let d=function(){r&&clearTimeout(r),r=setTimeout(function(){let f=window.pageYOffset;s.forEach(function(c){c.offsetTop<window.innerHeight+f&&c.dataset.src&&(c.data=c.dataset.src,c.onload=function(){c.classList.add("loaded")})}),s.length===0&&(document.removeEventListener("scroll",a),window.removeEventListener("resize",a),window.removeEventListener("orientationChange",a))},20)};var l=d;let r,a=n(d,100);document.addEventListener("scroll",a),window.addEventListener("resize",a),window.addEventListener("orientationChange",a),d()}}function e(){let s=document.querySelectorAll("img.lazy-image[data-src]");function l(){s.forEach(function(f){r(f)&&d(f)})}function r(f){let c=f.getBoundingClientRect();return c.width===0&&c.height===0?!1:c.top>=0&&c.left>=0&&c.bottom<=(window.innerHeight||document.documentElement.clientHeight)&&c.right<=(window.innerWidth||document.documentElement.clientWidth)}if("IntersectionObserver"in window){let f=function(u){if(u.dataset.src){let m=u.closest("picture");if(m){let p=m.querySelectorAll("source[data-srcset]");Promise.all(Array.from(p).map(function(t){return new Promise(function(h){t.srcset=t.dataset.srcset,t.removeAttribute("data-srcset"),h()})})).then(function(){u.src=u.dataset.src,u.removeAttribute("data-src"),u.onload=function(){u.classList.add("loaded"),m&&m.classList.add("loaded")}})}else u.src=u.dataset.src,u.removeAttribute("data-src"),u.onload=function(){u.classList.add("loaded")}}};var d=f;let c=new IntersectionObserver(function(u,m){u.forEach(function(p){if(p.isIntersecting){let t=p.target;f(t),c.unobserve(t)}})},{rootMargin:"400px 0px",threshold:.1});s.forEach(function(u){c.observe(u)}),l()}else{let c=function(){f&&clearTimeout(f),f=setTimeout(function(){let m=window.pageYOffset;s.forEach(function(p){if(!(p.offsetWidth===0&&p.offsetHeight===0)&&p.offsetTop<window.innerHeight+m+200&&p.dataset.src){let t=p.closest("picture");if(t){let h=t.querySelectorAll("source[data-srcset]");Promise.all(Array.from(h).map(function(y){return new Promise(function(v){y.srcset=y.dataset.srcset,y.removeAttribute("data-srcset"),v()})})).then(function(){p.src=p.dataset.src,p.removeAttribute("data-src"),p.onload=function(){p.classList.add("loaded"),t&&t.classList.add("loaded")}})}else p.src=p.dataset.src,p.removeAttribute("data-src"),p.onload=function(){p.classList.add("loaded")}}}),s.length===0&&(document.removeEventListener("scroll",u),window.removeEventListener("resize",u),window.removeEventListener("orientationChange",u))},20)};var a=c;let f,u=n(c,100);document.addEventListener("scroll",u),window.addEventListener("resize",u),window.addEventListener("orientationChange",u),c(),l()}}function o(){let s=document.querySelectorAll("img.lazy-image:not([data-src])"),l=document.querySelectorAll("picture.lazy-picture");s.forEach(function(r){if(r.complete){r.classList.add("loaded");let d=r.closest("picture");d&&d.classList.add("loaded")}else r.addEventListener("load",function(){r.classList.add("loaded");let d=r.closest("picture");d&&d.classList.add("loaded")})})}i(),e(),o()});(function(){"use strict";let n,i=!1;function e(){if(i)return;i=!0;let o=document.querySelectorAll("video.lazy-video-element[data-lazy-video-src]");o.length!==0&&("IntersectionObserver"in window?(n=new IntersectionObserver(function(s,l){s.forEach(function(r){if(r.isIntersecting){let d=r.target,a=d.getAttribute("data-lazy-video-src");if(a&&!d.querySelector("source")){let f=document.createElement("source");f.src=a,f.type="video/mp4",d.appendChild(f),d.removeAttribute("data-lazy-video-src"),d.load()}l.unobserve(d)}})},{rootMargin:"50px 0px",threshold:.01}),o.forEach(function(s){n.observe(s)}
1)):o.forEach(function(s){let l=s.getAttribute("data-lazy-video-src");if(l&&!s.querySelector("source")){let r=document.createElement("source");r.src=l,r.type="video/mp4",s.appendChild(r),s.removeAttribute("data-lazy-video-src"),s.load()}}))}document.readyState==="loading"?document.addEventListener("DOMContentLoaded",e):e(),window.addEventListener("lazyVideoRecheck",e)})();document.addEventListener("DOMContentLoaded",function(){document.querySelectorAll("[data-dismiss-banner]").forEach(e=>{e.addEventListener("click",function(){let o=this.closest("[data-banner]");o&&(o.style.display="none",o.id&&localStorage.setItem(`banner-${o.id}-dismissed`,"true"))})}),document.querySelectorAll("[data-banner]").forEach(e=>{e.id&&localStorage.getItem(`banner-${e.id}-dismissed`)==="true"&&(e.style.display="none")})});var g={set(n,i,e){let o=new Date;o.setTime(o.getTime()+e*24*60*60*1e3),document.cookie=`${n}=${i};expires=${o.toUTCString()};path=/`},get(n){let i=`${n}=`;return document.cookie.split(";").map(e=>e.trim()).find(e=>e.startsWith(i))?.substring(i.length)||null},delete(n){this.set(n,"",-1)}};document.addEventListener("DOMContentLoaded",function(){let n=document.getElementById("cookie-consent-banner");n&&n.hasAttribute("data-consent-v2")?C():x()});function x(){let n=document.getElementById("cookie-consent-banner"),i=document.getElementById("cookie-settings-modal"),e=document.getElementById("analytics-cookies"),o=g.get("cookie_consent_status");n&&n.removeAttribute("style"),o?s():l(),o==="all"&&e&&(e.checked=!0,d(!0)),document.addEventListener("click",function(a){if(a.target.closest('[data-cookie-consent="accept-all"]')&&(a.preventDefault(),r("all"),s()),a.target.closest('[data-cookie-consent="accept-necessary"]')&&(a.preventDefault(),r("necessary"),s()),a.target.closest('[data-cookie-consent="settings"]')&&(a.preventDefault(),i?.classList.remove("hidden")),a.target.closest("[data-cookie-settings-close]")&&(a.preventDefault(),i?.classList.add("hidden")),a.target.closest("[data-cookie-settings-save]")){a.preventDefault();let f=e?.checked||!1;r(f?"all":"necessary"),i?.classList.add("hidden"),s()}});function s(){n&&(n.removeAttribute("style"),n.classList.add("cookie-hidden"),n.style.display="none",n.style.visibility="hidden",n.style.opacity="0")}function l(){n&&(n.classList.remove("cookie-hidden"),n.style.display="block",n.style.visibility="visible",n.style.opacity="1")}function r(a){g.set("cookie_consent_status",a,365),d(a==="all"),console.log("Cookie consent set to:",a),a==="all"&&window.flowhuntMedia&&window.flowhuntMedia.video&&typeof window.flowhuntMedia.video.setGdprConsent=="function"&&window.flowhuntMedia.video.setGdprConsent(!0)}function d(a){typeof window.gtag=="function"&&!window.consentCore&&window.gtag("consent","update",{analytics_storage:a?"granted":"denied",ad_storage:a?"granted":"denied",ad_user_data:a?"granted":"denied",ad_personalization:a?"granted":"denied"}),typeof window.updateCapterraConsent=="function"&&window.updateCapterraConsent(a),typeof window.updateMetaPixelConsent=="function"&&window.updateMetaPixelConsent(a)}}function C(){let n=document.getElementById("cookie-consent-banner"),i=document.getElementById("cookie-settings-modal"),e=365;function o(){let t=/^a([01])m([01])f([01])$/.exec(g.get("cookie_consent_v2")||"");return t?{analytics:t[1]==="1",marketing:t[2]==="1",functional:t[3]==="1"}:null}function s(t){g.set("cookie_consent_v2","a"+(t.analytics?1:0)+"m"+(t.marketing?1:0)+"f"+(t.functional?1:0),e)}function l(t){let h=document.getElementById(t);return!!(h&&h.checked)}function r(t,h){let y=document.getElementById(t);y&&(y.checked=!!h)}function d(){let t=o();if(t)return t;let h=g.get("cookie_consent_status");return h==="all"?{analytics:!0,marketing:!0,functional:!0}:h==="necessary"?{analytics:!1,marketing:!1,functional:!1}:null}function a(){let t=d()||{analytics:!1,marketing:!1,functional:!1};r("analytics-cookies",t.analytics),r("marketing-cookies",t.marketing),r("functional-cookies",t.functional)}n&&n.removeAttribute("style");let f=d();f?(c(),a(),p(f)):u(),document.addEventListener("click",function(t){t.target.closest('[data-cookie-consent="accept-all"]')&&(t.preventDefault(),m({analytics:!0,marketing:!0,functional:!0}),c()),t.target.closest('[data-cookie-consent="accept-necessary"]')&&(t.preventDefault(),m({analytics:!1,marketing:!1,functional:!1}),c()),t.target.closest('[data-cookie-consent="settings"]')&&(t.preventDefault(),a(),i?.classList.remove("hidden"),c()),t.target.closest("[data-cookie-sett
1ings-close]")&&(t.preventDefault(),i?.classList.add("hidden"),d()||u()),t.target.closest("[data-cookie-settings-save]")&&(t.preventDefault(),m({analytics:l("analytics-cookies"),marketing:l("marketing-cookies"),functional:l("functional-cookies")}),i?.classList.add("hidden"),c())});function c(){n&&(n.removeAttribute("style"),n.classList.add("cookie-hidden"),n.style.display="none",n.style.visibility="hidden",n.style.opacity="0")}function u(){n&&(n.classList.remove("cookie-hidden"),n.style.display="block",n.style.visibility="visible",n.style.opacity="1")}function m(t){let h=t.analytics&&t.marketing&&t.functional;g.set("cookie_consent_status",h?"all":"necessary",e),s(t),p(t),console.log("Cookie consent set:","analytics="+t.analytics+" marketing="+t.marketing+" functional="+t.functional),(t.analytics||t.marketing)&&window.flowhuntMedia&&window.flowhuntMedia.video&&typeof window.flowhuntMedia.video.setGdprConsent=="function"&&window.flowhuntMedia.video.setGdprConsent(!0)}function p(t){typeof window.gtag=="function"&&!window.consentCore&&(window.gtag("consent","update",{analytics_storage:t.analytics?"granted":"denied",ad_storage:t.marketing?"granted":"denied",ad_user_data:t.marketing?"granted":"denied",ad_personalization:t.marketing?"granted":"denied",functionality_storage:t.functional?"granted":"denied",personalization_storage:t.functional?"granted":"denied",security_storage:"granted"}),window.gtag("set","ads_data_redaction",!t.marketing)),typeof window.updateCapterraConsent=="function"&&window.updateCapterraConsent(t.marketing),typeof window.updateMetaPixelConsent=="function"&&window.updateMetaPixelConsent(t.marketing)}}document.querySelectorAll(".Copy ").length>0&&document.querySelectorAll(".Copy ").forEach(n=>{n.querySelector(".Button--copy").addEventListener("click",()=>{let i=n,e=i.querySelector(".textarea-pseudo").innerText,o=i.querySelector(".Button--copy").textContent,s=document.createElement("textarea");s.value=e,document.body.appendChild(s),s.select(),document.execCommand("copy"),document.body.removeChild(s),i.querySelector(".Button--copy").textContent="Copied!",setTimeout(()=>{i.querySelector(".Button--copy").textContent=o},5e3)})});var w=class{constructor(i,e={}){this.element=i,this.options={words:e.words||1,typingSpeed:e.typingSpeed||100,deletingSpeed:e.deletingSpeed||50,pauseDuration:e.pauseDuration||2e3,color:e.color||"text-indigo-600",wordAlternatives:e.wordAlternatives||[],...e},this.originalText=this.element.textContent.trim(),this.staticText="",this.initialAnimatedTextPart="",this.animationSequence=[],this.currentAnimationIndex=0,this.currentTextInSequence="",this.currentCharIndex=0,this.isDeleting=!1,this.typewriterContainer=null,this.typewriterText=null,this.cursor=null,this.init()}init(){if(this.parseOriginalText(),this.buildAnimationSequence(),this.animationSequence.length===0){this.element.textContent=this.originalText;return}this.currentTextInSequence=this.animationSequence[this.currentAnimationIndex],this.createTypewriterElements(),this.startAnimation()}parseOriginalText(){let i=this.originalText.split(" ").filter(o=>o.length>0),e=Math.min(this.options.words,i.length);if(e>0){let o=i.slice(-e);this.initialAnimatedTextPart=o.join(" "),this.staticText=i.slice(0,i.length-e).join(" ")}else this.initialAnimatedTextPart="",this.staticText=this.originalText;this.staticText&&(this.initialAnimatedTextPart||this.options.wordAlternatives&&this.options.wordAlternatives.length>0)&&this.staticText.length>
10&&!this.staticText.endsWith(" ")&&(this.staticText+=" ")}buildAnimationSequence(){this.animationSequence=[],this.initialAnimatedTextPart&&this.animationSequence.push(this.initialAnimatedTextPart),this.options.wordAlternatives&&this.options.wordAlternatives.length>0&&this.animationSequence.push(...this.options.wordAlternatives)}createTypewriterElements(){this.typewriterContainer=document.createElement("span"),this.typewriterContainer.className="typewriter-container",this.typewriterText=document.createElement("span"),this.typewriterText.className=`typewriter-text ${this.options.color}`,this.cursor=document.createElement("span"),this.cursor.className=`typewriter-cursor ${this.options.color}`,this.cursor.textContent="_",this.typewriterContainer.appendChild(this.typewriterText),this.typewriterContainer.appendChild(this.cursor),this.element.innerHTML="",this.staticText&&this.element.appendChild(document.createTextNode(this.staticText)),this.element.appendChild(this.typewriterContainer),this.calculateMaxWidth()}calculateMaxWidth(){let i=0;this.animationSequence.length>0&&this.animationSequence.forEach(e=>{this.typewriterText.textContent=e;let o=this.typewriterText.getBoundingClientRect();o.width>i&&(i=o.width)}),this.typewriterContainer.style.minWidth=Math.ceil(i+20)+"px",this.typewriterText.textContent=""}startAnimation(){this.currentTextInSequence&&this.animateText()}animateText(){if(this.isDeleting){if(this.typewriterText.textContent=this.currentTextInSequence.substring(0,this.currentCharIndex),this.currentCharIndex--,this.currentCharIndex<0){if(this.isDeleting=!1,this.currentCharIndex=0,this.currentAnimationIndex++,this.currentAnimationIndex>=this.animationSequence.length&&(this.currentAnimationIndex=0),this.currentTextInSequence=this.animationSequence[this.currentAnimationIndex],!this.currentTextInSequence){this.cursor.classList.remove("typing");return}setTimeout(()=>this.animateText(),this.options.pauseDuration/2);return}setTimeout(()=>this.animateText(),this.options.deletingSpeed)}else{if(this.cursor.classList.add("typing"),this.typewriterText.textContent=this.currentTextInSequence.substring(0,this.currentCharIndex+1),this.currentCharIndex++,this.currentCharIndex>=this.currentTextInSequence.length){this.cursor.classList.remove("typing"),this.isDeleting=!0,setTimeout(()=>this.animateText(),this.options.pauseDuration);return}setTimeout(()=>this.animateText(),this.options.typingSpeed)}}destroy(){this.element.textContent=this.originalText}};document.addEventListener("DOMContentLoaded",function(){document.querySelectorAll("[data-typewriter]").forEach(i=>{let e=i.dataset.typewriterWordAlternatives||"",o=e?e.split(",").map(l=>l.trim()).filter(l=>l.length>0):[],s={words:parseInt(i.dataset.typewriterWords)||1,typingSpeed:parseInt(i.dataset.typewriterSpeed)||100,deletingSpeed:parseInt(i.dataset.typewriterDeleteSpeed)||50,pauseDuration:parseInt(i.dataset.typewriterPause)||2e3,color:i.dataset.typewriterColor||"text-primary",wordAlternatives:o};new w(i,s)})});document.addEventListener("DOMContentLoaded",function(){if(!document.getElementById("tooltip-styles")){let e=document.createElement("style");e.id="tooltip-styles",e.textContent=` 2 .tooltip-content.mobile-visible { 3 opacity: 1 !important; 4 pointer-events: auto !important; 5 } 6 7 /* Ensure tooltips don't overflow viewport */ 8 .tooltip-content { 9 word-wrap: break-word; 10 hyphens: auto; 11 white-space: normal; 12 } 13 14 /* Smart positioning for tooltips near viewport edges */ 15 .tooltip-content.adjust-left { 16 transform: translateX(-100%) translateY(-50%) !important; 17 left: -8px !important; 18 right: auto !important; 19 } 20 21 .tooltip-content.adjust-right { 22 transform: translateX(0%) translateY(-50%) !important; 23 left: calc(100% + 8px) !important; 24 right: auto !important; 25 } 26 27 .tooltip-content.adjust-top { 28 transform: translateX(-50%) translateY(-100%) !important; 29 top: -8px !important; 30 bottom: auto !important; 31 } 32 33 @media (max-width: 767px) { 34 .tooltip-content.adjust-left, .tooltip-content.adjust-right, .tooltip-content.adjust-top { 35 transform: translateX(0%) translateY(0%) !important; 36 left: 0 !important; 37 right: auto !important; 38 } 39 } 40 `,document.head.appendChild(e)}function n(e){if(!e)return;let o=e.getBoundingClientRect(),s=window.innerWidth,l=window.innerHeight;e.classList.remove("adjust-left","adjust-right","adjust-top"),o.right>s-20&&e.classList.add("adjust-left"),o.left<20&&e.classList.add("adjust-right"),o.top<20&&e.classList.add("adjust-top")}document.addEventListener("mouseenter",function(e){if(!e.target||typeof e.target.closest!="function")return;let o=e.target.closest(".tooltip-trigger");if(o&&window.innerWidth>1023){let l=o.closest(".group")?.querySelector(".tooltip-content");l&&setTimeout(()=>n(l),10)}},!0);function i(){let e=window.innerWidth<=1023;document.querySelectorAll(".tooltip-content.mobile-visible").forEach(o=>{o.classList.remove("mobile-visible")}
40),document.addEventListener("click",function(o){if(!e)return;let s=o.target.closest(".tooltip-trigger");if(s){let r=s.closest(".group")?.querySelector(".tooltip-content");document.querySelectorAll(".tooltip-content.mobile-visible").forEach(d=>{d!==r&&d.classList.remove("mobile-visible")}),r&&(r.classList.toggle("mobile-visible"),r.classList.contains("mobile-visible")&&setTimeout(()=>n(r),10)),o.stopPropagation()}else document.querySelectorAll(".tooltip-content.mobile-visible").forEach(l=>{l.classList.remove("mobile-visible")})})}i(),window.addEventListener("resize",function(){i()})});})();
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.