PageSourceSearch

https://www.aidanm.com/_next/static/immutable/chunks/2fod207a9gj_f.js

js aidanm.com collected 2026-10-04 04:54:57 UTC 188,907 bytes, 1 lines download raw bytes

1(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,335571,e=>{"use strict";var t=e.i(247201),n=e.i(464384),r=e.i(174419),o=e.i(732919);let i={0:"var(--muted)",1:"color-mix(in srgb, var(--chart-3) 55%, var(--muted))",2:"var(--chart-3)",3:"color-mix(in srgb, var(--chart-3-deep) 55%, var(--chart-3))",4:"var(--chart-3-deep)"},a=new Intl.DateTimeFormat("en-US",{month:"short"}),s=(0,n.forwardRef)(({day:e},n)=>e?(0,t.jsx)("div",{ref:n,title:(({date:e,count:t})=>{let n=new Date(`${e}T00:00:00Z`).toLocaleDateString("en-US",{month:"short",day:"numeric",year:"numeric"});return`${t} contribution${1===t?"":"s"} on ${n}`})(e),className:"aspect-square w-full rounded-[2px]",style:{backgroundColor:i[e.level]}}):(0,t.jsx)("div",{className:"aspect-square w-full","aria-hidden":!0}));s.displayName="ContributionGridSquare";let l=({week:e,registerSquare:n,startIndex:r})=>(0,t.jsx)("div",{className:"flex min-w-[9px] flex-1 flex-col gap-1",children:e.map((e,o)=>(0,t.jsx)(s,{day:e,ref:e?n(r+o):void 0},e?.date??`empty-${o}`))}),c=()=>(0,t.jsxs)("div",{className:"text-muted-foreground mt-3 flex items-center justify-end gap-1.5 text-xs",children:[(0,t.jsx)("span",{children:"Less"}),Object.values(i).map((e,n)=>(0,t.jsx)("div",{className:"size-[11px] rounded-[2px]",style:{backgroundColor:e}},n)),(0,t.jsx)("span",{children:"More"})]});o.default.registerPlugin(r.useGSAP),e.s(["ContributionGrid",0,({contributions:e})=>{let i=(0,n.useRef)(null),s=(0,n.useMemo)(()=>(e=>{if(0===e.length)return[];let t=[],n=[],r=new Date(`${e[0].date}T00:00:00Z`).getUTCDay();for(let e=0;e<r;e++)n.push(null);for(let r of e)n.push(r),7===n.length&&(t.push(n),n=[]);if(n.length>0){for(;n.length<7;)n.push(null);t.push(n)}return t})(e),[e]),u=(0,n.useMemo)(()=>{let e;return e=-1,s.map(t=>{let n=t.find(e=>null!==e);if(!n)return null;let r=new Date(`${n.date}T00:00:00Z`).getUTCMonth();return r===e?null:(e=r,a.format(new Date(`${n.date}T00:00:00Z`)))})},[s]),d=7*s.length,p=(0,n.useRef)([]),m=(0,n.useRef)([]),f=(0,n.useRef)(new Float64Array(0)),g=(0,n.useRef)(new Float64Array(0)),h=(0,n.useRef)(new Float64Array(0)),v=(0,n.useRef)(new Float64Array(0)),y=(0,n.useRef)(new Set),x=(0,n.useRef)(null),b=(0,n.useRef)(null),w=(0,n.useRef)(null),S=(0,n.useCallback)(e=>t=>{p.current[e]=t},[]),C=(0,n.useCallback)(()=>{let e=i.current;if(!e)return;let t=e.getBoundingClientRect();m.current=p.current.map(e=>{if(!e)return null;let n=e.getBoundingClientRect();return{x:n.left+n.width/2-t.left,y:n.top+n.height/2-t.top}})},[]);(0,r.useGSAP)(()=>{let e=p.current.filter(Boolean);0!==e.length&&(f.current=new Float64Array(d),g.current=new Float64Array(d),h.current=new Float64Array(d),v.current=new Float64Array(d),y.current.clear(),o.default.from(e,{opacity:0,scale:0,duration:.4,stagger:.0035,ease:"back.out(1.8)",onComplete:()=>{o.default.set(e,{clearProps:"transform"}),C()}}))},{scope:i,dependencies:[d]}),(0,n.useEffect)(()=>(C(),window.addEventListener("resize",C),()=>window.removeEventListener("resize",C)),[C]);let M=(0,n.useCallback)(()=>{let e=performance.now(),t=Math.min((e-(w.current??e))/1e3,1/30);w.current=e;let n=f.current,r=g.current,o=h.current,i=v.current;y.current.forEach(e=>{let a=-38*n[e]-6.5*o[e],s=-38*r[e]-6.5*i[e];o[e]+=a*t,i[e]+=s*t,n[e]+=o[e]*t,r[e]+=i[e]*t;let l=Math.hypot(n[e],r[e]);if(l>42){let t=42/l;n[e]*=t,r[e]*=t}let c=.05>Math.abs(n[e])&&.05>Math.abs(r[e])&&.05>Math.abs(o[e])&&.05>Math.abs(i[e]),u=p.current[e];u&&(c?(n[e]=0,r[e]=0,o[e]=0,i[e]=0,u.style.transform=""):u.style.transform=`translate3d(${n[e].toFixed(2)}px, ${r[e].toFixed(2)}px, 0)`),c&&y.current.delete(e)}),y.current.size>0?b.current=requestAnimationFrame(M):(b.current=null,w.current=null)},[]),A=(0,n.useCallback)(()=>{null===b.current&&(w.current=performance.now(),b.current=requestAnimationFrame(M))},[M]);return(0,n.useEffect)(()=>()=>{null!==b.current&&cancelAnimationFrame(b.current)},[]),(0,t.jsxs)("div",{className:"w-full overflow-x-auto pb-1 md:overflow-visible md:pb-0",children:[(0,t.jsx)("div",{className:"mb-1 flex w-full gap-1",children:u.map((e,n)=>(0,t.jsx)("span",{className:"text-muted-foreground min-w-[9px] flex-1 overflow-visible text-[10px] leading-none whitespace-nowrap",children:e??""},n))}),(0,t.jsx)("div",{ref:i,onPointerMove:e=>{if("mouse"!==e.pointerType)return;let t=i.current;if(!t)return;let n=t.getBoundingClientRect(),r=e.clientX-n.left,o=e.clientY-n.top,a=performance.now(),s=x.current;if(x.current={x:r,y:o,t:a},!s)return;let l=Math.max((a-s.t)/1e3,1/240),c=Math.min(Math.hypot(r-s.x,o-s.y)/l,3200);if(c<50)return;let u=!1;m.current.forEach((e,t)=>{if(!e)return;let n=e.x-r,i=e.y-o,a=Math.hypot(n,i);if(a>=110||a<.001)return;let s=1-a/110,l=s*s*c*.42;h.current[t]+=n/a*l,v.current[t]+=i/a*l,y.current.add(t),u=!0}),u&&A()},onPointerLeave:()=>{x.current=null},"data-contribution-grid":!0,className:"flex w-full gap-1",children:s.map((e,n)=>(0,t.jsx)(l,{week:e,startIndex:7*n,registerSquare:S},n))}),(0,t.jsx)(c,{})]})}],335571)},957332,e=>{"use strict";let t;var n=e.i(247201),r=e.i(464384),o=e.i(880641),i=e.i(409953),a=e.i(647163);let s='<svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>',l='</title><path d="',c='"/></svg>',u={title:"GraphQL",slug:"graphql",get svg(){return s+"GraphQL"+l+this.path+c},path:"M12.002 0a2.138 2.138 0 1 0 0 4.277 2.138 2.138 0 1 0 0-4.277zm8.54 4.931a2.138 2.138 0 1 0 0 4.277 2.138 2.138 0 1 0 0-4.277zm0 9.862a2.138 2.138 0 1 0 0 4.277 2.138 2.138 0 1 0 0-4.277zm-8.54 4.931a2.138 2.138 0 1 0 0 4.276 2.138 2.138 0 1 0 0-4.276zm-8.542-4.93a2.138 2.138 0 1 0 0 4.276 2.138 2.138 0 1 0 0-4.277zm0-9.863a2.138 2.138 0 1 0 0 4.277 2.138 2.138 0 1 0 0-4.277zm8.542-3.378L2.953 6.777v10.448l9.049 5.224 9.047-5.224V6.777zm0 1.601 7.66 13.27H4.34zm-1.387.371L3.97 15.037V7.363zm2.774 0 6.646 3.838v7.674zM5.355 17.44h13.293l-6.646 3.836z",source:"https://graphql.org/brand",hex:"E10098",guidelines:"https://graphql.org/brand"},d={title:"React",slug:"react",get svg(){return s+"React"+l+this.path+c},path:"M14.23 12.004a2.236 2.236 0 0 1-2.235 2.236 2.236 2.236 0 0 1-2.236-2.236 2.236 2.236 0 0 1 2.235-2.236 2.236 2.236 0 0 1 2.236 2.236zm2.648-10.69c-1.346 0-3.107.96-4.888 2.622-1.78-1.653-3.542-2.602-4.887-2.602-.41 0-.783.093-1.106.278-1.375.793-1.683 3.264-.973 6.365C1.98 8.917 0 10.42 0 12.004c0 1.59 1.99 3.097 5.043 4.03-.704 3.113-.39 5.588.988 6.38.32.187.69.275 1.102.275 1.345 0 3.107-.96 4.888-2.624 1.78 1.654 3.542 2.603 4.887 2.603.41 0 .783-.09 1.106-.275 1.374-.792 1.683-3.263.973-6.365C22.02 15.096 24 13.59 24 12.004c0-1.59-1.99-3.097-5.043-4.032.704-3.11.39-5.587-.988-6.38-.318-.184-.688-.277-1.092-.278zm-.005 1.09v.006c.225 0 .406.044.558.127.666.382.955 1.835.73 3.704-.054.46-.142.945-.25 1.44-.96-.236-2.006-.417-3.107-.534-.66-.905-1.345-1.727-2.035-2.447 1.592-1.48 3.087-2.292 4.105-2.295zm-9.77.02c1.012 0 2.514.808 4.11 2.28-.686.72-1.37 1.537-2.02 2.442-1.107.117-2.154.298-3.113.538-.112-.49-.195-.964-.254-1.42-.23-1.868.054-3.32.714-3.707.19-.09.4-.127.563-.132zm4.882 3.05c.455.468.91.992 1.36 1.564-.44-.02-.89-.034-1.345-.034-.46 0-.915.01-1.36.034.44-.572.895-1.096 1.345-1.565zM12 8.1c.74 0 1.477.034 2.202.093.406.582.802 1.203 1.183 1.86.372.64.71 1.29 1.018 1.946-.308.655-.646 1.31-1.013 1.95-.38.66-.773 1.288-1.18 1.87-.728.063-1.466.098-2.21.098-.74 0-1.477-.035-2.202-.093-.406-.582-.802-1.204-1.
1183-1.86-.372-.64-.71-1.29-1.018-1.946.303-.657.646-1.313 1.013-1.954.38-.66.773-1.286 1.18-1.868.728-.064 1.466-.098 2.21-.098zm-3.635.254c-.24.377-.48.763-.704 1.16-.225.39-.435.782-.635 1.174-.265-.656-.49-1.31-.676-1.947.64-.15 1.315-.283 2.015-.386zm7.26 0c.695.103 1.365.23 2.006.387-.18.632-.405 1.282-.66 1.933-.2-.39-.41-.783-.64-1.174-.225-.392-.465-.774-.705-1.146zm3.063.675c.484.15.944.317 1.375.498 1.732.74 2.852 1.708 2.852 2.476-.005.768-1.125 1.74-2.857 2.475-.42.18-.88.342-1.355.493-.28-.958-.646-1.956-1.1-2.98.45-1.017.81-2.01 1.085-2.964zm-13.395.004c.278.96.645 1.957 1.1 2.98-.45 1.017-.812 2.01-1.086 2.964-.484-.15-.944-.318-1.37-.5-1.732-.737-2.852-1.706-2.852-2.474 0-.768 1.12-1.742 2.852-2.476.42-.18.88-.342 1.356-.494zm11.678 4.28c.265.657.49 1.312.676 1.948-.64.157-1.316.29-2.016.39.24-.375.48-.762.705-1.158.225-.39.435-.788.636-1.18zm-9.945.02c.2.392.41.783.64 1.175.23.39.465.772.705 1.143-.695-.102-1.365-.23-2.006-.386.18-.63.406-1.282.66-1.933zM17.92 16.32c.112.493.2.968.254 1.423.23 1.868-.054 3.32-.714 3.708-.147.09-.338.128-.563.128-1.012 0-2.514-.807-4.11-2.28.686-.72 1.37-1.536 2.02-2.44 1.107-.118 2.154-.3 3.113-.54zm-11.83.01c.96.234 2.006.415 3.107.532.66.905 1.345 1.727 2.035 2.446-1.595 1.483-3.092 2.295-4.11 2.295-.22-.005-.406-.05-.553-.132-.666-.38-.955-1.834-.73-3.703.054-.46.142-.944.25-1.438zm4.56.64c.44.02.89.034 1.345.034.46 0 .915-.01 1.36-.034-.44.572-.895 1.095-1.345 1.565-.455-.47-.91-.993-1.36-1.565z",source:"https://github.com/facebook/create-react-app/blob/282c03f9525fdf8061ffa1ec50dce89296d916bd/test/fixtures/relative-paths/src/logo.svg",hex:"61DAFB"},p="#211d2a",m=(e,t)=>{var r;let o,i,a;return{...(a=(o=(r=t??`#${e.hex}`).replace("#",""),.2126*(i=e=>{let t=e/255;return t<=.03928?t/12.92:((t+.055)/1.055)**2.4})(parseInt(o.slice(0,2),16))+.7152*i(parseInt(o.slice(2,4),16))+.0722*i(parseInt(o.slice(4,6),16))),{background:r,foreground:a>.4?p:"#ffffff"}),icon:()=>(0,n.jsx)("svg",{role:"img",viewBox:"0 0 24 24",className:"h-8 w-8 fill-current",children:(0,n.jsx)("path",{d:e.path})})}},f=e=>({background:"#ffffff",foreground:p,icon:()=>(0,n.jsx)(e,{className:"h-8 w-8"})}),g=[{name:"V0",category:"ai",...m({title:"v0",slug:"v0",get svg(){return s+"v0"+l+this.path+c},path:"M14.066 6.028v2.22h5.729q.075-.001.148.005l-5.853 5.752a2 2 0 0 1-.024-.309V8.247h-2.353v5.45c0 2.322 1.935 4.222 4.258 4.222h5.675v-2.22h-5.675q-.03 0-.059-.003l5.729-5.629q.006.082.006.166v5.465H24v-5.465a4.204 4.204 0 0 0-4.205-4.205zM0 8.245l8.28 9.266c.839.94 2.396.346 2.396-.914V8.245H8.19v5.44l-4.86-5.44Z",source:"https://v0.dev",hex:"000000"})},{name:"GitHub Copilot",category:"ai",...m({title:"GitHub Copilot",slug:"githubcopilot",get svg(){return s+"GitHub Copilot"+l+this.path+c},path:"M23.922 16.997C23.061 18.492 18.063 22.02 12 22.02 5.937 22.02.939 18.492.078 16.997A.641.641 0 0 1 0 16.741v-2.869a.883.883 0 0 1 .053-.22c.372-.935 1.347-2.292 2.605-2.656.167-.429.414-1.055.644-1.517a10.098 10.098 0 0 1-.052-1.086c0-1.331.282-2.499 1.132-3.368.397-.406.89-.717 1.474-.952C7.255 2.937 9.248 1.98 11.978 1.98c2.731 0 4.767.957 6.166 2.093.584.235 1.077.546 1.474.952.85.869 1.132 2.037 1.132 3.368 0 .368-.014.733-.052 1.086.23.462.477 1.088.644 1.517 1.258.364 2.233 1.721 2.605 2.656a.841.841 0 0 1 .053.22v2.869a.641.641 0 0 1-.078.256Zm-11.75-5.992h-.344a4.359 4.359 0 0 1-.355.508c-.77.947-1.918 1.492-3.508 1.492-1.725 0-2.989-.359-3.782-1.259a2.137 2.137 0 0 1-.085-.104L4 11.746v6.585c1.435.779 4.514 2.179 8 2.179 3.486 0 6.565-1.4 8-2.179v-6.585l-.098-.104s-.033.045-.085.104c-.793.9-2.057 1.259-3.782 1.259-1.59 0-2.738-.545-3.508-1.492a4.359 4.359 0 0 1-.355-.508Zm2.328 3.25c.549 0 1 .451 1 1v2c0 .549-.451 1-1 1-.549 0-1-.451-1-1v-2c0-.549.451-1 1-1Zm-5 0c.549 0 1 .451 1 1v2c0 .549-.451 1-1 1-.549 0-1-.451-1-1v-2c0-.549.451-1 1-1Zm3.313-6.185c.136 1.057.403 1.913.878 2.497.442.544 1.134.938 2.344.938 1.573 0 2.292-.337 2.657-.751.384-.435.558-1.15.558-2.361 0-1.14-.243-1.847-.705-2.319-.477-.488-1.319-.862-2.824-1.025-1.487-.161-2.192.138-2.533.529-.269.307-.437.808-.438 1.578v.021c0 .265.021.562.063.893Zm-1.626 0c.042-.331.063-.628.063-.894v-.02c-.001-.77-.169-1.271-.438-1.578-.341-.391-1.046-.69-2.533-.529-1.505.163-2.347.537-2.824 1.025-.462.472-.705 1.179-.705 2.319 0 1.211.175 1.926.558 2.361.365.414 1.084.751 2.657.751 1.21 0 1.902-.394 2.344-.938.475-.584.742-1.44.878-2.497Z",source:"https://primer.style/foundations/icons/copilot-24",hex:"000000",license:{type:"MIT",url:"https://spdx.org/licenses/MIT"}})},{name:"Claude",category:"ai",...m({title:"Claude",slug:"claude",get svg(){return s+"Claude"+l+this.path+c},path:"m4.7144 15.9555 4.7174-2.6471.079-.2307-.079-.1275h-.2307l-.7893-.0486-2.6956-.0729-2.3375-.0971-2.2646-.1214-.5707-.1215-.5343-.7042.0546-.3522.4797-.3218.686.0608 1.5179.1032 2.2767.1578 
11.6514.0972 2.4468.255h.3886l.0546-.1579-.1336-.0971-.1032-.0972L6.973 9.8356l-2.55-1.6879-1.3356-.9714-.7225-.4918-.3643-.4614-.1578-1.0078.6557-.7225.8803.0607.2246.0607.8925.686 1.9064 1.4754 2.4893 1.8336.3643.3035.1457-.1032.0182-.0728-.164-.2733-1.3539-2.4467-1.445-2.4893-.6435-1.032-.17-.6194c-.0607-.255-.1032-.4674-.1032-.7285L6.287.1335 6.6997 0l.9957.1336.419.3642.6192 1.4147 1.0018 2.2282 1.5543 3.0296.4553.8985.2429.8318.091.255h.1579v-.1457l.1275-1.706.2368-2.0947.2307-2.6957.0789-.7589.3764-.9107.7468-.4918.5828.2793.4797.686-.0668.4433-.2853 1.8517-.5586 2.9021-.3643 1.9429h.2125l.2429-.2429.9835-1.3053 1.6514-2.0643.7286-.8196.85-.9046.5464-.4311h1.0321l.759 1.1293-.34 1.1657-1.0625 1.3478-.8804 1.1414-1.2628 1.7-.7893 1.36.0729.1093.1882-.0183 2.8535-.607 1.5421-.2794 1.8396-.3157.8318.3886.091.3946-.3278.8075-1.967.4857-2.3072.4614-3.4364.8136-.0425.0304.0486.0607 1.5482.1457.6618.0364h1.621l3.0175.2247.7892.522.4736.6376-.079.4857-1.2142.6193-1.6393-.3886-3.825-.9107-1.3113-.3279h-.1822v.1093l1.0929 1.0686 2.0035 1.8092 2.5075 2.3314.1275.5768-.3218.4554-.34-.0486-2.2039-1.6575-.85-.7468-1.9246-1.621h-.1275v.17l.4432.6496 2.3436 3.5214.1214 1.0807-.17.3521-.6071.2125-.6679-.1214-1.3721-1.9246L14.38 17.959l-1.1414-1.9428-.1397.079-.674 7.2552-.3156.3703-.7286.2793-.6071-.4614-.3218-.7468.3218-1.4753.3886-1.9246.3157-1.53.2853-1.9004.17-.6314-.0121-.0425-.1397.
10182-1.4328 1.9672-2.1796 2.9446-1.7243 1.8456-.4128.164-.7164-.3704.0667-.6618.4008-.5889 2.386-3.0357 1.4389-1.882.929-1.0868-.0062-.1579h-.0546l-6.3385 4.1164-1.1293.1457-.4857-.4554.0608-.7467.2307-.2429 1.9064-1.3114Z",source:"https://claude.ai",hex:"D97757"})},{name:"ChatGPT",category:"ai",...(t=({className:e})=>(0,n.jsxs)("svg",{width:"24",height:"24",viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg",fill:"currentColor",className:e,children:[(0,n.jsx)("title",{children:"ChatGPT"}),(0,n.jsx)("clipPath",{id:"clipPath1",children:(0,n.jsx)("path",{d:"M -5.847085 -5.855637 L 29.845146 -5.855637 L 29.845146 29.836594 L -5.847085 29.836594 Z"})}),(0,n.jsxs)("g",{id:"Group",clipPath:"url(#clipPath1)",children:[(0,n.jsx)("clipPath",{id:"clipPath2",children:(0,n.jsx)("path",{d:"M -0 0.08603 L 24 0.08603 L 24 23.871828 L -0 23.871828 Z"})}),(0,n.jsx)("g",{id:"g1",clipPath:"url(#clipPath2)",children:(0,n.jsx)("path",{id:"Path",fill:"white",stroke:"none",d:"M 9.205076 8.744023 L 9.205076 6.48436 C 9.205076 6.294048 9.27651 6.151281 9.442925 6.05625 L 13.986149 3.439812 C 14.604567 3.083036 15.341958 2.916622 16.102997 2.916622 C 18.957235 2.916622 20.765095 5.128748 20.765095 7.483444 C 20.765095 7.649908 20.765095 7.840218 20.741251 8.030525 L 16.031612 5.271317 C 15.746222 5.104902 15.460685 5.104902 15.175295 5.271317 L 9.205076 8.744023 Z M 19.813551 17.544834 L 19.813551 12.145344 C 19.813551 11.812266 19.670732 11.574417 19.385393 11.407952 L 13.415174 7.935247 L 15.365605 6.817236 C 15.53207 6.722206 15.674837 6.722206 15.841302 6.817236 L 20.384478 9.433677 C 21.692795 10.194912 22.57276 11.812266 22.57276 13.38203 C 22.57276 15.189692 21.502487 16.854786 19.813551 17.544636 L 19.813551 17.544834 Z M 7.801727 12.787705 L 5.851295 11.646049 C 5.68488 11.551019 5.613446 11.4082 5.613446 11.217893 L 5.613446 5.985064 C 5.613446 3.44006 7.563878 1.513275 10.204161 1.513275 C 11.203295 1.513275 12.130749 1.846352 12.915877 2.440975 L 8.230083 5.152641 C 7.944743 5.319056 7.801974 5.556906 7.801974 5.890034 L 7.801974 12.787904 L 7.801727 12.787705 Z M 11.999976 15.213786 L 9.205076 13.643971 L 9.205076 10.314084 L 11.999976 8.744271 L 14.794678 10.314084 L 14.794678 13.643971 L 11.999976 15.213786 Z M 13.795791 22.444784 C 12.796705 22.444784 11.869254 22.111706 11.084124 21.517132 L 15.769869 18.805416 C 16.055258 18.639 16.198027 18.401152 16.198027 18.068024 L 16.198027 11.170154 L 18.172352 12.311809 C 18.338766 12.406839 18.410202 12.549608 18.410202 12.739966 L 18.410202 17.972795 C 18.410202 20.517799 16.435877 22.444584 13.795791 22.444584 L 13.795791 22.444784 Z M 8.158501 17.140572 L 3.615276 14.524181 C 2.306957 13.762897 1.426995 12.145593 1.426995 10.575779 C 1.426995 8.744271 2.52116 7.103073 4.209849 6.413223 L 4.209849 11.836358 C 4.209849 12.169436 4.352667 12.407286 4.638007 12.57375 L 10.58458 16.022562 L 8.63415 17.140572 C 8.467734 17.235603 8.324915 17.235603 8.158501 17.140572 Z M 7.897006 21.041433 C 5.209182 21.041433 3.234906 19.019617 3.234906 16.522104 C 3.234906 16.331795 3.258751 16.141487 3.282396 15.951178 L 7.968192 18.662846 C 8.253531 18.829309 8.539119 18.829309 8.824457 18.662846 L 14.794678 15.214034 L 14.794678 17.473698 C 14.794678 17.664009 14.723293 17.806776 14.556828 17.901808 L 10.013654 20.518246 C 9.395186 20.875019 8.657795 21.041433 7.896758 21.041433 L 7.897006 21.041433 Z M 13.795791 23.871828 C 16.673923 23.871828 19.076159 21.826317 19.623438 19.114649 C 22.287418 18.424797 24 15.927284 24 13.382278 C 24 11.717186 23.286503 10.099882 22.002031 8.934333 C 22.120955 8.434789 22.192339 7.935247 22.192339 7.435953 C 22.192339 4.03463 19.433132 1.489378 16.245764 1.489378 C 15.603701 1.489378 14.985235 1.584412 14.366767 1.798613 C 13.296247 0.751986 11.821515 0.086031 10.204161 0.086031 C 7.326079 0.086031 4.923842 2.131491 4.376562 4.843161 C 1.712583 5.533012 -0 8.030525 -0 10.575531 C -0 12.240623 0.713498 13.857926 1.997971 15.023476 C 1.879048 15.523018 1.807663 16.022562 1.807663 16.521906 C 1.807663 19.923225 4.566871 22.46843 7.754187 22.46843 C 8.396299 22.46843 9.014768 22.3734 9.633234 22.159197 C 10.703505 23.205822 12.178238 23.871828 13.795791 23.871828 Z"})})]})]}),{background:"#10A37F",foreground:"#ffffff",icon:()=>(0,n.jsx)(t,{className:"h-8 w-8"})})},{name:"React",category:"web",...m(d)}
1,{name:"Next.js",category:"web",...m({title:"Next.js",slug:"nextdotjs",get svg(){return s+"Next.js"+l+this.path+c},path:"M18.665 21.978C16.758 23.255 14.465 24 12 24 5.377 24 0 18.623 0 12S5.377 0 12 0s12 5.377 12 12c0 3.583-1.574 6.801-4.067 9.001L9.219 7.2H7.2v9.596h1.615V9.251l9.85 12.727Zm-3.332-8.533 1.6 2.061V7.2h-1.6v6.245Z",source:"https://vercel.com/design/brands#next-js",hex:"000000",guidelines:"https://vercel.com/design/brands#next-js"})},{name:"TypeScript",category:"web",...m({title:"TypeScript",slug:"typescript",get svg(){return s+"TypeScript"+l+this.path+c},path:"M1.125 0C.502 0 0 .502 0 1.125v21.75C0 23.498.502 24 1.125 24h21.75c.623 0 1.125-.502 1.125-1.125V1.125C24 .502 23.498 0 22.875 0zm17.363 9.75c.612 0 1.154.037 1.627.111a6.38 6.38 0 0 1 1.306.34v2.458a3.95 3.95 0 0 0-.643-.361 5.093 5.093 0 0 0-.717-.26 5.453 5.453 0 0 0-1.426-.2c-.3 0-.573.028-.819.086a2.1 2.1 0 0 0-.623.242c-.17.104-.3.229-.393.374a.888.888 0 0 0-.14.49c0 .196.053.373.156.529.104.156.252.304.443.444s.423.276.696.41c.273.135.582.274.926.416.47.197.892.407 1.266.628.374.222.695.473.963.753.268.279.472.598.614.957.142.359.214.776.214 1.253 0 .657-.125 1.21-.373 1.656a3.033 3.033 0 0 1-1.012 1.085 4.38 4.38 0 0 1-1.487.596c-.566.12-1.163.18-1.79.18a9.916 9.916 0 0 1-1.84-.164 5.544 5.544 0 0 1-1.512-.493v-2.63a5.033 5.033 0 0 0 3.237 1.2c.333 0 .624-.03.872-.09.249-.06.456-.144.623-.25.166-.108.29-.234.373-.38a1.023 1.023 0 0 0-.074-1.089 2.12 2.12 0 0 0-.537-.5 5.597 5.597 0 0 0-.807-.444 27.72 27.72 0 0 0-1.007-.436c-.918-.383-1.602-.852-2.053-1.405-.45-.553-.676-1.222-.676-2.005 0-.614.123-1.141.369-1.582.246-.441.58-.804 1.004-1.089a4.494 4.494 0 0 1 1.47-.629 7.536 7.536 0 0 1 1.77-.201zm-15.113.188h9.563v2.166H9.506v9.646H6.789v-9.646H3.375z",source:"https://www.typescriptlang.org/branding",hex:"3178C6",guidelines:"https://www.typescriptlang.org/branding"})},{name:"Tailwind CSS",category:"web",...m({title:"Tailwind CSS",slug:"tailwindcss",get svg(){return s+"Tailwind CSS"+l+this.path+c},path:"M12.001,4.8c-3.2,0-5.2,1.6-6,4.8c1.2-1.6,2.6-2.2,4.2-1.8c0.913,0.228,1.565,0.89,2.288,1.624 C13.666,10.618,15.027,12,18.001,12c3.2,0,5.2-1.6,6-4.8c-1.2,1.6-2.6,2.2-4.2,1.8c-0.913-0.228-1.565-0.89-2.288-1.624 C16.337,6.182,14.976,4.8,12.001,4.8z M6.001,12c-3.2,0-5.2,1.6-6,4.8c1.2-1.6,2.6-2.2,4.2-1.8c0.913,0.228,1.565,0.89,2.288,1.624 c1.177,1.194,2.538,2.576,5.512,2.576c3.2,0,5.2-1.6,6-4.8c-1.2,1.6-2.6,2.2-4.2,1.8c-0.913-0.228-1.565-0.89-2.288-1.624 C10.337,13.382,8.976,12,6.001,12z",source:"https://tailwindcss.com/brand",hex:"06B6D4",guidelines:"https://tailwindcss.com/brand"})},{name:"Vue.js",category:"web",...m({title:"Vue.js",slug:"vuedotjs",get svg(){return s+"Vue.js"+l+this.path+c},path:"M24,1.61H14.06L12,5.16,9.94,1.61H0L12,22.39ZM12,14.08,5.16,2.23H9.59L12,6.41l2.41-4.18h4.43Z",source:"https://github.com/vuejs/art/blob/a1c78b74569b70a25300925b4eacfefcc143b8f6/logo.svg",hex:"4FC08D",guidelines:"https://github.com/vuejs/art/blob/a1c78b74569b70a25300925b4eacfefcc143b8f6/README.md",license:{type:"CC-BY-NC-SA-4.0",url:"https://spdx.org/licenses/CC-BY-NC-SA-4.0"}})},{name:"Angular",category:"web",...m({title:"Angular",slug:"angular",get svg(){return s+"Angular"+l+this.path+c},path:"M16.712 17.711H7.288l-1.204 2.916L12 24l5.916-3.373-1.204-2.916ZM14.692 0l7.832 16.855.814-12.856L14.692 0ZM9.308 0 .662 3.999l.814 12.856L9.308 0Zm-.405 13.93h6.198L12 6.396 8.903 13.93Z",source:"https://angular.dev/press-kit",hex:"0F0F11",guidelines:"https://angular.dev/press-kit",license:{type:"CC-BY-4.0",url:"https://spdx.org/licenses/CC-BY-4.0"}},"#DD0031")},{name:"Svelte",category:"web",...m({title:"Svelte",slug:"svelte",get svg(){return s+"Svelte"+l+this.path+c},path:"M10.354 21.125a4.44 4.44 0 0 1-4.765-1.767 4.109 4.109 0 0 1-.703-3.107 3.898 3.898 0 0 1 .134-.522l.105-.321.287.21a7.21 7.21 0 0 0 2.186 1.092l.208.063-.02.208a1.253 1.253 0 0 0 .226.83 1.337 1.337 0 0 0 1.435.533 1.231 1.231 0 0 0 .343-.15l5.59-3.562a1.164 1.164 0 0 0 .524-.778 1.242 1.242 0 0 0-.211-.937 1.338 1.338 0 0 0-1.435-.533 1.23 1.23 0 0 0-.343.15l-2.133 1.36a4.078 4.078 0 0 1-1.135.499 4.44 4.44 0 0 1-4.765-1.766 4.108 4.108 0 0 1-.702-3.108 3.855 3.855 0 0 1 1.742-2.582l5.589-3.563a4.072 4.072 0 0 1 1.135-.499 4.44 4.44 0 0 1 4.765 1.767 4.109 4.109 0 0 1 .703 3.107 3.943 3.943 0 0 1-.134.522l-.105.321-.286-.21a7.204 7.204 0 0 0-2.187-1.093l-.208-.063.02-.207a1.255 1.255 0 0 0-.226-.831 1.337 1.337 0 0 0-1.435-.532 1.231 1.231 0 0 0-.343.15L8.62 9.368a1.162 1.162 0 0 0-.524.778 1.24 1.24 0 0 0 .211.937 1.338 1.338 0 0 0 1.435.533 1.235 1.235 0 0 0 .344-.151l2.132-1.36a4.067 4.067 0 0 1 1.135-.498 4.44 4.44 0 0 1 4.765 1.766 4.108 4.108 0 0 1 .702 3.108 3.857 3.857 0 0 1-1.742 2.583l-5.589 3.562a4.072 4.072 0 0 1-1.135.499m10.358-17.95C18.484-.015 14.082-.96 10.9 1.068L5.31 4.63a6.412 6.412 0 0 0-2.896 4.295 6.753 6.753 0 0 0 .666 4.336 6.43 6.43 0 0 0-.96 2.396 6.833 6.833 0 0 0 1.168 5.167c2.229 3.19 6.63 4.135 9.812 2.108l5.59-3.562a6.41 6.41 0 0 0 2.896-4.295 6.756 6.756 0 0 0-.665-4.336 6.429 6.429 0 0 0 .958-2.396 6.831 6.831 0 0 0-1.167-5.168Z",source:"https://github.com/sveltejs/branding/blob/c4dfca6743572087a6aef0e109ffe3d95596e86a/svelte-logo.svg",hex:"FF3E00"})},{name:"Redux",category:"web",...m({title:"Redux",slug:"redux",get svg(){return s+"Redux"+l+this.path+c},path:"M16.634 16.504c.87-.075 1.543-.84 1.5-1.754-.047-.914-.796-1.648-1.709-1.648h-.061a1.71 1.71 0 00-1.648 1.769c.03.479.226.869.494 1.153-1.048 2.038-2.621 3.536-5.005 4.795-1.603.838-3.296 1.154-4.944.93-1.378-.195-2.456-.81-3.116-1.799-.988-1.499-1.078-3.116-.255-4.734.6-1.17 1.499-2.023 2.099-2.443a9.96 9.96 0 01-.42-1.543C-.868 14.408-.416 18.752.932 20.805c1.004 1.498 3.057 2.456 5.304 2.456.6 0 1.23-.044 1.843-.194 3.897-.749 6.848-3.086 8.541-6.532zm5.348-3.746c-2.32-2.728-5.738-4.226-9.634-4.226h-.51c-.253-.554-.837-.899-1.498-.899h-.045c-.943 0-1.678.81-1.647 1.753.03.898.794 1.648 1.708 1.648h.074a1.69 1.69 0 001.499-1.049h.555c2.309 0 4.495.674 6.488 1.992 1.527 1.005 2.622 2.323 3.237 3.897.538 1.288.509 2.547-.045 3.597-.855 1.647-2.294 2.517-4.196 2.517-1.199 0-2.367-.375-2.967-.644-.36.298-.96.793-1.394 1.093 1.318.598 2.652.943 3.94.943 2.922 0 5.094-1.647 5.919-3.236.898-1.798.824-4.824-1.47-7.416zM6.49 17.042c.03.899.793 1.648 1.708 1.648h.06a1.688 1.688 0 001.648-1.768c0-.9-.779-1.647-1.
1693-1.647h-.06c-.06 0-.15 0-.226.029-1.243-2.098-1.768-4.347-1.572-6.772.12-1.828.72-3.417 1.797-4.735.9-1.124 2.593-1.68 3.747-1.708 3.236-.061 4.585 3.971 4.689 5.574l1.498.45C17.741 3.197 14.686.62 11.764.62 9.02.62 6.49 2.613 5.47 5.535 4.077 9.43 4.991 13.177 6.7 16.174c-.15.195-.24.539-.21.868z",source:"https://github.com/reduxjs/redux/blob/abb5f892f7e46849e5ca9bc13e75cfbc944a71b6/logo/logo.svg",hex:"764ABC"})},{name:"MobX",category:"web",...m({title:"MobX",slug:"mobx",get svg(){return s+"MobX"+l+this.path+c},path:"M1.402 0C.625 0 0 .625 0 1.402v21.196C0 23.375.625 24 1.402 24h21.196c.777 0 1.402-.625 1.402-1.402V1.402C24 .625 23.375 0 22.598 0zm2.882 5.465h3.038v13.068H4.284v-.986h1.863V6.45H4.284zm12.394 0h3.038v.985h-1.863v11.098h1.863v.986h-3.038zm-7.856 3.55h1.35c.108.441.234.914.378 1.418.153.495.31.99.472 1.485.171.486.342.958.513 1.417.171.46.333.869.486 1.229.153-.36.315-.77.486-1.229.171-.459.338-.931.5-1.417.17-.495.328-.99.472-1.485.153-.504.284-.977.392-1.418h1.296a34.295 34.295 0 0 1-1.242 3.78 56.44 56.44 0 0 1-1.364 3.24h-1.134a63.191 63.191 0 0 1-1.377-3.24 36.226 36.226 0 0 1-1.228-3.78Z",source:"https://github.com/mobxjs/mobx/blob/248e25e37af31c2e71ff452bc662a85816fa40d8/docs/assets/mobservable.svg",hex:"FF9955"})},{name:"Zustand",category:"web",...m(d)},{name:"TanStack Query",category:"web",...m({title:"React Query",slug:"reactquery",get svg(){return s+"React Query"+l+this.path+c},path:"M6.9297 13.6875c.164-.0938.375-.0352.4687.1328l.0625.1055c.4805.8515.9805 1.6601 1.5 2.4258.6133.9023 1.3047 1.8164 2.0743 2.7421a.3455.3455 0 0 1-.0391.4844l-.0742.0664c-2.543 2.2227-4.1914 2.664-4.9532 1.332-.746-1.3046-.4765-3.6718.8086-7.1093a.3437.3437 0 0 1 .1524-.1797ZM17.75 16.3008c.1836-.0313.3594.086.3945.2695l.0196.1016c.6289 3.2851.1875 4.9297-1.3243 4.9297-1.4804 0-3.3593-1.4024-5.6484-4.2032a.3271.3271 0 0 1-.0742-.2226c0-.187
15.1562-.3399.3437-.3399h.1211a32.9838 32.9838 0 0 0 2.8086-.0976c1.0703-.086 2.1914-.2305 3.3594-.4375zm.871-6.9766a.3528.3528 0 0 1 .4454-.211l.1016.0352c3.2617 1.1094 4.5039 2.332 3.7187 3.6641-.7656 1.3047-2.9922 2.254-6.6836 2.8477-.082.0117-.168-.004-.2383-.047-.168-.0976-.2265-.3085-.125-.4765l.0625-.1054c.504-.8438.957-1.6836 1.3672-2.5235.4766-.9883.9297-2.0508 1.3516-3.1836zM7.797 8.3398c.082-.0117.168.004.2383.047.168.0976.2265.3085.125.4765l-.0625.1054a34.0882 34.0882 0 0 0-1.3672 2.5235c-.4766.9883-.9297 2.0508-1.3516 3.1836a.3528.3528 0 0 1-.4453.211l-.1016-.0352c-3.2617-1.1094-4.5039-2.332-3.7187-3.6641.7656-1.3047 2.9922-2.254 6.6836-2.8477Zm5.2812-3.9843c2.543-2.2227 4.1914-2.664 4.9532-1.332.746 1.3046.4765 3.6718-.8086 7.1093a.3436.3436 0 0 1-.1524.1797c-.164.0938-.375.0352-.4687-.1328l-.0625-.1055c-.4805-.8515-.9805-1.6601-1.5-2.4258-.6133-.9023-1.3047-1.8164-2.0743-2.7421a.3455.3455 0 0 1 .0391-.4844Zm-5.793-2.082c1.4805 0 3.3633 1.4023 5.6485 4.203a.3488.3488 0 0 1 .0781.2188c-.0039.1914-.1562.3438-.3476.3438l-.1172-.004a34.5835 34.5835 0 0 0-2.8086.1016c-1.0742.086-2.1953.2305-3.3633.4375a.343.343 0 0 1-.3945-.2734l-.0196-.0977c-.629-3.2851-.1876-4.9297 1.3242-4.9297Zm2.8711 5.8124h3.6875a.638.638 0 0 1 .5508.3164l1.8477 3.2188a.6437.6437 0 0 1 0 .6289l-1.8477 3.2227a.638.638 0 0 1-.5507.3164h-3.6875c-.2266 0-.4375-.1211-.547-.3164L7.7579 12.25a.6437.6437 0 0 1 0-.629l1.8516-3.2187c.1093-.1953.3203-.3164.5468-.3164Zm3.2305.793a.638.638 0 0 1 .5508.3164l1.3906 2.4258a.6437.6437 0 0 1 0 .6289l-1.3906 2.4297a.638.638 0 0 1-.5508.3164h-2.7734c-.2266 0-.4375-.1211-.5469-.3164L8.672 12.25a.6437.6437 0 0 1 0-.629l1.3945-2.4257c.1094-.1953.3203-.3164.5469-.3164Zm-.4922.8672h-1.789c-.2266 0-.4336.1172-.547.3164l-.8983 1.5586a.6437.6437 0 0 0 0 .6289l.8984 1.5625a.6317.6317 0 0 0 .5469.3164h1.789a.6317.6317 0 0 0 .547-.3164l.8983-1.5625a.6437.6437 0 0 0 0-.629l-.8984-1.5585c-.1133-.1992-.3203-.3164-.5469-.3164Zm-.4765.8281c.2265 0 .4375.1211.5468.3164l.422.7305c.1132.1953.1132.4375 0 .6289l-.422.7344c-.1093.1953-.3203.3164-.5468.3164h-.836a.6317.6317 0 0 1-.5468-.3164l-.422-.7344c-.1132-.1914-.1132-.4336 0-.629l.422-.7304a.6317.6317 0 0 1 .5468-.3164zm-.418.8164a.548.548 0 0 0-.4727.2735c-.0976.168-.0976.375 0 .5468a.5444.5444 0 0 0 .4727.2696.5444.5444 0 0 0 .4727-.2696c.0976-.1718.0976-.3789 0-.5468A.548.548 0 0 0 12 11.3906Zm-4.4219.5469h.9805M18.9805 7.75c.3906-1.8945.4765-3.3438.2226-4.3984-.1484-.629-.4218-1.1368-.8398-1.5078-.4414-.3907-1-.582-1.625-.582-1.0352 0-2.1211.4726-3.2813 1.3671-.4726.3633-.9648.8047-1.4726 1.3164-.043-.0508-.086-.1015-.1367-.1445-1.4454-1.2852-2.6602-2.082-3.6993-2.3906-.6171-.1836-1.1953-.1993-1.7226-.0235-.5586.1875-1.004.5742-1.3164 1.1172-.5156.8945-.6524 2.0742-.461 3.5274.0782.5898.2149 1.2343.4024 1.9335a1.1187 1.1187 0 0 0-.2149.047C3.008 8.621 1.711 9.2694.9258 10.0155c-.4649.4414-.7695.9375-.8828 1.4805-.1133.5781 0 1.1562.3125 1.6992.5156.8945 1.4648 1.5977 2.8164 2.1563.543.2226 1.1562.4257 1.8437.6093a1.0227 1.0227 0 0 0-.0703.2266c-.3906 1.8906-.4765 3.3438-.2226 4.3945.1484.629.4257 1.1407.8398 1.5078.4414.3907 1 .582 1.625.582 1.0352 0 2.121-.4726 3.2813-1.3632.4765-.3711.9726-.8164 1.4882-1.336a1.2 1.2 0 0 0 .1953.2266c1.4454 1.2852 2.6602 2.082 3.6993 2.3906.6172.1836 1.1953.1993 1.7226.0235.5586-.1875 1.004-.5742 1.3164-1.1172.5157-.8945.6524-2.0742.461-3.5273-.082-.6133-.2227-1.2813-.4258-2.0118a1.2248 1.2248 0 0 0 .2383-.0468c1.828-.6094 3.125-1.2578 3.9101-2.004.4649-.4413.7696-.9374.8828-1.4804.1133-.5781 0-1.1563-.3125-1.6992-.5156-.8946-1.4648-1.5977-2.8164-2.1563-.5586-.2304-1.1953-.4414-1.9062-.625a.8647.8647 0 0 0 .0586-.1953z",source:"https://github.com/tannerlinsley/react-query/blob/9b5d18cd47a4c1454d6c8dd0f38280641c1dd5dd/docs/src/images/emblem-light.svg",hex:"FF4154"})},{name:"styled-components",category:"web",...m({title:"styled-components",slug:"styledcomponents",get svg(){return s+"styled-components"+l+this.path+c},path:"M16.214 6.762l-.075.391c-.116.741-.074.953.244 1.228l.307.254-.318 1.418c-.19.846-.423 1.555-.571 1.788-.127.201-.275.497-.307.656-.053.19-.233.381-.508.55-.243.138-.72.508-1.058.805-.27.243-.456.392-.557.456l-.33.261c-.106.17-.166.307-.189.411-.023.107-.01.178.024.23.033.05.09.085.168.107a.954.954 0 00.282.023 3 3 0 00.632-.112c.07-.019.125-.037.173-.053.074-.091.245-.263.548-.562.804-.793 1.111-1.227.794-1.11-.117.042-.064-.064.137-.276.424-.413.667-1.037 1.175-2.994.402-1.545.402-1.567.698-1.567.139 0 .532.024.532.024V6.762h-.9
102zm3.839 3.165c-.064 0-.17.096-.233.202-.116.19.021.306 1.767 1.396 1.037.657 1.873 1.217 1.852 1.26-.021.031-.868.582-1.883 1.217-1.842 1.142-1.852 1.153-1.683 1.386.212.275 0 .37 2.391-1.122L24 13.155v-.836l-1.937-1.196c-1.047-.656-1.957-1.185-2.01-1.196zm-16.085.117c-.053 0-.963.54-2.01 1.185L0 12.425v.836l1.947 1.217c1.08.666 1.99 1.217 2.032 1.217.042 0 .127-.096.212-.212.127-.201.02-.286-1.768-1.418C.72 12.996.54 12.848.71 12.732c.106-.074.91-.572 1.778-1.111 1.979-1.217 1.873-1.133 1.714-1.387-.063-.105-.17-.2-.233-.19zm8.684.023c-.292-.002-.92.443-2.8 1.978-.081.193-.088.326-.051.412.024.059.068.1.129.13.06.03.138.048.224.055.171.015.373-.012.536-.044l.11-.025a.386.386 0 01.144-.118c.116-.064.603-.508 1.09-.984.857-.868 1.058-1.26.709-1.387a.24.24 0 00-.09-.017zm2.196.603c-.257.007-.72.305-1.513.938-.398.323-.65.497-.785.533l-.524.414c-.197.36-.226.583-.174.706a.25.25 0 00.138.134.644.644 0 00.24.045 2.18 2.18 0 00.58-.085 3.466 3.466 0 00.291-.092l.029-.012.053-.028c.1-.129.33-.372.618-.652.91-.878 1.375-1.502 1.28-1.735-.043-.113-.117-.17-.233-.166zm-2.424 1.08c-.074.008-.24.136-.539.398-.432.382-.903.602-1.066.504a3.97 3.97 0 01-.114.024c-.166.033-.373.06-.558.045a.708.708 0 01-.252-.063.337.337 0 01-.168-.17c-.037-.09-.037-.202.005-.345l-.65.534-1.471 1.217V15.867l4.82-3.797a.41.41 0 01.016-.123c.037-.134.035-.202-.023-.196zm2.074.639c-.073 0-.195.103-.39.31-.265.283-.682.557-.903.613l-.034.018a2.191 2.191 0 01-.11.042c-.06.02-.138.044-.228.068-.18.049-.404.094-.604.089a.732.732 0 01-.275-.054.344.344 0 01-.184-.18c-.058-.139-.035-.334.092-.611L7.61 16.033v1.205h1.868l3.962-3.112c.103-.114.258-.27.467-.465.56-.519.687-.698.687-.963 0-.206-.023-.31-.096-.31zm.943 1.95l-.339.338c-.19.18-.529.402-.761.497l-.046.02-.003.005-.01.01c-.009.007-.013.008-.02.011a3.432 3.432 0 01-.282.093 3.058 3.058 0 01-.65.115 1.035 1.035 0 01-.31-.027.364.364 0 01-.218-.144c-.048-.074-.062-.173-.035-.295a1.11 1.11 0 01.095-.25l-3.197 2.526h4.252l.508-.582c.698-.814 1.016-1.396 1.016-1.894z",source:"https://www.styled-components.com",hex:"DB7093"})},{name:"Vite",category:"web",...m({title:"Vite",slug:"vite",get svg(){return s+"Vite"+l+this.path+c},path:"m8.286 10.578.512-8.657a.306.306 0 0 1 .247-.282L17.377.006a.306.306 0 0 1 .353.385l-1.558 5.403a.306.306 0 0 0 .352.385l2.388-.46a.306.306 0 0 1 .332.438l-6.79 13.55-.123.19a.294.294 0 0 1-.252.14c-.177 0-.35-.152-.305-.369l1.095-5.301a.306.306 0 0 0-.388-.355l-1.433.435a.306.306 0 0 1-.389-.354l.69-3.375a.306.306 0 0 0-.37-.36l-2.32.536a.306.306 0 0 1-.374-.316zm14.976-7.926L17.284 3.74l-.544 1.887 2.077-.4a.8.8 0 0 1 .84.369.8.8 0 0 1 .034.783L12.9 19.93l-.013.025-.015.023-.122.19a.801.801 0 0 1-.672.37.826.826 0 0 1-.634-.302.8.8 0 0 1-.16-.67l1.029-4.981-1.12.34a.81.81 0 0 1-.86-.262.802.802 0 0 1-.165-.67l.63-3.08-2.027.468a.808.808 0 0 1-.768-.233.81.81 0 0 1-.217-.6l.389-6.57-7.44-1.33a.612.612 0 0 0-.64.906L11.58 23.691a.612.612 0 0 0 1.066-.004l11.26-20.135a.612.612 0 0 0-.644-.9z",source:"https://vitejs.dev",hex:"646CFF"})},{name:"ShadCN",category:"web",...m({title:"shadcn/ui",slug:"shadcnui",get svg(){return s+"shadcn/ui"+l+this.path+c},path:"M22.219 11.784 11.784 22.219c-.407.407-.407 1.068 0 1.476.407.407 1.068.407 1.476 0L23.695 13.26c.407-.408.407-1.069 0-1.476-.408-.407-1.069-.407-1.476 0ZM20.132.305.305 20.132c-.407.407-.407 1.068 0 1.476.408.407 1.069.407 1.476 0L21.608 1.781c.407-.407.407-1.068 0-1.476-.408-.407-1.069-.407-1.476 0Z",source:"https://ui.shadcn.com",hex:"000000"})},{name:"Material UI",category:"web",...m({title:"MUI",slug:"mui",get svg(){return s+"MUI"+l+this.path+c},path:"M20.229 15.793a.666.666 0 0 0 .244-.243.666.666 0 0 0 .09-.333l.012-3.858a.666.666 0 0 1 .09-.333.666.666 0 0 1 .245-.243L23 9.58a.667.667 0 0 1 .333-.088.667.667 0 0 1 .333.09.667.667 0 0 1 .244.243.666.666 0 0 1 .089.333v7.014a.667.667 0 0 1-.335.578l-7.893 4.534a.666.666 0 0 1-.662 0l-6.194-3.542a.667.667 0 0 1-.246-.244.667.667 0 0 1-.09-.335v-3.537c0-.004.004-.006.008-.004s.008 0 .008-.005v-.004c0-.003.002-.005.004-.007l5.102-2.93c.004-.003.002-.01-.003-.01a.005.005 0 0 1-.004-.002.005.005 0 0 1-.001-.004l.01-3.467a.667.667 0 0 0-.333-.58.667.667 0 0 0-.667 0L8.912 9.799a.667.667 0 0 1-.665 0l-3.804-2.19a.667.667 0 0 0-.999.577v6.267a.667.667 0 0 1-.332.577.666.666 0 0 1-.332.09.667.667 0 0 1-.333-.088L.336 13.825a.667.667 0 0 1-.246-.244.667.667 0 0 1-.09-.336L.019 2.292a.667.667 0 0 1 .998-.577l7.23 4.153a.66
17.667 0 0 0 .665 0l7.228-4.153a.666.666 0 0 1 .333-.088.666.666 0 0 1 .333.09.667.667 0 0 1 .244.244.667.667 0 0 1 .088.333V13.25c0 .117-.03.232-.089.334a.667.667 0 0 1-.245.244l-3.785 2.18a.667.667 0 0 0-.245.245.666.666 0 0 0-.089.334.667.667 0 0 0 .09.334.666.666 0 0 0 .247.244l2.088 1.189a.67.67 0 0 0 .33.087.667.667 0 0 0 .332-.089l4.457-2.56Zm.438-9.828a.666.666 0 0 0 .09.335.666.666 0 0 0 .248.244.667.667 0 0 0 .67-.008l2.001-1.2a.666.666 0 0 0 .237-.243.667.667 0 0 0 .087-.329V2.32a.667.667 0 0 0-.091-.335.667.667 0 0 0-.584-.33.667.667 0 0 0-.334.094l-2 1.2a.666.666 0 0 0-.238.243.668.668 0 0 0-.086.329v2.445Z",source:"https://github.com/mui-org/material-ui/blob/353cecb5391571163eb6bd8cbf36d2dd299aaf56/docs/src/icons/SvgMuiLogo.tsx",hex:"007FFF"})},{name:"GraphQL",category:"web",...m(u)},{name:"REST APIs",category:"web",...m({title:"OpenAPI Initiative",slug:"openapiinitiative",get svg(){return s+"OpenAPI Initiative"+l+this.path+c},path:"M21.039 0a2.959 2.959 0 00-2.65 4.274l-6.447 6.447a2.96 2.96 0 101.335 1.336l6.447-6.447A2.959 2.959 0 1021.04 0zM10.628 2.745c-.072 0-.143.003-.214.004-.072.002-.143.002-.215.005-.447.018-.893.064-1.335.138l-.03.005-.185.033-.105.02a7.718 7.718 0 00-.289.062l-.032.008a10.69 10.69 0 00-2.55.95l-.155.089c-.063.034-.125.07-.187.105-.046.027-.093.051-.14.079H5.19l-.01.005-.036.02v.002l.111.184 3.15 5.23a4.168 4.168 0 01.38-.202 4.294 4.294 0 011.628-.413c.071-.004.143-.008.214-.008zm.428.01v6.333c.325.034.647.103.96.209l4.66-4.66c-.173-.12-.348-.237-.528-.347l-.026-.015c-.056-.035-.112-.067-.168-.1l-.098-.056-.099-.055a12.735 12.735 0 00-.171-.092l-.027-.014a10.628 10.628 0 00-1.425-.617c-.69-.241-1.403-.41-2.128-.505l-.089-.012-.09-.01a6.56 6.56 0 00-.17-.019l-.049-.004-.204-.017a6.44 6.44 0 00-.255-.015c-.031-.003-.062-.003-.093-.004zM4.782 4.498a9.92 9.92 0 00-1.36 1.062l4.461 4.461.018.018c.049-.04.098-.078.149-.116l-.011-.018zm-1.67 1.36c-.05.05-.098.103-.147.154l-.149.155c-.33.357-.63.73-.902 1.118l-.039.056a10.588 10.588 0 00-.216.326 10.6 10.6 0 00-1.65 5.276l-.006.215-.003.214h6.317c0-.072.007-.143.01-.214.005-.072.006-.144.013-.215.081-.822.399-1.625.952-2.3.045-.055.096-.106.144-.16.048-.052.093-.107.144-.158zm16.255 1.464l-4.663 4.663c.106.312.175.634.21.959h6.332l-.004-.094a11.579 11.579 0 00-.032-.456l-.005-.052a13.044 13.044 0 00-.026-.241v-.009l-.033-.24v-.009a10.618 10.618 0 00-.327-1.493l-.003-.01a15.839 15.839 0 00-.07-.228l-.01-.03a14.111 14.111 0 00-.069-.204l-.02-.055a5.65 5.65 0 00-.153-.405 7.84 7.84 0 00-.093-.227 16.67 16.67 0 00-.063-.144l-.037-.081a13.776 13.776 0 00-.08-.171l-.024-.052-.096-.194-.014-.027a11.2 11.2 0 00-.112-.212l-.004-.008a10.615 10.615 0 00-.604-.98zm-4.43 6.05c0 .071-.006.142-.01.214-.003.072-.005.143-.012.214a4.29 4.29 0 01-.952 2.301c-.045.055-.096.107-.144.16-.048.053-.093.108-.144.159l4.467 4.467c.051-.051.099-.104.148-.155.05-.052.1-.103.148-.155.331-.358.633-.733.905-1.122l.032-.046.098-.144.085-.13.04-.063a10.597 10.597 0 001.647-5.272c.003-.071.004-.143.006-.214.001-.071.004-.143.004-.214zM.01 13.8l.004.093.01.179.005.076.017.206.005.046c.007.076.015.153.024.228l.003.022a9.605 9.605 0 00.033.248c.072.505.182 1.005.327 1.497l.002.006c.022.077.047.154.071.23l.004.014.005.014a15.737 15.737 0 00.153.439l.03.08.059.148a7.702 7.702 0 00.093.228l.062.14.038.084.078.169.027.054a10.677 10.677 0 00.225.441l.025.043 5.408-3.258.02-.012a4.314 4.314 0 01-.395-1.414h-.025zm.505 2.846l-.206.058.002.005zm6.425-1.052l-5.415 3.262c.083.139.17.273.259.406l.008.014.004.005.008.014h.001c.007.012.014.022.022.032l.001.002v.001a10.634 10.634 0 00.298.417l.006.008a9.963 9.963 0 00.29.368l.033.04c.043.052.086.103.13.153l.057.065.112.127.064.069.029.031.083.09.035.035c.049.051.098.103.149.153L7.58 16.42a3.86 3.86 0 01-.285-.321 4.422 4.422 0 01-.356-.505zm6.416 1.111c-.05.04-.1.079-.15.116l.011.018 3.257 5.407c.151-.099.3-.2.446-.307.315-.232.62-.484.914-.756l-4.46-4.46zm-5.457.003l-.015.015-4.46 4.46a8.966 8.966 0 00.195.176c.022.02.043.04.065.058l.152.13a10.622 10.622 0 00.215.174l.023.017.191.148.008.005c.268.2.547.389.834.564l.03.018.164.097.101.057a5.458 5.458 0 00.27.148c.008.004.016.01.025.013.162.085.327.164.493.24l.158-.385 2.243-5.448.009-.02a4.328 4.328 0 01-.701-.467zm4.951.353c-.061.037-.124.07-.187.104a4.318 4.318 0 01-3.271.336c-.069-.02-.135-.047-.203-.071-.067-.024-.136-.044-.202-.072l-2.242 5.444-.088.213-.075.183v.001l.017.007a.137.137 0 00.019.007l.005.003c.052.021.106.04.159.06.067.027.133.053.2.077l.102.04c.702.247 1.43.42 2.168.518l.087.012.09.01.172.019a7.173 7.
1173 0 00.252.022c.023.001.048.001.071.003l.184.011.112.005a7.06 7.06 0 00.358.007h.05a10.667 10.667 0 001.793-.15l.185-.034.105-.02.109-.023.18-.04.032-.008a10.684 10.684 0 002.55-.95c.052-.028.104-.06.156-.089.063-.034.125-.07.187-.105.043-.024.087-.047.13-.073h.001l.002-.002.002-.001.002-.001.007-.004.042-.025-.11-.183-.11-.184zm3.262 5.414l-.042.025.042-.024zm-.05.029zm-.005.004h-.002z",source:"https://www.openapis.org/faq/style-guide",hex:"6BA539",guidelines:"https://www.openapis.org/faq/style-guide"})},{name:"Node.js",category:"backend",...m({title:"Node.js",slug:"nodedotjs",get svg(){return s+"Node.js"+l+this.path+c},path:"M11.998,24c-0.321,0-0.641-0.084-0.922-0.247l-2.936-1.737c-0.438-0.245-0.224-0.332-0.08-0.383 c0.585-0.203,0.703-0.25,1.328-0.604c0.065-0.037,0.151-0.023,0.218,0.017l2.256,1.339c0.082,0.045,0.197,0.045,0.272,0l8.795-5.076 c0.082-0.047,0.134-0.141,0.134-0.238V6.921c0-0.099-0.053-0.192-0.137-0.242l-8.791-5.072c-0.081-0.047-0.189-0.047-0.271,0 L3.075,6.68C2.99,6.729,2.936,6.825,2.936,6.921v10.15c0,0.097,0.054,0.189,0.139,0.235l2.409,1.392 c1.307,0.654,2.108-0.116,2.108-0.89V7.787c0-0.142,0.114-0.253,0.256-0.253h1.115c0.139,0,0.255,0.112,0.255,0.253v10.021 c0,1.745-0.95,2.745-2.604,2.745c-0.508,0-0.909,0-2.026-0.551L2.28,18.675c-0.57-0.329-0.922-0.945-0.922-1.604V6.921 c0-0.659,0.353-1.275,0.922-1.603l8.795-5.082c0.557-0.315,1.296-0.315,1.848,0l8.794,5.082c0.57,0.329,0.924,0.944,0.924,1.603 v10.15c0,0.659-0.354,1.273-0.924,1.604l-8.794,5.078C12.643,23.916,12.324,24,11.998,24z M19.099,13.993 c0-1.9-1.284-2.406-3.987-2.763c-2.731-0.361-3.009-0.548-3.009-1.187c0-0.528,0.235-1.233,2.258-1.233 c1.807,0,2.473,0.389,2.747,1.607c0.024,0.115,0.129,0.199,0.247,0.199h1.141c0.071,0,0.138-0.031,0.186-0.081 c0.048-0.054,0.074-0.123,0.067-0.196c-0.177-2.098-1.571-3.076-4.388-3.076c-2.508,0-4.004,1.058-4.004,2.833 c0,1.925,1.488,2.457,3.895,2.695c2.88,0.282,3.103,0.703,3.103,1.269c0,0.983-0.789,1.402-2.642,1.402 c-2.327,0-2.839-0.584-3.011-1.742c-0.02-0.124-0.126-0.215-0.253-0.215h-1.137c-0.141,0-0.254,0.112-0.254,0.253 c0,1.482,0.806,3.248,4.655,3.248C17.501,17.007,19.099,15.91,19.099,13.993z",source:"https://nodejs.org/en/about/branding",hex:"5FA04E",guidelines:"https://nodejs.org/en/about/branding"})},{name:"Express.js",category:"backend",...m({title:"Express",slug:"express",get svg(){return s+"Express"+l+this.path+c},path:"M24 18.588a1.529 1.529 0 01-1.895-.72l-3.45-4.771-.5-.667-4.003 5.444a1.466 1.466 0 01-1.802.708l5.158-6.92-4.798-6.251a1.595 1.595 0 011.9.666l3.576 4.83 3.596-4.81a1.435 1.435 0 011.788-.668L21.708 7.9l-2.522 3.283a.666.666 0 000 .994l4.804 6.412zM.002 11.576l.42-2.075c1.154-4.103 5.858-5.81 9.094-3.27 1.895 1.489 2.368 3.597 2.275 5.973H1.116C.943 16.447 4.005 19.009 7.92 17.7a4.078 4.078 0 002.582-2.876c.207-.666.548-.78 1.174-.588a5.417 5.417 0 01-2.589 3.957 6.272 6.272 0 01-7.306-.933 6.575 6.575 0 01-1.64-3.858c0-.235-.08-.455-.134-.666A88.33 88.33 0 010 11.577zm1.127-.286h9.654c-.06-3.076-2.001-5.258-4.59-5.278-2.882-.04-4.944 2.094-5.071 5.264z",source:"https://github.com/openjs-foundation/artwork/blob/ac43961d1157f973c54f210cf5e0c9c45e3d3f10/projects/express/express-icon-black.svg",hex:"000000"})},{name:"GraphQL",category:"backend",...m(u)},{name:"WebSockets",category:"backend",...m({title:"Socket.io",slug:"socketdotio",get svg(){return s+"Socket.io"+l+this.path+c},path:"M11.9362.0137a12.1694 12.1694 0 00-2.9748.378C4.2816 1.5547.5678 5.7944.0918 10.6012c-.59 4.5488 1.7079 9.2856 5.6437 11.6345 3.8608 2.4179 9.0926 2.3199 12.8734-.223 3.3969-2.206 5.5118-6.2277 5.3858-10.2845-.058-4.0159-2.31-7.9167-5.7588-9.9796C16.354.5876 14.1431.0047 11.9362.0137zm-.063 1.696c4.9448-.007 9.7886 3.8137 10.2815 8.9245.945 5.6597-3.7528 11.4125-9.4875 11.5795-5.4538.544-10.7245-4.0798-10.8795-9.5566-.407-4.4338 2.5159-8.8346 6.6977-10.2995a9.1126 9.1126 0 013.3878-.647zm5.0908 3.2248c-2.6869 2.0849-5.2598 4.3078-7.8886 6.4567 1.2029.017 2.4118.016 3.6208.01 1.41-2.165 2.8589-4.3008 4.2678-6.4667zm-5.6647 7.6536c-1.41 2.166-2.86 4.3088-4.2699 6.4737 2.693-2.0799 5.2548-4.3198 7.9017-6.4557a255.4132 255.4132 0 00-3.6318-.018z",source:"https://socket.io",hex:"010101"})},{name:"Temporal",category:"backend",...m({title:"Temporal",slug:"temporal",get svg(){return s+"Temporal"+l+this.path+c},path:"M16.206 7.794C15.64 3.546 14.204 0 12 0 9.796 0 8.361 3.546 7.794 7.794 3.546 8.36 0 9.796 0 12c0 2.204 3.546 3.639 7.794 4.206C8.36 20.453 9.796 24 12 24c2.204 0 3.639-3.546 4.206-7.794C20.454 15.64 24 14.204 24 12c0-2.204-3.547-3.64-7.794-4.206Zm-8.55 7.174c-4.069-.587-6.44-1.932-6.44-2.969 0-1.036 2.372-2.381 6.44-2.969-.09.98-.137 1.98-.137 2.97 0 .99.047 1.99.137 2.968zM12 1.215c1.036 0 2.381 2.372 2.969 6.44a32.718 32.718 0 0 0-5.938 0c.587-4.068 1.932-6.44 2.969-6.44Zm4.344 13.753c-.2.03-1.022.126-1.23.146-.02.209-.117 1.03-.145 1.23-.588 4.068-1.933 6.44-2.97 6.44-1.036 0-2.38-2.372-2.968-6.44-.03
1-.2-.126-1.022-.147-1.23a31.833 31.833 0 0 1 0-6.23 31.813 31.813 0 0 1 7.46.146c4.068.587 6.442 1.933 6.442 2.969-.001 1.036-2.374 2.382-6.442 2.97z",source:"https://github.com/temporalio/temporaldotio/blob/b6b5f3ed1fda818d5d6c07e27ec15d51a61f2267/public/images/icons/temporal-no-text.svg",hex:"000000"})},{name:"Serverless",category:"backend",...m({title:"Serverless",slug:"serverless",get svg(){return s+"Serverless"+l+this.path+c},path:"M0 17.57h4.248l-1.316 3.974H0zm0-7.557h6.75l-1.316 3.974H0zm0-7.557h9.252L7.936 6.431H0zm13.44 0H24v3.975H12.123zM9.62 13.987l1.317-3.974H24v3.974zM8.436 17.57H24v3.975H7.119Z",source:"https://serverless.com",hex:"FD5750"})},{name:"Stripe",category:"backend",...m({title:"Stripe",slug:"stripe",get svg(){return s+"Stripe"+l+this.path+c},path:"M13.976 9.15c-2.172-.806-3.356-1.426-3.356-2.409 0-.831.683-1.305 1.901-1.305 2.227 0 4.515.858 6.09 1.631l.89-5.494C18.252.975 15.697 0 12.165 0 9.667 0 7.589.654 6.104 1.872 4.56 3.147 3.757 4.992 3.757 7.218c0 4.039 2.467 5.76 6.476 7.219 2.585.92 3.445 1.574 3.445 2.583 0 .98-.84 1.545-2.354 1.545-1.875 0-4.965-.921-6.99-2.109l-.9 5.555C5.175 22.99 8.385 24 11.714 24c2.641 0 4.843-.624 6.328-1.813 1.664-1.305 2.525-3.236 2.525-5.732 0-4.128-2.524-5.851-6.594-7.305h.003z",source:"https://stripe.com/newsroom/information",hex:"635BFF"})},{name:"Postgres",category:"database",...m({title:"PostgreSQL",slug:"postgresql",get svg(){return s+"PostgreSQL"+l+this.path+c},path:"M23.5594 14.7228a.5269.5269 0 0 0-.0563-.1191c-.139-.2632-.4768-.3418-1.0074-.2321-1.6533.3411-2.2935.1312-2.5256-.0191 1.342-2.0482 2.445-4.522 3.0411-6.8297.2714-1.0507.7982-3.5237.1222-4.7316a1.5641 1.5641 0 0 0-.1509-.235C21.6931.9086 19.8007.0248 17.5099.0005c-1.4947-.0158-2.7705.3461-3.1161.4794a9.449 9.449 0 0 0-.5159-.0816 8.044 8.044 0 0 0-1.3114-.1278c-1.1822-.0184-2.2038.2642-3.0498.8406-.8573-.3211-4.7888-1.645-7.2219.0788C.9359 2.1526.3086 3.8733.4302 6.3043c.0409.818.5069 3.334 1.2423 5.7436.4598 1.5065.9387 2.7019 1.4334 3.582.553.9942 1.1259 1.5933 1.7143 1.7895.4474.1491 1.1327.1441 1.8581-.7279.8012-.9635 1.5903-1.8258 1.9446-2.2069.4351.2355.9064.3625 1.39.3772a.0569.0569 0 0 0 .0004.0041 11.0312 11.0312 0 0 0-.2472.3054c-.3389.43
102-.4094.5197-1.5002.7443-.3102.064-1.1344.2339-1.1464.8115-.0025.1224.0329.2309.0919.3268.2269.4231.9216.6097 1.015.6331 1.3345.3335 2.5044.092 3.3714-.6787-.017 2.231.0775 4.4174.3454 5.0874.2212.5529.7618 1.9045 2.4692 1.9043.2505 0 .5263-.0291.8296-.0941 1.7819-.3821 2.5557-1.1696 2.855-2.9059.1503-.8707.4016-2.8753.5388-4.1012.0169-.0703.0357-.1207.057-.1362.0007-.0005.0697-.0471.4272.0307a.3673.3673 0 0 0 .0443.0068l.2539.0223.0149.001c.8468.0384 1.9114-.1426 2.5312-.4308.6438-.2988 1.8057-1.0323 1.5951-1.6698zM2.371 11.8765c-.7435-2.4358-1.1779-4.8851-1.2123-5.5719-.1086-2.1714.4171-3.6829 1.5623-4.4927 1.8367-1.2986 4.8398-.5408 6.108-.13-.0032.0032-.0066.0061-.0098.0094-2.0238 2.044-1.9758 5.536-1.9708 5.7495-.0002.0823.0066.1989.0162.3593.0348.5873.0996 1.6804-.0735 2.9184-.1609 1.1504.1937 2.2764.9728 3.0892.0806.0841.1648.1631.2518.2374-.3468.3714-1.1004 1.1926-1.9025 2.1576-.5677.6825-.9597.5517-1.0886.5087-.3919-.1307-.813-.5871-1.2381-1.3223-.4796-.839-.9635-2.0317-1.4155-3.5126zm6.0072 5.0871c-.1711-.0428-.3271-.1132-.4322-.1772.0889-.0394.2374-.0902.4833-.1409 1.2833-.2641 1.4815-.4506 1.9143-1.0002.0992-.126.2116-.2687.3673-.4426a.3549.3549 0 0 0 .0737-.1298c.1708-.1513.2724-.1099.4369-.0417.156.0646.3078.26.3695.4752.0291.1016.0619.2945-.0452.4444-.9043 1.2658-2.2216 1.2494-3.1676 1.0128zm2.094-3.988-.0525.141c-.133.3566-.2567.6881-.3334 1.003-.6674-.0021-1.3168-.2872-1.8105-.8024-.6279-.6551-.9131-1.5664-.7825-2.5004.1828-1.3079.1153-2.4468.079-3.0586-.005-.0857-.0095-.1607-.0122-.2199.2957-.2621 1.6659-.9962 2.6429-.7724.4459.1022.7176.4057.8305.928.5846 2.7038.0774 3.8307-.3302 4.7363-.084.1866-.1633.3629-.2311.5454zm7.3637 4.5725c-.0169.1768-.0358.376-.0618.5959l-.146.4383a.3547.3547 0 0 0-.0182.1077c-.0059.4747-.054.6489-.115.8693-.0634.2292-.1353.4891-.1794 1.0575-.11 1.4143-.8782 2.2267-2.4172 2.5565-1.5155.3251-1.7843-.4968-2.0212-1.2217a6.5824 6.5824 0 0 0-.0769-.2266c-.2154-.5858-.1911-1.4119-.1574-2.5551.0165-.5612-.0249-1.9013-.3302-2.6462.0044-.2932.0106-.5909.019-.8918a.3529.3529 0 0 0-.0153-.1126 1.4927 1.4927 0 0 0-.0439-.208c-.1226-.4283-.4213-.7866-.7797-.9351-.1424-.059-.4038-.1672-.7178-.0869.067-.276.1831-.5875.309-.9249l.0529-.142c.0595-.16.134-.3257.213-.5012.4265-.9476 1.0106-2.2453.3766-5.1772-.2374-1.0981-1.0304-1.6343-2.2324-1.5098-.7207.0746-1.3799.3654-1.7088.5321a5.6716 5.6716 0 0 0-.1958.1041c.0918-1.1064.4386-3.1741 1.7357-4.4823a4.0306 4.0306 0 0 1 .3033-.276.3532.3532 0 0 0 .1447-.0644c.7524-.5706 1.6945-.8506 2.802-.8325.4091.0067.8017.0339 1.1742.081 1.939.3544 3.2439 1.4468 4.0359 2.3827.8143.9623 1.2552 1.9315 1.4312 2.4543-1.3232-.1346-2.2234.1268-2.6797.779-.9926 1.4189.543 4.1729 1.2811 5.4964.1353.2426.2522.4522.2889.5413.2403.5825.5515.9713.7787 1.2552.0696.087.1372.1714.1885.245-.4008.1155-1.1208.3825-1.0552 1.717-.0123.1563-.0423.4469-.0834.8148-.0461.2077-.0702.4603-.0994.7662zm.8905-1.6211c-.0405-.8316.2691-.9185.5967-1.0105a2.8566 2.8566 0 0 0 .135-.0406 1.202 1.202 0 0 0 .1342.103c.5703.3765 1.5823.4213 3.0068.1344-.2016.1769-.5189.3994-.9533.6011-.4098.1903-1.0957.333-1.7473.3636-.7197.0336-1.0859-.0807-1.1721-.151zm.5695-9.2712c-.0059.3508-.0542.6692-.1054 1.0017-.055.3576-.112.7274-.1264 1.1762-.0142.4368.0404.8909.0932 1.3301.1066.887.216 1.8003-.2075 2.7014a3.5272 3.5272 0 0 1-.1876-.3856c-.0527-.1276-.1669-.3326-.3251-.6162-.6156-1.1041-2.0574-3.6896-1.3193-4.7446.3795-.5427 1.3408-.5661 2.1781-.463zm.2284 7.0137a12.3762 12.3762 0 0 0-.0853-.1074l-.0355-.0444c.7262-1.1995.5842-2.3862.4578-3.4385-.0519-.4318-.1009-.8396-.0885-1.2226.0129-.4061.0666-.7543.1185-1.0911.0639-.415.1288-.8443.1109-1.3505.0134-.0531.0188-.1158.0118-.1902-.0457-.4855-.5999-1.938-1.7294-3.253-.6076-.7073-1.4896-1.4972-2.6889-2.0395.5251-.1066 1.2328-.2035 2.0244-.1859 2.0515.0456 3.6746.8135 4.8242 2.2824a.908.908 0 0 1 .0667.1002c.7231 1.3556-.2762 6.2751-2.9867 10.5405zm-8.8166-6.1162c-.025.1794-.3089.4225-.6211.4225a.5821.5821 0 0 1-.0809-.0056c-.1873-.026-.3765-.144-.5059-.3156-.0458-.0605-.1203-.178-.1055-.2844.0055-.0401.0261-.0985.0925-.1488.1182-.0894.3518-.1226.6096-.0867.3163.0441.6426.1938.6113.4186zm7.9305-.4114c.0111.0792-.049.201-.1531.3102-.0683.0717-.212.1961-.4079.2232a.5456.5456 0 0 1-.075.0052c-.2935 0-.5414-.2344-.5607-.3717-.024-.1765.2641-.3106.5611-.352.297-.0414.6111.0088.6356.1851z",source:"https://wiki.postgresql.org/wiki/Logo",hex:"4169E1",guidelines:"https://www.postgresql.org/about/policies/trademarks/"})},{name:"Drizzle ORM",category:"database",...m({title:"Drizzle",slug:"drizzle",get svg(){return s+"Drizzle"+l+this.path+c},path:"M5.353 11.823a1.036 1.036 0 0 0-.395-1.422 1.063 1.063 0 0 0-1.437.399L.138 16.702a1.035 1.035 0 0 0 .395 1.422 1.063 1.063 0 0 0 1.437-.398l3.383-5.903Zm11.216 0a1.036 1.036 0 0 0-.394-1.422 1.064 1.064 0 0 0-1.438.399l-3.382 5.902a1.036 1.036 0 0 0 .394 1.422c.506.283 1.15.104 1.438-.398l3.382-5.903Zm7.293-4.525a1.036 1.036 0 0 0-.395-1.422 1.062 1.062 0 0 0-1.437.399l-3.383 5.902a1.036 1.036 0 0 0 .395 1.422 1.063 1.063 0 0 0 1.437-.399l3.383-5.902Zm-11.219 0a1.035 1.035 0 0 0-.394-1.422 1.064 1.064 0 0 0-1.438.398l-3.382 5.903a1.036 1.036 0 0 0 .394 1.422c.506.282 1.15.104 1.438-.399l3.382-5.902Z",source:"https://orm.drizzle.team",hex:"C5F74F"})},{name:"MongoDB",category:"database",...m({title:"MongoDB",slug:"mongodb",get svg(){return s+"MongoDB"+l+this.path+c},path:"M17.193 9.555c-1.264-5.58-4.252-7.414-4.573-8.115-.28-.394-.53-.954-.735-1.44-.036.495-.055.685-.523 1.184-.723.566-4.438 3.682-4.74 10.02-.282 5.912 4.27 9.435 4.888 9.884l.07.05A73.49 73.49 0 0111.91 24h.481c.114-1.032.284-2.056.51-3.07.417-.296.604-.463.85-.693a11.342 11.342 0 003.639-8.464c.01-.814-.103-1.662-.197-2.218zm-5.336 8.195s0-8.291.275-8.29c.213 0 .49 10.695.49 10.695-.381-.045-.765-1.76-.765-2.405z",s
1ource:"https://www.mongodb.com/pressroom",hex:"47A248"})},{name:"MySQL",category:"database",...m({title:"MySQL",slug:"mysql",get svg(){return s+"MySQL"+l+this.path+c},path:"M16.405 5.501c-.115 0-.193.014-.274.033v.013h.014c.054.104.146.18.214.273.054.107.1.214.154.32l.014-.015c.094-.066.14-.172.14-.333-.04-.047-.046-.094-.08-.14-.04-.067-.126-.1-.18-.153zM5.77 18.695h-.927a50.854 50.854 0 00-.27-4.41h-.008l-1.41 4.41H2.45l-1.4-4.41h-.01a72.892 72.892 0 00-.195 4.41H0c.055-1.966.192-3.81.41-5.53h1.15l1.335 4.064h.008l1.347-4.064h1.095c.242 2.015.384 3.86.428 5.53zm4.017-4.08c-.378 2.045-.876 3.533-1.492 4.46-.482.716-1.01 1.073-1.583 1.073-.153 0-.34-.046-.566-.138v-.494c.11.017.24.026.386.026.268 0 .483-.075.647-.222.197-.18.295-.382.295-.605 0-.155-.077-.47-.23-.944L6.23 14.615h.91l.727 2.36c.164.536.233.91.205 1.123.4-1.064.678-2.227.835-3.483zm12.325 4.08h-2.63v-5.53h.885v4.85h1.745zm-3.32.135l-1.016-.5c.09-.076.177-.158.255-.25.433-.506.648-1.258.648-2.253 0-1.83-.718-2.746-2.155-2.746-.704 0-1.254.232-1.65.697-.43.508-.646 1.256-.646 2.245 0 .972.19 1.686.574 2.14.35.41.877.615 1.583.615.264 0 .506-.033.725-.098l1.325.772.36-.622zM15.5 17.588c-.225-.36-.337-.94-.337-1.736 0-1.393.424-2.09 1.27-2.09.443 0 .77.167.977.5.224.362.336.936.336 1.723 0 1.404-.424 2.108-1.27 2.108-.445 0-.77-.167-.978-.5zm-1.658-.425c0 .47-.172.856-.516 1.156-.344.3-.803.45-1.384.45-.543 0-1.064-.172-1.573-.515l.237-.476c.438.22.833.328 1.19.328.332 0 .593-.073.783-.22a.754.754 0 00.3-.615c0-.33-.23-.61-.648-.845-.388-.213-1.163-.657-1.163-.657-.422-.307-.632-.636-.632-1.177 0-.45.157-.81.47-1.085.315-.278.72-.415 1.22-.415.512 0 .98.136 1.4.41l-.213.476a2.726 2.726 0 00-1.064-.23c-.283 0-.502.068-.654.206a.685.685 0 00-.248.524c0 .328.234.61.666.85.393.215 1.187.67 1.187.67.433.305.648.63.648 1.168zm9.382-5.852c-.535-.014-.95.04-1.297.188-.1.04-.26.04-.274.167.055.053.063.14.11.214.08.134.218.313.346.407.14.11.28.216.427.31.26.16.555.255.81.416.145.094.293.213.44.313.073.05.12.14.214.172v-.02c-.046-.06-.06-.147-.105-.214-.067-.067-.134-.127-.2-.193a3.223 3.223 0 00-.695-.675c-.214-.146-.682-.35-.77-.595l-.013-.014c.146-.013.32-.066.46-.106.227-.06.435-.047.67-.106.106-.027.213-.06.32-.094v-.06c-.12-.12-.21-.283-.334-.395a8.867 8.867 0 00-1.104-.823c-.21-.134-.476-.22-.697-.334-.08-.04-.214-.06-.26-.127-.12-.146-.19-.34-.275-.514a17.69 17.69 0 01-.547-1.163c-.12-.262-.193-.523-.34-.763-.69-1.137-1.437-1.826-2.586-2.5-.247-.14-.543-.2-.856-.274-.167-.008-.334-.02-.5-.027-.11-.047-.216-.174-.31-.235-.38-.24-1.364-.76-1.644-.072-.18.434.267.862.422 1.082.115.153.26.328.34.5.047.116.06.235.107.356.106.294.207.622.347.897.073.14.153.287.247.413.054.073.146.107.167.227-.094.136-.1.334-.154.5-.24.757-.146 1.693.194 2.25.107.166.362.534.703.393.3-.12.234-.5.32-.835.02-.08.007-.133.048-.187v.015c.094.188.188.367.274.555.206.328.566.668.867.895.16.12.287.328.487.402v-.02h-.015c-.043-.058-.1-.086-.154-.133a3.445 3.445 0 01-.35-.4 8.76 8.76 0 01-.747-1.218c-.11-.21-.202-.436-.29-.643-.04-.08-.04-.2-.107-.24-.1.146-.247.273-.32.453-.127.288-.14.642-.188 1.01-.027.007-.014 0-.027.014-.214-.052-.287-.274-.367-.46-.2-.475-.233-1.238-.06-1.785.047-.14.247-.582.167-.716-.042-.127-.174-.2-.247-.303a2.478 2.478 0 01-.24-.427c-.16-.374-.24-.788-.414-1.162-.08-.173-.22-.354-.334-.513-.127-.18-.267-.307-.368-.52-.033-.073-.08-.194-.027-.274.014-.054.042-.075.094-.09.088-.072.335.022.422.062.247.1.455.194.662.334.094.066.195.193.315.226h.14c.214.047.455.014.655.073.355.114.675.28.962.46a5.953 5.953 0 012.085 2.286c.08.154.115.295.188.455.14.33.313.663.455.982.14.315.275.636.476.897.1.14.502.213.682.286.133.06.34.115.46.188.23.14.454.3.67.454.11.076.443.243.463.378z",source:"https://www.mysql.com/about/legal/logos.html",hex:"4479A1",guidelines:"https://www.mysql.com/about/legal/logos.html"})},{name:"Prisma",category:"database",...m({title:"Prisma",slug:"prisma",get svg(){return s+"Prisma"+l+this.path+c},path:"M21.8068 18.2848L13.5528.7565c-.207-.4382-.639-.7273-1.1286-.7541-.5023-.0293-.9523.213-1.2062.6253L2.266 15.1271c-.2773.4518-.2718 1.0091.0158 1.4555l4.3759 6.7
1786c.2608.4046.7127.6388 1.1823.6388.1332 0 .267-.0188.3987-.0577l12.7019-3.7568c.3891-.1151.7072-.3904.8737-.7553s.1633-.7828-.0075-1.1454zm-1.8481.7519L9.1814 22.2242c-.3292.0975-.6448-.1873-.5756-.5194l3.8501-18.4386c.072-.3448.5486-.3996.699-.0803l7.1288 15.138c.1344.2856-.019.6224-.325.7128z",source:"https://github.com/prisma/presskit/tree/4bcb64181f266723439d955d60afa1c55fefa715",hex:"2D3748"})},{name:"Redis",category:"database",...m({title:"Redis",slug:"redis",get svg(){return s+"Redis"+l+this.path+c},path:"M22.71 13.145c-1.66 2.092-3.452 4.483-7.038 4.483-3.203 0-4.397-2.825-4.48-5.12.701 1.484 2.073 2.685 4.214 2.63 4.117-.133 6.94-3.852 6.94-7.239 0-4.05-3.022-6.972-8.268-6.972-3.752 0-8.4 1.428-11.455 3.685C2.59 6.937 3.885 9.958 4.35 9.626c2.648-1.904 4.748-3.13 6.784-3.744C8.12 9.244.886 17.05 0 18.425c.1 1.261 1.66 4.648 2.424 4.648.232 0 .431-.133.664-.365a100.49 100.49 0 0 0 5.54-6.765c.222 3.104 1.748 6.898 6.014 6.898 3.819 0 7.604-2.756 9.33-8.965.2-.764-.73-1.361-1.261-.73zm-4.349-5.013c0 1.959-1.926 2.922-3.685 2.922-.941 0-1.664-.247-2.235-.568 1.051-1.592 2.092-3.225 3.21-4.973 1.972.334 2.71 1.43 2.71 2.619z",source:"https://redis.io/brand-guidelines",hex:"FF4438",guidelines:"https://redis.io/brand-guidelines"})},{name:"Supabase",category:"database",...m({title:"Supabase",slug:"supabase",get svg(){return s+"Supabase"+l+this.path+c},path:"M11.9 1.036c-.015-.986-1.26-1.41-1.874-.637L.764 12.05C-.33 13.427.65 15.455 2.409 15.455h9.579l.113 7.51c.014.985 1.259 1.408 1.873.636l9.262-11.653c1.093-1.375.113-3.403-1.645-3.403h-9.642z",source:"https://github.com/supabase/supabase/blob/4031a7549f5d46da7bc79c01d56be4177dc7c114/packages/common/assets/images/supabase-logo-wordmark--light.svg",hex:"3FCF8E"})},{name:"Firebase",category:"database",...m({title:"Firebase",slug:"firebase",get svg(){return s+"Firebase"+l+this.path+c},path:"M19.455 8.369c-.538-.748-1.778-2.285-3.681-4.569-.826-.991-1.535-1.832-1.884-2.245a146 146 0 0 0-.488-.576l-.207-.245-.113-.133-.022-.032-.01-.005L12.57 0l-.609.488c-1.555 1.246-2.828 2.851-3.681 4.64-.523 1.064-.864 2.105-1.043 3.176-.047.241-.088.489-.121.738-.209-.017-.421-.028-.632-.033-.018-.001-.035-.002-.059-.003a7.46 7.46 0 0 0-2.28.274l-.317.089-.163.286c-.765 1.342-1.198 2.869-1.252 4.416-.07 2.01.477 3.954 1.583 5.625 1.082 1.633 2.61 2.882 4.42 3.611l.236.095.071.025.003-.001a9.59 9.59 0 0 0 2.941.568q.171.006.342.006c1.273 0 2.513-.249 3.69-.742l.008.004.313-.145a9.63 9.63 0 0 0 3.927-3.335c1.01-1.49 1.577-3.234 1.641-5.042.075-2.161-.643-4.304-2.133-6.371m-7.083 6.695c.328 1.244.264 2.44-.191 3.558-1.135-1.12-1.967-2.352-2.475-3.665-.543-1.404-.87-2.74-.974-3.975.48.157.922.366 1.315.622 1.132.737 1.914 1.902 2.325 3.461zm.207 6.022c.482.368.99.712 1.513 1.028-.771.21-1.565.302-2.369.273a8 8 0 0 1-.373-.022c.458-.394.869-.823 1.228-1.279zm1.347-6.431c-.516-1.957-1.527-3.437-3.002-4.398-.647-.421-1.385-.741-2.194-.95.011-.134.026-.268.043-.4.014-.113.03-.216.046-.313.133-.689.332-1.37.589-2.025.099-.25.206-.499.321-.74l.004-.008c.177-.358.376-.719.61-1.105l.092-.152-.003-.001c.544-.851 1.197-1.627 1.942-2.311l.288.341c.672.796 1.304 1.548 1.878 2.237 1.291 1.549 2.966 3.583 3.612 4.48 1.277 1.771 1.893 3.579 1.83 5.375-.049 1.395-.461 2.755-1.195 3.933-.694 1.116-1.661 2.05-2.8 2.708-.636-.318-1.559-.839-2.539-1.599.79-1.575.952-3.28.479-5.072zm-2.575 5.397c-.725.939-1.587 1.55-2.09 1.856-.081-.029-.163-.06-.243-.093l-.065-.026c-1.49-.616-2.747-1.656-3.635-3.01-.907-1.384-1.356-2.993-1.298-4.653.041-1.19.338-2.327.882-3.379.316-.07.638-.114.96-.131l.084-.002c.162-.003.324-.003.478 0 .227.011.454.035.677.07.073 1.513.445 3.145 1.105 4.852.637 1.644 1.694 3.162 3.144 4.515z",source:"https://firebase.google.com/brand-guidelines",hex:"DD2C00",guidelines:"https://firebase.google.com/brand-guidelines"})},{name:"Vercel",category:"cicd",...m({title:"Vercel",slug:"vercel",get svg(){return s+"Vercel"+l+this.path+c},path:"m12 1.608 12 20.784H0Z",source:"https://vercel.com/geist/brands",hex:"000000",guidelines:"https://vercel.com/geist/brands"})},{name:"GitHub Actions",category:"cicd",...m({title:"GitHub Actions",slug:"githubactions",get svg(){return s+"GitHub Actions"+l+this.path+c},path:"M10.984 13.836a.5.5 0 0 1-.353-.146l-.745-.743a.5.5 0 1 1 .706-.708l.392.391 1.181-1.18a.5.5 0 0 1 .708.707l-1.535 1.533a.504.504 0 0 1-.354.146zm9.353-.147l1.534-1.532a.5.5 0 0 0-.707-.707l-1.181 1.18-.392-.391a.5.5 0 1 0-.706.708l.746.743a.497.497 0 0 0 .706-.
1001zM4.527 7.452l2.557-1.585A1 1 0 0 0 7.09 4.17L4.533 2.56A1 1 0 0 0 3 3.406v3.196a1.001 1.001 0 0 0 1.527.85zm2.03-2.436L4 6.602V3.406l2.557 1.61zM24 12.5c0 1.93-1.57 3.5-3.5 3.5a3.503 3.503 0 0 1-3.46-3h-2.08a3.503 3.503 0 0 1-3.46 3 3.502 3.502 0 0 1-3.46-3h-.558c-.972 0-1.85-.399-2.482-1.042V17c0 1.654 1.346 3 3 3h.04c.244-1.693 1.7-3 3.46-3 1.93 0 3.5 1.57 3.5 3.5S13.43 24 11.5 24a3.502 3.502 0 0 1-3.46-3H8c-2.206 0-4-1.794-4-4V9.899A5.008 5.008 0 0 1 0 5c0-2.757 2.243-5 5-5s5 2.243 5 5a5.005 5.005 0 0 1-4.952 4.998A2.482 2.482 0 0 0 7.482 12h.558c.244-1.693 1.7-3 3.46-3a3.502 3.502 0 0 1 3.46 3h2.08a3.503 3.503 0 0 1 3.46-3c1.93 0 3.5 1.57 3.5 3.5zm-15 8c0 1.378 1.122 2.5 2.5 2.5s2.5-1.122 2.5-2.5-1.122-2.5-2.5-2.5S9 19.122 9 20.5zM5 9c2.206 0 4-1.794 4-4S7.206 1 5 1 1 2.794 1 5s1.794 4 4 4zm9 3.5c0-1.378-1.122-2.5-2.5-2.5S9 11.122 9 12.5s1.122 2.5 2.5 2.5 2.5-1.122 2.5-2.5zm9 0c0-1.378-1.122-2.5-2.5-2.5S18 11.122 18 12.5s1.122 2.5 2.5 2.5 2.5-1.122 2.5-2.5zm-13 8a.5.5 0 1 0 1 0 .5.5 0 0 0-1 0zm2 0a.5.5 0 1 0 1 0 .5.5 0 0 0-1 0zm12 0c0 1.93-1.57 3.5-3.5 3.5a3.503 3.503 0 0 1-3.46-3.002c-.007.001-.013.005-.021.005l-.506.017h-.017a.5.5 0 0 1-.016-.999l.506-.017c.018-.002.035.006.052.007A3.503 3.503 0 0 1 20.5 17c1.93 0 3.5 1.57 3.5 3.5zm-1 0c0-1.378-1.122-2.5-2.5-2.5S18 19.122 18 20.5s1.122 2.5 2.5 2.5 2.5-1.122 2.5-2.5z",source:"https://github.com/features/actions",hex:"2088FF"})},{name:"Netlify",category:"cicd",...m({title:"Netlify",slug:"netlify",get svg(){return s+"Netlify"+l+this.path+c},path:"M6.49 19.04h-.23L5.13 17.9v-.23l1.73-1.71h1.2l.15.15v1.2L6.5 19.04ZM5.13 6.31V6.1l1.13-1.13h.23L8.2 6.68v1.2l-.15.15h-1.2L5.13 6.31Zm9.96 9.09h-1.65l-.14-.13v-3.83c0-.68-.27-1.2-1.1-1.23-.42 0-.9 0-1.43.02l-.07.08v4.96l-.14.14H8.9l-.13-.14V8.73l.13-.14h3.7a2.6 2.6 0 0 1 2.61 2.6v4.08l-.13.14Zm-8.37-2.44H.14L0 12.82v-1.64l.14-.14h6.58l.14.14v1.64l-.14.14Zm17.14 0h-6.58l-.14-.14v-1.64l.14-.14h6.58l.14.14v1.64l-.14.14ZM11.05 6.55V1.64l.14-.14h1.65l.14.14v4.9l-.14.14h-1.65l-.14-.13Zm0 15.81v-4.9l.14-.14h1.65l.14.13v4.91l-.14.14h-1.65l-.14-.14Z",source:"https://www.netlify.com/press/",hex:"00C7B7",guidelines:"https://www.netlify.com/press/"})},{name:"AWS",category:"cicd",...f(({className:e})=>(0,n.jsxs)("svg",{fill:"currentColor",fillRule:"evenodd",height:"1em",style:{flex:"none",lineHeight:1},viewBox:"0 0 24 24",width:"1em",xmlns:"http://www.w3.org/2000/svg",className:e,children:[(0,n.jsx)("title",{children:"AWS"}),(0,n.jsx)("path",{d:"M6.763 11.212c0 .296.032.535.088.71.064.176.144.368.256.576.04.063.056.127.056.183 0 .08-.048.16-.152.24l-.503.335a.383.383 0 01-.208.072c-.08 0-.16-.04-.239-.112a2.47 2.47 0 01-.287-.375 6.18 6.18 0 01-.248-.471c-.622.734-1.405 1.101-2.347 1.101-.67 0-1.205-.191-1.596-.574-.39-.384-.59-.894-.59-1.533 0-.678.24-1.23.726-1.644.487-.415 1.133-.623 1.955-.623.272 0 .551.024.846.064.296.04.6.104.918.176v-.583c0-.607-.127-1.03-.375-1.277-.255-.248-.686-.367-1.3-.367-.28 0-.568.031-.863.103-.295.072-.583.16-.862.272a2.4 2.4 0 01-.28.104.488.488 0 01-.127.023c-.112 0-.168-.08-.168-.247v-.391c0-.128.016-.224.056-.28a.597.597 0 01.224-.167 4.577 4.577 0 011.005-.36 4.84 4.84 0 011.246-.151c.95 0 1.644.216 2.091.647.44.43.662 1.085.662 1.963v2.586h.016zm-3.24 1.214c.263 0 .534-.048.822-.144a1.78 1.78 0 00.758-.51 1.27 1.27 0 00.272-.512c.047-.191.08-.423.08-.694v-.335a6.66 6.66 0 00-.735-.136 6.02 6.02 0 00-.75-.048c-.535 0-.926.104-1.19.32-.263.215-.39.518-.39.917 0 .375.095.655.295.846.191.2.47.296.838.296zm6.41.862c-.144 0-.24-.024-.304-.08-.064-.048-.12-.16-.168-.311L7.586 6.726a1.398 1.398 0 01-.072-.32c0-.128.064-.2.191-.2h.783c.151 0 .255.025.31.08.065.048.113.16.16.312l1.342 5.284 1.245-5.284c.04-.16.088-.264.151-.312a.549.549 0 01.32-.08h.638c.152 0 .256.025.32.08.063.048.12.16.151.312l1.261 5.348 1.381-5.348c.048-.16.104-.264.16-.312a.52.52 0 01.311-.08h.743c.127 0 .2.065.2.2 0 .04-.009.08-.017.128a1.137 1.137 0 01-.056.2l-1.923 6.17c-.048.16-.104.263-.168.311a.51.51 0 01-.303.08h-.687c-.15 0-.255-.024-.32-.08-.063-.056-.119-.16-.15-.32L12.32 7.747l-1.23 5.14c-.04.16-.087.264-.15.32-.065.056-.177.08-.32.08l-.686.001zm10.256.215c-.415 0-.83-.048-1.229-.143-.399-.096-.71-.2-.918-.32-.128-.071-.215-.151-.247-.223a.563.563 0 01-.048-.224v-.407c0-.167.064-.247.183-.247.048 0 .096.008.144.024.048.016.12.048.2.08.271.12.566.215.878.279.32.064.63.096.95.096.502 0 .894-.088 1.165-.264a.86.86 0 00.415-.758.777.777 0 00-.215-.559c-.144-.151-.416-.287-.807-.415l-1.157-.36c-.583-.183-1.014-.454-1.277-.813a1.902 1.902 0 01-.4-1.158c0-.335.073-.63.216-.886.144-.255.335-.479.575-.654.24-.184.51-.32.83-.415.32-.096.655-.136 1.006-.136.175 0 .36.008.535.032.183.024.35.056.518.088.16.04.312.08.455.127.144.048.256.096.336.144a.69.69 0 01.24.2.43.43 0 01.071.263v.375c0 .168-.064.256-.184.256a.83.83 0 01-.303-.096 3.652 3.652 0 00-1.532-.311c-.455 0-.815.071-1.062.223-.248.152-.375.383-.375.71 0 .224.08.416.24.567.16.152.454.304.877.44l1.134.358c.574.184.99.44 1.237.767.247.327.367.702.367 1.117 0 .343-.072.655-.207.926a2.157 2.157 0 01-.583.703c-.248.2-.543.343-.886.447-.36.111-.734.167-1.142.167z"}),(0,n.jsx)("path",{d:"M.378 15.475c3.384 1.963 7.56 3.153 11.877 3.153 2.914 0 6.114-.607 9.06-1.852.44-.2.814.287.383.607-2.626 1.94-6.442 2.969-9.722 2.969-4.598 0-8.74-1.7-11.87-4.526-.247-.223-.024-.527.272-.351zm23.531-.2c.287.36-.08 2.826-1.485 4.007-.215.184-.423.088-.327-.151l.175-.439c.343-.88.802-2.198.52-2.555-.336-.43-2.22-.207-3.074-.103-.255.032-.295-.192-.063-.36 1.5-1.053 3.967-.75 4.254-.399z",fill:"#F90"})]}))},{name:"GCP",category:"cicd",...m({title:"Google Cloud",slug:"googlecloud",get svg(){return s+"Google Cloud"+l+this.path+c},path:"M12.19 2.38a9.344 9.344 0 0 0-9.234 6.893c.053-.02-.055.013 0 0-3.875 2.551-3.922 8.11-.247 10.941l.006-.007-.007.03a6.717 6.717 0 0 0 4.077 1.356h5.173l.03.03h5.192c6.687.053 9.376-8.605 3.835-12.35a9.365 9.365 0 0 0-2.821-4.552l-.043.043.006-.05A9.344 9.344 0 0 0 12.19 2.38zm-.358 4.146c1.244-.04 2.518.368 3.486 1.15a5.186 5.186 0 0 1 1.862 4.078v.518c3.53-.07 3.53 5.262 0 5.193h-5.193l-.008.009v-.04H6.785a2.59 2.59 0 0 1-1.067-.23h.001a2.597 2.597 0 1 1 3.437-3.437l3.013-3.012A6.747 6.747 0 0 0 8.11 8.24c.018-.01.04-.026.054-.023a5.186 5.186 0 0 1 3.67-1.69z",source:"https://cloud.google.com",hex:"4285F4"})},{name:"Cloudflare",category:"cicd",...m({title:"Cloudflare",slug:"cloudflare",get svg(){return s+"Cloudflare"+l+this.path+c},path:"M16.5088 16.8447c.1475-.5068.0908-.9707-.1553-1.3154-.2246-.3164-.6045-.499-1.0615-.5205l-8.6592-.1123a.1559.1559 0 0 1-.1333-.0713c-.0283-.042-.0351-.0986-.021-.1553.0278-.084.1123-.1484.2036-.1562l8.7359-.1123c1.0351-.0489 2.1601-.8868 2.5537-1.9136l.499-1.3013c.0215-.0561.0293-.1128.0147-.168-.5625-2.5463-2.835-4.4453-5.5499-4.4453-2.5039 0-4.6284 1.6177-5.3876 3.8614-.4927-.3658-1.1187-.5625-1.794-.499-1.2026.119-2.1665 1.083-2.2861 2.2856-.0283.31-.0069.6128.0635.894C1.5683 13.171 0 14.7754 0 16.752c0 .1748.0142.3515.0352.5273.0141.083.0844.1475.1689.1475h15.9814c.0909 0 .1758-.0645.2032-.1553l.12-.4268zm2.7568-5.5634c-.0771 0-.1611 0-.2383.0112-.0566 0-.1054.0415-.127.0976l-.3378 1.1744c-.1475.5068-.0918.9707.1543 1.3164.2256.3164.6055.498 1.0625.5195l1.8437.1133c.0557 0 .1055.0263.1329.0703.0283.043.0351.1074.0214.1562-.0283.084-.1132.1485-.204.1553l-1.921.1123c-1.041.0488-2.1582.8867-2.5527 1.914l-.1406.3585c-.0283.0713.0215.1416.0986.1416h6.5977c.0771 0 .1474-.0489.169-.126.1122-.4082.1757-.837.1757-1.2803 0-2.6025-2.125-4.727-4.7344-4.727",source:"https://www.cloudflare.com/logo/",hex:"F3802
10",guidelines:"https://www.cloudflare.com/trademark/"})},{name:"Xcode Cloud",category:"cicd",...m({title:"Xcode",slug:"xcode",get svg(){return s+"Xcode"+l+this.path+c},path:"M19.06 5.3327c.4517-.1936.7744-.2581 1.097-.1936.5163.1291.7744.5163.968.7098.1936.3872.9034.7744 1.2261.8389.2581.0645.7098-.6453 1.0325-1.2906.3227-.5808.5163-1.3552.4517-1.5488-.0645-.1936-.968-.5808-1.1616-.5808-.1291 0-.3872.1291-.8389.0645-.4517-.0645-.9034-.5808-1.1616-.968-.4517-.6453-1.097-1.0325-1.6778-1.3552-.6453-.3227-1.3552-.5163-2.065-.6453-1.0325-.2581-2.065-.4517-3.0975-.3227-.5808.0645-1.2906.1291-1.8069.3227-.0645 0-.1936.1936-.0645.1936s.5808.0645.5808.0645-.5807.1292-.5807.2583c0 .1291.0645.1291.1291.1291.0645 0 1.4842-.0645 2.065 0 .6453.1291 1.3552.4517 1.8069 1.2261.7744 1.4197.4517 2.7749.2581 3.2266-.968 2.1295-8.6472 15.2294-9.0344 16.1328-.3873.9034-.5163 1.4842.5807 2.065s1.6778.3227 2.0005-.0645c.3872-.5163 7.0339-17.1654 9.2925-18.2624zm-3.6138 8.7117h1.5488c1.0325 0 1.2261.5163 1.2261.7098.0645.5163-.1936 1.1616-1.2261 1.1616h-.968l.7744 1.2906c.4517.7744.2581 1.1616 0 1.4197-.3872.3872-1.2261.3872-1.6778-.4517l-.9034-1.5488c-.6453 1.4197-1.2906 2.9684-2.065 4.7753h4.0009c1.9359 0 3.5492-1.6133 3.5492-3.5492V6.5588c-.0645-.1291-.1936-.0645-.2581 0-.3872.4517-1.4842 2.0004-4.001 7.4856zm-9.8087 8.0019h-.3227c-2.3231 0-4.1945-1.8714-4.1945-4.1945V7.0105c0-2.3231 1.8714-4.1945 4.1945-4.1945h9.3571c-.1936-.1936-.968-.5163-1.7423-.4517-.3227 0-.968.1291-1.3552-.1291-.3872-.3227-.3227-.5163-.9034-.5163H4.9277c-2.6458 0-4.7753 2.1295-4.7753 4.7753v11.7447c0 2.6458 2.1295 4.7753 4.4527 4.7108.6452 0 .8388-.5162 1.0324-.9034zM20.4152 6.9459v10.9058c0 2.3231-1.8714 4.1945-4.1945 4.1945H11.897s-.3872 1.0325.8389 1.0325h3.8719c2.6458 0 4.7753-2.1295 4.7753-4.7753V8.8173c.0646-.9034-.7098-1.4842-.9679-1.8714zm-18.5851.0646v10.8413c0 1.9359 1.6133 3.5492 3.5492 3.5492h.5808c0-.0645.7744-1.4197 2.4522-4.2591.1936-.3872.4517-.7744.7098-1.2261H4.4114c-.5808 0-.9034-.3872-.968-.7098-.1291-.5163.1936-1.1616.9034-1.1616h2.3877l3.033-5.2916s-.7098-1.2906-.9034-1.6133c-.2582-.4517-.1291-.9034.129-1.1615.3872-.3872 1.0325-.5808 1.6778.4517l.2581.3872.2581-.3872c.5808-.8389.968-.7744 1.2906-.7098.5163.1291.8389.7098.3872 1.6133L8.864 14.0444h1.3552c.4517-.7744.9034-1.5488 1.3552-2.3877-.0645-.3227-.1291-.7098-.0645-1.0325.0645-.5163.3227-.968.6453-1.3552l.3872.6453c1.2261-2.1295 2.1295-3.9364 2.3877-4.6463.1291-.3872.3227-1.1616.1291-1.8069H5.3794c-2.0005.0001-3.5493 1.6134-3.5493 3.5494zM4.605 17.7872c0-.0645.7744-1.4197.7744-1.4197 1.2261-.3227 1.8069.4517 1.8714.5163 0 0-.8389 1.4842-1.097 1.7423s-.5808.3227-.9034.2581c-.5164-.129-.839-.6453-.6454-1.097z",source:"https://developer.apple.com/develop",hex:"147EFB"})},{name:"Azure",category:"cicd",...f(({className:e})=>(0,n.jsxs)("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 96 96",height:"1em",width:"1em",style:{flex:"none",lineHeight:1},className:e,children:[(0,n.jsx)("title",{children:"Azure"}),(0,n.jsxs)("defs",{children:[(0,n.jsxs)("linearGradient",{id:"azure-grad-1",x1:"-1032.172",x2:"-1059.213",y1:"145.312",y2:"65.426",gradientTransform:"matrix(1 0 0 -1 1075 158)",gradientUnits:"userSpaceOnUse",children:[(0,n.jsx)("stop",{offset:"0",stopColor:"#114a8b"}),(0,n.jsx)("stop",{offset:"1",stopColor:"#0669bc"})]}),(0,n.jsxs)("linearGradient",{id:"azure-grad-2",x1:"-1023.725",x2:"-1029.98",y1:"108.083",y2:"105.968",gradientTransform:"matrix(1 0 0 -1 1075 158)",gradientUnits:"userSpaceOnUse",children:[(0,n.jsx)("stop",{offset:"0",stopOpacity:".3"}),(0,n.jsx)("stop",{offset:".071",stopOpacity:".2"}),(0,n.jsx)("stop",{offset:".321",stopOpacity:".1"}),(0,n.jsx)("stop",{offset:".623",stopOpacity:".05"}),(0,n.jsx)("stop",{offset:"1",stopOpacity:"0"})]}),(0,n.jsxs)("linearGradient",{id:"azure-grad-3",x1:"-1027.165",x2:"-997.482",y1:"147.642",y2:"68.561",gradientTransform:"matrix(1 0 0 -1 1075 158)",gradientUnits:"userSpaceOnUse",children:[(0,n.jsx)("stop",{offset:"0",stopColor:"#3ccbf4"}),(0,n.jsx)("stop",{offset:"1",stopColor:"#2892df"})]})]}),(0,n.jsx)("path",{fill:"url(#azure-grad-1)",d:"M33.338 6.544h26.038l-27.03 80.087a4.152 4.152 0 0 1-3.933 2.824H8.149a4.145 4.145 0 0 1-3.928-5.47L29.404 9.368a4.152 4.152 0 0 1 3.934-2.825z"}),(0,n.jsx)("path",{fill:"#0078d4",d:"M71.175 60.261h-41.29a1.911 1.911 0 0 0-1.305 3.309l26.532 24.764a4.171 4.171 0 0 0 2.846 1.121h23.38z"}),(0,n.jsx)("path",{fill:"url(#azure-grad-2)",d:"M33.338 6.544a4.118 4.118 0 0 0-3.943 2.879L4.252 83.917a4.14 4.14 0 0 0 3.908 5.538h20.787a4.443 4.443 0 0 0 3.41-2.9l5.014-14.777 17.91 16.70
15a4.237 4.237 0 0 0 2.666.972H81.24L71.024 60.261l-29.781.007L59.47 6.544z"}),(0,n.jsx)("path",{fill:"url(#azure-grad-3)",d:"M66.595 9.364a4.145 4.145 0 0 0-3.928-2.82H33.648a4.146 4.146 0 0 1 3.928 2.82l25.184 74.62a4.146 4.146 0 0 1-3.928 5.472h29.02a4.146 4.146 0 0 0 3.927-5.472z"})]}))},{name:"Docker",category:"cicd",...m({title:"Docker",slug:"docker",get svg(){return s+"Docker"+l+this.path+c},path:"M13.983 11.078h2.119a.186.186 0 00.186-.185V9.006a.186.186 0 00-.186-.186h-2.119a.185.185 0 00-.185.185v1.888c0 .102.083.185.185.185m-2.954-5.43h2.118a.186.186 0 00.186-.186V3.574a.186.186 0 00-.186-.185h-2.118a.185.185 0 00-.185.185v1.888c0 .102.082.185.185.185m0 2.716h2.118a.187.187 0 00.186-.186V6.29a.186.186 0 00-.186-.185h-2.118a.185.185 0 00-.185.185v1.887c0 .102.082.185.185.186m-2.93 0h2.12a.186.186 0 00.184-.186V6.29a.185.185 0 00-.185-.185H8.1a.185.185 0 00-.185.185v1.887c0 .102.083.185.185.186m-2.964 0h2.119a.186.186 0 00.185-.186V6.29a.185.185 0 00-.185-.185H5.136a.186.186 0 00-.186.185v1.887c0 .102.084.185.186.186m5.893 2.715h2.118a.186.186 0 00.186-.185V9.006a.186.186 0 00-.186-.186h-2.118a.185.185 0 00-.185.185v1.888c0 .102.082.185.185.185m-2.93 0h2.12a.185.185 0 00.184-.185V9.006a.185.185 0 00-.184-.186h-2.12a.185.185 0 00-.184.185v1.888c0 .102.083.185.185.185m-2.964 0h2.119a.185.185 0 00.185-.185V9.006a.185.185 0 00-.184-.186h-2.12a.186.186 0 00-.186.186v1.887c0 .102.084.185.186.185m-2.92 0h2.12a.185.185 0 00.184-.185V9.006a.185.185 0 00-.184-.186h-2.12a.185.185 0 00-.184.185v1.888c0 .102.082.185.185.185M23.763 9.89c-.065-.051-.672-.51-1.954-.51-.338.001-.676.03-1.01.087-.248-1.7-1.653-2.53-1.716-2.566l-.344-.199-.226.327c-.284.438-.49.922-.612 1.43-.23.97-.09 1.882.403 2.661-.595.332-1.55.413-1.744.42H.751a.751.751 0 00-.75.748 11.376 11.376 0 00.692 4.062c.545 1.428 1.355 2.48 2.41 3.124 1.18.723 3.1 1.137 5.275 1.137.983.003 1.963-.086 2.93-.266a12.248 12.248 0 003.823-1.389c.98-.567 1.86-1.288 2.61-2.136 1.252-1.418 1.998-2.997 2.553-4.4h.221c1.372 0 2.215-.549 2.68-1.009.309-.293.55-.65.707-1.046l.098-.288Z",source:"https://www.docker.com/company/newsroom/media-resources",hex:"2496ED"})},{name:"Jenkins",category:"cicd",...m({title:"Jenkins",slug:"jenkins",get svg(){return s+"Jenkins"+l+this.path+c},path:"M2.872 24h-.975a3.866 3.866 0 01-.07-.197c-.215-.666-.594-1.49-.692-2.154-.146-.984.78-1.039 1.374-1.465.915-.66 1.635-1.025 2.627-1.62.295-.179 1.182-.624 1.281-.829.201-.408-.345-.982-.49-1.3-.225-.507-.345-.937-.376-1.435-.824-.13-1.455-.627-1.844-1.185-.63-.925-1.066-2.635-.525-3.936.045-.103.254-.305.285-.463.06-.308-.105-.72-.12-1.048-.06-1.692.284-3.15 1.425-3.66.463-1.84 2.113-2.453 3.673-3.367.58-.342 1.224-.562 1.89-.807 2.372-.877 6.027-.712 7.994.783.836.633 2.176 1.97 2.656 2.939 1.262 2.555 1.17 6.825.287 9.934-.12.421-.29 1.032-.533 1.533-.168.35-.689 1.05-.625 1.36.064.314 1.19 1.17 1.432 1.395.434.422 1.26.975 1.324 1.5.07.557-.248 1.336-.41 1.875-.217.721-.436 1.441-.654 2.131H2.87zm11.104-3.54c-.545-.3-1.361-.622-2.065-.757-.87-.164-.78 1.188-.75 1.994.03.643.36 1.316.51 1.744.076.197.09.41.256.449.3.068 1.29-.326 1.575-.479.6-.328 1.064-.844 1.574-1.189.016-.17.016-.34.03-.508a2.648 2.648 0 00-1.095-.277c.314-.15.75-.15 1.035-.332l.016-.193c-.496-.03-.69-.254-1.021-.436zm7.454 2.935a17.78 17.78 0 00.465-1.752c.06-.287.215-.918.178-1.176-.059-.459-.684-.799-1.004-1.086-.584-.525-.95-.975-1.56-1.469-.249.375-.78.615-.983.914 1.447-.689 1.71 2.625 1.141 3.69.09.329.391.45.514.735l-.086.166h1.29c.013 0 .03 0 .044.014zm-6.634-.012c-.05-.074-.1-.135-.15-.209l-.301.195h.45zm2.77 0c.008-.209.018-.404.03-.598-.53.029-.825-.48-1.196-.527-.324-.045-.6.361-1.02.195-.095.105-.183.227-.284.316.154.18.295.375.424.584h.815c.014-.164.135-.285.3-.285.165 0 .284.121.284.27h.66zm2.116 0c-.314-.479-.947-.898-1.68-.555l-.03.541h1.71zm-8.51 0l-.104-.344c-.225-.72-.36-1.26-.405-1.68-.914-.436-1.875-.87-2.654-1.426-.15-.105-1.109-1.35-1.23-1.305-1.739.676-3.359 1.86-4.814 2.984.256.557.48 1.141.69 1.74h8.505zm8.265-2.113c-.029-.512-.164-1.56-.48-1.74-.66-.39-1.846.78-2.34.943.045.15.135.271.15.48.285-.074.645-.029.898.092-.299.03-.629.03-.824.164-.074.195.016.48-.029.764.69.197 1.5.303 2.385.332.164-.227.225-.645.211-1.082zm-4.08-.36c-.044.375.046.51.12.943 1.26.391 1.034-1.74-.135-.959zM8.76 19.5c-.45.457 1.27 1.082 1.814 1.115 0-.29.165-.564.135-.77-.65-.118-1.502-.042-1.945-.347zm5.565.215c0 .043-.061.03-.068.064.58.451 1.014.545 1.802.51.354-.262.67-.563 1.043-.807-.855.074-1.931.607-2.774.23zm3.42-17.726c-1.606-.906-4.35-1.591-6.076-.731-1.38.692-3.27 1.84-3.899 3.292.6 1.402-.166 2.686-.226 4.109-.018.757.36 1.42.391 2.242-.2.338-.825.38-1.26.356-.146-.729-.4-1.549-1.155-1.63-1.064-.116-1.845.764-1.89 1.683-.06 1.08.833 2.864 2.085 2.745.488-.046.608-.54 1.139-.54.285.57-.445.75-.523 1.154-.016.105.06.511.104.705.233.944.744 2.16 1.245 2.88.635.9 1.884 1.051 3.229 1.141.24
1-.525 1.125-.48 1.706-.346-.691-.27-1.336-.945-1.875-1.529-.615-.676-1.23-1.41-1.261-2.28 1.155 1.604 2.1 3 4.2 3.704 1.59.525 3.45-.254 4.664-1.109.51-.359.811-.93 1.17-1.439 1.35-1.936 1.98-4.71 1.846-7.394-.06-1.111-.06-2.221-.436-2.955-.389-.781-1.695-1.471-2.475-.781-.15-.764.63-1.23 1.545-.96-.66-.854-1.336-1.858-2.266-2.384zM13.58 14.896c.615 1.544 2.724 1.363 4.505 1.323-.084.194-.256.435-.465.515-.57.232-2.145.408-2.937-.012-.506-.27-.824-.873-1.102-1.227-.137-.172-.795-.608-.012-.609zm.164-.87c.893.464 2.52.517 3.731.48.066.267.066.593.068.913-1.55.08-3.386-.304-3.794-1.395h-.005zm6.675-.586c-.473.9-1.145 1.897-2.539 1.928-.023-.284-.045-.735 0-.904 1.064-.103 1.727-.646 2.543-1.017zm-.649-.667c-1.02.66-2.154 1.375-3.824 1.21-.351-.31-.485-1-.14-1.458.181.313.06.885.57.97.944.165 2.038-.579 2.73-.84.42-.713-.046-.976-.42-1.433-.782-.93-1.83-2.1-1.802-3.51.314-.224.346.346.391.45.404.96 1.424 2.175 2.174 3 .18.21.48.39.51.524.092.39-.254.854-.209 1.11zm-13.439-.675c-.314-.184-.393-.99-.768-1.01-.535-.03-.438 1.05-.436 1.68-.37-.33-.435-1.365-.164-1.89-.308-.15-.445.164-.618.284.22-1.59 2.34-.734 1.99.96zM4.713 5.995c-.685.756-.54 2.174-.459 3.188 1.244-.785 2.898.06 2.883 1.394.595-.016.223-.744.115-1.215-.353-1.528.592-3.187.041-4.59-1.064.084-1.939.52-2.578 1.215zm9.12 1.113c.307.562.404 1.148.84 1.57.195.19.574.424.387.95-.045.121-.365.391-.551.45-.674.195-2.254.03-1.721-.81.563.015 1.314.36 1.732-.045-.314-.524-.885-1.53-.674-2.13zm6.198-.013h.068c.33.668.6 1.375 1.004 1.965-.27.628-2.053 1.19-2.023.057.39-.17 1.05-.035 1.395-.25-.193-.556-.48-1.006-.434-1.771zm-6.927-1.617c-1.422-.33-2.131.592-2.56 1.553-.384-.094-.231-.615-.135-.883.255-.701 1.28-1.633 2.119-1.506.359.057.848.386.576.834zM9.642 1.593c-1.56.44-3.56 1.574-4.2 2.974.495-.07.84-.321 1.33-.351.186-.016.428.074.641.015.424-.104.78-1.065 1.102-1.41.31-.345.685-.496.94-.81.167-.09.409-.074.42-.33-.073-.075-.15-.135-.232-.105v.017z",source:"https://get.jenkins.io/art/",hex:"D24939",guidelines:"https://www.jenkins.io/press/",license:{type:"CC-BY-SA-3.0",url:"https://spdx.org/licenses/CC-BY-SA-3.0"}})},{name:"Kubernetes",category:"cicd",...m({title:"Kubernetes",slug:"kubernetes",get svg(){return s+"Kubernetes"+l+this.path+c},path:"M10.204 14.35l.007.01-.999 2.413a5.171 5.171 0 0 1-2.075-2.597l2.578-.437.004.005a.44.44 0 0 1 .484.606zm-.833-2.129a.44.44 0 0 0 .173-.756l.002-.011L7.585 9.7a5.143 5.143 0 0 0-.73 3.255l2.514-.725.002-.009zm1.145-1.98a.44.44 0 0 0 .699-.337l.01-.005.15-2.62a5.144 5.144 0 0 0-3.01 1.442l2.147 1.523.004-.002zm.76 2.75l.723.349.722-.347.18-.78-.5-.623h-.804l-.5.623.179.779zm1.5-3.095a.44.44 0 0 0 .7.336l.008.003 2.134-1.513a5.188 5.188 0 0 0-2.992-1.442l.148 2.615.002.001zm10.876 5.97l-5.773 7.181a1.6 1.6 0 0 1-1.248.594l-9.261.003a1.6 1.6 0 0 1-1.247-.596l-5.776-7.18a1.583 1.583 0 0 1-.307-1.34L2.1 5.573c.108-.47.425-.864.863-1.073L11.305.513a1.606 1.606 0 0 1 1.385 0l8.345 3.985c.438.209.755.604.863 1.073l2.062 8.955c.108.47-.005.963-.308 1.34zm-3.289-2.057c-.042-.01-.103-.026-.145-.034-.174-.033-.315-.025-.479-.038-.35-.037-.638-.067-.895-.148-.105-.04-.18-.165-.216-.216l-.201-.059a6.45 6.45 0 0 0-.105-2.332 6.465 6.465 0 0 0-.936-2.163c.052-.047.15-.133.177-.159.008-.09.001-.183.094-.282.197-.185.444-.338.743-.522.142-.084.273-.137.415-.242.032-.024.076-.062.11-.089.24-.191.295-.52.123-.736-.172-.216-.506-.236-.745-.045-.034.027-.08.062-.111.088-.134.116-.217.23-.33.35-.246.25-.45.458-.673.609-.097.056-.239.037-.303.033l-.19.135a6.545 6.545 0 0 0-4.146-2.003l-.012-.223c-.065-.062-.143-.115-.163-.25-.022-.268.015-.557.057-.905.023-.163.061-.298.068-.475.001-.04-.001-.099-.001-.142 0-.306-.224-.555-.5-.555-.275 0-.499.249-.499.555l.001.014c0 .041-.002.092 0 .128.006.177.044.312.067.475.042.348.078.637.056.906a.545.545 0 0 1-.162.258l-.012.211a6.424 6.424 0 0 0-4.166 2.003 8.373 8.373 0 0 1-.18-.128c-.09.012-.18.04-.297-.029-.223-.15-.427-.358-.673-.608-.113-.12-.195-.234-.329-.349-.03-.026-.077-.062-.111-.088a.594.594 0 0 0-.348-.132.481.481 0 0 0-.398.176c-.172.216-.117.546.123.737l.007.005.104.083c.142.105.272.159.414.242.299.185.546.338.743.522.076.082.09.226.1.288l.16.143a6.462 6.462 0 0 0-1.02 4.506l-.208.06c-.055.072-.133.184-.215.217-.257.081-.546.11-.895.147-.164.014-.305.006-.48.039-.037.007-.09.02-.133.03l-.004.002-.007.002c-.295.071-.484.342-.423.608.061.267.349.429.645.365l.007-.001.01-.003.129-.029c.17-.046.294-.113.448-.172.33-.118.604-.217.87-.256.112-.009.23.069.288.101l.217-.037a6.5 6.5 0 0 0 2.88 3.596l-.09.218c.033.084.069.199.044.282-.097.252-.263.517-.452.813-.091.136-.185.242-.268.399-.02.037-.045.095-.064.134-.128.275-.034.591.213.71.248.12.556-.007.69-.282v-.002c.02-.039.046-.09.062-.127.07-.162.094-.301.144-.458.132-.332.205-.68.387-.897.05-.06.13-.082.215-.105l.113-.205a6.453 
16.453 0 0 0 4.609.012l.106.192c.086.028.18.042.256.155.136.232.229.507.342.84.05.156.074.295.145.457.016.037.043.09.062.129.133.276.442.402.69.282.247-.118.341-.435.213-.71-.02-.039-.045-.096-.065-.134-.083-.156-.177-.261-.268-.398-.19-.296-.346-.541-.443-.793-.04-.13.007-.21.038-.294-.018-.022-.059-.144-.083-.202a6.499 6.499 0 0 0 2.88-3.622c.064.01.176.03.213.038.075-.05.144-.114.28-.104.266.039.54.138.87.256.154.06.277.128.448.173.036.01.088.019.13.028l.009.003.007.001c.297.064.584-.098.645-.365.06-.266-.128-.537-.423-.608zM16.4 9.701l-1.95 1.746v.005a.44.44 0 0 0 .173.757l.003.01 2.526.728a5.199 5.199 0 0 0-.108-1.674A5.208 5.208 0 0 0 16.4 9.7zm-4.013 5.325a.437.437 0 0 0-.404-.232.44.44 0 0 0-.372.233h-.002l-1.268 2.292a5.164 5.164 0 0 0 3.326.003l-1.27-2.296h-.01zm1.888-1.293a.44.44 0 0 0-.27.036.44.44 0 0 0-.214.572l-.003.004 1.01 2.438a5.15 5.15 0 0 0 2.081-2.615l-2.6-.44-.004.005z",source:"https://github.com/kubernetes/kubernetes/tree/cac53883f4714452f3084a22e4be20d042a9df33/logo",hex:"326CE5"})},{name:"React Native",category:"mobile",...m(d)},{name:"Expo",category:"mobile",...m({title:"Expo",slug:"expo",get svg(){return s+"Expo"+l+this.path+c},path:"M0 20.084c.043.53.23 1.063.718 1.778.58.849 1.576 1.315 2.303.567.49-.505 5.794-9.776 8.35-13.29a.761.761 0 011.248 0c2.556 3.514 7.86 12.785 8.35 13.29.727.748 1.723.282 2.303-.567.57-.835.728-1.42.728-2.046 0-.426-8.26-15.798-9.092-17.078-.8-1.23-1.044-1.498-2.397-1.542h-1.032c-1.353.044-1.597.311-2.398 1.542C8.267 3.991.33 18.758 0 19.77Z",source:"https://expo.dev/brand/",hex:"1C2024",guidelines:"https://expo.dev/brand/"})},{name:"Flutter",category:"mobile",...m({title:"Flutter",slug:"flutter",get svg(){return s+"Flutter"+l+this.path+c},path:"M14.314 0L2.3 12 6 15.7 21.684.013h-7.357zm.014 11.072L7.857 17.53l6.47 6.47H21.7l-6.46-6.468 6.46-6.46h-7.37z",source:"https://flutter.dev/brand",hex:"02569B",guidelines:"https://flutter.dev/brand"})},{name:"Ionic",category:"mobile",...m({title:"Ionic",slug:"ionic",get svg(){return s+"Ionic"+l+this.path+c},path:"M22.922 7.027l-.103-.23-.169.188c-.408.464-.928.82-1.505 1.036l-.159.061.066.155a9.745 9.745 0 0 1 .75 3.759c0 5.405-4.397 9.806-9.806 9.806-5.409 0-9.802-4.397-9.802-9.802 0-5.405 4.402-9.806 9.806-9.806 1.467 0 2.883.319 4.2.947l.155.075.066-.155a3.767 3.767 0 0 1 1.106-1.453l.197-.159-.225-.117A11.905 11.905 0 0 0 12.001.001c-6.619 0-12 5.381-12 12s5.381 12 12 12 12-5.381 12-12c0-1.73-.361-3.403-1.078-4.973zM12 6.53A5.476 5.476 0 0 0 6.53 12 5.476 5.476 0 0 0 12 17.47 5.476 5.476 0 0 0 17.47 12 5.479 5.479 0 0 0 12 6.53zm10.345-2.007a2.494 2.494 0 1 1-4.988 0 2.494 2.494 0 0 1 4.988 0z",source:"https://ionicframework.com/press",hex:"3880FF"})},{name:"Capacitor",category:"mobile",...m({title:"Capacitor",slug:"capacitor",get svg(){return s+"Capacitor"+l+this.path+c},path:"M24 3.7l-5.766 5.766 5.725 5.736-3.713 3.712L5.073 3.742 8.786.03l5.736 5.726L20.284 0 24 3.7zM.029 8.785l3.713-3.713 15.173 15.173-3.713 3.714-5.732-5.726L3.7 24 0 20.285l5.754-5.764L.029 8.785z",source:"https://github.com/ionic-team/ionicons-site/blob/b0c97018d737b763301154231b34e1b882c0c84d/docs/ionicons/svg/logo-capacitor.svg",hex:"119EFF"})}],h=({skill:e,ref:t})=>{let r=e.icon;return(0,n.jsxs)("li",{ref:t,className:(0,a.cn)("group relative z-0 flex h-[var(--skill-card)] w-[var(--skill-card)] items-center justify-center rounded-[26%] shadow-lg shadow-black/30 select-none","[&_svg]:h-[var(--skill-icon)] [&_svg]:w-[var(--skill-icon)]","hover:z-20"),style:{backgroundColor:e.background,color:e.foreground},children:[(0,n.jsx)("span",{"aria-hidden":!0,className:"flex items-center justify-center",children:(0,n.jsx)(r,{})}),(0,n.jsx)("span",{className:"bg-popover text-popover-foreground pointer-events-none absolute -top-8 left-1/2 -translate-x-1/2 rounded-md px-2 py-1 text-xs font-medium whitespace-nowrap opacity-0 transition-opacity duration-150 group-hover:opacity-100 group-active:opacity-100",style:{rotate:"var(--card-spin, 0rad)"},children:e.name})]})},v=e=>Math.round(Math.min(74,Math.max(34,e/16))),y=e=>Math.round(.58*e),x=(e,t)=>{let n={isStatic:!0,friction:.6,restitution:0,collisionFilter:{category:1},label:"boundary"},r=t+900,i=(t-900)/2;return[o.Bodies.rectangle(e/2,t+200,e+800,400,n),o.Bodies.rectangle(-200,i,400,r,n),o.Bodies.rectangle(e+200,i,400,r,n),o.Bodies.rectangle(e/2,-1100,e+800,400,n)]},b=(e,t,n,r)=>{let i=r/2,a=Math.min(Math.max(e.position.x,i),Math.max(i,t-i)),s=Math.min(e.position.y,n-i);(a!==e.position.x||s!==e.position.y)&&(o.Sleeping.set(e,!1),o.Body.setPosition(e,{x:a,y:s}
1))},w=()=>{},S=e=>t=>{Object.defineProperty(t,"preventDefault",{value:w,configurable:!0}),e(t)},C=1e3/60;e.s(["SkillsPlayground",0,()=>{let e=(0,r.useRef)(null),t=(0,r.useRef)(null),s=(0,r.useRef)(null),l=(0,r.useRef)([]),[c,u]=(0,r.useState)("static"),d="playing"===c;(0,r.useEffect)(()=>{let t=e.current;if(!t||window.matchMedia("(prefers-reduced-motion: reduce)").matches)return;let n=new IntersectionObserver(e=>{e.some(e=>e.isIntersecting)&&(n.disconnect(),u("playing"))},{threshold:.15});return n.observe(t),()=>n.disconnect()},[]),(0,r.useEffect)(()=>{let e,n=t.current,r=s.current;if(!d||!n||!r)return;let i=l.current.filter(e=>null!==e);if(0===i.length)return;let a=n.clientWidth,c=n.clientHeight,u=v(a),p=u/2,m=()=>{r.style.setProperty("--skill-card",`${u}px`),r.style.setProperty("--skill-icon",`${y(u)}px`)};m(),i.forEach(e=>{e.style.position="absolute",e.style.left="0px",e.style.top="0px",e.style.opacity="0",e.style.willChange="transform",e.style.transform=""});let f=((e=o.Engine.create({enableSleeping:!0,gravity:{x:0,y:1,scale:.001}})).positionIterations=8,e.velocityIterations=6,e),g=i.map(()=>{let e;return e=u,o.Bodies.rectangle(0,0,e,e,{restitution:.12,friction:.45,frictionStatic:.85,frictionAir:.02,density:.0014,chamfer:{radius:.26*e},collisionFilter:{category:2},label:"skill"})}),h=x(a,c);o.Composite.add(f.world,h);let w=((e,t)=>{let n=o.Mouse.create(e),{mousemove:r,mousedown:i,mouseup:a,mousewheel:s}=n;e.removeEventListener("wheel",s),e.removeEventListener("touchmove",r),e.removeEventListener("touchstart",i),e.removeEventListener("touchend",a);let l=S(r),c=S(i),u=S(a);e.addEventListener("touchmove",l,{passive:!0}),e.addEventListener("touchstart",c,{passive:!0}),e.addEventListener("touchend",u,{passive:!0});let d=o.MouseConstraint.create(t,{mouse:n,collisionFilter:{mask:2},constraint:{stiffness:.16,damping:.06,render:{visible:!1}}});return o.Composite.add(t.world,d),{constraint:d,destroy:()=>{e.removeEventListener("touchmove",l),e.removeEventListener("touchstart",c),e.removeEventListener("touchend",u),e.removeEventListener("mousemove",r),e.removeEventListener("mousedown",i),e.removeEventListener("mouseup",a),o.Composite.remove(t.world,d)}}})(n,f),M=(e=>{let t=Array.from({length:e},(e,t)=>t);for(let e=t.length-1;e>0;e-=1){let n=Math.floor(Math.random()*(e+1));[t[e],t[n]]=[t[n],t[e]]}return t})(g.length),A=0,P=0,k=0,B=performance.now(),z=0,L=()=>{var e,t,n,r;let s,l,c,d,p=M[A];e=g[p],t=a,n=u,r=A,s=Math.max(1,t/2-.75*n),l=Math.random(),c=t/2+(r%2==0?-1:1)*(.22>Math.random()?l:l**.4)*s,d=-n-Math.random()*n*3,o.Sleeping.set(e,!1),o.Body.setPosition(e,{x:c,y:d}),o.Body.setAngle(e,(Math.random()-.5)*.9),o.Body.setVelocity(e,{x:0,y:0}),o.Body.setAngularVelocity(e,(Math.random()-.5)*.12),o.Composite.add(f.world,g[p]),i[p].style.opacity="1",A+=1},_=e=>{let t=g[e],n=i[e];n.style.transform=`translate(${t.position.x-p}px, ${t.position.y-p}px) rotate(${t.angle}rad)`,n.style.setProperty("--card-spin",`${-t.angle}rad`)},I=e=>{z=requestAnimationFrame(I);let t=Math.min(e-B,100);for(B=e,P+=t;A<g.length&&P>=38;)P-=38,L();for(k=Math.min(k+t,3*C);k>=C;)o.Engine.update(f,C),k-=C;for(let e=0;e<A;e+=1){let t=M[e];g[t].isSleeping||_(t)}};z=requestAnimationFrame(I);let R=new ResizeObserver(()=>{let e=n.clientWidth,t=n.clientHeight;if(e===a&&t===c)return;let r=v(e),i=r/u;a=e,c=t,1!==i&&(p=(u=r)/2,m(),g.forEach(e=>{o.Sleeping.set(e,!1),o.Body.scale(e,i,i)})),o.Composite.remove(f.world,h),h=x(a,c),o.Composite.add(f.world,h);for(let e=0;e<A;e+=1){let t=M[e];b(g[t],a,c,u),_(t)}});return R.observe(n),()=>{cancelAnimationFrame(z),R.disconnect(),w.destroy(),o.Composite.clear(f.world,!1),o.Engine.clear(f),i.forEach(e=>{e.style.position="",e.style.left="",e.style.top="",e.style.opacity="",e.style.willChange="",e.style.transform="",e.style.removeProperty("--card-spin")})}},[d]);let p={"--skill-card":"56px","--skill-icon":`${y(56)}px`};return(0,n.jsx)("section",{className:"mb-16 ml-[calc(50%-50vw)] w-screen",children:(0,n.jsxs)("div",{ref:e,className:"skills-playground bg-background relative h-[clamp(460px,66svh,700px)] overflow-hidden",children:[(0,n.jsx)("noscript",{children:(0,n.jsx)("style",{children:".skills-playground .skills-playground-idle { display: block; }"})}),(0,n.jsx)("div",{className:"pointer-events-none absolute inset-0 opacity-30",style:{backgroundImage:"linear-gradient(var(--border) 1px, transparent 1px), linear-gradient(90deg, var(--border) 1px, transparent 1px)",backgroundSize:"32px 32px"}}),(0,n.jsx)("div",{className:"from-background/0 to-background pointer-events-none absolute inset-0 bg-linear-to-b"}),(0,n.jsxs)("div",{className:(0,a.cn)("relative h-full",!d&&"flex flex-col items-center justify-center gap-10 overflow-y-auto px-4 py-10"),children:[(0,n.jsx)("div",{className:(0,a.cn)("flex justify-center px-4",d?"pointer-events-none absolute inset-0 z-30 items-center":"shrink-0"),children:(0,n.jsx)("span",{style:{filter:"drop-shadow(0 2px 6px rgba(255,244,224,0.95)) drop-shadow(0 0 18px rgba(255,244,224,0.9)) drop-shadow(0 0 44px rgba(255,244,224,0.75))"},children:(0,n.jsx)(i.Typography,{variant:"h1",className:"mb-0 text-center text-4xl tracking-tight sm:text-6xl md:text-7xl",children:"My experience"})})}),(0,n.jsx)("div",{ref:t,className:(0,a.cn)(d?"absolute inset-0":"skills-playground-idle relative w-full"),children:(0,n.jsx)("ul",{ref:s,style:p,className:(0,a.cn)("m-0 list-none p-0",d?"absolute inset-0 [&>li]:cursor-grab [&>li]:touch-none [&>li]:opacity-0 [&>li:active]:cursor-grabbing":"mx-auto flex max-w-5xl flex-wrap items-center justify-center gap-3"),children:g.map((e,t)=>(0,n.jsx)(h,{skill:e,ref:e=>{l.current[t]=e}},`${e.category}-${e.name}`))})})]})]})})}],957332)},814869,e=>{"use strict";var t=e.i(464384);function n(e,t,{checkForDefaultPrevented:r=!0}={}){return function(n){if(e?.(n),!1===r||!n.defaultPrevented)return t?.(n)}}"u">typeof window&&window.document&&window.document.createElement;var r=e.i(247201);function o(e,n=[]){let i=[],a=()=>{let n=i.map(e=>t.createContext(e));return function(r){let o=r?.[e]||n;return t.useMemo(()=>({[`__scope${e}`]:{...r,[e]:o}}),[r,o])}};return a.scopeName=e,[function(n,o){let a=t.createContext(o),s=i.length;i=[...i,o];let l=n=>{let{scope:o,children:i,...l}=n,c=o?.[e]?.[s]||a,u=t.useMemo(()=>l,Object.values(l));return(0,r.jsx)(c.Provider,{value:u,children:i})};return l.displayName=n+"Provider",[l,function(r,i){let l=i?.[e]?.[s]||a,c=t.useContext(l);if(c)return c;if(void 0!==o)return o;throw Error(`\`${r}\` must be used within \`${n}\``)}]},function(...e){let n=e[0];if(1===e.length)return n;let r=()=>{let r=e.map(e=>({useScope:e(),scopeName:e.scopeName}));return function(e){let o=r.reduce((t,{useScope:n,scopeName:r})=>{let o=n(e)[`__scope${r}`];return{...t,...o}},{});return t.useMemo(()=>({[`__scope${n.scopeName}`]:o}),[o])}};return r.scopeName=n.scopeName,r}(a,...n)]}var i=e.i(144977);function a(e){var n;
1let o,a=(n=e,(o=t.forwardRef((e,n)=>{let{children:r,...o}=e;if(t.isValidElement(r)){var a;let e,s,l=(a=r,(s=(e=Object.getOwnPropertyDescriptor(a.props,"ref")?.get)&&"isReactWarning"in e&&e.isReactWarning)?a.ref:(s=(e=Object.getOwnPropertyDescriptor(a,"ref")?.get)&&"isReactWarning"in e&&e.isReactWarning)?a.props.ref:a.props.ref||a.ref),c=function(e,t){let n={...t};for(let r in t){let o=e[r],i=t[r];/^on[A-Z]/.test(r)?o&&i?n[r]=(...e)=>{let t=i(...e);return o(...e),t}:o&&(n[r]=o):"style"===r?n[r]={...o,...i}:"className"===r&&(n[r]=[o,i].filter(Boolean).join(" "))}return{...e,...n}}(o,r.props);return r.type!==t.Fragment&&(c.ref=n?(0,i.composeRefs)(n,l):l),t.cloneElement(r,c)}return t.Children.count(r)>1?t.Children.only(null):null})).displayName=`${n}.SlotClone`,o),s=t.forwardRef((e,n)=>{let{children:o,...i}=e,s=t.Children.toArray(o),c=s.find(l);if(c){let e=c.props.children,o=s.map(n=>n!==c?n:t.Children.count(e)>1?t.Children.only(null):t.isValidElement(e)?e.props.children:null);return(0,r.jsx)(a,{...i,ref:n,children:t.isValidElement(e)?t.cloneElement(e,void 0,o):null})}return(0,r.jsx)(a,{...i,ref:n,children:o})});return s.displayName=`${e}.Slot`,s}var s=Symbol("radix.slottable");function l(e){return t.isValidElement(e)&&"function"==typeof e.type&&"__radixId"in e.type&&e.type.__radixId===s}var c=globalThis?.document?t.useLayoutEffect:()=>{},u=t[" useId ".trim().toString()]||(()=>void 0),d=0;function p(e){let[n,r]=t.useState(u());return c(()=>{e||r(e=>e??String(d++))},[e]),e||(n?`radix-${n}`:"")}e.i(374837);var m=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"].reduce((e,n)=>{let o=a(`Primitive.${n}`),i=t.forwardRef((e,t)=>{let{asChild:i,...a}=e;return"u">typeof window&&(window[Symbol.for("radix-ui")]=!0),(0,r.jsx)(i?o:n,{...a,ref:t})});return i.displayName=`Primitive.${n}`,{...e,[n]:i}},{});t[" useEffectEvent ".trim().toString()],t[" useInsertionEffect ".trim().toString()];var f=t[" useInsertionEffect ".trim().toString()]||c;function g({prop:e,defaultProp:n,onChange:r=()=>{},caller:o}){let[i,a,s]=function({defaultProp:e,onChange:n}){let[r,o]=t.useState(e),i=t.useRef(r),a=t.useRef(n);return f(()=>{a.current=n},[n]),t.useEffect(()=>{i.current!==r&&(a.current?.(r),i.current=r)},[r,i]),[r,o,a]}({defaultProp:n,onChange:r}),l=void 0!==e,c=l?e:i;{let n=t.useRef(void 0!==e);t.useEffect(()=>{let e=n.current;if(e!==l){let t=l?"controlled":"uncontrolled";console.warn(`${o} is changing from ${e?"controlled":"uncontrolled"} to ${t}. Components should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled value for the lifetime of the component.`)}n.current=l},[l,o])}return[c,t.useCallback(t=>{if(l){let n="function"==typeof t?t(e):t;n!==e&&s.current?.(n)}else a(t)},[l,e,a,s])]}Symbol("RADIX:SYNC_STATE");var h=t.createContext(void 0);function v(e){let n=t.useContext(h);return e||n||"ltr"}var y="rovingFocusGroup.onEntryFocus",x={bubbles:!1,cancelable:!0},b="RovingFocusGroup",[w,S,C]=function(e){let n=e+"CollectionProvider",[s,l]=o(n),[c,u]=s(n,{collectionRef:{current:null},itemMap:new Map}),d=e=>{let{scope:n,children:o}=e,i=t.default.useRef(null),a=t.default.useRef(new Map).current;return(0,r.jsx)(c,{scope:n,itemMap:a,collectionRef:i,children:o})};d.displayName=n;let p=e+"CollectionSlot",m=a(p),f=t.default.forwardRef((e,t)=>{let{scope:n,children:o}=e,a=u(p,n),s=(0,i.useComposedRefs)(t,a.collectionRef);return(0,r.jsx)(m,{ref:s,children:o})});f.displayName=p;let g=e+"CollectionItemSlot",h="data-radix-collection-item",v=a(g),y=t.default.forwardRef((e,n)=>{let{scope:o,children:a,...s}=e,l=t.default.useRef(null),c=(0,i.useComposedRefs)(n,l),d=u(g,o);return t.default.useEffect(()=>(d.itemMap.set(l,{ref:l,...s}),()=>void d.itemMap.delete(l))),(0,r.jsx)(v,{...{[h]:""},ref:c,children:a})});return y.displayName=g,[{Provider:d,Slot:f,ItemSlot:y},function(n){let r=u(e+"CollectionConsumer",n);return t.default.useCallback(()=>{let e=r.collectionRef.current;if(!e)return[];let t=Array.from(e.querySelectorAll(`[${h}]`));return Array.from(r.itemMap.values()).sort((e,n)=>t.indexOf(e.ref.current)-t.indexOf(n.ref.current))},[r.collectionRef,r.itemMap])},l]}(b),[M,A]=o(b,[C]),[P,k]=M(b),B=t.forwardRef((e,t)=>
1(0,r.jsx)(w.Provider,{scope:e.__scopeRovingFocusGroup,children:(0,r.jsx)(w.Slot,{scope:e.__scopeRovingFocusGroup,children:(0,r.jsx)(z,{...e,ref:t})})}));B.displayName=b;var z=t.forwardRef((e,o)=>{let a,{__scopeRovingFocusGroup:s,orientation:l,loop:c=!1,dir:u,currentTabStopId:d,defaultCurrentTabStopId:p,onCurrentTabStopIdChange:f,onEntryFocus:h,preventScrollOnEntryFocus:w=!1,...C}=e,M=t.useRef(null),A=(0,i.useComposedRefs)(o,M),k=v(u),[B,z]=g({prop:d,defaultProp:p??null,onChange:f,caller:b}),[L,_]=t.useState(!1),I=(a=t.useRef(h),t.useEffect(()=>{a.current=h}),t.useMemo(()=>(...e)=>a.current?.(...e),[])),T=S(s),j=t.useRef(!1),[E,F]=t.useState(0);return t.useEffect(()=>{let e=M.current;if(e)return e.addEventListener(y,I),()=>e.removeEventListener(y,I)},[I]),(0,r.jsx)(P,{scope:s,orientation:l,dir:k,loop:c,currentTabStopId:B,onItemFocus:t.useCallback(e=>z(e),[z]),onItemShiftTab:t.useCallback(()=>_(!0),[]),onFocusableItemAdd:t.useCallback(()=>F(e=>e+1),[]),onFocusableItemRemove:t.useCallback(()=>F(e=>e-1),[]),children:(0,r.jsx)(m.div,{tabIndex:L||0===E?-1:0,"data-orientation":l,...C,ref:A,style:{outline:"none",...e.style},onMouseDown:n(e.onMouseDown,()=>{j.current=!0}),onFocus:n(e.onFocus,e=>{let t=!j.current;if(e.target===e.currentTarget&&t&&!L){let t=new CustomEvent(y,x);if(e.currentTarget.dispatchEvent(t),!t.defaultPrevented){let e=T().filter(e=>e.focusable);R([e.find(e=>e.active),e.find(e=>e.id===B),...e].filter(Boolean).map(e=>e.ref.current),w)}}j.current=!1}),onBlur:n(e.onBlur,()=>_(!1))})})}),L="RovingFocusGroupItem",_=t.forwardRef((e,o)=>{let{__scopeRovingFocusGroup:i,focusable:a=!0,active:s=!1,tabStopId:l,children:c,...u}=e,d=p(),f=l||d,g=k(L,i),h=g.currentTabStopId===f,v=S(i),{onFocusableItemAdd:y,onFocusableItemRemove:x,currentTabStopId:b}=g;return t.useEffect(()=>{if(a)return y(),()=>x()},[a,y,x]),(0,r.jsx)(w.ItemSlot,{scope:i,id:f,focusable:a,active:s,children:(0,r.jsx)(m.span,{tabIndex:h?0:-1,"data-orientation":g.orientation,...u,ref:o,onMouseDown:n(e.onMouseDown,e=>{a?g.onItemFocus(f):e.preventDefault()}),onFocus:n(e.onFocus,()=>g.onItemFocus(f)),onKeyDown:n(e.onKeyDown,e=>{if("Tab"===e.key&&e.shiftKey)return void g.onItemShiftTab();if(e.target!==e.currentTarget)return;let t=function(e,t,n){var r;let o=(r=e.key,"rtl"!==n?r:"ArrowLeft"===r?"ArrowRight":"ArrowRight"===r?"ArrowLeft":r);if(!("vertical"===t&&["ArrowLeft","ArrowRight"].includes(o))&&!("horizontal"===t&&["ArrowUp","ArrowDown"].includes(o)))return I[o]}(e,g.orientation,g.dir);if(void 0!==t){if(e.metaKey||e.ctrlKey||e.altKey||e.shiftKey)return;e.preventDefault();let o=v().filter(e=>e.focusable).map(e=>e.ref.current);if("last"===t)o.reverse();else if("prev"===t||"next"===t){var n,r;"prev"===t&&o.reverse();let i=o.indexOf(e.currentTarget);o=g.loop?(n=o,r=i+1,n.map((e,t)=>n[(r+t)%n.length])):o.slice(i+1)}setTimeout(()=>R(o))}}),children:"function"==typeof c?c({isCurrentTabStop:h,hasTabStop:null!=b}):c})})});_.displayName=L;var I={ArrowLeft:"prev",ArrowUp:"prev",ArrowRight:"next",ArrowDown:"next",PageUp:"first",Home:"first",PageDown:"last",End:"last"};function R(e,t=!1){let n=document.activeElement;for(let r of e)if(r===n||(r.focus({preventScroll:t}),document.activeElement!==n))return}var T=e=>{var n;let r,o,{present:a,children:s}=e,l=function(e){var n,r;let[o,i]=t.useState(),a=t.useRef(null),s=t.useRef(e),l=t.useRef("none"),[u,d]=(n=e?"mounted":"unmounted",r={mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}},t.useReducer((e,t)=>r[e][t]??e,n));return t.useEffect(()=>{let e=j(a.current);l.current="mounted"===u?e:"none"},[u]),c(()=>{let t=a.current,n=s.current;if(n!==e){let r=l.current,o=j(t);e?d("MOUNT"):"none"===o||t?.display==="none"?d("UNMOUNT"):n&&r!==o?d("ANIMATION_OUT"):d("UNMOUNT"),s.current=e}},[e,d]),c(()=>{if(o){let e,t=o.ownerDocument.defaultView??window,n=n=>{let r=j(a.current).includes(CSS.escape(n.animationName));if(n.target===o&&r&&(d("ANIMATION_END"),!s.current)){let n=o.style.animationFillMode;o.style.animationFillMode="forwards",e=t.setTimeout(()=>{"forwards"===o.style.animationFillMode&&(o.style.animationFillMode=n)})}},r=e=>{e.target===o&&(l.current=j(a.current))};return o.addEventListener("animationstart",r),o.addEventListener("animationcancel",n),o.addEventListener("animationend",n),()=>{t.clearTimeout(e),o.removeEventListener("animationstart",r),o.removeEventListener("animationcancel",n),o.removeEventListener("animationend",n)}}d("ANIMATION_END")},[o,d]),{isPresent:["mounted","unmountSuspended"].includes(u),ref:t.useCallback(e=>{a.current=e?getComputedStyle(e):null,i(e)},[])}}(a),u="function"==typeof s?s({present:l.isPresent}):t.Children.only(s),d=(0,i.useComposedRefs)(l.ref,(n=u,(o=(r=Object.getOwnPropertyDescriptor(n.props,"ref")?.get)&&"isReactWarning"in r&&r.isReactWarning)?n.ref:(o=(r=Object.getOwnPropertyDescriptor(n,"ref")?.get)&&"isReactWarning"in r&&r.isReactWarning)?n.props.ref:n.props.ref||n.ref));return"function"==typeof s||l.isPresent?t.cloneElement(u,{ref:d}):null};function j(e){return e?.animationName||"none"}T.displayName="Presence";
1var E="Tabs",[F,D]=o(E,[A]),V=A(),[N,H]=F(E),O=t.forwardRef((e,t)=>{let{__scopeTabs:n,value:o,onValueChange:i,defaultValue:a,orientation:s="horizontal",dir:l,activationMode:c="automatic",...u}=e,d=v(l),[f,h]=g({prop:o,onChange:i,defaultProp:a??"",caller:E});return(0,r.jsx)(N,{scope:n,baseId:p(),value:f,onValueChange:h,orientation:s,dir:d,activationMode:c,children:(0,r.jsx)(m.div,{dir:d,"data-orientation":s,...u,ref:t})})});O.displayName=E;var q="TabsList",U=t.forwardRef((e,t)=>{let{__scopeTabs:n,loop:o=!0,...i}=e,a=H(q,n),s=V(n);return(0,r.jsx)(B,{asChild:!0,...s,orientation:a.orientation,dir:a.dir,loop:o,children:(0,r.jsx)(m.div,{role:"tablist","aria-orientation":a.orientation,...i,ref:t})})});U.displayName=q;var Z="TabsTrigger",G=t.forwardRef((e,t)=>{let{__scopeTabs:o,value:i,disabled:a=!1,...s}=e,l=H(Z,o),c=V(o),u=Q(l.baseId,i),d=X(l.baseId,i),p=i===l.value;return(0,r.jsx)(_,{asChild:!0,...c,focusable:!a,active:p,children:(0,r.jsx)(m.button,{type:"button",role:"tab","aria-selected":p,"aria-controls":d,"data-state":p?"active":"inactive","data-disabled":a?"":void 0,disabled:a,id:u,...s,ref:t,onMouseDown:n(e.onMouseDown,e=>{a||0!==e.button||!1!==e.ctrlKey?e.preventDefault():l.onValueChange(i)}),onKeyDown:n(e.onKeyDown,e=>{[" ","Enter"].includes(e.key)&&l.onValueChange(i)}),onFocus:n(e.onFocus,()=>{let e="manual"!==l.activationMode;p||a||!e||l.onValueChange(i)})})})});G.displayName=Z;var W="TabsContent",$=t.forwardRef((e,n)=>{let{__scopeTabs:o,value:i,forceMount:a,children:s,...l}=e,c=H(W,o),u=Q(c.baseId,i),d=X(c.baseId,i),p=i===c.value,f=t.useRef(p);return t.useEffect(()=>{let e=requestAnimationFrame(()=>f.current=!1);return()=>cancelAnimationFrame(e)},[]),(0,r.jsx)(T,{present:a||p,children:({present:t})=>(0,r.jsx)(m.div,{"data-state":p?"active":"inactive","data-orientation":c.orientation,role:"tabpanel","aria-labelledby":u,hidden:!t,id:d,tabIndex:0,...l,ref:n,style:{...e.style,animationDuration:f.current?"0s":void 0},children:t&&s})})});function Q(e,t){return`${e}-trigger-${t}`}function X(e,t){return`${e}-content-${t}`}$.displayName=W,e.s(["Content",0,$,"List",0,U,"Root",0,O,"Tabs",0,O,"TabsContent",0,$,"TabsList",0,U,"TabsTrigger",0,G,"Trigger",0,G,"createTabsScope",0,D],814869)},880641,(e,t,n)=>{e.e,t.exports=function(){var t=[function(t,n){var r,o={};t.exports=o,o._baseDelta=1e3/60,o._nextId=0,o._seed=0,o._nowStartTime=+new Date,o._warnedOnce={},o._decomp=null,o.extend=function(e,t){var n,r;"boolean"==typeof t?(n=2,r=t):(n=1,r=!0);for(var i=n;i<arguments.length;i++){var a=arguments[i];if(a)for(var s in a)r&&a[s]&&a[s].constructor===Object?e[s]&&e[s].constructor!==Object?e[s]=a[s]:(e[s]=e[s]||{},o.extend(e[s],r,a[s])):e[s]=a[s]}return e},o.clone=function(e,t){return o.extend({},t,e)},o.keys=function(e){if(Object.keys)return Object.keys(e);var t=[];for(var n in e)t.push(n);return t},o.values=function(e){var t=[];if(Object.keys){for(var n=Object.keys(e),r=0;r<n.length;r++)t.push(e[n[r]]);return t}for(var o in e)t.push(e[o]);return t},o.get=function(e,t,n,r){t=t.split(".").slice(n,r);for(var o=0;o<t.length;o+=1)e=e[t[o]];return e},o.set=function(e,t,n,r,i){var a=t.split(".").slice(r,i);return o.get(e,t,0,-1)[a[a.length-1]]=n,n},o.shuffle=function(e){for(var t=e.length-1;t>0;t--){var n=Math.floor(o.random()*(t+1)),r=e[t];e[t]=e[n],e[n]=r}return e},o.choose=function(e){return e[Math.floor(o.random()*e.length)]},o.isElement=function(e){return"u">typeof HTMLElement?e instanceof HTMLElement:!!(e&&e.nodeType&&e.nodeName)},o.isArray=function(e){return"[object Array]"===Object.prototype.toString.call(e)},o.isFunction=function(e){return"function"==typeof e},o.isPlainObject=function(e){return"object"==typeof e&&e.constructor===Object},o.isString=function(e){return"[object String]"===toString.call(e)},o.clamp=function(e,t,n){return e<t?t:e>n?n:e},o.sign=function(e){return e<0?-1:1},o.now=function(){if("u">typeof window&&window.performance){if(window.performance.now)return window.performance.now();else if(window.performance.webkitNow)return window.performance.webkitNow()}return Date.now?Date.now():new Date-o._nowStartTime},o.random=function(e,t){return t=void 0!==t?t:1,(e=void 0!==e?e:0)+r()*(t-e)},r=function(){return o._seed=(9301*o._seed+49297)%233280,o._seed/233280},o.colorToNumber=function(e){return 3==(e=e.replace("#","")).length&&(e=e.charAt(0)+e.charAt(0)+e.charAt(1)+e.charAt(1)+e.charAt(2)+e.charAt(2)),parseInt(e,16)},o.logLevel=1,o.log=function(){console&&o.logLevel>0&&o.logLevel<=3&&console.log.apply(console,["matter-js:"].concat(Array.prototype.slice.call(arguments)))},o.info=function(){console&&o.logLevel>0&&o.logLevel<=2&&console.info.apply(console,["matter-js:"].concat(Array.prototype.slice.call(arguments)))},o.warn=function(){console&&o.logLevel>0&&o.logLevel<=3&&console.warn.apply(console,["matter-js:"].concat(Array.prototype.slice.call(arguments)))},o.warnOnce=function(){var e=Array.prototype.slice.call(arguments).join(" ");o._warnedOnce[e]||(o.warn(e),o._warnedOnce[e]=!0)},o.deprecated=function(e,t,n){e[t]=o.chain(function(){o.warnOnce("🔅 deprecated 🔅",n)},e[t])},o.nextId=function(){return o._nextId++},o.indexOf=function(e,t){if(e.indexOf)return e.indexOf(t);for(var n=0;n<e.length;n++)if(e[n]===t)return n;return -1},o.map=function(e,t){if(e.map)return e.map(t);for(var n=[],r=0;r<e.length;r+=1)n.push(t(e[r]));return n},o.topologicalSort=function(e){var t=[],n=[],r=[];for(var i in e)n[i]||r[i]||o._topologicalSort(i,n,r,e,t);return t},o._topologicalSort=function(e,t,n,r,i){var a=r[e]||[];n[e]=!0;for(var s=0;s<a.length;s+=1){var l=a[s];!n[l]&&(t[l]||o._topologicalSort(l,t,n,r,i))}n[e]=!1,t[e]=!0,i.push(e)},o.chain=function(){for(var e=[],t=0;t<arguments.length;t+=1){var n=arguments[t];n._chained?e.push.apply(e,n._chained):e.push(n)}
vendor: 4,214 bytes, line 1
1var r=function(){for(var t,n=Array(arguments.length),r=0,o=arguments.length;r<o;r++)n[r]=arguments[r];for(r=0;r<e.length;r+=1){var i=e[r].apply(t,n);void 0!==i&&(t=i)}return t};return r._chained=e,r},o.chainPathBefore=function(e,t,n){return o.set(e,t,o.chain(n,o.get(e,t)))},o.chainPathAfter=function(e,t,n){return o.set(e,t,o.chain(o.get(e,t),n))},o.setDecomp=function(e){o._decomp=e},o.getDecomp=function(){var t=o._decomp;try{!t&&"u">typeof window&&(t=window.decomp),t||(t=e.g.decomp)}catch(e){t=null}return t}},function(e,t){var n={};e.exports=n,n.create=function(e){var t={min:{x:0,y:0},max:{x:0,y:0}};return e&&n.update(t,e),t},n.update=function(e,t,n){e.min.x=1/0,e.max.x=-1/0,e.min.y=1/0,e.max.y=-1/0;for(var r=0;r<t.length;r++){var o=t[r];o.x>e.max.x&&(e.max.x=o.x),o.x<e.min.x&&(e.min.x=o.x),o.y>e.max.y&&(e.max.y=o.y),o.y<e.min.y&&(e.min.y=o.y)}n&&(n.x>0?e.max.x+=n.x:e.min.x+=n.x,n.y>0?e.max.y+=n.y:e.min.y+=n.y)},n.contains=function(e,t){return t.x>=e.min.x&&t.x<=e.max.x&&t.y>=e.min.y&&t.y<=e.max.y},n.overlaps=function(e,t){return e.min.x<=t.max.x&&e.max.x>=t.min.x&&e.max.y>=t.min.y&&e.min.y<=t.max.y},n.translate=function(e,t){e.min.x+=t.x,e.max.x+=t.x,e.min.y+=t.y,e.max.y+=t.y},n.shift=function(e,t){var n=e.max.x-e.min.x,r=e.max.y-e.min.y;e.min.x=t.x,e.max.x=t.x+n,e.min.y=t.y,e.max.y=t.y+r}},function(e,t){var n={};e.exports=n,n.create=function(e,t){return{x:e||0,y:t||0}},n.clone=function(e){return{x:e.x,y:e.y}},n.magnitude=function(e){return Math.sqrt(e.x*e.x+e.y*e.y)},n.magnitudeSquared=function(e){return e.x*e.x+e.y*e.y},n.rotate=function(e,t,n){var r=Math.cos(t),o=Math.sin(t);n||(n={});var i=e.x*r-e.y*o;return n.y=e.x*o+e.y*r,n.x=i,n},n.rotateAbout=function(e,t,n,r){var o=Math.cos(t),i=Math.sin(t);r||(r={});var a=n.x+((e.x-n.x)*o-(e.y-n.y)*i);return r.y=n.y+((e.x-n.x)*i+(e.y-n.y)*o),r.x=a,r},n.normalise=function(e){var t=n.magnitude(e);return 0===t?{x:0,y:0}:{x:e.x/t,y:e.y/t}},n.dot=function(e,t){return e.x*t.x+e.y*t.y},n.cross=function(e,t){return e.x*t.y-e.y*t.x},n.cross3=function(e,t,n){return(t.x-e.x)*(n.y-e.y)-(t.y-e.y)*(n.x-e.x)},n.add=function(e,t,n){return n||(n={}),n.x=e.x+t.x,n.y=e.y+t.y,n},n.sub=function(e,t,n){return n||(n={}),n.x=e.x-t.x,n.y=e.y-t.y,n},n.mult=function(e,t){return{x:e.x*t,y:e.y*t}},n.div=function(e,t){return{x:e.x/t,y:e.y/t}},n.perp=function(e,t){return{x:-((t=!0===t?-1:1)*e.y),y:t*e.x}},n.neg=function(e){return{x:-e.x,y:-e.y}},n.angle=function(e,t){return Math.atan2(t.y-e.y,t.x-e.x)},n._temp=[n.create(),n.create(),n.create(),n.create(),n.create(),n.create()]},function(e,t,n){var r={};e.exports=r;var o=n(2),i=n(0);r.create=function(e,t){for(var n=[],r=0;r<e.length;r++){var o=e[r],i={x:o.x,y:o.y,index:r,body:t,isInternal:!1};n.push(i)}return n},r.fromPath=function(e,t){var n=[];return e.replace(/L?\s*([-\d.e]+)[\s,]*([-\d.e]+)*/ig,function(e,t,r){n.push({x:parseFloat(t),y:parseFloat(r)})}),r.create(n,t)},r.centre=function(e){for(var t,n,i,a=r.area(e,!0),s={x:0,y:0},l=0;l<e.length;l++)i=(l+1)%e.length,t=o.cross(e[l],e[i]),n=o.mult(o.add(e[l],e[i]),t),s=o.add(s,n);return o.div(s,6*a)},r.mean=function(e){for(var t={x:0,y:0},n=0;n<e.length;n++)t.x+=e[n].x,t.y+=e[n].y;return o.div(t,e.length)},r.area=function(e,t){for(var n=0,r=e.length-1,o=0;o<e.length;o++)n+=(e[r].x-e[o].x)*(e[r].y+e[o].y),r=o;return t?n/2:Math.abs(n)/2},r.inertia=function(e,t){for(var n,r,i=0,a=0,s=0;s<e.length;s++)r=(s+1)%e.length,i+=(n=Math.abs(o.cross(e[r],e[s])))*(o.dot(e[r],e[r])+o.dot(e[r],e[s])+o.dot(e[s],e[s])),a+=n;return t/6*(i/a)},r.translate=function(e,t,n){n=void 0!==n?n:1;var r,o=e.length,i=t.x*n,a=t.y*n;for(r=0;r<o;r++)e[r].x+=i,e[r].y+=a;return e},r.rotate=function(e,t,n){if(0!==t){var r,o,i,a,s=Math.cos(t),l=Math.sin(t),c=n.x,u=n.y,d=e.length;for(a=0;a<d;a++)o=(r=e[a]).x-c,i=r.y-u,r.x=c+(o*s-i*l),r.y=u+(o*l+i*s);return e}},r.contains=function(e,t){for(var n,r=t.x,o=t.y,i=e.length,a=e[i-1],s=0;s<i;s++){if(n=e[s],(r-a.x)*(n.y-a.y)+(o-a.y)*(a.x-n.x)>0)return!1;a=n}return!0},r.scale=function(e,t,n,i){if(1===t&&1===n)return e;i=i||r.centre(e);for(var a,s,l=0;l<e.length;l++)a=e[l],s=o.sub(a,i),e[l].x=i.x+s.x*t,e[l].y=i.y+s.y*n;return e},r.chamfer=function(e,t,n,r,a){t="number"==typeof t?[t]:t||[8],n=void 0!==n?n:-1,r=r||2,a=a||14;
1for(var s=[],l=0;l<e.length;l++){var c=e[l-1>=0?l-1:e.length-1],u=e[l],d=e[(l+1)%e.length],p=t[l<t.length?l:t.length-1];if(0===p){s.push(u);continue}var m=o.normalise({x:u.y-c.y,y:c.x-u.x}),f=o.normalise({x:d.y-u.y,y:u.x-d.x}),g=Math.sqrt(2*Math.pow(p,2)),h=o.mult(i.clone(m),p),v=o.normalise(o.mult(o.add(m,f),.5)),y=o.sub(u,o.mult(v,g)),x=n;-1===n&&(x=1.75*Math.pow(p,.32)),(x=i.clamp(x,r,a))%2==1&&(x+=1);for(var b=Math.acos(o.dot(m,f))/x,w=0;w<x;w++)s.push(o.add(o.rotate(h,b*w),y))}return s},r.clockwiseSort=function(e){var t=r.mean(e);return e.sort(function(e,n){return o.angle(t,e)-o.angle(t,n)}),e},r.isConvex=function(e){var t,n,r,o,i=0,a=e.length;if(a<3)return null;for(t=0;t<a;t++)if(n=(t+1)%a,r=(t+2)%a,(o=(e[n].x-e[t].x)*(e[r].y-e[n].y)-(e[n].y-e[t].y)*(e[r].x-e[n].x))<0?i|=1:o>0&&(i|=2),3===i)return!1;return 0!==i||null},r.hull=function(e){var t,n,r=[],i=[];for((e=e.slice(0)).sort(function(e,t){var n=e.x-t.x;return 0!==n?n:e.y-t.y}),n=0;n<e.length;n+=1){for(t=e[n];i.length>=2&&0>=o.cross3(i[i.length-2],i[i.length-1],t);)i.pop();i.push(t)}for(n=e.length-1;n>=0;n-=1){for(t=e[n];r.length>=2&&0>=o.cross3(r[r.length-2],r[r.length-1],t);)r.pop();r.push(t)}return r.pop(),i.pop(),r.concat(i)}},function(e,t,n){var r,o={};e.exports=o;var i=n(3),a=n(2),s=n(7),l=n(0),c=n(1),u=n(11);o._timeCorrection=!0,o._inertiaScale=4,o._nextCollidingGroupId=1,o._nextNonCollidingGroupId=-1,o._nextCategory=1,o._baseDelta=1e3/60,o.create=function(e){var t={id:l.nextId(),type:"body",label:"Body",parts:[],plugin:{},angle:0,vertices:i.fromPath("L 0 0 L 40 0 L 40 40 L 0 40"),position:{x:0,y:0},force:{x:0,y:0},torque:0,positionImpulse:{x:0,y:0},constraintImpulse:{x:0,y:0,angle:0},totalContacts:0,speed:0,angularSpeed:0,velocity:{x:0,y:0},angularVelocity:0,isSensor:!1,isStatic:!1,isSleeping:!1,motion:0,sleepThreshold:60,density:.001,restitution:0,friction:.1,frictionStatic:.5,frictionAir:.01,collisionFilter:{category:1,mask:0xffffffff,group:0},slop:.05,timeScale:1,render:{visible:!0,opacity:1,strokeStyle:null,fillStyle:null,lineWidth:null,sprite:{xScale:1,yScale:1,xOffset:0,yOffset:0}},events:null,bounds:null,chamfer:null,circleRadius:0,positionPrev:null,anglePrev:0,parent:null,axes:null,area:0,mass:0,inertia:0,deltaTime:1e3/60,_original:null},n=l.extend(t,e);return r(n,e),n},o.nextGroup=function(e){return e?o._nextNonCollidingGroupId--:o._nextCollidingGroupId++},o.nextCategory=function(){return o._nextCategory=o._nextCategory<<1,o._nextCategory},r=function(e,t){t=t||{},o.set(e,{bounds:e.bounds||c.create(e.vertices),positionPrev:e.positionPrev||a.clone(e.position),anglePrev:e.anglePrev||e.angle,vertices:e.vertices,parts:e.parts||[e],isStatic:e.isStatic,isSleeping:e.isSleeping,parent:e.parent||e}),i.rotate(e.vertices,e.angle,e.position),u.rotate(e.axes,e.angle),c.update(e.bounds,e.vertices,e.velocity),o.set(e,{axes:t.axes||e.axes,area:t.area||e.area,mass:t.mass||e.mass,inertia:t.inertia||e.inertia});var n=e.isStatic?"#14151f":l.choose(["#f19648","#f5d259","#f55a3c","#063e7b","#ececd1"]),r=e.isStatic?"#555":"#ccc",s=e.isStatic&&null===e.render.fillStyle?1:0;e.render.fillStyle=e.render.fillStyle||n,e.render.strokeStyle=e.render.strokeStyle||r,e.render.lineWidth=e.render.lineWidth||s,e.render.sprite.xOffset+=-(e.bounds.min.x-e.position.x)/(e.bounds.max.x-e.bounds.min.x),e.render.sprite.yOffset+=-(e.bounds.min.y-e.position.y)/(e.bounds.max.y-e.bounds.min.y)},o.set=function(e,t,n){var r;for(r in"string"==typeof t&&(r=t,(t={})[r]=n),t)if(Object.prototype.hasOwnProperty.call(t,r))switch(n=t[r],r){case"isStatic":o.setStatic(e,n);break;case"isSleeping":s.set(e,n);break;case"mass":o.setMass(e,n);break;case"density":o.setDensity(e,n);break;case"inertia":o.setInertia(e,n);break;case"vertices":o.setVertices(e,n);break;case"position":o.setPosition(e,n);break;case"angle":o.setAngle(e,n);break;case"velocity":o.setVelocity(e,n);break;case"angularVelocity":o.setAngularVelocity(e,n);break;case"speed":o.setSpeed(e,n);break;case"angularSpeed":o.setAngularSpeed(e,n);break;case"parts":o.setParts(e,n);break;case"centre":o.setCentre(e,n);break;default:e[r]=n}},o.setStatic=function(e,t){for(var n=0;n<e.parts.length;n++){var r=e.parts[n];t?(r.isStatic||(r._original={restitution:r.restitution,friction:r.friction,mass:r.mass,inertia:r.inertia,density:r.density,inverseMass:r.inverseMass,inverseInertia:r.inverseInertia}),r.restitution=0,r.friction=1,r.mass=r.inertia=r.density=1/0,r.inverseMass=r.inverseInertia=0,r.positionPrev.x=r.position.x,r.positionPrev.y=r.position.y,r.anglePrev=r.angle,r.angularVelocity=0,r.speed=0,r.angularSpeed=0,r.motion=0):r._original&&(r.restitution=r._original.restitution,r.friction=r._original.friction,r.mass=r._original.mass,r.inertia=r._original.inertia,r.density=r._original.density,r.inverseMass=r._original.inverseMass,r.inverseInertia=r._original.inverseInertia,r._original=null),r.isStatic=t}},o.setMass=function(e,t){var n=e.inertia/(e.mass/6);e.inertia=t/6*n,e.inverseInertia=1/e.inertia,e.mass=t,e.inverseMass=1/e.mass,e.density=e.mass/e.area},o.setDensity=function(e,t){o.setMass(e,t*e.area),e.density=t},o.setInertia=function(e,t){e.inertia=t,e.inverseInertia=1/e.inertia},o.setVertices=function(e,t){t[0].body===e?e.vertices=t:e.vertices=i.create(t,e),e.axes=u.fromVertices(e.vertices),e.area=i.area(e.vertices),o.setMass(e,e.density
vendor: 8,369 bytes, line 1
1*e.area);var n=i.centre(e.vertices);i.translate(e.vertices,n,-1),o.setInertia(e,o._inertiaScale*i.inertia(e.vertices,e.mass)),i.translate(e.vertices,e.position),c.update(e.bounds,e.vertices,e.velocity)},o.setParts=function(e,t,n){for(t=t.slice(0),e.parts.length=0,e.parts.push(e),e.parent=e,r=0;r<t.length;r++){var r,a=t[r];a!==e&&(a.parent=e,e.parts.push(a))}if(1!==e.parts.length){if(n=void 0===n||n){var s=[];for(r=0;r<t.length;r++)s=s.concat(t[r].vertices);i.clockwiseSort(s);var l=i.hull(s),c=i.centre(l);o.setVertices(e,l),i.translate(e.vertices,c)}var u=o._totalProperties(e);e.area=u.area,e.parent=e,e.position.x=u.centre.x,e.position.y=u.centre.y,e.positionPrev.x=u.centre.x,e.positionPrev.y=u.centre.y,o.setMass(e,u.mass),o.setInertia(e,u.inertia),o.setPosition(e,u.centre)}},o.setCentre=function(e,t,n){n?(e.positionPrev.x+=t.x,e.positionPrev.y+=t.y,e.position.x+=t.x,e.position.y+=t.y):(e.positionPrev.x=t.x-(e.position.x-e.positionPrev.x),e.positionPrev.y=t.y-(e.position.y-e.positionPrev.y),e.position.x=t.x,e.position.y=t.y)},o.setPosition=function(e,t,n){var r=a.sub(t,e.position);n?(e.positionPrev.x=e.position.x,e.positionPrev.y=e.position.y,e.velocity.x=r.x,e.velocity.y=r.y,e.speed=a.magnitude(r)):(e.positionPrev.x+=r.x,e.positionPrev.y+=r.y);for(var o=0;o<e.parts.length;o++){var s=e.parts[o];s.position.x+=r.x,s.position.y+=r.y,i.translate(s.vertices,r),c.update(s.bounds,s.vertices,e.velocity)}},o.setAngle=function(e,t,n){var r=t-e.angle;n?(e.anglePrev=e.angle,e.angularVelocity=r,e.angularSpeed=Math.abs(r)):e.anglePrev+=r;for(var o=0;o<e.parts.length;o++){var s=e.parts[o];s.angle+=r,i.rotate(s.vertices,r,e.position),u.rotate(s.axes,r),c.update(s.bounds,s.vertices,e.velocity),o>0&&a.rotateAbout(s.position,r,e.position,s.position)}},o.setVelocity=function(e,t){var n=e.deltaTime/o._baseDelta;e.positionPrev.x=e.position.x-t.x*n,e.positionPrev.y=e.position.y-t.y*n,e.velocity.x=(e.position.x-e.positionPrev.x)/n,e.velocity.y=(e.position.y-e.positionPrev.y)/n,e.speed=a.magnitude(e.velocity)},o.getVelocity=function(e){var t=o._baseDelta/e.deltaTime;return{x:(e.position.x-e.positionPrev.x)*t,y:(e.position.y-e.positionPrev.y)*t}},o.getSpeed=function(e){return a.magnitude(o.getVelocity(e))},o.setSpeed=function(e,t){o.setVelocity(e,a.mult(a.normalise(o.getVelocity(e)),t))},o.setAngularVelocity=function(e,t){var n=e.deltaTime/o._baseDelta;e.anglePrev=e.angle-t*n,e.angularVelocity=(e.angle-e.anglePrev)/n,e.angularSpeed=Math.abs(e.angularVelocity)},o.getAngularVelocity=function(e){return(e.angle-e.anglePrev)*o._baseDelta/e.deltaTime},o.getAngularSpeed=function(e){return Math.abs(o.getAngularVelocity(e))},o.setAngularSpeed=function(e,t){o.setAngularVelocity(e,l.sign(o.getAngularVelocity(e))*t)},o.translate=function(e,t,n){o.setPosition(e,a.add(e.position,t),n)},o.rotate=function(e,t,n,r){if(n){var i=Math.cos(t),a=Math.sin(t),s=e.position.x-n.x,l=e.position.y-n.y;o.setPosition(e,{x:n.x+(s*i-l*a),y:n.y+(s*a+l*i)},r),o.setAngle(e,e.angle+t,r)}else o.setAngle(e,e.angle+t,r)},o.scale=function(e,t,n,r){var a=0,s=0;r=r||e.position;for(var l=0;l<e.parts.length;l++){var d=e.parts[l];i.scale(d.vertices,t,n,r),d.axes=u.fromVertices(d.vertices),d.area=i.area(d.vertices),o.setMass(d,e.density*d.area),i.translate(d.vertices,{x:-d.position.x,y:-d.position.y}),o.setInertia(d,o._inertiaScale*i.inertia(d.vertices,d.mass)),i.translate(d.vertices,{x:d.position.x,y:d.position.y}),l>0&&(a+=d.area,s+=d.inertia),d.position.x=r.x+(d.position.x-r.x)*t,d.position.y=r.y+(d.position.y-r.y)*n,c.update(d.bounds,d.vertices,e.velocity)}e.parts.length>1&&(e.area=a,e.isStatic||(o.setMass(e,e.density*a),o.setInertia(e,s))),e.circleRadius&&(t===n?e.circleRadius*=t:e.circleRadius=null)},o.update=function(e,t){var n=(t=(void 0!==t?t:1e3/60)*e.timeScale)*t,r=o._timeCorrection?t/(e.deltaTime||t):1,s=1-e.frictionAir*(t/l._baseDelta),d=(e.position.x-e.positionPrev.x)*r,p=(e.position.y-e.positionPrev.y)*r;e.velocity.x=d*s+e.force.x/e.mass*n,e.velocity.y=p*s+e.force.y/e.mass*n,e.positionPrev.x=e.position.x,e.positionPrev.y=e.position.y,e.position.x+=e.velocity.x,e.position.y+=e.velocity.y,e.deltaTime=t,e.angularVelocity=(e.angle-e.anglePrev)*s*r+e.torque/e.inertia*n,e.anglePrev=e.angle,e.angle+=e.angularVelocity;for(var m=0;m<e.parts.length;m++){var f=e.parts[m];i.translate(f.vertices,e.velocity),m>0&&(f.position.x+=e.velocity.x,f.position.y+=e.velocity.y),0!==e.angularVelocity&&(i.rotate(f.vertices,e.angularVelocity,e.position),u.rotate(f.axes,e.angularVelocity),m>0&&a.rotateAbout(f.position,e.angularVelocity,e.position,f.position)),c.update(f.bounds,f.vertices,e.velocity)}},o.updateVelocities=function(e){var t=o._baseDelta/e.deltaTime,n=e.velocity;n.x=(e.position.x-e.positionPrev.x)*t,n.y=(e.position.y-e.positionPrev.y)*t,e.speed=Math.sqrt(n.x*n.x+n.y*n.y),e.angularVelocity=(e.angle-e.anglePrev)*t,e.angularSpeed=Math.abs(e.angularVelocity)},o.applyForce=function(e,t,n){var r={x:t.x-e.position.x,y:t.y-e.position.y};e.force.x+=n.x,e.force.y+=n.y,e.torque+=r.x*n.y-r.y*n.x},o._totalProperties=function(e){for(var t={mass:0,area:0,inertia:0,centre:{x:0,y:0}},n=+(1!==e.parts.length);n<e.parts.length;n++){var r=e.parts[n],o=r.mass!==1/0?r.mass:1;t.mass+=o,t.area+=r.area,t.inertia+=r.inertia,t.centre=a.add(t.centre,a.mult(r.position,o))}return t.centre=a.div(t.centre,t.mass),t}},function(e,t,n){var r={};e.exports=r;var o=n(0);r.on=function(e,t,n){for(var r,o=t.split(" "),i=0;i<o.length;i++)r=o[i],e.events=e.events||{},e.events[r]=e.events[r]||[],e.events[r].push(n);return n},r.off=function(e,t,n){if(!t){e.events={};return}"function"==typeof t&&(n=t,t=o.keys(e.events).join(" "));for(var r=t.split(" "),i=0;i<r.length;i++){var a=e.events[r[i]],s=[];if(n&&a)for(var l=0;l<a.length;l++)a[l]!==n&&s.push(a[l]);e.events[r[i]]=s}},r.trigger=function(e,t,n){var r,i,a,s,l=e.events;if(l&&o.keys(l).length>0){n||(n={}),r=t.split(" ");for(var c=0;c<r.length;c++)if(a=l[i=r[c]]){(s=o.clone(n,!1)).name=i,s.source=e;for(var u=0;u<a.length;u++)a[u].apply(e,[s])}}}},function(e,t,n){var r={};e.exports=r;var o=n(5),i=n(0),a=n(1),s=n(4);r.create=function(e){return i.extend({id:i.nextId(),type:"composite",parent:null,isModified:!1,bodies:[],constraints:[],composites:[],label:"Composite",plugin:{},cache:{allBodies:null,allConstraints:null,allComposites:null}},e)},r.setModified=function(e,t,n,o){if(e.isModified=t,t&&e.cache&&(e.cache.allBodies=null,e.cache.allConstraints=null,e.cache.allComposites=null),n&&e.parent&&r.setModified(e.parent,t,n,o),o)for(var i=0;i<e.composites.length;i++){var a=e.composites[i];r.setModified(a,t,n,o)}},r.add=function(e,t){var n=[].concat(t);o.trigger(e,"beforeAdd",{object:t});for(var a=0;a<n.length;a++){var s=n[a];switch(s.type){case"body":if(s.parent!==s){i.warn("Composite.add: skipped adding a compound body part (you must add its parent instead)");break}r.addBody(e,s);break;case"constraint":r.addConstraint(e,s);break;case"composite":r.addComposite(e,s);break;case"mouseConstraint":r.addConstraint(e,s.constraint)}}return o.trigger(e,"afterAdd",{object:t}),e},r.remove=function(e,t,n){var i=[].concat(t);o.trigger(e,"beforeRemove",{object:t});for(var a=0;a<i.length;a++){var s=i[a];switch(s.type){case"body":r.removeBody(e,s,n);break;case"constraint":r.removeConstraint(e,s,n);break;case"composite":r.removeComposite(e,s,n);break;case"mouseConstraint":r.removeConstraint(e,s.constraint)}}return o.trigger(e,"afterRemove",{object:t}),e},r.addComposite=function(e,t){return e.composites.push(t),t.parent=e,r.setModified(e,!0,!0,!1),e},r.removeComposite=function(e,t,n){var o=i.indexOf(e.composites,t);if(-1!==o){var a=r.allBodies(t);r.removeCompositeAt(e,o);for(var s=0;s<a.length;s++)a[s].sleepCounter=0}if(n)for(var s=0;s<e.composites.length;s++)r.removeComposite(e.composites[s],t,!0);return e},r.removeCompositeAt=function(e,t){return e.composites.splice(t,1),r.setModified(e,!0,!0,!1),e},r.addBody=function(e,t){return e.bodies.push(t),r.setModified(e,!0,!0,!1),e},r.removeBody=function(e,t,n){var o=i.indexOf(e.bodies,t);if(-1!==o&&(r.removeBodyAt(e,o),t.sleepCounter=0),n)for(var a=0;a<e.composites.length;a++)r.removeBody(e.composites[a],t,!0);return e},r.removeBodyAt=function(e,t){return e.bodies.splice(t,1),r.setModified(e,!0,!0,!1),e},r.addConstraint=function(e,t){return e.constraints.push(t),r.setModified(e,!0,!0,!1),e},r.removeConstraint=function(e,t,n){var o=i.indexOf(e.constraints,t);
1if(-1!==o&&r.removeConstraintAt(e,o),n)for(var a=0;a<e.composites.length;a++)r.removeConstraint(e.composites[a],t,!0);return e},r.removeConstraintAt=function(e,t){return e.constraints.splice(t,1),r.setModified(e,!0,!0,!1),e},r.clear=function(e,t,n){if(n)for(var o=0;o<e.composites.length;o++)r.clear(e.composites[o],t,!0);return t?e.bodies=e.bodies.filter(function(e){return e.isStatic}):e.bodies.length=0,e.constraints.length=0,e.composites.length=0,r.setModified(e,!0,!0,!1),e},r.allBodies=function(e){if(e.cache&&e.cache.allBodies)return e.cache.allBodies;for(var t=[].concat(e.bodies),n=0;n<e.composites.length;n++)t=t.concat(r.allBodies(e.composites[n]));return e.cache&&(e.cache.allBodies=t),t},r.allConstraints=function(e){if(e.cache&&e.cache.allConstraints)return e.cache.allConstraints;for(var t=[].concat(e.constraints),n=0;n<e.composites.length;n++)t=t.concat(r.allConstraints(e.composites[n]));return e.cache&&(e.cache.allConstraints=t),t},r.allComposites=function(e){if(e.cache&&e.cache.allComposites)return e.cache.allComposites;for(var t=[].concat(e.composites),n=0;n<e.composites.length;n++)t=t.concat(r.allComposites(e.composites[n]));return e.cache&&(e.cache.allComposites=t),t},r.get=function(e,t,n){var o,i;switch(n){case"body":o=r.allBodies(e);break;case"constraint":o=r.allConstraints(e);break;case"composite":o=r.allComposites(e).concat(e)}return o?0===(i=o.filter(function(e){return e.id.toString()===t.toString()})).length?null:i[0]:null},r.move=function(e,t,n){return r.remove(e,t),r.add(n,t),e},r.rebase=function(e){for(var t=r.allBodies(e).concat(r.allConstraints(e)).concat(r.allComposites(e)),n=0;n<t.length;n++)t[n].id=i.nextId();return e},r.translate=function(e,t,n){for(var o=n?r.allBodies(e):e.bodies,i=0;i<o.length;i++)s.translate(o[i],t);return e},r.rotate=function(e,t,n,o){for(var i=Math.cos(t),a=Math.sin(t),l=o?r.allBodies(e):e.bodies,c=0;c<l.length;c++){var u=l[c],d=u.position.x-n.x,p=u.position.y-n.y;s.setPosition(u,{x:n.x+(d*i-p*a),y:n.y+(d*a+p*i)}),s.rotate(u,t)}return e},r.scale=function(e,t,n,o,i){for(var a=i?r.allBodies(e):e.bodies,l=0;l<a.length;l++){var c=a[l],u=c.position.x-o.x,d=c.position.y-o.y;s.setPosition(c,{x:o.x+u*t,y:o.y+d*n}),s.scale(c,t,n)}return e},r.bounds=function(e){for(var t=r.allBodies(e),n=[],o=0;o<t.length;o+=1){var i=t[o];n.push(i.bounds.min,i.bounds.max)}return a.create(n)}},function(e,t,n){var r={};e.exports=r;var o=n(4),i=n(5),a=n(0);r._motionWakeThreshold=.18,r._motionSleepThreshold=.08,r._minBias=.9,r.update=function(e,t){for(var n=t/a._baseDelta,i=r._motionSleepThreshold,s=0;s<e.length;s++){var l=e[s],c=o.getSpeed(l),u=o.getAngularSpeed(l),d=c*c+u*u;if(0!==l.force.x||0!==l.force.y){r.set(l,!1);continue}var p=Math.min(l.motion,d),m=Math.max(l.motion,d);l.motion=r._minBias*p+(1-r._minBias)*m,l.sleepThreshold>0&&l.motion<i?(l.sleepCounter+=1,l.sleepCounter>=l.sleepThreshold/n&&r.set(l,!0)):l.sleepCounter>0&&(l.sleepCounter-=1)}},r.afterCollisions=function(e){for(var t=r._motionSleepThreshold,n=0;n<e.length;n++){var o=e[n];if(o.isActive){var i=o.collision,a=i.bodyA.parent,s=i.bodyB.parent;if((!a.isSleeping||!s.isSleeping)&&!a.isStatic&&!s.isStatic&&(a.isSleeping||s.isSleeping)){var l=a.isSleeping&&!a.isStatic?a:s,c=l===a?s:a;!l.isStatic&&c.motion>t&&r.set(l,!1)}}}},r.set=function(e,t){var n=e.isSleeping;t?(e.isSleeping=!0,e.sleepCounter=e.sleepThreshold,e.positionImpulse.x=0,e.positionImpulse.y=0,e.positionPrev.x=e.position.x,e.positionPrev.y=e.position.y,e.anglePrev=e.angle,e.speed=0,e.angularSpeed=0,e.motion=0,n||i.trigger(e,"sleepStart")):(e.isSleeping=!1,e.sleepCounter=0,n&&i.trigger(e,"sleepEnd"))}},function(e,t,n){var r,o,i,a={};e.exports=a;var s=n(3),l=n(9);r=[],o={overlap:0,axis:null},i={overlap:0,axis:null},a.create=function(e,t){return{pair:null,collided:!1,bodyA:e,bodyB:t,parentA:e.parent,parentB:t.parent,depth:0,normal:{x:0,y:0},tangent:{x:0,y:0},penetration:{x:0,y:0},supports:[null,null],supportCount:0}},a.collides=function(e,t,n){if(a._overlapAxes(o,e.vertices,t.vertices,e.axes),o.overlap<=0||(a._overlapAxes(i,t.vertices,e.vertices,t.axes),i.overlap<=0))return null;var r,c,u=n&&n.table[l.id(e,t)];u?c=u.collision:((c=a.create(e,t)).collided=!0,c.bodyA=e.id<t.id?e:t,c.bodyB=e.id<t.id?t:e,c.parentA=c.bodyA.parent,c.parentB=c.bodyB.parent),e=c.bodyA,t=c.bodyB,r=o.overlap<i.overlap?o:i;var d=c.normal,p=c.tangent,m=c.penetration,f=c.supports,g=r.overlap,h=r.axis,v=h.x,y=h.y;v*(t.position.x-e.position.x)+y*(t.position.y-e.position.y)>=0&&(v=-v,y=-y),d.x=v,d.y=y,p.x=-y,p.y=v,m.x=v*g,m.y=y*g,c.depth=g;var x=a._findSupports(e,t,d,1),b=0;if(s.contains(e.vertices,x[0])&&(f[b++]=x[0]),s.contains(e.vertices,x[1])&&(f[b++]=x[1]),b<2){var w=a._findSupports(t,e,d,-1);s.contains(t.vertices,w[0])&&(f[b++]=w[0]),b<2&&s.contains(t.vertices,w[1])&&(f[b++]=w[1])}return 0===b&&(f[b++]=x[0]),c.supportCount=b,c}
vendor: 4,376 bytes, line 1
1,a._overlapAxes=function(e,t,n,r){var o,i,a,s,l,c,u=t.length,d=n.length,p=t[0].x,m=t[0].y,f=n[0].x,g=n[0].y,h=r.length,v=Number.MAX_VALUE,y=0;for(l=0;l<h;l++){var x=r[l],b=x.x,w=x.y,S=p*b+m*w,C=f*b+g*w,M=S,A=C;for(c=1;c<u;c+=1)(s=t[c].x*b+t[c].y*w)>M?M=s:s<S&&(S=s);for(c=1;c<d;c+=1)(s=n[c].x*b+n[c].y*w)>A?A=s:s<C&&(C=s);if((o=(i=M-C)<(a=A-S)?i:a)<v&&(v=o,y=l,o<=0))break}e.axis=r[y],e.overlap=v},a._findSupports=function(e,t,n,o){var i,a,s,l=t.vertices,c=l.length,u=e.position.x,d=e.position.y,p=n.x*o,m=n.y*o,f=l[0],g=f,h=p*(u-g.x)+m*(d-g.y);for(s=1;s<c;s+=1)(a=p*(u-(g=l[s]).x)+m*(d-g.y))<h&&(h=a,f=g);return(h=p*(u-(i=l[(c+f.index-1)%c]).x)+m*(d-i.y),p*(u-(g=l[(f.index+1)%c]).x)+m*(d-g.y)<h)?(r[0]=f,r[1]=g):(r[0]=f,r[1]=i),r}},function(e,t,n){var r={};e.exports=r;var o=n(16);r.create=function(e,t){var n=e.bodyA,i=e.bodyB,a={id:r.id(n,i),bodyA:n,bodyB:i,collision:e,contacts:[o.create(),o.create()],contactCount:0,separation:0,isActive:!0,isSensor:n.isSensor||i.isSensor,timeCreated:t,timeUpdated:t,inverseMass:0,friction:0,frictionStatic:0,restitution:0,slop:0};return r.update(a,e,t),a},r.update=function(e,t,n){var r=t.supports,o=t.supportCount,i=e.contacts,a=t.parentA,s=t.parentB;e.isActive=!0,e.timeUpdated=n,e.collision=t,e.separation=t.depth,e.inverseMass=a.inverseMass+s.inverseMass,e.friction=a.friction<s.friction?a.friction:s.friction,e.frictionStatic=a.frictionStatic>s.frictionStatic?a.frictionStatic:s.frictionStatic,e.restitution=a.restitution>s.restitution?a.restitution:s.restitution,e.slop=a.slop>s.slop?a.slop:s.slop,e.contactCount=o,t.pair=e;var l=r[0],c=i[0],u=r[1],d=i[1];(d.vertex===l||c.vertex===u)&&(i[1]=c,i[0]=c=d,d=i[1]),c.vertex=l,d.vertex=u},r.setActive=function(e,t,n){t?(e.isActive=!0,e.timeUpdated=n):(e.isActive=!1,e.contactCount=0)},r.id=function(e,t){return e.id<t.id?e.id.toString(36)+":"+t.id.toString(36):t.id.toString(36)+":"+e.id.toString(36)}},function(e,t,n){var r={};e.exports=r;var o=n(3),i=n(2),a=n(7),s=n(1),l=n(11),c=n(0);r._warming=.4,r._torqueDampen=1,r._minLength=1e-6,r.create=function(e){e.bodyA&&!e.pointA&&(e.pointA={x:0,y:0}),e.bodyB&&!e.pointB&&(e.pointB={x:0,y:0});var t=e.bodyA?i.add(e.bodyA.position,e.pointA):e.pointA,n=e.bodyB?i.add(e.bodyB.position,e.pointB):e.pointB,r=i.magnitude(i.sub(t,n));e.length=void 0!==e.length?e.length:r,e.id=e.id||c.nextId(),e.label=e.label||"Constraint",e.type="constraint",e.stiffness=e.stiffness||(e.length>0?1:.7),e.damping=e.damping||0,e.angularStiffness=e.angularStiffness||0,e.angleA=e.bodyA?e.bodyA.angle:e.angleA,e.angleB=e.bodyB?e.bodyB.angle:e.angleB,e.plugin={};var o={visible:!0,lineWidth:2,strokeStyle:"#ffffff",type:"line",anchors:!0};return 0===e.length&&e.stiffness>.1?(o.type="pin",o.anchors=!1):e.stiffness<.9&&(o.type="spring"),e.render=c.extend(o,e.render),e},r.preSolveAll=function(e){for(var t=0;t<e.length;t+=1){var n=e[t],r=n.constraintImpulse;n.isStatic||0===r.x&&0===r.y&&0===r.angle||(n.position.x+=r.x,n.position.y+=r.y,n.angle+=r.angle)}},r.solveAll=function(e,t){for(var n=c.clamp(t/c._baseDelta,0,1),o=0;o<e.length;o+=1){var i=e[o],a=!i.bodyA||i.bodyA&&i.bodyA.isStatic,s=!i.bodyB||i.bodyB&&i.bodyB.isStatic;(a||s)&&r.solve(e[o],n)}for(o=0;o<e.length;o+=1)a=!(i=e[o]).bodyA||i.bodyA&&i.bodyA.isStatic,s=!i.bodyB||i.bodyB&&i.bodyB.isStatic,a||s||r.solve(e[o],n)},r.solve=function(e,t){var n=e.bodyA,o=e.bodyB,a=e.pointA,s=e.pointB;if(n||o){n&&!n.isStatic&&(i.rotate(a,n.angle-e.angleA,a),e.angleA=n.angle),o&&!o.isStatic&&(i.rotate(s,o.angle-e.angleB,s),e.angleB=o.angle);var l=a,c=s;if(n&&(l=i.add(n.position,a)),o&&(c=i.add(o.position,s)),l&&c){var u=i.sub(l,c),d=i.magnitude(u);d<r._minLength&&(d=r._minLength);var p,m,f,g,h,v=(d-e.length)/d,y=e.stiffness>=1||0===e.length?e.stiffness*t:e.stiffness*t*t,x=e.damping*t,b=i.mult(u,v*y),w=(n?n.inverseMass:0)+(o?o.inverseMass:0),S=w+((n?n.inverseInertia:0)+(o?o.inverseInertia:0));if(x>0){var C=i.create();f=i.div(u,d),h=i.sub(o&&i.sub(o.position,o.positionPrev)||C,n&&i.sub(n.position,n.positionPrev)||C),g=i.dot(f,h)}n&&!n.isStatic&&(m=n.inverseMass/w,n.constraintImpulse.x-=b.x*m,n.constraintImpulse.y-=b.y*m,n.position.x-=b.x*m,n.position.y-=b.y*m,x>0&&(n.positionPrev.x-=x*f.x*g*m,n.positionPrev.y-=x*f.y*g*m),p=i.cross(a,b)/S*r._torqueDampen*n.inverseInertia*(1-e.angularStiffness),n.constraintImpulse.angle-=p,n.angle-=p),o&&!o.isStatic&&(m=o.inverseMass/w,o.constraintImpulse.x+=b.x*m,o.
1constraintImpulse.y+=b.y*m,o.position.x+=b.x*m,o.position.y+=b.y*m,x>0&&(o.positionPrev.x+=x*f.x*g*m,o.positionPrev.y+=x*f.y*g*m),p=i.cross(s,b)/S*r._torqueDampen*o.inverseInertia*(1-e.angularStiffness),o.constraintImpulse.angle+=p,o.angle+=p)}}},r.postSolveAll=function(e){for(var t=0;t<e.length;t++){var n=e[t],c=n.constraintImpulse;if(!n.isStatic&&(0!==c.x||0!==c.y||0!==c.angle)){a.set(n,!1);for(var u=0;u<n.parts.length;u++){var d=n.parts[u];o.translate(d.vertices,c),u>0&&(d.position.x+=c.x,d.position.y+=c.y),0!==c.angle&&(o.rotate(d.vertices,c.angle,n.position),l.rotate(d.axes,c.angle),u>0&&i.rotateAbout(d.position,c.angle,n.position,d.position)),s.update(d.bounds,d.vertices,n.velocity)}c.angle*=r._warming,c.x*=r._warming,c.y*=r._warming}}},r.pointAWorld=function(e){return{x:(e.bodyA?e.bodyA.position.x:0)+(e.pointA?e.pointA.x:0),y:(e.bodyA?e.bodyA.position.y:0)+(e.pointA?e.pointA.y:0)}},r.pointBWorld=function(e){return{x:(e.bodyB?e.bodyB.position.x:0)+(e.pointB?e.pointB.x:0),y:(e.bodyB?e.bodyB.position.y:0)+(e.pointB?e.pointB.y:0)}},r.currentLength=function(e){var t=(e.bodyA?e.bodyA.position.x:0)+(e.pointA?e.pointA.x:0),n=(e.bodyA?e.bodyA.position.y:0)+(e.pointA?e.pointA.y:0),r=(e.bodyB?e.bodyB.position.x:0)+(e.pointB?e.pointB.x:0),o=(e.bodyB?e.bodyB.position.y:0)+(e.pointB?e.pointB.y:0),i=t-r,a=n-o;return Math.sqrt(i*i+a*a)}},function(e,t,n){var r={};e.exports=r;var o=n(2),i=n(0);r.fromVertices=function(e){for(var t={},n=0;n<e.length;n++){var r=(n+1)%e.length,a=o.normalise({x:e[r].y-e[n].y,y:e[n].x-e[r].x}),s=0===a.y?1/0:a.x/a.y;t[s=s.toFixed(3).toString()]=a}return i.values(t)},r.rotate=function(e,t){if(0!==t)for(var n=Math.cos(t),r=Math.sin(t),o=0;o<e.length;o++){var i,a=e[o];i=a.x*n-a.y*r,a.y=a.x*r+a.y*n,a.x=i}}},function(e,t,n){var r={};e.exports=r;var o=n(3),i=n(0),a=n(4),s=n(1),l=n(2);r.rectangle=function(e,t,n,r,s){s=s||{};var l={label:"Rectangle Body",position:{x:e,y:t},vertices:o.fromPath("L 0 0 L "+n+" 0 L "+n+" "+r+" L 0 "+r)};if(s.chamfer){var c=s.chamfer;l.vertices=o.chamfer(l.vertices,c.radius,c.quality,c.qualityMin,c.qualityMax),delete s.chamfer}return a.create(i.extend({},l,s))},r.trapezoid=function(e,t,n,r,s,l){l=l||{},s>=1&&i.warn("Bodies.trapezoid: slope parameter must be < 1.");var c,u=(1-2*(s*=.5))*n,d=n*s,p=d+u,m=p+d;c=s<.5?"L 0 0 L "+d+" "+-r+" L "+p+" "+-r+" L "+m+" 0":"L 0 0 L "+p+" "+-r+" L "+m+" 0";var f={label:"Trapezoid Body",position:{x:e,y:t},vertices:o.fromPath(c)};if(l.chamfer){var g=l.chamfer;f.vertices=o.chamfer(f.vertices,g.radius,g.quality,g.qualityMin,g.qualityMax),delete l.chamfer}return a.create(i.extend({},f,l))},r.circle=function(e,t,n,o,a){o=o||{};var s=Math.ceil(Math.max(10,Math.min(a=a||25,n)));return s%2==1&&(s+=1),r.polygon(e,t,s,n,i.extend({},{label:"Circle Body",circleRadius:n},o))},r.polygon=function(e,t,n,s,l){if(l=l||{},n<3)return r.circle(e,t,s,l);for(var c=2*Math.PI/n,u="",d=.5*c,p=0;p<n;p+=1){var m=d+p*c,f=Math.cos(m)*s,g=Math.sin(m)*s;u+="L "+f.toFixed(3)+" "+g.toFixed(3)+" "}var h={label:"Polygon Body",position:{x:e,y:t},vertices:o.fromPath(u)};if(l.chamfer){var v=l.chamfer;h.vertices=o.chamfer(h.vertices,v.radius,v.quality,v.qualityMin,v.qualityMax),delete l.chamfer}return a.create(i.extend({},h,l))},r.fromVertices=function(e,t,n,r,c,u,d,p){var m,f,g,h,v,y,x,b,w,S,C=i.getDecomp();for(m=!!(C&&C.quickDecomp),r=r||{},g=[],c=void 0!==c&&c,u=void 0!==u?u:.01,d=void 0!==d?d:10,p=void 0!==p?p:.01,i.isArray(n[0])||(n=[n]),w=0;w<n.length;w+=1)if(v=n[w],(h=o.isConvex(v))||m||i.warnOnce("Bodies.fromVertices: Install the 'poly-decomp' library and use Common.setDecomp or provide 'decomp' as a global to decompose concave vertices."),h||!m)v=h?o.clockwiseSort(v):o.hull(v),g.push({position:{x:e,y:t},vertices:v});else{var M=v.map(function(e){return[e.x,e.y]});C.makeCCW(M),!1!==u&&C.removeCollinearPoints(M,u),!1!==p&&C.removeDuplicatePoints&&C.removeDuplicatePoints(M,p);var A=C.quickDecomp(M);for(y=0;y<A.length;y++){var P=A[y].map(function(e){return{x:e[0],y:e[1]}});d>0&&o.area(P)<d||g.push({position:o.centre(P),vertices:P})}}for(y=0;y<g.length;y++)g[y]=a.create(i.extend(g[y],r));if(c)for(y=0;y<g.length;y++){var k=g[y];for(x=y+1;x<g.length;x++){var B=g[x];if(s.overlaps(k.bounds,B.bounds)){var z=k.vertices,L=B.vertices;for(b=0;b<k.vertices.length;b++)for(S=0;S<B.vertices.length;S++){var _=l.magnitudeSquared(l.sub(z[(b+1)%z.length],L[S])),I=l.magnitudeSquared(l.sub(z[b],L[(S+1)%L.length]));_<5&&I<5&&(z[b].isInternal=!0,L[S].isInternal=!0)}}}}return g.length>1?(f=a.create(i.extend({parts:g.slice(0)},r)),a.setPosition(f,{x:e,y:t}),f):g[0]}},function(e,t,n){var r={};e.exports=r;var o=n(0),i=n(8);r.create=function(e){return o.extend({bodies:[],collisions:[],pairs:null},e)},r.setBodies=function(e,t){e.bodies=t.slice(0)},r.clear=function(e){e.bodies=[],e.collisions=[]},r.collisions=function(e){var t,n,o=e.pairs,a=e.bodies,s=a.length,l=r.canCollide,c=i.collides,u=e.collisions,d=0;for(a.sort(r._compareBoundsX),t=0;t<s;t++){var p=a[t],m=p.bounds,f=p.bounds.max.x,g=p.bounds.max.y,h=p.bounds.min.y,v=p.isStatic||p.isSleeping,y=p.parts.length,x=1===y;for(n=t+1;n<s;
1n++){var b=a[n],w=b.bounds;if(w.min.x>f)break;if(!(g<w.min.y)&&!(h>w.max.y)&&(!v||!b.isStatic&&!b.isSleeping)&&l(p.collisionFilter,b.collisionFilter)){var S=b.parts.length;if(x&&1===S){var C=c(p,b,o);C&&(u[d++]=C)}else for(var M=+(y>1),A=+(S>1),P=M;P<y;P++)for(var k=p.parts[P],m=k.bounds,B=A;B<S;B++){var z=b.parts[B],w=z.bounds;if(!(m.min.x>w.max.x)&&!(m.max.x<w.min.x)&&!(m.max.y<w.min.y)&&!(m.min.y>w.max.y)){var C=c(k,z,o);C&&(u[d++]=C)}}}}}return u.length!==d&&(u.length=d),u},r.canCollide=function(e,t){return e.group===t.group&&0!==e.group?e.group>0:(e.mask&t.category)!=0&&(t.mask&e.category)!=0},r._compareBoundsX=function(e,t){return e.bounds.min.x-t.bounds.min.x}},function(e,t,n){var r={};e.exports=r;var o=n(0);r.create=function(e){var t={};return e||o.log("Mouse.create: element was undefined, defaulting to document.body","warn"),t.element=e||document.body,t.absolute={x:0,y:0},t.position={x:0,y:0},t.mousedownPosition={x:0,y:0},t.mouseupPosition={x:0,y:0},t.offset={x:0,y:0},t.scale={x:1,y:1},t.wheelDelta=0,t.button=-1,t.pixelRatio=parseInt(t.element.getAttribute("data-pixel-ratio"),10)||1,t.sourceEvents={mousemove:null,mousedown:null,mouseup:null,mousewheel:null},t.mousemove=function(e){var n=r._getRelativeMousePosition(e,t.element,t.pixelRatio);e.changedTouches&&(t.button=0,e.preventDefault()),t.absolute.x=n.x,t.absolute.y=n.y,t.position.x=t.absolute.x*t.scale.x+t.offset.x,t.position.y=t.absolute.y*t.scale.y+t.offset.y,t.sourceEvents.mousemove=e},t.mousedown=function(e){var n=r._getRelativeMousePosition(e,t.element,t.pixelRatio);e.changedTouches?(t.button=0,e.preventDefault()):t.button=e.button,t.absolute.x=n.x,t.absolute.y=n.y,t.position.x=t.absolute.x*t.scale.x+t.offset.x,t.position.y=t.absolute.y*t.scale.y+t.offset.y,t.mousedownPosition.x=t.position.x,t.mousedownPosition.y=t.position.y,t.sourceEvents.mousedown=e},t.mouseup=function(e){var n=r._getRelativeMousePosition(e,t.element,t.pixelRatio);e.changedTouches&&e.preventDefault(),t.button=-1,t.absolute.x=n.x,t.absolute.y=n.y,t.position.x=t.absolute.x*t.scale.x+t.offset.x,t.position.y=t.absolute.y*t.scale.y+t.offset.y,t.mouseupPosition.x=t.position.x,t.mouseupPosition.y=t.position.y,t.sourceEvents.mouseup=e},t.mousewheel=function(e){t.wheelDelta=Math.max(-1,Math.min(1,e.wheelDelta||-e.detail)),e.preventDefault(),t.sourceEvents.mousewheel=e},r.setElement(t,t.element),t},r.setElement=function(e,t){e.element=t,t.addEventListener("mousemove",e.mousemove,{passive:!0}),t.addEventListener("mousedown",e.mousedown,{passive:!0}),t.addEventListener("mouseup",e.mouseup,{passive:!0}),t.addEventListener("wheel",e.mousewheel,{passive:!1}),t.addEventListener("touchmove",e.mousemove,{passive:!1}),t.addEventListener("touchstart",e.mousedown,{passive:!1}),t.addEventListener("touchend",e.mouseup,{passive:!1})},r.clearSourceEvents=function(e){e.sourceEvents.mousemove=null,e.sourceEvents.mousedown=null,e.sourceEvents.mouseup=null,e.sourceEvents.mousewheel=null,e.wheelDelta=0},r.setOffset=function(e,t){e.offset.x=t.x,e.offset.y=t.y,e.position.x=e.absolute.x*e.scale.x+e.offset.x,e.position.y=e.absolute.y*e.scale.y+e.offset.y},r.setScale=function(e,t){e.scale.x=t.x,e.scale.y=t.y,e.position.x=e.absolute.x*e.scale.x+e.offset.x,e.position.y=e.absolute.y*e.scale.y+e.offset.y},r._getRelativeMousePosition=function(e,t,n){var r,o,i=t.getBoundingClientRect(),a=document.documentElement||document.body.parentNode||document.body,s=void 0!==window.pageXOffset?window.pageXOffset:a.scrollLeft,l=void 0!==window.pageYOffset?window.pageYOffset:a.scrollTop,c=e.changedTouches;return c?(r=c[0].pageX-i.left-s,o=c[0].pageY-i.top-l):(r=e.pageX-i.left-s,o=e.pageY-i.top-l),{x:r/(t.clientWidth/(t.width||t.clientWidth)*n),y:o/(t.clientHeight/(t.height||t.clientHeight)*n)}}},function(e,t,n){var r={};e.exports=r;var o=n(0);r._registry={},r.register=function(e){if(r.isPlugin(e)||o.warn("Plugin.register:",r.toString(e),"does not implement all required fields."),e.name in r._registry){var t=r._registry[e.name],n=r.versionParse(e.version).number,i=r.versionParse(t.version).number;n>i?(o.warn("Plugin.register:",r.toString(t),"was upgraded to",r.toString(e)),r._registry[e.name]=e):n<i?o.warn("Plugin.register:",r.toString(t),"can not be downgraded to",r.toString(e)):e!==t&&o.warn("Plugin.register:",r.toString(e),"is already registered to different plugin object")}else r._registry[e.name]=e;return e},r.resolve=function(e){return r._registry[r.dependencyParse(e).name]},r.toString=function(e){return"string"==typeof e?e:(e.name||"anonymous")+"@"+(e.version||e.range||"0.0.0")},r.isPlugin=function(e){return e&&e.name&&e.version&&e.install},r.isUsed=function(e,t){return e.used.indexOf(t)>-1},r.isFor=function(e,t){var n=e.for&&r.dependencyParse(e.for);return!e.for||t.name===n.name&&r.versionSatisfies(t.version,n.range)},r.use=function(e,t){if(e.uses=(e.uses||[]).concat(t||[]),0===e.uses.length)return void o.warn("Plugin.use:",r.toString(e),"does not specify any dependencies to install.");for(var n=r.dependencies(e),i=o.topologicalSort(n),a=[],s=0;s<i.length;s+=1)if(i[s]!==e.name){var l=r.resolve(i[s]);if(!l){a.push("❌ "+i[s]);continue}r.isUsed(e,l.name)||(r.isFor(l,e)||(o.warn("Plugin.use:",r.toString(l),"is for",l.for,"but installed on",r.toString(e)+"."),l._warned=!0),l.install?l.install(e):(o.warn("Plugin.use:",r.toString(l),"does not specify an install function."),l._warned=!0),l._warned?(a.push("🔶 "+r.toString(l)),delete l._warned):a.push("✅ "+r.toString(l)),e.used.push(l.name))}a.length>0&&o.info(a.join("  "))},r.dependencies=function(e,t){var n=r.dependencyParse(e),i=n.name;if(!(i in(t=t||{}))){e=r.resolve(e)||e,t[i]=o.map(e.uses||[],function(t){r.isPlugin(t)&&r.register(t);var i=r.dependencyParse(t),a=r.resolve(t);return a&&!r.versionSatisfies(a.version,i.range)?(o.warn("Plugin.dependencies:",r.toString(a),"does not satisfy",r.toString(i),"used by",r.toString(n)+"."),a._warned=!0,e._warned=!0):a||(o.warn("Plugin.dependencies:",r.toString(t),"used by",r.toString(n),"could not be resolved."),e._warned=!0),i.name});for(var a=0;a<t[i].length;a+=1)r.dependencies(t[i][a],t);return t}},r.dependencyParse=function(e){return o.isString(e)?(/^[\w-]+(@(\*|[\^~]?\d+\.\d+\.\d+(-[0-9A-Za-z-+]+)?))?$/.test(e)||o.warn("Plugin.dependencyParse:",e,"is not a valid depen
1dency string."),{name:e.split("@")[0],range:e.split("@")[1]||"*"}):{name:e.name,range:e.range||e.version}},r.versionParse=function(e){var t=/^(\*)|(\^|~|>=|>)?\s*((\d+)\.(\d+)\.(\d+))(-[0-9A-Za-z-+]+)?$/;t.test(e)||o.warn("Plugin.versionParse:",e,"is not a valid version or range.");var n=t.exec(e),r=Number(n[4]),i=Number(n[5]),a=Number(n[6]);return{isRange:!!(n[1]||n[2]),version:n[3],range:e,operator:n[1]||n[2]||"",major:r,minor:i,patch:a,parts:[r,i,a],prerelease:n[7],number:1e8*r+1e4*i+a}},r.versionSatisfies=function(e,t){t=t||"*";var n=r.versionParse(t),o=r.versionParse(e);if(n.isRange){if("*"===n.operator||"*"===e)return!0;if(">"===n.operator)return o.number>n.number;if(">="===n.operator)return o.number>=n.number;if("~"===n.operator)return o.major===n.major&&o.minor===n.minor&&o.patch>=n.patch;if("^"===n.operator)return n.major>0?o.major===n.major&&o.number>=n.number:n.minor>0?o.minor===n.minor&&o.patch>=n.patch:o.patch===n.patch}return e===t||"*"===e}},function(e,t){var n={};e.exports=n,n.create=function(e){return{vertex:e,normalImpulse:0,tangentImpulse:0}}},function(e,t,n){var r={};e.exports=r;var o=n(7),i=n(18),a=n(13),s=n(19),l=n(5),c=n(6),u=n(10),d=n(0),p=n(4);r._deltaMax=1e3/60,r.create=function(e){e=e||{};var t=d.extend({positionIterations:6,velocityIterations:4,constraintIterations:2,enableSleeping:!1,events:[],plugin:{},gravity:{x:0,y:1,scale:.001},timing:{timestamp:0,timeScale:1,lastDelta:0,lastElapsed:0,lastUpdatesPerFrame:0}},e);return t.world=e.world||c.create({label:"World"}),t.pairs=e.pairs||s.create(),t.detector=e.detector||a.create(),t.detector.pairs=t.pairs,t.grid={buckets:[]},t.world.gravity=t.gravity,t.broadphase=t.grid,t.metrics={},t},r.update=function(e,t){var n,p=d.now(),m=e.world,f=e.detector,g=e.pairs,h=e.timing,v=h.timestamp;t>r._deltaMax&&d.warnOnce("Matter.Engine.update: delta argument is recommended to be less than or equal to",r._deltaMax.toFixed(3),"ms."),t=(void 0!==t?t:d._baseDelta)*h.timeScale,h.timestamp+=t,h.lastDelta=t;var y={timestamp:h.timestamp,delta:t};l.trigger(e,"beforeUpdate",y);var x=c.allBodies(m),b=c.allConstraints(m);for(m.isModified&&(a.setBodies(f,x),c.setModified(m,!1,!1,!0)),e.enableSleeping&&o.update(x,t),r._bodiesApplyGravity(x,e.gravity),t>0&&r._bodiesUpdate(x,t),l.trigger(e,"beforeSolve",y),u.preSolveAll(x),n=0;n<e.constraintIterations;n++)u.solveAll(b,t);u.postSolveAll(x);var w=a.collisions(f);s.update(g,w,v),e.enableSleeping&&o.afterCollisions(g.list),g.collisionStart.length>0&&l.trigger(e,"collisionStart",{pairs:g.collisionStart,timestamp:h.timestamp,delta:t});var S=d.clamp(20/e.positionIterations,0,1);for(i.preSolvePosition(g.list),n=0;n<e.positionIterations;n++)i.solvePosition(g.list,t,S);for(i.postSolvePosition(x),u.preSolveAll(x),n=0;n<e.constraintIterations;n++)u.solveAll(b,t);for(u.postSolveAll(x),i.preSolveVelocity(g.list),n=0;n<e.velocityIterations;n++)i.solveVelocity(g.list,t);return r._bodiesUpdateVelocities(x),g.collisionActive.length>0&&l.trigger(e,"collisionActive",{pairs:g.collisionActive,timestamp:h.timestamp,delta:t}),g.collisionEnd.length>0&&l.trigger(e,"collisionEnd",{pairs:g.collisionEnd,timestamp:h.timestamp,delta:t}),r._bodiesClearForces(x),l.trigger(e,"afterUpdate",y),e.timing.lastElapsed=d.now()-p,e},r.merge=function(e,t){if(d.extend(e,t),t.world){e.world=t.world,r.clear(e);for(var n=c.allBodies(e.world),i=0;i<n.length;i++){var a=n[i];o.set(a,!1),a.id=d.nextId()}}},r.clear=function(e){s.clear(e.pairs),a.clear(e.detector)},r._bodiesClearForces=function(e){for(var t=e.length,n=0;n<t;n++){var r=e[n];r.force.x=0,r.force.y=0,r.torque=0}},r._bodiesApplyGravity=function(e,t){var n=void 0!==t.scale?t.scale:.001,r=e.length;if((0!==t.x||0!==t.y)&&0!==n)for(var o=0;o<r;o++){var i=e[o];i.isStatic||i.isSleeping||(i.force.y+=i.mass*t.y*n,i.force.x+=i.mass*t.x*n)}},r._bodiesUpdate=function(e,t){for(var n=e.length,r=0;r<n;r++){var o=e[r];o.isStatic||o.isSleeping||p.update(o,t)}},r._bodiesUpdateVelocities=function(e){for(var t=e.length,n=0;n<t;n++)p.updateVelocities(e[n])}},function(e,t,n){var r={};e.exports=r;var o=n(3),i=n(0),a=n(1);r._restingThresh=2,r._restingThreshTangent=Math.sqrt(6),r._positionDampen=.9,r._positionWarming=.8,r._frictionNormalMultiplier=5,r._frictionMaxStatic=Number.MAX_VALUE,r.preSolvePosition=function(e){var t,n,r,o=e.length;for(t=0;t<o;t++)(n=e[t]).isActive&&(r=n.contactCount,n.collision.parentA.totalContacts+=r,n.collision.parentB.totalContacts+=r)},r.solvePosition=function(e,t,n){var o,a,s,l,c,u,d,p,m=r._positionDampen*(n||1),f=i.clamp(t/i._baseDelta,0,1),g=e.length;for(o=0;o<g;o++)(a=e[o]).isActive&&!a.isSensor&&(l=(s=a.collision).parentA,c=s.parentB,u=s.normal,a.separation=s.depth+u.x*(c.positionImpulse.x-l.positionImpulse.x)+u.y*(c.positionImpulse.y-l.positionImpulse.y));for(o=0;o<g;o++)(a=e[o]).isActive&&!a.isSensor&&(l=(s=a.collision).parentA,c=s.parentB,u=s.normal,p=a.separation-a.slop*f,(l.isStatic||c.isStatic)&&(p*=2),l.isStatic||l.isSleeping||(d=m/l.totalContacts,l.positionImpulse.x+=u.x*p*d,l.positionImpulse.y+=u.y*p*d),c.isStatic||c.isSleeping||(d=m/c.totalContacts,c.positionImpulse.x-=u.x*p*d,c.positionImpulse.y-=u.y*p*d))},r.postSolvePosition=function(e){for(var t=r._positionWarming,n=e.length,i=o.translate,s=a.update,l=0;l<n;l++){var c=e[l],u=c.positionImpulse,d=u.x,p=u.y,m=c.velocity;if(c.totalContacts=0,0!==d||0!==p){for(var f=0;f<c.parts.length;f++){var g=c.parts[f];i(g.vertices,u),s(g.bounds,g.vertices,m),g.position.x+=d,g.position.y+=
vendor: 4,966 bytes, line 1
1p}c.positionPrev.x+=d,c.positionPrev.y+=p,d*m.x+p*m.y<0?(u.x=0,u.y=0):(u.x*=t,u.y*=t)}}},r.preSolveVelocity=function(e){var t,n,r=e.length;for(t=0;t<r;t++){var o=e[t];if(o.isActive&&!o.isSensor){var i=o.contacts,a=o.contactCount,s=o.collision,l=s.parentA,c=s.parentB,u=s.normal,d=s.tangent;for(n=0;n<a;n++){var p=i[n],m=p.vertex,f=p.normalImpulse,g=p.tangentImpulse;if(0!==f||0!==g){var h=u.x*f+d.x*g,v=u.y*f+d.y*g;l.isStatic||l.isSleeping||(l.positionPrev.x+=h*l.inverseMass,l.positionPrev.y+=v*l.inverseMass,l.anglePrev+=l.inverseInertia*((m.x-l.position.x)*v-(m.y-l.position.y)*h)),c.isStatic||c.isSleeping||(c.positionPrev.x-=h*c.inverseMass,c.positionPrev.y-=v*c.inverseMass,c.anglePrev-=c.inverseInertia*((m.x-c.position.x)*v-(m.y-c.position.y)*h))}}}}},r.solveVelocity=function(e,t){var n,o,a,s,l=t/i._baseDelta,c=l*l*l,u=-r._restingThresh*l,d=r._restingThreshTangent,p=r._frictionNormalMultiplier*l,m=r._frictionMaxStatic,f=e.length;for(a=0;a<f;a++){var g=e[a];if(g.isActive&&!g.isSensor){var h=g.collision,v=h.parentA,y=h.parentB,x=h.normal.x,b=h.normal.y,w=h.tangent.x,S=h.tangent.y,C=g.inverseMass,M=g.friction*g.frictionStatic*p,A=g.contacts,P=g.contactCount,k=1/P,B=v.position.x-v.positionPrev.x,z=v.position.y-v.positionPrev.y,L=v.angle-v.anglePrev,_=y.position.x-y.positionPrev.x,I=y.position.y-y.positionPrev.y,R=y.angle-y.anglePrev;for(s=0;s<P;s++){var T=A[s],j=T.vertex,E=j.x-v.position.x,F=j.y-v.position.y,D=j.x-y.position.x,V=j.y-y.position.y,N=B-F*L-(_-V*R),H=z+E*L-(I+D*R),O=x*N+b*H,q=w*N+S*H,U=g.separation+O,Z=Math.min(U,1),G=(Z=U<0?0:Z)*M;q<-G||q>G?(o=q>0?q:-q,(n=g.friction*(q>0?1:-1)*c)<-o?n=-o:n>o&&(n=o)):(n=q,o=m);var W=E*b-F*x,$=D*b-V*x,Q=k/(C+v.inverseInertia*W*W+y.inverseInertia*$*$),X=(1+g.restitution)*O*Q;if(n*=Q,O<u)T.normalImpulse=0;else{var K=T.normalImpulse;T.normalImpulse+=X,T.normalImpulse>0&&(T.normalImpulse=0),X=T.normalImpulse-K}if(q<-d||q>d)T.tangentImpulse=0;else{var Y=T.tangentImpulse;T.tangentImpulse+=n,T.tangentImpulse<-o&&(T.tangentImpulse=-o),T.tangentImpulse>o&&(T.tangentImpulse=o),n=T.tangentImpulse-Y}var J=x*X+w*n,ee=b*X+S*n;v.isStatic||v.isSleeping||(v.positionPrev.x+=J*v.inverseMass,v.positionPrev.y+=ee*v.inverseMass,v.anglePrev+=(E*ee-F*J)*v.inverseInertia),y.isStatic||y.isSleeping||(y.positionPrev.x-=J*y.inverseMass,y.positionPrev.y-=ee*y.inverseMass,y.anglePrev-=(D*ee-V*J)*y.inverseInertia)}}}}},function(e,t,n){var r={};e.exports=r;var o=n(9),i=n(0);r.create=function(e){return i.extend({table:{},list:[],collisionStart:[],collisionActive:[],collisionEnd:[]},e)},r.update=function(e,t,n){var r,i,a,s=o.update,l=o.create,c=o.setActive,u=e.table,d=e.list,p=d.length,m=p,f=e.collisionStart,g=e.collisionEnd,h=e.collisionActive,v=t.length,y=0,x=0,b=0;for(a=0;a<v;a++)(i=(r=t[a]).pair)?(i.isActive&&(h[b++]=i),s(i,r,n)):(u[(i=l(r,n)).id]=i,f[y++]=i,d[m++]=i);for(m=0,p=d.length,a=0;a<p;a++)(i=d[a]).timeUpdated>=n?d[m++]=i:(c(i,!1,n),i.collision.bodyA.sleepCounter>0&&i.collision.bodyB.sleepCounter>0?d[m++]=i:(g[x++]=i,delete u[i.id]));d.length!==m&&(d.length=m),f.length!==y&&(f.length=y),g.length!==x&&(g.length=x),h.length!==b&&(h.length=b)},r.clear=function(e){return e.table={},e.list.length=0,e.collisionStart.length=0,e.collisionActive.length=0,e.collisionEnd.length=0,e}},function(e,t,n){var r=e.exports=n(21);r.Axes=n(11),r.Bodies=n(12),r.Body=n(4),r.Bounds=n(1),r.Collision=n(8),r.Common=n(0),r.Composite=n(6),r.Composites=n(22),r.Constraint=n(10),r.Contact=n(16),r.Detector=n(13),r.Engine=n(17),r.Events=n(5),r.Grid=n(23),r.Mouse=n(14),r.MouseConstraint=n(24),r.Pair=n(9),r.Pairs=n(19),r.Plugin=n(15),r.Query=n(25),r.Render=n(26),r.Resolver=n(18),r.Runner=n(27),r.SAT=n(28),r.Sleeping=n(7),r.Svg=n(29),r.Vector=n(2),r.Vertices=n(3),r.World=n(30),r.Engine.run=r.Runner.run,r.Common.deprecated(r.Engine,"run","Engine.run ➤ use Matter.Runner.run(engine) instead")},function(e,t,n){var r={};e.exports=r;var o=n(15),i=n(0);r.name="matter-js",r.version="0.20.0",r.uses=[],r.used=[],r.use=function(){o.use(r,Array.prototype.slice.call(arguments))},r.before=function(e,t){return e=e.replace(/^Matter./,""),i.chainPathBefore(r,e,t)},r.after=function(e,t){return e=e.replace(/^Matter./,""),i.chainPathAfter(r,e,t)}},function(e,t,n){var r={};e.exports=r;var o=n(6),i=n(10),a=n(0),s=n(4),l=n(12),c=a.deprecated;r.stack=function(e,t,n,r,i,a,l){for(var c,u=o.create({label:"Stack"}),d=e,p=t,m=0,f=0;f<r;f++){for(var g=0,h=0;h<n;h++){var v=l(d,p,h,f,c,m);if(v){var y=v.bounds.max.y-v.bounds.min.y,x=v.bounds.max.x-v.bounds.min.x;y>g&&(g=y),s.translate(v,{x:.5*x,y:.5*y}),d=v.bounds.max.x+i,o.addBody(u,v),c=v,m+=1}else d+=i}p+=g+a,d=e}return u},r.chain=function(e,t,n,r,s,l){for(var c=e.bodies,u=1;u<c.length;u++){var d=c[u-1],p=c[u],m=d.bounds.max.y-d.bounds.min.y,f=d.bounds.max.x-d.bounds.min.x,g=p.bounds.max.y-p.bounds.min.y,h=p.bounds.max.x-p.bounds.min.x,v={bodyA:d,pointA:{x:f*t,y:m*n},bodyB:p,pointB:{x:h*r,y:g*s}},y=a.extend(v,l);o.addConstraint(e,i.create(y))}return e.label+=" Chain",e}
1,r.mesh=function(e,t,n,r,s){var l,c,u,d,p,m=e.bodies;for(l=0;l<n;l++){for(c=1;c<t;c++)u=m[c-1+l*t],d=m[c+l*t],o.addConstraint(e,i.create(a.extend({bodyA:u,bodyB:d},s)));if(l>0)for(c=0;c<t;c++)u=m[c+(l-1)*t],d=m[c+l*t],o.addConstraint(e,i.create(a.extend({bodyA:u,bodyB:d},s))),r&&c>0&&(p=m[c-1+(l-1)*t],o.addConstraint(e,i.create(a.extend({bodyA:p,bodyB:d},s)))),r&&c<t-1&&(p=m[c+1+(l-1)*t],o.addConstraint(e,i.create(a.extend({bodyA:p,bodyB:d},s))))}return e.label+=" Mesh",e},r.pyramid=function(e,t,n,o,i,a,l){return r.stack(e,t,n,o,i,a,function(t,r,a,c,u,d){var p=Math.min(o,Math.ceil(n/2)),m=u?u.bounds.max.x-u.bounds.min.x:0;if(!(c>p)){var f=c=p-c,g=n-1-c;if(!(a<f)&&!(a>g))return 1===d&&s.translate(u,{x:(a+(n%2==1?1:-1))*m,y:0}),l(e+(u?a*m:0)+a*i,r,a,c,u,d)}})},r.newtonsCradle=function(e,t,n,r,a){for(var s=o.create({label:"Newtons Cradle"}),c=0;c<n;c++){var u=l.circle(e+1.9*r*c,t+a,r,{inertia:1/0,restitution:1,friction:0,frictionAir:1e-4,slop:1}),d=i.create({pointA:{x:e+1.9*r*c,y:t},bodyB:u});o.addBody(s,u),o.addConstraint(s,d)}return s},c(r,"newtonsCradle","Composites.newtonsCradle ➤ moved to newtonsCradle example"),r.car=function(e,t,n,r,a){var c=s.nextGroup(!0),u=-(.5*n)+20,d=.5*n-20,p=o.create({label:"Car"}),m=l.rectangle(e,t,n,r,{collisionFilter:{group:c},chamfer:{radius:.5*r},density:2e-4}),f=l.circle(e+u,t+0,a,{collisionFilter:{group:c},friction:.8}),g=l.circle(e+d,t+0,a,{collisionFilter:{group:c},friction:.8}),h=i.create({bodyB:m,pointB:{x:u,y:0},bodyA:f,stiffness:1,length:0}),v=i.create({bodyB:m,pointB:{x:d,y:0},bodyA:g,stiffness:1,length:0});return o.addBody(p,m),o.addBody(p,f),o.addBody(p,g),o.addConstraint(p,h),o.addConstraint(p,v),p},c(r,"car","Composites.car ➤ moved to car example"),r.softBody=function(e,t,n,o,i,s,c,u,d,p){d=a.extend({inertia:1/0},d),p=a.extend({stiffness:.2,render:{type:"line",anchors:!1}},p);var m=r.stack(e,t,n,o,i,s,function(e,t){return l.circle(e,t,u,d)});return r.mesh(m,n,o,c,p),m.label="Soft Body",m},c(r,"softBody","Composites.softBody ➤ moved to softBody and cloth examples")},function(e,t,n){var r={};e.exports=r;var o=n(9),i=n(0),a=i.deprecated;r.create=function(e){return i.extend({buckets:{},pairs:{},pairsList:[],bucketWidth:48,bucketHeight:48},e)},r.update=function(e,t,n,o){var i,a,s,l,c,u=n.world,d=e.buckets,p=!1;for(i=0;i<t.length;i++){var m=t[i];if((!m.isSleeping||o)&&(!u.bounds||!(m.bounds.max.x<u.bounds.min.x)&&!(m.bounds.min.x>u.bounds.max.x)&&!(m.bounds.max.y<u.bounds.min.y)&&!(m.bounds.min.y>u.bounds.max.y))){var f=r._getRegion(e,m);if(!m.region||f.id!==m.region.id||o){(!m.region||o)&&(m.region=f);var g=r._regionUnion(f,m.region);for(a=g.startCol;a<=g.endCol;a++)for(s=g.startRow;s<=g.endRow;s++){l=d[c=r._getBucketId(a,s)];var h=a>=f.startCol&&a<=f.endCol&&s>=f.startRow&&s<=f.endRow,v=a>=m.region.startCol&&a<=m.region.endCol&&s>=m.region.startRow&&s<=m.region.endRow;!h&&v&&v&&l&&r._bucketRemoveBody(e,l,m),(m.region===f||h&&!v||o)&&(l||(l=r._createBucket(d,c)),r._bucketAddBody(e,l,m))}m.region=f,p=!0}}}p&&(e.pairsList=r._createActivePairsList(e))},a(r,"update","Grid.update ➤ replaced by Matter.Detector"),r.clear=function(e){e.buckets={},e.pairs={},e.pairsList=[]},a(r,"clear","Grid.clear ➤ replaced by Matter.Detector"),r._regionUnion=function(e,t){var n=Math.min(e.startCol,t.startCol),o=Math.max(e.endCol,t.endCol),i=Math.min(e.startRow,t.startRow),a=Math.max(e.endRow,t.endRow);return r._createRegion(n,o,i,a)},r._getRegion=function(e,t){var n=t.bounds,o=Math.floor(n.min.x/e.bucketWidth),i=Math.floor(n.max.x/e.bucketWidth),a=Math.floor(n.min.y/e.bucketHeight),s=Math.floor(n.max.y/e.bucketHeight);return r._createRegion(o,i,a,s)},r._createRegion=function(e,t,n,r){return{id:e+","+t+","+n+","+r,startCol:e,endCol:t,startRow:n,endRow:r}},r._getBucketId=function(e,t){return"C"+e+"R"+t},r._createBucket=function(e,t){return e[t]=[]},r._bucketAddBody=function(e,t,n){var r,i=e.pairs,a=o.id,s=t.length;for(r=0;r<s;r++){var l=t[r];if(n.id!==l.id&&(!n.isStatic||!l.isStatic)){var c=a(n,l),u=i[c];u?u[2]+=1:i[c]=[n,l,1]}}t.push(n)},r._bucketRemoveBody=function(e,t,n){var r,a=e.pairs,s=o.id;t.splice(i.indexOf(t,n),1);var l=t.length;for(r=0;r<l;r++){var c=a[s(n,t[r])];c&&(c[2]-=1)}},r._createActivePairsList=function(e){var t,n,r=e.pairs,o=i.keys(r),a=o.length,s=[];for(n=0;n<a;n++)(t=r[o[n]])[2]>0?s.push(t):delete r[o[n]];return s}},function(e,t,n){var r={};e.exports=r;var o=n(3),i=n(7),a=n(14),s=n(5),l=n(13),c=n(10),u=n(6),d=n(0),p=n(1);r.create=function(e,t){var n=(e?e.mouse:null)||(t?t.mouse:null);n||(e&&e.render&&e.render.canvas?n=a.create(e.render.canvas):t&&t.element?n=a.create(t.element):(n=a.create(),d.warn("MouseConstraint.create: options.mouse was undefined, options.element was undefined, may not function as expected")));var o=c.create({label:"Mouse Constraint",pointA:n.position,pointB:{x:0,y:0},length:.01,stiffness:.1,angularStiffness:1,render:{strokeStyle:"#90EE90",lineWidth:3}}),i={type:"mouseConstraint",mouse:n,element:null,body:null,constraint:o,collisionFilter:{category:1,mask:0xffffffff,group:0}},l=d.extend(i,t);return s.on(e,"beforeUpdate",function(){var t=u.allBodies(e.world);r.update(l,t),r._triggerEvents(l)}),l},r.update=function(e,t){var n=e.mouse,r=e.constraint,a=e.body;if(0===n.button){if(r.bodyB)i.set(r.bodyB,!1),r.pointA=n.position;else for(var c=0;c<t.length;c++)if(a=t[c],p.contains(a.bounds,n.position)&&l.canCollide(a.collisionFilter,e.collisionFilter))for(var u=+(a.parts.length>1);u<a.parts.length;u++){var d=a.parts[u];if(o.contains(d.vertices,n.position)){r.pointA=n.position,r.bodyB=e.body=a,r.pointB={x:n.position.x-a.position.x,y:n.position.y-a.position.y},r.angleB=a.angle,i.set(a,!1),s.trigger(e,"startdrag",{mouse:n,body:a});break}}}else r.bodyB=e.body=null,r.pointB=null,a&&s.trigger(e,"enddrag",{mouse:n,body:a})},r._triggerEvents=function(e){var t=e.mouse,n=t.sourceEvents;n.mousemove&&s.trigger(e,"mousemove",{mouse:t}),n.mousedown&&s.trigger(e,"mousedown",{mouse:t}),n.mouseup&&s.trigger(e,"mouseup",{mouse:t}),a.clearSourceEvents(t)}},function(e,t,n){var r={};e.exports=r;var o=n(2),i=n(8),a=n(1),s=n(12),l=n(3);r.collides=function(e,t){for(var n=[],r=t.length,o=e.bounds,s=i.collides,l=a.overlaps,c=0;c<r;c++){var u=t[c],d=u.parts.length,p=+(1!==d);if(l(u.bounds,o))for(var m=p;m<d;m++){var f=u.parts[m];
1if(l(f.bounds,o)){var g=s(f,e);if(g){n.push(g);break}}}}return n},r.ray=function(e,t,n,i){i=i||1e-100;for(var a=o.angle(t,n),l=o.magnitude(o.sub(t,n)),c=(n.x+t.x)*.5,u=(n.y+t.y)*.5,d=s.rectangle(c,u,l,i,{angle:a}),p=r.collides(d,e),m=0;m<p.length;m+=1){var f=p[m];f.body=f.bodyB=f.bodyA}return p},r.region=function(e,t,n){for(var r=[],o=0;o<e.length;o++){var i=e[o],s=a.overlaps(i.bounds,t);(s&&!n||!s&&n)&&r.push(i)}return r},r.point=function(e,t){for(var n=[],r=0;r<e.length;r++){var o=e[r];if(a.contains(o.bounds,t))for(var i=+(1!==o.parts.length);i<o.parts.length;i++){var s=o.parts[i];if(a.contains(s.bounds,t)&&l.contains(s.vertices,t)){n.push(o);break}}}return n}},function(e,t,n){var r,o,i,a,s,l,c,u,d={};e.exports=d;var p=n(4),m=n(0),f=n(6),g=n(1),h=n(5),v=n(2),y=n(14);"u">typeof window&&(r=window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.msRequestAnimationFrame||function(e){window.setTimeout(function(){e(m.now())},1e3/60)},o=window.cancelAnimationFrame||window.mozCancelAnimationFrame||window.webkitCancelAnimationFrame||window.msCancelAnimationFrame),d._goodFps=30,d._goodDelta=1e3/60,d.create=function(e){var t={engine:null,element:null,canvas:null,mouse:null,frameRequestId:null,timing:{historySize:60,delta:0,deltaHistory:[],lastTime:0,lastTimestamp:0,lastElapsed:0,timestampElapsed:0,timestampElapsedHistory:[],engineDeltaHistory:[],engineElapsedHistory:[],engineUpdatesHistory:[],elapsedHistory:[]},options:{width:800,height:600,pixelRatio:1,background:"#14151f",wireframeBackground:"#14151f",wireframeStrokeStyle:"#bbb",hasBounds:!!e.bounds,enabled:!0,wireframes:!0,showSleeping:!0,showDebug:!1,showStats:!1,showPerformance:!1,showBounds:!1,showVelocity:!1,showCollisions:!1,showSeparations:!1,showAxes:!1,showPositions:!1,showAngleIndicator:!1,showIds:!1,showVertexNumbers:!1,showConvexHulls:!1,showInternalEdges:!1,showMousePosition:!1}},n=m.extend(t,e);return n.canvas&&(n.canvas.width=n.options.width||n.canvas.width,n.canvas.height=n.options.height||n.canvas.height),n.mouse=e.mouse,n.engine=e.engine,n.canvas=n.canvas||s(n.options.width,n.options.height),n.context=n.canvas.getContext("2d"),n.textures={},n.bounds=n.bounds||{min:{x:0,y:0},max:{x:n.canvas.width,y:n.canvas.height}},n.controller=d,n.options.showBroadphase=!1,1!==n.options.pixelRatio&&d.setPixelRatio(n,n.options.pixelRatio),m.isElement(n.element)&&n.element.appendChild(n.canvas),n},d.run=function(e){!function t(n){e.frameRequestId=r(t),i(e,n),d.world(e,n),e.context.setTransform(e.options.pixelRatio,0,0,e.options.pixelRatio,0,0),(e.options.showStats||e.options.showDebug)&&d.stats(e,e.context,n),(e.options.showPerformance||e.options.showDebug)&&d.performance(e,e.context,n),e.context.setTransform(1,0,0,1,0,0)}()},d.stop=function(e){o(e.frameRequestId)},d.setPixelRatio=function(e,t){var n=e.options,r=e.canvas;"auto"===t&&(t=l(r)),n.pixelRatio=t,r.setAttribute("data-pixel-ratio",t),r.width=n.width*t,r.height=n.height*t,r.style.width=n.width+"px",r.style.height=n.height+"px"},d.setSize=function(e,t,n){e.options.width=t,e.options.height=n,e.bounds.max.x=e.bounds.min.x+t,e.bounds.max.y=e.bounds.min.y+n,1!==e.options.pixelRatio?d.setPixelRatio(e,e.options.pixelRatio):(e.canvas.width=t,e.canvas.height=n)},d.lookAt=function(e,t,n,r){r=void 0===r||r,t=m.isArray(t)?t:[t],n=n||{x:0,y:0};for(var o={min:{x:1/0,y:1/0},max:{x:-1/0,y:-1/0}},i=0;i<t.length;i+=1){var a=t[i],s=a.bounds?a.bounds.min:a.min||a.position||a,l=a.bounds?a.bounds.max:a.max||a.position||a;s&&l&&(s.x<o.min.x&&(o.min.x=s.x),l.x>o.max.x&&(o.max.x=l.x),s.y<o.min.y&&(o.min.y=s.y),l.y>o.max.y&&(o.max.y=l.y))}var c=o.max.x-o.min.x+2*n.x,u=o.max.y-o.min.y+2*n.y,d=e.canvas.height,p=e.canvas.width/d,f=c/u,g=1,h=1;f>p?h=f/p:g=p/f,e.options.hasBounds=!0,e.bounds.min.x=o.min.x,e.bounds.max.x=o.min.x+c*g,e.bounds.min.y=o.min.y,e.bounds.max.y=o.min.y+u*h,r&&(e.bounds.min.x+=.5*c-c*g*.5,e.bounds.max.x+=.5*c-c*g*.5,e.bounds.min.y+=.5*u-u*h*.5,e.bounds.max.y+=.5*u-u*h*.5),e.bounds.min.x-=n.x,e.bounds.max.x-=n.x,e.bounds.min.y-=n.y,e.bounds.max.y-=n.y,e.mouse&&(y.setScale(e.mouse,{x:(e.bounds.max.x-e.bounds.min.x)/e.canvas.width,y:(e.bounds.max.y-e.bounds.min.y)/e.canvas.height}
1),y.setOffset(e.mouse,e.bounds.min))},d.startViewTransform=function(e){var t=e.bounds.max.x-e.bounds.min.x,n=e.bounds.max.y-e.bounds.min.y,r=t/e.options.width,o=n/e.options.height;e.context.setTransform(e.options.pixelRatio/r,0,0,e.options.pixelRatio/o,0,0),e.context.translate(-e.bounds.min.x,-e.bounds.min.y)},d.endViewTransform=function(e){e.context.setTransform(e.options.pixelRatio,0,0,e.options.pixelRatio,0,0)},d.world=function(e,t){var n,r=m.now(),o=e.engine,i=o.world,a=e.canvas,s=e.context,l=e.options,c=e.timing,p=f.allBodies(i),x=f.allConstraints(i),b=l.wireframes?l.wireframeBackground:l.background,w=[],S=[],C={timestamp:o.timing.timestamp};if(h.trigger(e,"beforeRender",C),e.currentBackground!==b&&u(e,b),s.globalCompositeOperation="source-in",s.fillStyle="transparent",s.fillRect(0,0,a.width,a.height),s.globalCompositeOperation="source-over",l.hasBounds){for(n=0;n<p.length;n++){var M=p[n];g.overlaps(M.bounds,e.bounds)&&w.push(M)}for(n=0;n<x.length;n++){var A=x[n],P=A.bodyA,k=A.bodyB,B=A.pointA,z=A.pointB;P&&(B=v.add(P.position,A.pointA)),k&&(z=v.add(k.position,A.pointB)),B&&z&&(g.contains(e.bounds,B)||g.contains(e.bounds,z))&&S.push(A)}d.startViewTransform(e),e.mouse&&(y.setScale(e.mouse,{x:(e.bounds.max.x-e.bounds.min.x)/e.options.width,y:(e.bounds.max.y-e.bounds.min.y)/e.options.height}),y.setOffset(e.mouse,e.bounds.min))}else S=x,w=p,1!==e.options.pixelRatio&&e.context.setTransform(e.options.pixelRatio,0,0,e.options.pixelRatio,0,0);!l.wireframes||o.enableSleeping&&l.showSleeping?d.bodies(e,w,s):(l.showConvexHulls&&d.bodyConvexHulls(e,w,s),d.bodyWireframes(e,w,s)),l.showBounds&&d.bodyBounds(e,w,s),(l.showAxes||l.showAngleIndicator)&&d.bodyAxes(e,w,s),l.showPositions&&d.bodyPositions(e,w,s),l.showVelocity&&d.bodyVelocity(e,w,s),l.showIds&&d.bodyIds(e,w,s),l.showSeparations&&d.separations(e,o.pairs.list,s),l.showCollisions&&d.collisions(e,o.pairs.list,s),l.showVertexNumbers&&d.vertexNumbers(e,w,s),l.showMousePosition&&d.mousePosition(e,e.mouse,s),d.constraints(S,s),l.hasBounds&&d.endViewTransform(e),h.trigger(e,"afterRender",C),c.lastElapsed=m.now()-r},d.stats=function(e,t,n){for(var r=e.engine,o=r.world,i=f.allBodies(o),a=0,s=0,l=0;l<i.length;l+=1)a+=i[l].parts.length;var c={Part:a,Body:i.length,Cons:f.allConstraints(o).length,Comp:f.allComposites(o).length,Pair:r.pairs.list.length};for(var u in t.fillStyle="#0e0f19",t.fillRect(s,0,302.5,44),t.font="12px Arial",t.textBaseline="top",t.textAlign="right",c){var d=c[u];t.fillStyle="#aaa",t.fillText(u,s+55,8),t.fillStyle="#eee",t.fillText(d,s+55,26),s+=55}},d.performance=function(e,t){var n=e.engine,r=e.timing,o=r.deltaHistory,i=r.elapsedHistory,s=r.timestampElapsedHistory,l=r.engineDeltaHistory,c=r.engineUpdatesHistory,u=r.engineElapsedHistory,p=n.timing.lastUpdatesPerFrame,f=n.timing.lastDelta,g=a(o),h=a(i),v=a(l),y=a(c),x=a(u),b=a(s)/g||0,w=Math.round(g/f),S=1e3/g||0;t.fillStyle="#0e0f19",t.fillRect(0,50,442,34),d.status(t,10,69,60,4,o.length,Math.round(S)+" fps",S/d._goodFps,function(e){return o[e]/g-1}),d.status(t,82,69,60,4,l.length,f.toFixed(2)+" dt",d._goodDelta/f,function(e){return l[e]/v-1}),d.status(t,154,69,60,4,c.length,p+" upf",Math.pow(m.clamp(y/w||1,0,1),4),function(e){return c[e]/y-1}),d.status(t,226,69,60,4,u.length,x.toFixed(2)+" ut",1-p*x/d._goodFps,function(e){return u[e]/x-1}),d.status(t,298,69,60,4,i.length,h.toFixed(2)+" rt",1-h/d._goodFps,function(e){return i[e]/h-1}),d.status(t,370,69,60,4,s.length,b.toFixed(2)+" x",b*b*b,function(e){return(s[e]/o[e]/b||0)-1})},d.status=function(e,t,n,r,o,i,a,s,l){e.strokeStyle="#888",e.fillStyle="#444",e.lineWidth=1,e.fillRect(t,n+7,r,1),e.beginPath(),e.moveTo(t,n+7-o*m.clamp(.4*l(0),-2,2));for(var c=0;c<r;c+=1)e.lineTo(t+c,n+7-(c<i?o*m.clamp(.4*l(c),-2,2):0));e.stroke(),e.fillStyle="hsl("+m.clamp(25+95*s,0,120)+",100%,60%)",e.fillRect(t,n-7,4,4),e.font="12px Arial",e.textBaseline="middle",e.textAlign="right",e.fillStyle="#eee",e.fillText(a,t+r,n-5)},d.constraints=function(e,t){for(var n=0;n<e.length;n++){var r=e[n];if(r.render.visible&&r.pointA&&r.pointB){var o,i,a=r.bodyA,s=r.bodyB;if(o=a?v.add(a.position,r.pointA):r.pointA,"pin"===r.render.type)t.beginPath(),t.arc(o.x,o.y,3,0,2*Math.PI),t.closePath();else{if(i=s?v.add(s.position,r.pointB):r.pointB,t.beginPath(),t.moveTo(o.x,o.y),"spring"===r.render.type)for(var l,c=v.sub(i,o),u=v.perp(v.normalise(c)),d=Math.ceil(m.clamp(r.length/5,12,20)),p=1;p<d;p+=1)l=p%2==0?1:-1,t.lineTo(o.x+c.x*(p/d)+u.x*l*4,o.y+c.y*(p/d)+u.y*l*4);t.lineTo(i.x,i.y)}r.render.lineWidth&&(t.lineWidth=r.render.lineWidth,t.strokeStyle=r.render.strokeStyle,t.stroke()),r.render.anchors&&(t.fillStyle=r.render.strokeStyle,t.beginPath(),t.arc(o.x,o.y,3,0,2*Math.PI),t.arc(i.x,i.y,3,0,2*Math.PI),t.closePath(),t.fill())}}},d.bodies=function(e,t,n){e.engine;var r,o,i,a,s=e.options,l=s.showInternalEdges||!s.wireframes;for(i=0;i<t.length;i++)if((r=t[i]).render.visible){for(a=+(r.parts.length>1);a<r.parts.length;a++)if((o=r.parts[a]).render.visible){if(s.showSleeping&&r.isSleeping?n.globalAlpha=.5*o.render.opacity:1!==o.render.opacity&&(n.globalAlpha=o.render.opacity),o.render.sprite&&o.render.sprite.texture&&!s.wireframes){var u=o.render.sprite,d=c(e,u.texture);n.translate(o.position.x,o.position.y),n.rotate(o.angle),n.drawImage(d,-(d.width*u.xOffset)*u.xScale,-(d.height*u.yOffset)*u.yScale,d.width*u.xScale,d.height*u.yScale),n.rotate(-o.angle),n.translate(-o.position.x,-o.position.y)}else{if(o.circleRadius)n.beginPath(),n.arc(o.position.x,o.position.y,o.circleRadius,0,2*Math.PI);else{n.beginPath(),n.moveTo(o.vertices[0].x,o.vertices[0].y);for(var p=1;p<o.vertices.length;p++)!o.vertices[p-1].isInternal||l?n.lineTo(o.vertices[p].x,o.vertices[p].y):n.moveTo(o.vertices[p].x,o.vertices[p].y),o.vertices[p].isInternal&&!l&&n.moveTo(o.vertices[(p+1)%o.vertices.length].x,o.vertices[(p+1)%o.vertices.length].y);n.lineTo(o.vertices[0].x,o.vertices[0].y),n.closePath()}s.wireframes?(n.lineWidth=1,n.strokeStyle=e.options.wireframeStrokeStyle,n.stroke()):(n.fillStyle=o.render.fillStyle,o.render.lineWidth&&(n.lineWidth=o.render.lineWidth,n.strokeStyle=o.render.strokeStyle,n.stroke()),n.fill())}n.globalAlpha=1}}},d.bodyWireframes=function(e,t,n){var r,o,i,a,s,l=e.options.showInternalEdges;for(n.beginPath(),i=0;i<t.length;i++)if((r=t[i]).render.visible)for(s=+(r.parts.length>1);s<r.parts.length;s++){for(o=r.parts[s],n.moveTo(o.vertices[0].x,o.vertices[0].y),a=1;a<o.vertices.length;a++)!o.vertices[a-1].isInternal||l?n.lineTo(o.vertices[a].x,o.vertices[a].y):n.moveTo(o.vertices[a].x,o.vertices[a].y),o.vertices[a].isInternal&&!l&&n.moveTo(o.vertices[(a+1)%o.vertices.length].x,o.vertices[(a+1)%o.vertices.length].y);n.lineTo(o.vertices[0].x,o.vertices[0].y)}n.lineWidth=1,n.strokeStyle=e.options.wireframeStrokeStyle,n.stroke()},d.bodyConvexHulls=function(e,t,n){var r,o,i;for(n.beginPath(),o=0;o<t.length;o++)if((r=t[o]).render.visible&&1!==r.parts.length){for(n.moveTo(r.vertices[0].x,r.vertices[0].y),i=1;i<r.vertices.length;i++)n.lineTo(r.vertices[i].x,r.vertices[i].y);n.lineTo(r.vertices[0].x,r.vertices[0].y)}n.lineWidth=1,n.strokeStyle="rgba(255,255,255,0.2)",n.stroke()},d.vertexNumbers=function(e,t,n){var r,o,i;for(r=0;r<t.length;r++){var a=t[r].parts;for(i=+(a.length>1);i<a.length;i++){var s=a[i];for(o=0;o<s.vertices.length;o++)n.fillStyle="rgba(255,255,255,0.2)",n.fillText(r+"_"+o,s.position.x+(s.vertices[o].x-s.position.x)*.8,s.position.y+(s.vertices[o].y-s.position.y)*.8)}}},d.mousePosition=function(e,t,n){n.fillStyle="rgba(255,255,255,0.8)",
vendor: 6,289 bytes, line 1
1n.fillText(t.position.x+"  "+t.position.y,t.position.x+5,t.position.y-5)},d.bodyBounds=function(e,t,n){e.engine;var r=e.options;n.beginPath();for(var o=0;o<t.length;o++)if(t[o].render.visible)for(var i=t[o].parts,a=+(i.length>1);a<i.length;a++){var s=i[a];n.rect(s.bounds.min.x,s.bounds.min.y,s.bounds.max.x-s.bounds.min.x,s.bounds.max.y-s.bounds.min.y)}r.wireframes?n.strokeStyle="rgba(255,255,255,0.08)":n.strokeStyle="rgba(0,0,0,0.1)",n.lineWidth=1,n.stroke()},d.bodyAxes=function(e,t,n){e.engine;var r,o,i,a,s=e.options;for(n.beginPath(),o=0;o<t.length;o++){var l=t[o],c=l.parts;if(l.render.visible)if(s.showAxes)for(i=+(c.length>1);i<c.length;i++)for(r=c[i],a=0;a<r.axes.length;a++){var u=r.axes[a];n.moveTo(r.position.x,r.position.y),n.lineTo(r.position.x+20*u.x,r.position.y+20*u.y)}else for(i=+(c.length>1);i<c.length;i++)for(r=c[i],a=0;a<r.axes.length;a++)n.moveTo(r.position.x,r.position.y),n.lineTo((r.vertices[0].x+r.vertices[r.vertices.length-1].x)/2,(r.vertices[0].y+r.vertices[r.vertices.length-1].y)/2)}s.wireframes?(n.strokeStyle="indianred",n.lineWidth=1):(n.strokeStyle="rgba(255, 255, 255, 0.4)",n.globalCompositeOperation="overlay",n.lineWidth=2),n.stroke(),n.globalCompositeOperation="source-over"},d.bodyPositions=function(e,t,n){e.engine;var r,o,i,a,s=e.options;for(n.beginPath(),i=0;i<t.length;i++)if((r=t[i]).render.visible)for(a=0;a<r.parts.length;a++)o=r.parts[a],n.arc(o.position.x,o.position.y,3,0,2*Math.PI,!1),n.closePath();for(s.wireframes?n.fillStyle="indianred":n.fillStyle="rgba(0,0,0,0.5)",n.fill(),n.beginPath(),i=0;i<t.length;i++)(r=t[i]).render.visible&&(n.arc(r.positionPrev.x,r.positionPrev.y,2,0,2*Math.PI,!1),n.closePath());n.fillStyle="rgba(255,165,0,0.8)",n.fill()},d.bodyVelocity=function(e,t,n){n.beginPath();for(var r=0;r<t.length;r++){var o=t[r];if(o.render.visible){var i=p.getVelocity(o);n.moveTo(o.position.x,o.position.y),n.lineTo(o.position.x+i.x,o.position.y+i.y)}}n.lineWidth=3,n.strokeStyle="cornflowerblue",n.stroke()},d.bodyIds=function(e,t,n){var r,o;for(r=0;r<t.length;r++)if(t[r].render.visible){var i=t[r].parts;for(o=+(i.length>1);o<i.length;o++){var a=i[o];n.font="12px Arial",n.fillStyle="rgba(255,255,255,0.5)",n.fillText(a.id,a.position.x+10,a.position.y-10)}}},d.collisions=function(e,t,n){var r,o,i,a,s=e.options;for(n.beginPath(),i=0;i<t.length;i++)if((r=t[i]).isActive)for(o=r.collision,a=0;a<r.contactCount;a++){var l=r.contacts[a].vertex;n.rect(l.x-1.5,l.y-1.5,3.5,3.5)}for(s.wireframes?n.fillStyle="rgba(255,255,255,0.7)":n.fillStyle="orange",n.fill(),n.beginPath(),i=0;i<t.length;i++)if((r=t[i]).isActive&&(o=r.collision,r.contactCount>0)){var c=r.contacts[0].vertex.x,u=r.contacts[0].vertex.y;2===r.contactCount&&(c=(r.contacts[0].vertex.x+r.contacts[1].vertex.x)/2,u=(r.contacts[0].vertex.y+r.contacts[1].vertex.y)/2),o.bodyB===o.supports[0].body||!0===o.bodyA.isStatic?n.moveTo(c-8*o.normal.x,u-8*o.normal.y):n.moveTo(c+8*o.normal.x,u+8*o.normal.y),n.lineTo(c,u)}s.wireframes?n.strokeStyle="rgba(255,165,0,0.7)":n.strokeStyle="orange",n.lineWidth=1,n.stroke()},d.separations=function(e,t,n){var r,o,i,a,s,l=e.options;for(n.beginPath(),s=0;s<t.length;s++)if((r=t[s]).isActive){i=(o=r.collision).bodyA;var c=1;(a=o.bodyB).isStatic||i.isStatic||(c=.5),a.isStatic&&(c=0),n.moveTo(a.position.x,a.position.y),n.lineTo(a.position.x-o.penetration.x*c,a.position.y-o.penetration.y*c),c=1,a.isStatic||i.isStatic||(c=.5),i.isStatic&&(c=0),n.moveTo(i.position.x,i.position.y),n.lineTo(i.position.x+o.penetration.x*c,i.position.y+o.penetration.y*c)}l.wireframes?n.strokeStyle="rgba(255,165,0,0.5)":n.strokeStyle="orange",n.stroke()},d.inspector=function(e,t){e.engine;var n,r=e.selected,o=e.render,i=o.options;if(i.hasBounds){var a=o.bounds.max.x-o.bounds.min.x,s=o.bounds.max.y-o.bounds.min.y,l=a/o.options.width,c=s/o.options.height;t.scale(1/l,1/c),t.translate(-o.bounds.min.x,-o.bounds.min.y)}for(var u=0;u<r.length;u++){var d=r[u].data;switch(t.translate(.5,.5),t.lineWidth=1,t.strokeStyle="rgba(255,165,0,0.9)",t.setLineDash([1,2]),d.type){case"body":n=d.bounds,t.beginPath(),t.rect(Math.floor(n.min.x-3),Math.floor(n.min.y-3),Math.floor(n.max.x-n.min.x+6),Math.floor(n.max.y-n.min.y+6)),t.closePath(),t.stroke();break;case"constraint":var p=d.pointA;d.bodyA&&(p=d.pointB),t.beginPath(),t.arc(p.x,p.y,10,0,2*Math.PI),t.closePath(),t.stroke()}t.setLineDash([]),t.translate(-.5,-.5)}null!==e.selectStart&&(t.translate(.5,.5),t.lineWidth=1,t.strokeStyle="rgba(255,165,0,0.6)",t.fillStyle="rgba(255,165,0,0.1)",n=e.selectBounds,t.beginPath(),t.rect(Math.floor(n.min.x),Math.floor(n.min.y),Math.floor(n.max.x-n.min.x),Math.floor(n.max.y-n.min.y)),t.closePath(),t.stroke(),t.fill(),t.translate(-.5,-.5)),i.hasBounds&&t.setTransform(1,0,0,1,0,0)},i=function(e,t){var n=e.engine,r=e.timing,o=r.historySize,i=n.timing.timestamp;r.delta=t-r.lastTime||d._goodDelta,r.lastTime=t,r.timestampElapsed=i-r.lastTimestamp||0,r.lastTimestamp=i,r.deltaHistory.unshift(r.delta),r.deltaHistory.length=Math.min(r.deltaHistory.length,o),r.engineDeltaHistory.unshift(n.timing.lastDelta),r.engineDeltaHistory.length=Math.min(r.engineDeltaHistory.length,o),r.timestampElapsedHistory.unshift(r.timestampElapsed),r.timestampElapsedHistory.length=Math.min(r.timestampElapsedHistory.length,o),r.engineUpdatesHistory.unshift(n.timing.lastUpdatesPerFrame),r.engineUpdatesHistory.length=Math.min(r.engineUpdatesHistory.length,o),r.engineElapsedHistory.unshift(n.timing.lastElapsed),r.engineElapsedHistory.length=Math.min(r.engineElapsedHistory.length,o),r.elapsedHistory.unshift(r.lastElapsed),r.elapsedHistory.length=Math.min(r.elapsedHistory.length,o)},a=function(e){for(var t=0,n=0;n<e.length;n+=1)t+=e[n];return t/e.length||0},s=function(e,t){var n=document.createElement("canvas");return n.width=e,n.height=t,n.oncontextmenu=function(){return!1},n.onselectstart=function(){return!1},n},l=function(e){var t=e.getContext("2d");return(window.devicePixelRatio||1)/(t.webkitBackingStorePixelRatio||t.mozBackingStorePixelRatio||t.msBackingStorePixelRatio||t.oBackingStorePixelRatio||t.backingStorePixelRatio||1)},c=function(e,t){var n=e.textures[t];return n||((n=e.textures[t]=new Image).src=t),n},u=function(e,t){var n=t;/(jpg|gif|png)$/.test(t)&&(n="url("+t+")"),e.canvas.style.background=n,e.canvas.style.backgroundSize="contain",e.currentBackgroun
1d=t}},function(e,t,n){var r,o={};e.exports=o;var i=n(5),a=n(17),s=n(0);o._maxFrameDelta=1e3/15,o._frameDeltaFallback=1e3/60,o._timeBufferMargin=1.5,o._elapsedNextEstimate=1,o._smoothingLowerBound=.1,o._smoothingUpperBound=.9,o.create=function(e){var t=s.extend({delta:1e3/60,frameDelta:null,frameDeltaSmoothing:!0,frameDeltaSnapping:!0,frameDeltaHistory:[],frameDeltaHistorySize:100,frameRequestId:null,timeBuffer:0,timeLastTick:null,maxUpdates:null,maxFrameTime:1e3/30,lastUpdatesDeferred:0,enabled:!0},e);return t.fps=0,t},o.run=function(e,t){return e.timeBuffer=o._frameDeltaFallback,!function n(r){e.frameRequestId=o._onNextFrame(e,n),r&&e.enabled&&o.tick(e,t,r)}(),e},o.tick=function(e,t,n){var l=s.now(),c=e.delta,u=0,d=n-e.timeLastTick;if((!d||!e.timeLastTick||d>Math.max(o._maxFrameDelta,e.maxFrameTime))&&(d=e.frameDelta||o._frameDeltaFallback),e.frameDeltaSmoothing){e.frameDeltaHistory.push(d),e.frameDeltaHistory=e.frameDeltaHistory.slice(-e.frameDeltaHistorySize);var p=e.frameDeltaHistory.slice(0).sort();d=r(e.frameDeltaHistory.slice(p.length*o._smoothingLowerBound,p.length*o._smoothingUpperBound))||d}e.frameDeltaSnapping&&(d=1e3/Math.round(1e3/d)),e.frameDelta=d,e.timeLastTick=n,e.timeBuffer+=e.frameDelta,e.timeBuffer=s.clamp(e.timeBuffer,0,e.frameDelta+c*o._timeBufferMargin),e.lastUpdatesDeferred=0;var m=e.maxUpdates||Math.ceil(e.maxFrameTime/c),f={timestamp:t.timing.timestamp};i.trigger(e,"beforeTick",f),i.trigger(e,"tick",f);for(var g=s.now();c>0&&e.timeBuffer>=c*o._timeBufferMargin;){i.trigger(e,"beforeUpdate",f),a.update(t,c),i.trigger(e,"afterUpdate",f),e.timeBuffer-=c,u+=1;var h=s.now()-l,v=s.now()-g,y=h+o._elapsedNextEstimate*v/u;if(u>=m||y>e.maxFrameTime){e.lastUpdatesDeferred=Math.round(Math.max(0,e.timeBuffer/c-o._timeBufferMargin));break}}t.timing.lastUpdatesPerFrame=u,i.trigger(e,"afterTick",f),e.frameDeltaHistory.length>=100&&(e.lastUpdatesDeferred&&Math.round(e.frameDelta/c)>m?s.warnOnce("Matter.Runner: runner reached runner.maxUpdates, see docs."):e.lastUpdatesDeferred&&s.warnOnce("Matter.Runner: runner reached runner.maxFrameTime, see docs."),void 0!==e.isFixed&&s.warnOnce("Matter.Runner: runner.isFixed is now redundant, see docs."),(e.deltaMin||e.deltaMax)&&s.warnOnce("Matter.Runner: runner.deltaMin and runner.deltaMax were removed, see docs."),0!==e.fps&&s.warnOnce("Matter.Runner: runner.fps was replaced by runner.delta, see docs."))},o.stop=function(e){o._cancelNextFrame(e)},o._onNextFrame=function(e,t){if("u">typeof window&&window.requestAnimationFrame)e.frameRequestId=window.requestAnimationFrame(t);else throw Error("Matter.Runner: missing required global window.requestAnimationFrame.");return e.frameRequestId},o._cancelNextFrame=function(e){if("u">typeof window&&window.cancelAnimationFrame)window.cancelAnimationFrame(e.frameRequestId);else throw Error("Matter.Runner: missing required global window.cancelAnimationFrame.")},r=function(e){for(var t=0,n=e.length,r=0;r<n;r+=1)t+=e[r];return t/n||0}},function(e,t,n){var r={};e.exports=r;var o=n(8),i=n(0).deprecated;r.collides=function(e,t){return o.collides(e,t)},i(r,"collides","SAT.collides ➤ replaced by Collision.collides")},function(e,t,n){var r={};e.exports=r,n(1);var o=n(0);r.pathToVertices=function(e,t){!("u">typeof window)||"SVGPathSeg"in window||o.warn("Svg.pathToVertices: SVGPathSeg not defined, a polyfill is required.");var n,i,a,s,l,c,u,d,p,m,f,g=[],h=0,v=0,y=0;t=t||15;var x=function(e,t,n){var r=n%2==1&&n>1;if(!p||e!=p.x||t!=p.y){p&&r?(m=p.x,f=p.y):(m=0,f=0);var o={x:m+e,y:f+t};(r||!p)&&(p=o),g.push(o),v=m+e,y=f+t}},b=function(e){var t=e.pathSegTypeAsLetter.toUpperCase();if("Z"!==t){switch(t){case"M":case"L":case"T":case"C":case"S":case"Q":v=e.x,y=e.y;break;case"H":v=e.x;break;case"V":y=e.y}x(v,y,e.pathSegType)}};for(r._svgPathToAbsolute(e),a=e.getTotalLength(),c=[],n=0;n<e.pathSegList.numberOfItems;n+=1)c.push(e.pathSegList.getItem(n));for(u=c.concat();h<a;){if((l=c[e.getPathSegAtLength(h)])!=d){for(;u.length&&u[0]!=l;)b(u.shift());d=l}switch(l.pathSegTypeAsLetter.toUpperCase()){case"C":case"T":case"S":case"Q":case"A":x((s=e.getPointAtLength(h)).x,s.y,0)}h+=t}for(n=0,i=u.length;n<i;++n)b(u[n]);return g},r._svgPathToAbsolute=function(e){for(var t,n,r,o,i,a,s=e.pathSegList,l=0,c=0,u=s.numberOfItems,d=0;d<u;++d){var p=s.getItem(d),m=p.pathSegTypeAsLetter;if(/[MLHVCSQTA]/.test(m))"x"in p&&(l=p.x),"y"in p&&(c=p.y);else switch("x1"in p&&(r=l+p.x1),"x2"in p&&(i=l+p.x2),"y1"in p&&(o=c+p.y1),"y2"in p&&(a=c+p.y2),"x"in p&&(l+=p.x),"y"in p&&(c+=p.y),m){case"m":s.replaceItem(e.createSVGPathSegMovetoAbs(l,c),d);break;case"l":s.replaceItem(e.createSVGPathSegLinetoAbs(l,c),d);break;case"h":s.replaceItem(e.createSVGPathSegLinetoHorizontalAbs(l),d);break;case"v":s.replaceItem(e.createSVGPathSegLinetoVerticalAbs(c),d);break;case"c":s.replaceItem(e.createSVGPathSegCurvetoCubicAbs(l,c,r,o,i,a),d);break;case"s":s.replaceItem(e.createSVGPathSegCurvetoCubicSmoothAbs(l,c,i,a),d);break;case"q":s.replaceItem(e.createSVGPathSegCurvetoQuadraticAbs(l,c,r,o),d);break;case"t":s.replaceItem(e.createSVGPathSegCurvetoQuadraticSmoothAbs(l,c),d);break;case"a":s.replaceItem(e.createSVGPathSegArcAbs(l,c,p.r1,p.r2,p.angle,p.largeArcFlag,p.sweepFlag),d);break;case"z":case"Z":l=t,c=n}("M"==m||"m"==m)&&(t=l,n=c)}}},function(e,t,n){var r={};e.exports=r;var o=n(6);n(0),r.create=o.create,r.add=o.add,r.remove=o.remove,r.clear=o.clear,r.addComposite=o.addComposite,r.addBody=o.addBody,r.addConstraint=o.addConstraint}],n={};function r(e){if(n[e])return n[e].exports;var o=n[e]={i:e,l:!1,exports:{}};return t[e].call(o.exports,o,o.exports,r),o.l=!0,o.exports}return r.m=t,r.c=n,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},r.r=function(e){"u">typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}
1),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t||4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)r.d(n,o,(function(t){return e[t]}).bind(null,o));return n},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="",r(r.s=20)}()}]);

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.