1(()=>{"use strict";const t={x:0,y:0,opacity:1,scale:1,rotate:0,transition:{type:"spring",stiffness:300,damping:35,mass:2,delay:0}},{GHOSTKIT:{events:e,instance:n},Motion:{animate:a,spring:r,inView:s}}=window,o=window.matchMedia("(prefers-reduced-motion: reduce)").matches;e.on(document,"init.blocks.gkt",()=>{document.querySelectorAll("[data-gkt-effects]").forEach(i=>{if(o)return void i.removeAttribute("data-gkt-effects");const c=i.getAttribute("data-gkt-effects");let g;try{g=JSON.parse(c)}catch(t){g=!1}if(i.removeAttribute("data-gkt-effects"),!g)return;if(e.trigger(i,"prepare.effects.gkt",{data:g}),n.set(i,"effects",g),!g?.reveal)return;const l={...t,...g.reveal};e.trigger(i,"prepare.effects.reveal.gkt",{config:l});const d=s(i,()=>{i.classList.remove("ghostkit-effects-reveal");const t={};"easing"===l?.transition?.type?(t.type="tween",t.duration=l.transition.duration,t.delay=l.transition.delay,t.ease=l.transition.easing):"spring"===l?.transition?.type&&(t.type=r,t.delay=l.transition.delay,t.stiffness=l.transition.stiffness,t.damping=l.transition.damping,t.mass=l.transition.mass);const n={};1!==l.opacity&&(n.opacity=[l.opacity,1]),0!==l.x&&(n.x=[l.x,0]),0!==l.y&&(n.y=[l.y,0]),1!==l.scale&&(n.scale=[l.scale,1]),0!==l.rotate&&(n.rotate=[l.rotate,0]);const s={config:l,keyframes:n,options:t,stopInView:d,leaveCallback:()=>{}};return e.trigger(i,"show.effects.reveal.gkt",s),s.stopInView(),a(i,n,t).then(()=>{e.trigger(i,"showed.effects.reveal.gkt",s)}),s.leaveCallback});e.trigger(i,"prepared.effects.reveal.gkt",{config:l})})}),e.on(document,"init.blocks.gkt",()=>{document.querySelectorAll(".ghostkit-count-up:not(.ghostkit-count-up-ready)").forEach(t=>{if(t.classList.add("ghostkit-count-up-ready"),o)return;const n=t.classList.contains("ghostkit-progress-bar"),r=n?t.closest(".ghostkit-progress"):null,i=parseFloat(t.getAttribute("data-count-from"))||0,c=parseFloat(n?t.getAttribute("aria-valuenow"):t.textContent)||0;let g,l,d=0,f="";n||(f=t.textContent.replace(c,"${val}")),/\${val}/.test(f)||(f="${val}"),n?(g=r?.querySelector(".ghostkit-progress-bar-count"),g&&(l=g.querySelector(":scope > div > span:nth-child(2)"),g.style.width="0%",l.textContent="0"),t.style.width="0%"):(t.textContent=f.replace("${val}",i),d=Math.max((`${i}`.split(".")?.[1]||"").length,(`${c}`.split(".")?.[1]||"").length));const p={from:i,to:c,duration:1,easing:[.6,0,.3,1],cb(e){const a=(c-i)*e+i;n?(t.style.width=`${a}%`,g&&(g.style.width=`${a}%`),l&&(l.textContent=Math.ceil(a))):t.textContent=f.replace("${val}",function(t,e=1){const n=10**e;return Math.round(t*n)/n}(a,d))}};e.trigger(t,"prepare.counter.gkt",{config:p});const u=s(r||t,()=>{u(),e.trigger(t,"count.counter.gkt",{config:p}),a(0,1,{duration:p.duration,ease:p.easing,onUpdate:t=>{p.cb(t)}}).then(()=>{e.trigger(t,"counted.counter.gkt",{config:p})})},{margin:"-50px"})})})})();
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.