1var frontend_effects__premium_only;(()=>{"use strict";var e={};function t(e){"undefined"!=typeof document&&("complete"!==document.readyState&&"interactive"!==document.readyState?document.addEventListener("DOMContentLoaded",e):e())}(e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})})(e);const s={opacity:1,scale:1,brightness:1};window.stackableAnimations=(()=>{const e=["perspective","scaleX","scaleY","scale","skewX","skewY","skew","rotateX","rotateY","rotate"],t=["blur","hue-rotate","brightness"],n=["translateX","translateY","translateZ"],a=["perspective","border-radius","blur","translateX","translateY","translateZ"],i=["hue-rotate","rotate","rotateX","rotateY","skew","skewX","skewY"];function r(e,t){if(Array.isArray(e))return e;const s=Object.keys(e).map((e=>parseInt(e))).sort(((e,t)=>e>t?1:-1));let n=s[s.length-1];for(let e=0;e<s.length;e++){const a=s[e];if(t<a){n=a;break}}return e[n]}function o(e,t,s){let n=0;if(e.forEach((e=>{e<s&&n++})),n<=0)return t[0];if(n>=e.length)return t[e.length-1];const a=n-1;let i=function(e,t,s){return(s-e)/(t-e)}(e[a],e[n],s);var r;i=(r=i)<.5?4*r*r*r:(r-1)*(2*r-2)*(2*r-2)+1;const o=function(e,t,s){return e*(1-s)+t*s}(t[a],t[n],i);return o}function l(e,{height:t,y:s}){if("number"==typeof e)return e;const n=window.innerHeight,a=s+function(){const e=void 0!==window.pageXOffset,t="CSS1Compat"===(document.compatMode||"");return e?window.pageYOffset:t?document.documentElement.scrollTop:document.body.scrollTop}(),i=a+t;return Function(`return ${e.replace(/elInY/g,a-n).replace(/elOutY/g,i).replace(/elCenterY/g,a+t/2-n/2)}`)()}class c{getValueFn;name="";lastValue=0;frameStep=1;constructor(e,t,s={}){this.name=e,this.getValueFn=t,Object.keys(s).forEach((e=>{this[e]=s[e]})),this.lastValue=this.getValueFn(0)}getValue=e=>{let t=this.lastValue;return e%this.frameStep==0&&(t=this.getValueFn(e)),this.lastValue=t,this.lastValue}}class d{domElement;transformsData;laxInstance;constructor(e,t,s){this.laxInstance=e,this.domElement=t,this.transformsData=s,this.calculateTransforms()}update=(e,t)=>{const{transforms:s}=this,n={};for(const r in s){const l=s[r],c=e[r];for(const e in l){const[s,r,d={}]=l[e],{modValue:m,frameStep:u=1,cssFn:h,cssUnit:f=""}=d;if(t%u==0){const t=o(s,r,m?c%m:c),l="px"==(f||a.includes(e)?"px":i.includes(e)?"deg":"")?0:3,d=t.toFixed(l);n[e]=h?h(d,this.domElement):d+f}}}this.applyStyles(n)};calculateTransforms=()=>{this.transforms={};const e=this.laxInstance.windowWidth;for(const t in this.transformsData){const s=this.transformsData[t],n={};for(const t in s){const[a=[-1e9,1e9],i=[-1e9,1e9],o={}]=s[t],c=this.domElement.getBoundingClientRect(),d=r(a,e).map((e=>l(e,c))),m=r(i,e).map((e=>l(e,c)));n[t]=[d,m,o]}this.transforms[t]=n}};applyStyles=s=>{const r=function(s){const r={transform:"",filter:"",perspective:""},o={translateX:1e-4,translateY:1e-4,translateZ:1e-4};return Object.keys(s).forEach((l=>{const c=s[l],d=a.includes(l)?"px":i.includes(l)?"deg":"";"perspective"===l?r.perspective+=`${l}(${c}${d}) `:n.includes(l)?o[l]=c:e.includes(l)?r.transform+=`${l}(${c}${d}) `:t.includes(l)?r.filter+=`${l}(${c}${d}) `:r[l]=`${c}${d} `})),r.transform=`${r.perspective} translate3d(${o.translateX}px, ${o.translateY}px, ${o.translateZ}px) ${r.transform}`,r}(s);Object.keys(r).forEach((e=>{this.domElement.style.setProperty(e,r[e])}))}}return new class{drivers=[];elements=[];frame=0;windowWidth=0;windowHeight=0;presets=s;scrollTimeout=null;recalculateFrame=null;layoutResizeObserver=null;init=()=>{this.findAndAddElements(),this.onWindowScroll(),window.requestAnimationFrame(this.onAnimationFrame),this.windowWidth=document.body.clientWidth,this.windowHeight=document.body.clientHeight,window.onresize=this.onWindowResize,document&&!document._StackableHasAnimations&&(document.addEventListener("scroll",this.onWindowScroll),document._StackableHasAnimations=!0),this.addLayoutShiftListeners()};onWindowScroll=()=>{this.elements.forEach((({domElement:e})=>{e.classList.contains("stk-animate-smooth")||e.style.setProperty("transition-duration","0s")})),clearTimeout(this.scrollTimeout),this.scrollTimeout=setTimeout((()=>
1{this.elements.forEach((({domElement:e})=>{e.style.removeProperty("transition-duration")}))}),61)};onWindowResize=()=>{(document.body.clientWidth!==this.windowWidth||document.body.clientHeight!==this.windowHeight)&&this.recalculateTransforms()};recalculateTransforms=()=>{this.windowWidth=document.body.clientWidth,this.windowHeight=document.body.clientHeight,this.elements.forEach((e=>e.calculateTransforms()))};scheduleRecalculateTransforms=()=>{this.recalculateFrame&&window.cancelAnimationFrame(this.recalculateFrame),this.recalculateFrame=window.requestAnimationFrame((()=>{this.recalculateFrame=null,this.recalculateTransforms()}))};addLayoutShiftListeners=()=>{document._StackableHasAnimationLayoutListeners||(document._StackableHasAnimationLayoutListeners=!0,"ResizeObserver"in window&&(this.layoutResizeObserver=new ResizeObserver(this.scheduleRecalculateTransforms),this.layoutResizeObserver.observe(document.body)),document.fonts?.ready&&document.fonts.ready.then(this.scheduleRecalculateTransforms),document.addEventListener("load",this.scheduleRecalculateTransforms,!0),document.addEventListener("loadedmetadata",this.scheduleRecalculateTransforms,!0),document.addEventListener("loadeddata",this.scheduleRecalculateTransforms,!0))};onAnimationFrame=()=>{const e={};this.drivers.forEach((t=>{e[t.name]=t.getValue(this.frame)})),this.elements.forEach((t=>{t.update(e,this.frame)})),this.frame++,window.requestAnimationFrame(this.onAnimationFrame)};addDriver=(e,t,s={})=>{this.drivers.push(new c(e,t,s))};findAndAddElements=()=>{this.elements=[],document.querySelectorAll(".stk-animate").forEach(this.addElement)};addElement=e=>{const t={};e.getAttributeNames().sort().forEach((s=>{if(s.startsWith("data-stk-anim-")){const[,n,a]=s.match(/^data-stk-anim-(.*)-(\w+)$/),i=n.match(/^(translate|skew|rotate)\w$/)?n.replace(/[a-z]\b/g,(e=>e.toUpperCase())):n,r=parseFloat(e.getAttribute(s));let o=this.presets[n]||0;"perspective"===n&&(o=r),"in"===a?t[i]=[["elInY","elCenterY"],[r,o]]:void 0===t[i]?t[i]=[["elCenterY","elOutY"],[o,r]]:(t[i][0].push("elOutY"),t[i][1].push(r))}}));const s={scrollY:t};this.elements.push(new d(this,e,s))};removeElement=e=>{this.elements=this.elements.filter((t=>t.domElement!==e))}}})(),t((()=>{window.stackableAnimations.addDriver("scrollY",(()=>window.scrollY)),window.stackableAnimations.init()}));const n="stk-entrance-done",a="stk-entered",i="stk-will-enter";window.stackableEntrance=new class{callback=e=>{e.forEach((e=>{if(e.isIntersecting){const t=e.target;t.ontransitionend=()=>{t.classList.add(n),t.ontransitionend=null},t.classList.add(a)}}))};init=()=>{const e=document.querySelectorAll(".stk-entrance");"IntersectionObserver"in window?(this.io&&this.io.disconnect(),this.io=new IntersectionObserver(this.callback,{threshold:.25}),e.forEach((e=>{e.classList.add(i),this.io.observe(e)}))):e.forEach((e=>{e.classList.add(i),e.classList.add(n),e.classList.add(a)}))}},t(window.stackableEntrance.init),frontend_effects__premium_only=e})();
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.