1<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><title>Jelmar.eu</title><meta name="description" content="Personal website and blog."/><meta name="theme-color" content="hsl(0, 0%, 99.8%)"/><meta property="og:title" content="Jelmar.eu"/><meta property="og:image" content="https://portfolio-rho-six-35.vercel.app/images/og-default.png"/><meta property="og:image:width" content="1280"/><meta property="og:image:height" content="675"/><meta property="og:type" content="website"/><meta name="og:description" content="Personal website and blog."/><link rel="preload" as="image" imageSrcSet="/_next/image?url=%2F_next%2Fstatic%2Fmedia%2Fbakkes_new.c28f363b.jpg&w=256&q=75 1x, /_next/image?url=%2F_next%2Fstatic%2Fmedia%2Fbakkes_new.c28f363b.jpg&w=640&q=75 2x" fetchpriority="high"/><meta name="next-head-count" content="12"/><link rel="stylesheet" href="/global.css"/><link rel="manifest" href="/site.webmanifest"/><link rel="apple-touch-icon" sizes="180x180" id="icon-light-1" href="/favicon_light/apple-touch-icon.png" media="(prefers-color-scheme: light)"/><link rel="icon" type="image/png" sizes="32x32" id="icon-light-2" href="/favicon_light/favicon-32x32.png" media="(prefers-color-scheme: light)"/><link rel="icon" type="image/png" sizes="16x16" id="icon-light-3" href="/favicon_light/favicon-16x16.png" media="(prefers-color-scheme: light)"/><link rel="apple-touch-icon" sizes="180x180" id="icon-dark-1" href="/favicon_dark/apple-touch-icon.png" media="(prefers-color-scheme: dark)"/><link rel="icon" type="image/png" sizes="32x32" id="icon-dark-2" href="/favicon_dark/favicon-32x32.png" media="(prefers-color-scheme: dark)"/><link rel="icon" type="image/png" sizes="16x16" id="icon-dark-3" href="/favicon_dark/favicon-16x16.png" media="(prefers-color-scheme: dark)"/><noscript data-n-css=""></noscript>
1<script defer="" nomodule="" src="/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js"></script>
1<script src="/_next/static/chunks/webpack-18e1e020f3fa96ee.js" defer=""></script>
1<script src="/_next/static/chunks/framework-ecc4130bc7a58a64.js" defer=""></script>
1<script src="/_next/static/chunks/main-2d94ec6e4d65c635.js" defer=""></script>
1<script src="/_next/static/chunks/pages/_app-2a49111f5ab21a4a.js" defer=""></script>
1<script src="/_next/static/chunks/41155975-143b08ad97614195.js" defer=""></script>
1<script src="/_next/static/chunks/cb355538-71fe88fed0aa0207.js" defer=""></script>
1<script src="/_next/static/chunks/28-20bb63343ca8907e.js" defer=""></script>
1<script src="/_next/static/chunks/959-3913be6a2db07cd1.js" defer=""></script>
1<script src="/_next/static/chunks/688-5dca00bddc70ee5e.js" defer=""></script>
1<script src="/_next/static/chunks/pages/index-f4d48fc7a3ababd4.js" defer=""></script>
1<script src="/_next/static/aPpCufkkKcq-j_mdxoDlO/_buildManifest.js" defer=""></script>
1<script src="/_next/static/aPpCufkkKcq-j_mdxoDlO/_ssgManifest.js" defer=""></script>
1<style data-styled="" data-styled-version="6.1.11">:root{--font-monospace:"Fira Code";--shadow-color:0deg 0% 0%;--font-family:"Wotfard",sans-serif;--font-weight-light:400;--font-weight-medium:500;--font-weight-bold:600;--scrollbar-width:8px;--scrollbar-height:7px;}/*!sc*/ 2*,*::before,*::after{box-sizing:border-box;}/*!sc*/ 3*{margin:0;line-height:1.5;-webkit-font-smoothing:antialiased;}/*!sc*/ 4p{line-height:1.7;}/*!sc*/ 5img,picture,video,canvas,svg{display:block;max-width:100%;}/*!sc*/ 6input,button,textarea,select{font:inherit;}/*!sc*/ 7p,h1,h2,h3,h4,h5,h6{overflow-wrap:break-word;}/*!sc*/ 8ul{padding:0;}/*!sc*/ 9#__next{isolation:isolate;}/*!sc*/ 10html{color:var(--color-text);background:var(--color-background);}/*!sc*/ 11body{color:var(--color-text);background:var(--color-background);overflow-x:hidden;width:100vw;font-size:1.13rem;}/*!sc*/ 12body.has-transition{transition:color 350ms,background 350ms;}/*!sc*/ 13a:focus{outline:5px auto var(--color-primary);}/*!sc*/ 14body,input,button,select,option{font-family:var(--font-family);font-weight:var(--font-weight-light);}/*!sc*/ 15h1,h2,h3,h4,h5,h6,strong{font-weight:var(--font-weight-bold);}/*!sc*/ 16code{font-size:1.1rem;}/*!sc*/ 17button{color:inherit;}/*!sc*/ 18::selection{background-color:var(--color-selection-background,var(--color-primary));color:var(--color-selection-text,white);}/*!sc*/ 19::selection{background-color:var(--color-selection-background,var(--color-primary));color:var(--color-selection-text,white);background-image:none!important;-webkit-text-fill-color:var(--color-selection-text)!important;-moz-text-fill-color:var(--color-selection-text)!important;background-image:none!important;background-clip:revert!important;-webkit-background-clip:revert!important;text-shadow:none!important;}/*!sc*/ 20::-webkit-scrollbar{width:var(--scrollbar-width,8px);height:var(--scrollbar-height,7px);background-color:var(--color-scrollbar-background,var(--color-gray-100));transition:background-color 350ms ease 0s;}/*!sc*/ 21::-webkit-scrollbar-track{border-radius:3px;background-color:var(--color-scrollbar-background,transparent);transition:background-color 350ms ease 0s;}/*!sc*/ 22::-webkit-scrollbar-thumb{border-radius:4px;background-color:var(--color-scrollbar,var(--color-gray-700));border:2px solid var(--color-scrollbar-background,var(--color-gray-100));transition:background-color 350ms ease 0s;}/*!sc*/ 23code{font-family:var(--font-monospace),monospace!important;font-weight:450!important;}/*!sc*/ 24mtable{display:block;}/*!sc*/ 25p+p{margin-top:1.5em;}/*!sc*/ 26p{text-wrap:pretty;}/*!sc*/ 27h1,h2,h3,h4,h5,h6{text-wrap:balance;}/*!sc*/ 28p,a,h1,h2,h3,h4,h5,h6{transition:color 350ms ease 0s;color:var(--color-text);}/*!sc*/ 29code.inline-code{word-break:break-all;}/*!sc*/ 30.footnotes{font-size:small;color:var(--color-gray-700);border-top:1.5px solid var(--color-gray-500);margin-top:2.5em;padding-top:0.5em;}/*!sc*/ 31.footnotes ol{list-style:decimal;}/*!sc*/ 32sup{margin-left:0.125em;}/*!sc*/ 33.sr-only{position:absolute!important;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);word-wrap:normal;border:0;}/*!sc*/ 34[data-footnote-ref]::before{content:'[';}/*!sc*/ 35[data-footnote-ref]::after{content:']';}/*!sc*/ 36[data-footnote-ref]{text-underline-offset:4px;}/*!sc*/ 37data-styled.g1[id="sc-global-cwohqp1"]{content:"sc-global-cwohqp1,"}/*!sc*/ 38.gSrEMi{color:var(--color-subtle-primary);transition:color 350ms ease 0s;font-size:1em;}/*!sc*/ 39data-styled.g2[id="sc-6ab8c5dd-0"]{content:"gSrEMi,"}/*!sc*/ 40.fUUqis{display:block;margin:0;padding:0;border:none;background:transparent;cursor:pointer;text-align:left;font:inherit;}/*!sc*/ 41.fUUqis:focus{outline:2px auto var(--color-primary);outline-offset:2px;}/*!sc*/ 42.fUUqis:focus:not(.focus-visible){outline:none;}/*!sc*/ 43data-styled.g3[id="sc-3f747a6f-0"]{content:"fUUqis,"}/*!sc*/ 44.eeMrQU{color:var(--color-primary);}/*!sc*/ 45.eeMrQU:focus{outline:2px auto var(--color-primary);outline-offset:2px;}/*!sc*/ 46.eeMrQU:focus:not(.focus-visible){outline:none;}/*!sc*/ 47data-styled.g4[id="sc-bd7d1a6-0"]{content:"eeMrQU,"}/*!sc*/ 48.iMDCQS{transition:color 350ms ease 0s;position:relative;padding:10px 18px 10px 18px;text-decoration:none;font-weight:var(--font-weight-medium);color:var(--color-text);font-size:1rem;}/*!sc*/ 49.iMDCQS:hover{color:var(--color-primary);}/*!sc*/ 50.iMDCQS:hover svg{color:var(--color-primary);}/*!sc*/ 51data-styled.g5[id="sc-fc826de2-0"]{content:"iMDCQS,"}/*!sc*/ 52.pNfUe{display:flex;align-items:center;justify-content:space-between;font-size:24px;}/*!sc*/ 53.pNfUe svg{transition:fill 200ms ease 0s;
53fill:var(--color-gray-700);}/*!sc*/ 54.pNfUe svg:hover{fill:var(--color-gray-900);}/*!sc*/ 55.gsRtLz{display:flex;align-items:center;justify-content:space-between;font-size:24px;}/*!sc*/ 56.gsRtLz svg{transition:fill 200ms ease 0s;fill:var(--color-gray-600);}/*!sc*/ 57.gsRtLz svg:hover{fill:var(--color-gray-900);}/*!sc*/ 58data-styled.g6[id="sc-3502ffbd-0"]{content:"pNfUe,gsRtLz,"}/*!sc*/ 59.jajjhf:not(:last-child){margin-right:12px;}/*!sc*/ 60data-styled.g7[id="sc-3502ffbd-1"]{content:"jajjhf,"}/*!sc*/ 61.gdlNCG{margin-top:-1px;margin-bottom:1px;transition:background 350ms ease 0s;width:100vw;}/*!sc*/ 62data-styled.g8[id="sc-e0f25c4f-0"]{content:"gdlNCG,"}/*!sc*/ 63.dGuckJ{display:flex;justify-content:space-between;padding-top:32px;padding-bottom:32px;z-index:2;width:100%;max-width:1100px;margin-left:auto;margin-right:auto;padding-left:32px;padding-right:32px;}/*!sc*/ 64@media (max-width: 563px){.dGuckJ{justify-content:center;}}/*!sc*/ 65data-styled.g9[id="sc-e0f25c4f-1"]{content:"dGuckJ,"}/*!sc*/ 66@media (max-width: 563px){.ePzmSz{display:none;}}/*!sc*/ 67data-styled.g11[id="sc-e0f25c4f-3"]{content:"ePzmSz,"}/*!sc*/ 68.ljENWa{font-size:12px;font-weight:var(--font-weight-light);color:var(--color-gray-600);}/*!sc*/ 69data-styled.g12[id="sc-e0f25c4f-4"]{content:"ljENWa,"}/*!sc*/ 70.iDesNd{opacity:0.7;position:relative;border-radius:5px;width:40px;height:32px;display:flex;align-items:center;justify-content:center;}/*!sc*/ 71@media (min-width: 769px){.iDesNd:hover{opacity:1;}}/*!sc*/ 72data-styled.g13[id="sc-fb44507b-0"]{content:"iDesNd,"}/*!sc*/ 73.jZRDRC{position:relative;overflow:visible;}/*!sc*/ 74data-styled.g14[id="sc-fb44507b-1"]{content:"jZRDRC,"}/*!sc*/ 75.dHalWr{height:2.75rem;display:flex;align-items:center;padding:0px;}/*!sc*/ 76data-styled.g24[id="sc-a3d4601d-0"]{content:"dHalWr,"}/*!sc*/ 77.dpdYfe{flex:1;display:flex;justify-content:flex-start;}/*!sc*/ 78data-styled.g25[id="sc-a3d4601d-1"]{content:"dpdYfe,"}/*!sc*/ 79.jcMTko{flex:1;display:flex;justify-content:center;}/*!sc*/ 80@media (max-width: 768px){.jcMTko{display:none;}}/*!sc*/ 81data-styled.g26[id="sc-a3d4601d-2"]{content:"jcMTko,"}/*!sc*/ 82.hrQlgF{flex:1;display:flex;justify-content:flex-end;}/*!sc*/ 83@media (max-width: 768px){.hrQlgF{display:none;}}/*!sc*/ 84.cyJuVm{flex:1;display:flex;justify-content:flex-end;}/*!sc*/ 85@media (min-width: 769px){.cyJuVm{display:none;}}/*!sc*/ 86data-styled.g27[id="sc-a3d4601d-3"]{content:"hrQlgF,cyJuVm,"}/*!sc*/ 87body{background:var(--color-background);}/*!sc*/ 88data-styled.g28[id="sc-global-gQHrEz1"]{content:"sc-global-gQHrEz1,"}/*!sc*/ 89.bOlytw{position:sticky;top:-1px;z-index:3;background:var(--background);transition:background 350ms ease 0s;}/*!sc*/ 90data-styled.g29[id="sc-587afea7-0"]{content:"bOlytw,"}/*!sc*/ 91.eckpQN{position:relative;z-index:1;flex:1;transition:background 350ms ease 0s;max-width:100vw;overflow:hidden;}/*!sc*/ 92data-styled.g30[id="sc-587afea7-1"]{content:"eckpQN,"}/*!sc*/ 93.dylOXV{position:relative;z-index:2;width:100%;max-width:1100px;margin-left:auto;margin-right:auto;padding-left:32px;padding-right:32px;}/*!sc*/ 94@media (max-width: 563px){.dylOXV{padding-left:16px;padding-right:16px;}}/*!sc*/ 95data-styled.g31[id="sc-587afea7-2"]{content:"dylOXV,"}/*!sc*/ 96.fdSmIV{display:flex;flex-direction:column;min-height:100svh;transition:background 350ms ease 0s;}/*!sc*/ 97data-styled.g32[id="sc-587afea7-3"]{content:"fdSmIV,"}/*!sc*/ 98.jmIyLj{position:relative;z-index:2;width:100%;max-width:1100px;margin-left:auto;margin-right:auto;padding-left:32px;padding-right:32px;}/*!sc*/ 99@media (max-width: 563px){.jmIyLj{padding-left:16px;padding-right:16px;}}/*!sc*/ 100data-styled.g33[id="sc-22bbb5f3-0"]{content:"jmIyLj,"}/*!sc*/ 101.bxdBtu{font-size:calc(20 / 16 * 1rem);color:var(--color-gray-1000);}/*!sc*/ 102data-styled.g35[id="sc-fadeac6e-1"]{content:"bxdBtu,"}/*!sc*/ 103.gNfuPm{display:flex;flex-direction:column;list-style:none;padding:0;flex:1;}/*!sc*/ 104data-styled.g117[id="sc-f1fc5137-0"]{content:"gNfuPm,"}/*!sc*/ 105.dDSNPp{font-size:0.85rem;display:flex;flex-direction:row;align-items:center;padding:0.5rem;background:var(--color-background);border-radius:5px;box-shadow:0.1px 0.1px 0.2px hsl(var(--shadow-color) / 0),0.6px 0.6px 1.3px hsl(var(--shadow-color) / 0.05),1.3px 1.1px 2.6px hsl(var(--shadow-color) / 0.1),2.6px 2.3px 5.2px hsl(var(--shadow-color) / 0.15),0px 0px 5px 3px hsl(var(--shadow-color) / 0.03);
105transition:box-shadow 350ms ease 0s,background 350ms ease 0s,transform 350ms ease 0s;text-decoration:none;cursor:default;cursor:pointer;}/*!sc*/ 106.dDSNPp:not(:last-child){margin-bottom:0.75rem;}/*!sc*/ 107.dDSNPp:hover{box-shadow:0.3px 0.3px 0.6px hsl(var(--shadow-color) / 0),1.3px 1.3px 2.8px hsl(var(--shadow-color) / 0.05),2.5px 2.6px 5.4px hsl(var(--shadow-color) / 0.09),5.1px 5.4px 11.1px hsl(var(--shadow-color) / 0.14),0px 0px 5px 3px hsl(var(--shadow-color) / 0.05);transform:scale(1.02);}/*!sc*/ 108data-styled.g118[id="sc-f1fc5137-1"]{content:"dDSNPp,"}/*!sc*/ 109.gdXoBA{border-radius:50%;margin-right:0.5rem;user-select:none;}/*!sc*/ 110data-styled.g119[id="sc-f1fc5137-2"]{content:"gdXoBA,"}/*!sc*/ 111.ivkHMN{transition:color 350ms ease 0s;color:var(--color-gray-900);flex:1;}/*!sc*/ 112data-styled.g120[id="sc-f1fc5137-3"]{content:"ivkHMN,"}/*!sc*/ 113.jWINiI{transition:color 350ms ease 0s;margin-bottom:0.25em;}/*!sc*/ 114data-styled.g121[id="sc-f1fc5137-4"]{content:"jWINiI,"}/*!sc*/ 115.bFMIRG{font-size:0.7rem;transition:color 350ms ease 0s;color:var(--color-gray-500);text-align:center;}/*!sc*/ 116data-styled.g122[id="sc-f1fc5137-5"]{content:"bFMIRG,"}/*!sc*/ 117.kOCyIX{flex:1.3;}/*!sc*/ 118data-styled.g123[id="sc-3469ce87-0"]{content:"kOCyIX,"}/*!sc*/ 119.cVyDJD{font-family:monospace;background:var(--color-muted);border-radius:3px;padding:1px;transition:background 350ms ease 0s;}/*!sc*/ 120data-styled.g124[id="sc-3469ce87-1"]{content:"cVyDJD,"}/*!sc*/ 121.dCQBuK{width:200px;height:200px;}/*!sc*/ 122data-styled.g125[id="sc-8d4bf0ef-0"]{content:"dCQBuK,"}/*!sc*/ 123.elsmaG{border-radius:50%;box-shadow:0.3px 0.3px 0.6px hsl(var(--shadow-color) / 0),1.3px 1.3px 2.8px hsl(var(--shadow-color) / 0.05),2.5px 2.6px 5.4px hsl(var(--shadow-color) / 0.09),5.1px 5.4px 11.1px hsl(var(--shadow-color) / 0.14);object-position:50% 0;object-fit:cover;user-select:none;}/*!sc*/ 124data-styled.g126[id="sc-8d4bf0ef-1"]{content:"elsmaG,"}/*!sc*/ 125.dFaSFC{--easing:cubic-bezier(0.45,0.05,0.55,0.95);--width:106px;--height:106px;--ydist:50svh;position:absolute;top:calc(-2.75rem - var(--height) + 50svh);left:calc(50vw - var(--width) / 2);will-change:transform;z-index:-1;fill:var(--color-muted);pointer-events:none!important;transition:fill 350ms ease 0s;}/*!sc*/ 126@media ((max-width: 768px)){.dFaSFC{--ydist:75svh;}}/*!sc*/ 127@media ((max-width: 563px)){.dFaSFC{--ydist:100svh;}}/*!sc*/ 128data-styled.g127[id="sc-cb994a5b-0"]{content:"dFaSFC,"}/*!sc*/ 129.fPkVf{--pos1:translate( calc(15vw + var(--width) / 2),calc(-50svh + var(--ydist) + var(--height) / 2) );--pos2:translate( calc(15vw + var(--width) / 2),calc(-50svh - var(--height) / 2) );transform:var(--pos1);animation:28s cubic-bezier(0.55,0.08,0.68,0.53) 0.5s infinite move_rocket;}/*!sc*/ 130@keyframes move_rocket{0%{transform:var(--pos1);}0%{transform:var(--pos1);}25%{transform:var(--pos2);}100%{transform:var(--pos2);}}/*!sc*/ 131data-styled.g128[id="sc-cb994a5b-1"]{content:"fPkVf,"}/*!sc*/ 132.iQWBOc{--pos1:translate( calc(-15vw - var(--width) / 2),calc(-50svh - var(--height) / 2) );--pos2:translate( calc(-15vw - var(--width) / 2),calc(-50svh + var(--ydist) + var(--height) / 1) );transform:var(--pos1);animation:28s cubic-bezier(0.22,0.61,0.36,1) 0.5s infinite move_lander;}/*!sc*/ 133@keyframes move_lander{0%{transform:var(--pos1);}21.428571428571427%{transform:var(--pos1);}85.71428571428571%{transform:var(--pos2);}100%{transform:var(--pos2);}}/*!sc*/ 134data-styled.g129[id="sc-cb994a5b-2"]{content:"iQWBOc,"}/*!sc*/ 135.jjKjbA{left:0px;top:unset;bottom:-44.4px;will-change:transform,offset-distance;offset-path:path(var(--wave-path));offset-distance:0%;offset-anchor:bottom;transform:scaleX(-1) translateX(var(--width));animation:28s ease-in-out 0.5s infinite move_rover;}/*!sc*/ 136@keyframes move_rover{0%{offset-distance:0%;transform:scaleX(-1) translateX(var(--width));}39.285714285714285%{offset-distance:0%;transform:scaleX(-1) translateX(var(--width));}100%{offset-distance:90%;transform:scaleX(-1) translateX(0px);}100%{offset-distance:90%;transform:scaleX(-1) translateX(0px);}}/*!sc*/ 137data-styled.g130[id="sc-cb994a5b-3"]{content:"jjKjbA,"}/*!sc*/ 138.lgurHR{--pos1:translate( calc(-25vw - var(--width) / 2),calc(50svh + var(--height) / 2) );--pos2:translate( calc(40vw + var(--width) / 2),calc(-50svh - var(--height) / 2) );transform:var(--pos1);animation:28s linear 0.5s infinite fly_satellite;}/*!sc*/ 139@keyframes fly_satellite{0%{transform:var(--pos1);}25%{transform:var(--pos1);}100%{transform:var(--pos2);}100%{transform:var(--pos2);}}/*!sc*/ 140@media ((max-width: 768px)){.lgurHR{--pos1:translate( calc(-50vw - var(--width) / 2),calc(50svh + var(--height) / 2) );--pos2:translate( calc(50vw + var(--width) / 2),calc(-50svh - var(--height) / 2) );animation:33s linear 0.5s infinite fly_satellite;}@keyframes fly_satellite{0%{transform:var(--pos1);}40%{transform:var(--pos1);}120%{transform:var(--pos2);}100%{transform:var(--pos2);}}}/*!sc*/ 141data-styled.g131[id="sc-cb994a5b-4"]{content:"lgurHR,"}/*!sc*/ 142.fpfBLh{--pos1:translate( calc(-50vw - var(--width) / 1.5),calc(25svh + var(--height) / 1.75) ) rotate(315deg);--pos2:translate( calc(10vw + var(--width) / 2),calc(-50svh - var(--height) / 1.75) ) rotate(315deg);transform:var(--pos1);animation:39s linear 0.5s infinite fly_station;}/*!sc*/ 143@keyframes fly_station{0%{transform:var(--pos1);}46.42857142857143%{transform:var(--pos1);}100%{transform:var(--pos2);}100%{transform:var(--pos2);}}/*!sc*/ 144@media ((max-width: 768px)){.fpfBLh{display:none;}}/*!sc*/ 145data-styled.g132[id="sc-cb994a5b-5"]{content:"fpfBLh,"}/*!sc*/ 146.eUpDdR{flex:1.5;}
146/*!sc*/ 147data-styled.g133[id="sc-46bdd2b9-0"]{content:"eUpDdR,"}/*!sc*/ 148.ZBOTM{align-items:unset!important;flex-direction:column!important;color:unset;padding:1rem;}/*!sc*/ 149.ZBOTM span.link{color:var(--color-subtle-primary);text-decoration:underline;text-underline-offset:2px;transition:color 350ms ease 0s;}/*!sc*/ 150.ZBOTM:not(:last-child){margin-bottom:0.9rem;}/*!sc*/ 151data-styled.g134[id="sc-46bdd2b9-1"]{content:"ZBOTM,"}/*!sc*/ 152.knCAuj{display:flex;flex-direction:row;align-items:start;margin-bottom:0.6rem;}/*!sc*/ 153data-styled.g135[id="sc-46bdd2b9-2"]{content:"knCAuj,"}/*!sc*/ 154.yykhC{flex:1;}/*!sc*/ 155data-styled.g137[id="sc-46bdd2b9-4"]{content:"yykhC,"}/*!sc*/ 156.cqjfgc{display:flex;flex-direction:column;}/*!sc*/ 157data-styled.g138[id="sc-46bdd2b9-5"]{content:"cqjfgc,"}/*!sc*/ 158.jBufCe{font-weight:600;}/*!sc*/ 159data-styled.g139[id="sc-46bdd2b9-6"]{content:"jBufCe,"}/*!sc*/ 160.cnTqjr{transition:color 350ms ease 0s;color:var(--color-gray-700);font-size:0.75rem;}/*!sc*/ 161data-styled.g140[id="sc-46bdd2b9-7"]{content:"cnTqjr,"}/*!sc*/ 162.jhoncs{transition:color 350ms ease 0s;color:var(--color-gray-700);font-size:0.75rem;display:flex;align-items:center;}/*!sc*/ 163data-styled.g141[id="sc-46bdd2b9-8"]{content:"jhoncs,"}/*!sc*/ 164.hvbqRL{margin-bottom:0.75rem;}/*!sc*/ 165data-styled.g143[id="sc-46bdd2b9-10"]{content:"hvbqRL,"}/*!sc*/ 166.iKGfzM{display:flex;align-items:center;gap:0.3rem;margin-bottom:0.5rem;font-size:0.7rem;color:var(--color-gray-600);transition:color 350ms ease 0s;}/*!sc*/ 167data-styled.g144[id="sc-46bdd2b9-11"]{content:"iKGfzM,"}/*!sc*/ 168.fmnAks{display:grid;grid-template-rows:repeat(0,auto);grid-template-columns:repeat(0,auto);height:auto;min-height:auto;max-height:300px;overflow:clip;}/*!sc*/ 169.fmnAFo{display:grid;grid-template-rows:repeat(1,auto);grid-template-columns:repeat(1,auto);height:auto;min-height:auto;max-height:300px;overflow:clip;}/*!sc*/ 170data-styled.g145[id="sc-46bdd2b9-12"]{content:"fmnAks,fmnAFo,"}/*!sc*/ 171.clCwem{position:relative;display:flex;align-items:center;justify-content:center;max-height:150px;height:100%;width:100%;overflow:clip;}/*!sc*/ 172data-styled.g146[id="sc-46bdd2b9-13"]{content:"clCwem,"}/*!sc*/ 173.kptaTT{object-fit:cover;}/*!sc*/ 174data-styled.g147[id="sc-46bdd2b9-14"]{content:"kptaTT,"}/*!sc*/ 175.nHkMw{display:flex;align-items:center;color:var(--color-gray-500);transition:color 350ms ease 0s;font-size:0.8rem;}/*!sc*/ 176data-styled.g148[id="sc-46bdd2b9-15"]{content:"nHkMw,"}/*!sc*/ 177.dmNltQ{padding-top:48px;padding-bottom:16px;flex:1;}/*!sc*/ 178@media ((max-width: 563px)){.dmNltQ{padding-top:24px;}}/*!sc*/ 179data-styled.g149[id="sc-6c41d28e-0"]{content:"dmNltQ,"}/*!sc*/ 180.bLsiTU{position:relative;padding-bottom:74px;}/*!sc*/ 181data-styled.g150[id="sc-6c41d28e-1"]{content:"bLsiTU,"}/*!sc*/ 182.ejclMZ{display:grid;grid-template-columns:1fr 2fr;grid-gap:32px;}/*!sc*/ 183@media ((max-width: 563px)){.ejclMZ{grid-template-columns:1fr;grid-gap:16px;}}/*!sc*/ 184data-styled.g151[id="sc-6c41d28e-2"]{content:"ejclMZ,"}/*!sc*/ 185.cuPbEq{background:var(--color-muted);min-height:100%;transition:background 350ms ease 0s;}/*!sc*/ 186data-styled.g152[id="sc-6c41d28e-3"]{content:"cuPbEq,"}/*!sc*/ 187.hJZjKs{display:flex;flex-direction:column;flex:1;justify-content:center;align-items:center;}/*!sc*/ 188data-styled.g153[id="sc-6c41d28e-4"]{content:"hJZjKs,"}/*!sc*/ 189.dJwPBj{display:flex;flex-direction:column;flex:1;}/*!sc*/ 190@media ((max-width: 563px)){.dJwPBj{padding-left:8px;padding-right:8px;font-size:1.1rem;}}/*!sc*/ 191data-styled.g154[id="sc-6c41d28e-5"]{content:"dJwPBj,"}/*!sc*/ 192.bVIhnS{position:relative;}/*!sc*/ 193@keyframes slideInFromLeft{0%{background-size:100% 0.2em,0 0.2em;}100%{background-size:0 0.2em,100% 0.2em;}}/*!sc*/ 194.bVIhnS::before{content:"";position:absolute;top:95%;width:110%;left:-5%;height:5px;border-radius:2px;background:none,linear-gradient(111.3deg,var(--color-primary) 9.6%,var(--color-secondary) 93.6%);background-size:100% 0.2em,0 0.2em;background-position:100% 100%,0 100%;background-repeat:no-repeat;animation:slideInFromLeft 600ms cubic-bezier(0.65,0,0.35,1) 500ms 1 normal forwards;}/*!sc*/ 195data-styled.g155[id="sc-6c41d28e-6"]{content:"bVIhnS,"}/*!sc*/ 196.dgANWe{color:var(--color-subtle-primary);text-decoration:underline;text-decoration-color:var(--color-subtle-primary);text-decoration-thickness:2px;text-underline-offset:3px;transition:color 350ms ease 0s,text-decoration-color 350ms ease 0s;}/*!sc*/ 197.dgANWe:hover{color:var(--color-primary);text-decoration-color:var(--color-primary);}/*!sc*/ 198data-styled.g156[id="sc-6c41d28e-7"]{content:"dgANWe,"}/*!sc*/ 199.cGrvOe{display:none;}/*!sc*/ 200@media (max-width:400px){.cGrvOe{display:none;}}/*!sc*/ 201@media (min-width:400px) and (max-width:563px){.cGrvOe{display:block;}}/*!sc*/ 202@media (min-width:950px){.cGrvOe{display:block;}}/*!sc*/ 203data-styled.g157[id="sc-6c41d28e-8"]{content:"cGrvOe,"}/*!sc*/ 204.kFGekS{position:absolute;right:0;top:0;transform:scale(calc(1 / 1.2)) translate(158%,-65%) rotate(10deg);font-size:13px;color:var(--color-gray-400);}/*!sc*/ 205@keyframes typewriter{from{width:0;}to{width:100%;}}/*!sc*/ 206data-styled.g158[id="sc-6c41d28e-9"]{content:"kFGekS,"}/*!sc*/ 207.eswUlC{display:flex;flex-direction:row;gap:1.5em;}/*!sc*/ 208@media ((max-width: 768px)){.eswUlC{flex-direction:column;gap:0.75em;}}/*!sc*/ 209data-styled.g159[id="sc-6c41d28e-10"]{content:"eswUlC,"}/*!sc*/ 210</style></head><body>
vendor: 8,104 bytes, lines 210-211
210<script>/*! For license information please see script.js.LICENSE.txt */ 211(()=>{var t={28:(t,e)=>{"use strict";e.byteLength=function(t){var e=a(t),n=e[0],r=e[1];return 3*(n+r)/4-r},e.toByteArray=function(t){var e,n,o=a(t),s=o[0],u=o[1],c=new i(function(t,e,n){return 3*(e+n)/4-n}(0,s,u)),l=0,f=u>0?s-4:s;for(n=0;n<f;n+=4)e=r[t.charCodeAt(n)]<<18|r[t.charCodeAt(n+1)]<<12|r[t.charCodeAt(n+2)]<<6|r[t.charCodeAt(n+3)],c[l++]=e>>16&255,c[l++]=e>>8&255,c[l++]=255&e;return 2===u&&(e=r[t.charCodeAt(n)]<<2|r[t.charCodeAt(n+1)]>>4,c[l++]=255&e),1===u&&(e=r[t.charCodeAt(n)]<<10|r[t.charCodeAt(n+1)]<<4|r[t.charCodeAt(n+2)]>>2,c[l++]=e>>8&255,c[l++]=255&e),c},e.fromByteArray=function(t){for(var e,r=t.length,i=r%3,o=[],s=16383,a=0,c=r-i;a<c;a+=s)o.push(u(t,a,a+s>c?c:a+s));return 1===i?(e=t[r-1],o.push(n[e>>2]+n[e<<4&63]+"==")):2===i&&(e=(t[r-2]<<8)+t[r-1],o.push(n[e>>10]+n[e>>4&63]+n[e<<2&63]+"=")),o.join("")};for(var n=[],r=[],i="undefined"!=typeof Uint8Array?Uint8Array:Array,o="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",s=0;s<64;++s)n[s]=o[s],r[o.charCodeAt(s)]=s;function a(t){var e=t.length;if(e%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var n=t.indexOf("=");return-1===n&&(n=e),[n,n===e?0:4-n%4]}function u(t,e,r){for(var i,o,s=[],a=e;a<r;a+=3)i=(t[a]<<16&16711680)+(t[a+1]<<8&65280)+(255&t[a+2]),s.push(n[(o=i)>>18&63]+n[o>>12&63]+n[o>>6&63]+n[63&o]);return s.join("")}r["-".charCodeAt(0)]=62,r["_".charCodeAt(0)]=63},429:(t,e,n)=>{"use strict";const r=n(28),i=n(801),o="function"==typeof Symbol&&"function"==typeof Symbol.for?Symbol.for("nodejs.util.inspect.custom"):null;e.Buffer=u,e.SlowBuffer=function(t){return+t!=t&&(t=0),u.alloc(+t)},e.INSPECT_MAX_BYTES=50;const s=2147483647;function a(t){if(t>s)throw new RangeError('The value "'+t+'" is invalid for option "size"');const e=new Uint8Array(t);return Object.setPrototypeOf(e,u.prototype),e}function u(t,e,n){if("number"==typeof t){if("string"==typeof e)throw new TypeError('The "string" argument must be of type string. Received type number');return f(t)}return c(t,e,n)}function c(t,e,n){if("string"==typeof t)return function(t,e){if("string"==typeof e&&""!==e||(e="utf8"),!u.isEncoding(e))throw new TypeError("Unknown encoding: "+e);const n=0|d(t,e);let r=a(n);const i=r.write(t,e);return i!==n&&(r=r.slice(0,i)),r}(t,e);if(ArrayBuffer.isView(t))return function(t){if(H(t,Uint8Array)){const e=new Uint8Array(t);return p(e.buffer,e.byteOffset,e.byteLength)}return h(t)}(t);if(null==t)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof t);if(H(t,ArrayBuffer)||t&&H(t.buffer,ArrayBuffer))return p(t,e,n);if("undefined"!=typeof SharedArrayBuffer&&(H(t,SharedArrayBuffer)||t&&H(t.buffer,SharedArrayBuffer)))return p(t,e,n);if("number"==typeof t)throw new TypeError('The "value" argument must not be of type number. Received type number');const r=t.valueOf&&t.valueOf();if(null!=r&&r!==t)return u.from(r,e,n);const i=function(t){if(u.isBuffer(t)){const e=0|g(t.length),n=a(e);return 0===n.length||t.copy(n,0,0,e),n}return void 0!==t.length?"number"!=typeof t.length||W(t.length)?a(0):h(t):"Buffer"===t.type&&Array.isArray(t.data)?h(t.data):void 0}(t);if(i)return i;if("undefined"!=typeof Symbol&&null!=Symbol.toPrimitive&&"function"==typeof t[Symbol.toPrimitive])return u.from(t[Symbol.toPrimitive]("string"),e,n);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof t)}function l(t){if("number"!=typeof t)throw new TypeError('"size" argument must be of type number');if(t<0)throw new RangeError('The value "'+t+'" is invalid for option "size"')}function f(t){return l(t),a(t<0?0:0|g(t))}function h(t){const e=t.length<0?0:0|g(t.length),n=a(e);for(let r=0;r<e;r+=1)n[r]=255&t[r];return n}function p(t,e,n){if(e<0||t.byteLength<e)throw new RangeError('"offset" is outside of buffer bounds');if(t.byteLength<e+(n||0))throw new RangeError('"length" is outside of buffer bounds');let r;return r=void 0===e&&void 0===n?new Uint8Array(t):void 0===n?new Uint8Array(t,e):new Uint8Array(t,e,n),Object.setPrototypeOf(r,u.prototype),r}function g(t){if(t>=s)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+s.toString(16)+" bytes");return 0|t}function d(t,e){if(u.isBuffer(t))return t.length;if(ArrayBuffer.isView(t)||H(t,ArrayBuffer))return t.byteLength;if("string"!=typeof t)throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof t);const n=t.length,r=arguments.length>2&&!0===arguments[2];if(!r&&0===n)return 0;let i=!1;for(;;)switch(e){case"ascii":case"latin1":case"binary":return n;case"utf8":case"utf-8":return q(t).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*n;case"hex":return n>>>1;case"base64":return X(t).length;default:if(i)return r?-1:q(t).length;e=(""+e).toLowerCase(),i=!0}}function y(t,e,n){let r=!1;if((void 0===e||e<0)&&(e=0),e>this.length)return"";if((void 0===n||n>this.length)&&(n=this.length),n<=0)return"";if((n>>>=0)<=(e>>>=0))return"";for(t||(t="utf8");;)switch(t){case"hex":return C(this,e,n);case"utf8":case"utf-8":return N(this,e,n);case"ascii":return F(this,e,n);case"latin1":case"binary":return B(this,e,n);case"base64":return x(this,e,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return O(this,e,n);default:if(r)throw new TypeError("Unknown encoding: "+t);t=(t+"").toLowerCase(),r=!0}}function m(t,e,n){const r=t[e];t[e]=t[n],t[n]=r}function b(t,e,n,r,i){if(0===t.length)return-1;if("string"==typeof n?(r=n,n=0):n>2147483647?n=2147483647:n<-2147483648&&(n=-2147483648),W(n=+n)&&(n=i?0:t.length-1),n<0&&(n=t.length+n),n>=t.length){if(i)return-1;n=t.length-1}else if(n<0){if(!i)return-1;n=0}if("string"==typeof e&&(e=u.from(e,r)),u.isBuffer(e))return 0===e.length?-1:E(t,e,n,r,i);if("number"==typeof e)return e&=255,"function"==typeof Uint8Array.prototype.indexOf?i?Uint8Array.prototype.indexOf.call(t,e,n):Uint8Array.prototype.lastIndexOf.call(t,e,n):E(t,[e],n,r,i);throw new TypeError("val must be string, number or Buffer")}function E(t,e,n,r,i){let o,s=1,a=t.length,u=e.length;if(void 0!==r&&("ucs2"===(r=String(r).toLowerCase())||"ucs-2"===r||"utf16le"===r||"utf-16le"===r)){if(t.length<2||e.length<2)return-1;s=2,a/=2,u/=2,n/=2}function c(t,e){return 1===s?t[e]:t.readUInt16BE(e*s)}if(i){let r=-1;for(o=n;o<a;o++)if(c(t,o)===c(e,-1===r?0:o-r)){if(-1===r&&(r=o),o-r+1===u)return r*s}else-1!==r&&(o-=o-r),r=-1}else for(n+u>a&&(n=a-u),o=n;o>=0;o--){let n=!0;for(let r=0;r<u;r++)if(c(t,o+r)!==c(e,r)){n=!1;break}if(n)return o}return-1}function T(t,e,n,r){n=Number(n)||0;const i=t.length-n;r?(r=Number(r))>i&&(r=i):r=i;const o=e.length;let s;for(r>o/2&&(r=o/2),s=0;s<r;++s){const r=parseInt(e.substr(2*s,2),16);if(W(r))return s;t[n+s]=r}return s}function w(t,e,n,r){return $(q(e,t.length-n),t,n,r)}function A(t,e,n,r){return $(function(t){const e=[];for(let n=0;n<t.length;++n)e.push(255&t.charCodeAt(n));return e}(e),t,n,r)}function _(t,e,n,r){return $(X(e),t,n,r)}function v(t,e,n,r){return $(function(t,e){let n,r,i;const o=[];for(let s=0;s<t.length&&!((e-=2)<0);++s)n=t.charCodeAt(s),r=n>>8,i=n%256,o.push(i),o.push(r);return o}(e,t.length-n),t,n,r)}function x(t,e,n){return 0===e&&n===t.length?r.fromByteArray(t):r.fromByteArray(t.slice(e,n))}function N(t,e,n){n=Math.min(t.length,n);const r=[];let i=e;for(;i<n;){const e=t[i];let o=null,s=e>239?4:e>223?3:e>191?2:1;if(i+s<=n){let n,r,a,u;switch(s){case 1:e<128&&(o=e);break;case 2:n=t[i+1],128==(192&n)&&(u=(31&e)<<6|63&n,u>127&&(o=u));break;case 3:n=t[i+1],r=t[i+2],128==(192&n)&&128==(192&r)&&(u=(15&e)<<12|(63&n)<<6|63&r,u>2047&&(u<55296||u>57343)&&(o=u));break;case 4:n=t[i+1],r=t[i+2],a=t[i+3],128==(192&n)&&128==(192&r)&&128==(192&a)&&(u=(15&e)<<18|(63&n)<<12|(63&r)<<6|63&a,u>65535&&u<1114112&&(o=u))}}null===o?(o=65533,s=1):o>65535&&(o-=65536,r.push(o>>>10&1023|55296),o=56320|1023&o),r.push(o),i+=s}return function(t){const e=t.length;if(e<=I)return String.fromCharCode.apply(String,t);let n="",r=0;for(;r<e;
vendor: 15,119 bytes, line 211
211)n+=String.fromCharCode.apply(String,t.slice(r,r+=I));return n}(r)}e.kMaxLength=s,u.TYPED_ARRAY_SUPPORT=function(){try{const t=new Uint8Array(1),e={foo:function(){return 42}};return Object.setPrototypeOf(e,Uint8Array.prototype),Object.setPrototypeOf(t,e),42===t.foo()}catch(t){return!1}}(),u.TYPED_ARRAY_SUPPORT||"undefined"==typeof console||"function"!=typeof console.error||console.error("This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support."),Object.defineProperty(u.prototype,"parent",{enumerable:!0,get:function(){if(u.isBuffer(this))return this.buffer}}),Object.defineProperty(u.prototype,"offset",{enumerable:!0,get:function(){if(u.isBuffer(this))return this.byteOffset}}),u.poolSize=8192,u.from=function(t,e,n){return c(t,e,n)},Object.setPrototypeOf(u.prototype,Uint8Array.prototype),Object.setPrototypeOf(u,Uint8Array),u.alloc=function(t,e,n){return function(t,e,n){return l(t),t<=0?a(t):void 0!==e?"string"==typeof n?a(t).fill(e,n):a(t).fill(e):a(t)}(t,e,n)},u.allocUnsafe=function(t){return f(t)},u.allocUnsafeSlow=function(t){return f(t)},u.isBuffer=function(t){return null!=t&&!0===t._isBuffer&&t!==u.prototype},u.compare=function(t,e){if(H(t,Uint8Array)&&(t=u.from(t,t.offset,t.byteLength)),H(e,Uint8Array)&&(e=u.from(e,e.offset,e.byteLength)),!u.isBuffer(t)||!u.isBuffer(e))throw new TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array');if(t===e)return 0;let n=t.length,r=e.length;for(let i=0,o=Math.min(n,r);i<o;++i)if(t[i]!==e[i]){n=t[i],r=e[i];break}return n<r?-1:r<n?1:0},u.isEncoding=function(t){switch(String(t).toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"latin1":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return!0;default:return!1}},u.concat=function(t,e){if(!Array.isArray(t))throw new TypeError('"list" argument must be an Array of Buffers');if(0===t.length)return u.alloc(0);let n;if(void 0===e)for(e=0,n=0;n<t.length;++n)e+=t[n].length;const r=u.allocUnsafe(e);let i=0;for(n=0;n<t.length;++n){let e=t[n];if(H(e,Uint8Array))i+e.length>r.length?(u.isBuffer(e)||(e=u.from(e)),e.copy(r,i)):Uint8Array.prototype.set.call(r,e,i);else{if(!u.isBuffer(e))throw new TypeError('"list" argument must be an Array of Buffers');e.copy(r,i)}i+=e.length}return r},u.byteLength=d,u.prototype._isBuffer=!0,u.prototype.swap16=function(){const t=this.length;if(t%2!=0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(let e=0;e<t;e+=2)m(this,e,e+1);return this},u.prototype.swap32=function(){const t=this.length;if(t%4!=0)throw new RangeError("Buffer size must be a multiple of 32-bits");for(let e=0;e<t;e+=4)m(this,e,e+3),m(this,e+1,e+2);return this},u.prototype.swap64=function(){const t=this.length;if(t%8!=0)throw new RangeError("Buffer size must be a multiple of 64-bits");for(let e=0;e<t;e+=8)m(this,e,e+7),m(this,e+1,e+6),m(this,e+2,e+5),m(this,e+3,e+4);return this},u.prototype.toString=function(){const t=this.length;return 0===t?"":0===arguments.length?N(this,0,t):y.apply(this,arguments)},u.prototype.toLocaleString=u.prototype.toString,u.prototype.equals=function(t){if(!u.isBuffer(t))throw new TypeError("Argument must be a Buffer");return this===t||0===u.compare(this,t)},u.prototype.inspect=function(){let t="";const n=e.INSPECT_MAX_BYTES;return t=this.toString("hex",0,n).replace(/(.{2})/g,"$1 ").trim(),this.length>n&&(t+=" ... "),"<Buffer "+t+">"},o&&(u.prototype[o]=u.prototype.inspect),u.prototype.compare=function(t,e,n,r,i){if(H(t,Uint8Array)&&(t=u.from(t,t.offset,t.byteLength)),!u.isBuffer(t))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof t);if(void 0===e&&(e=0),void 0===n&&(n=t?t.length:0),void 0===r&&(r=0),void 0===i&&(i=this.length),e<0||n>t.length||r<0||i>this.length)throw new RangeError("out of range index");if(r>=i&&e>=n)return 0;if(r>=i)return-1;if(e>=n)return 1;if(this===t)return 0;let o=(i>>>=0)-(r>>>=0),s=(n>>>=0)-(e>>>=0);const a=Math.min(o,s),c=this.slice(r,i),l=t.slice(e,n);for(let t=0;t<a;++t)if(c[t]!==l[t]){o=c[t],s=l[t];break}return o<s?-1:s<o?1:0},u.prototype.includes=function(t,e,n){return-1!==this.indexOf(t,e,n)},u.prototype.indexOf=function(t,e,n){return b(this,t,e,n,!0)},u.prototype.lastIndexOf=function(t,e,n){return b(this,t,e,n,!1)},u.prototype.write=function(t,e,n,r){if(void 0===e)r="utf8",n=this.length,e=0;else if(void 0===n&&"string"==typeof e)r=e,n=this.length,e=0;else{if(!isFinite(e))throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");e>>>=0,isFinite(n)?(n>>>=0,void 0===r&&(r="utf8")):(r=n,n=void 0)}const i=this.length-e;if((void 0===n||n>i)&&(n=i),t.length>0&&(n<0||e<0)||e>this.length)throw new RangeError("Attempt to write outside buffer bounds");r||(r="utf8");let o=!1;for(;;)switch(r){case"hex":return T(this,t,e,n);case"utf8":case"utf-8":return w(this,t,e,n);case"ascii":case"latin1":case"binary":return A(this,t,e,n);case"base64":return _(this,t,e,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return v(this,t,e,n);default:if(o)throw new TypeError("Unknown encoding: "+r);r=(""+r).toLowerCase(),o=!0}},u.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};const I=4096;function F(t,e,n){let r="";n=Math.min(t.length,n);for(let i=e;i<n;++i)r+=String.fromCharCode(127&t[i]);return r}function B(t,e,n){let r="";n=Math.min(t.length,n);for(let i=e;i<n;++i)r+=String.fromCharCode(t[i]);return r}function C(t,e,n){const r=t.length;(!e||e<0)&&(e=0),(!n||n<0||n>r)&&(n=r);let i="";for(let r=e;r<n;++r)i+=Q[t[r]];return i}function O(t,e,n){const r=t.slice(e,n);let i="";for(let t=0;t<r.length-1;t+=2)i+=String.fromCharCode(r[t]+256*r[t+1]);return i}function S(t,e,n){if(t%1!=0||t<0)throw new RangeError("offset is not uint");if(t+e>n)throw new RangeError("Trying to access beyond buffer length")}function D(t,e,n,r,i,o){if(!u.isBuffer(t))throw new TypeError('"buffer" argument must be a Buffer instance');if(e>i||e<o)throw new RangeError('"value" argument is out of bounds');if(n+r>t.length)throw new RangeError("Index out of range")}function k(t,e,n,r,i){V(e,r,i,t,n,7);let o=Number(e&BigInt(4294967295));t[n++]=o,o>>=8,t[n++]=o,o>>=8,t[n++]=o,o>>=8,t[n++]=o;let s=Number(e>>BigInt(32)&BigInt(4294967295));return t[n++]=s,s>>=8,t[n++]=s,s>>=8,t[n++]=s,s>>=8,t[n++]=s,n}function U(t,e,n,r,i){V(e,r,i,t,n,7);let o=Number(e&BigInt(4294967295));t[n+7]=o,o>>=8,t[n+6]=o,o>>=8,t[n+5]=o,o>>=8,t[n+4]=o;let s=Number(e>>BigInt(32)&BigInt(4294967295));return t[n+3]=s,s>>=8,t[n+2]=s,s>>=8,t[n+1]=s,s>>=8,t[n]=s,n+8}function L(t,e,n,r,i,o){if(n+r>t.length)throw new RangeError("Index out of range");if(n<0)throw new RangeError("Index out of range")}function R(t,e,n,r,o){return e=+e,n>>>=0,o||L(t,0,n,4),i.write(t,e,n,r,23,4),n+4}function P(t,e,n,r,o){return e=+e,n>>>=0,o||L(t,0,n,8),i.write(t,e,n,r,52,8),n+8}u.prototype.slice=function(t,e){const n=this.length;(t=~~t)<0?(t+=n)<0&&(t=0):t>n&&(t=n),(e=void 0===e?n:~~e)<0?(e+=n)<0&&(e=0):e>n&&(e=n),e<t&&(e=t);const r=this.subarray(t,e);return Object.setPrototypeOf(r,u.prototype),r},u.prototype.readUintLE=u.prototype.readUIntLE=function(t,e,n){t>>>=0,e>>>=0,n||S(t,e,this.length);let r=this[t],i=1,o=0;for(;++o<e&&(i*=256);)r+=this[t+o]*i;return r},u.prototype.readUintBE=u.prototype.readUIntBE=function(t,e,n){t>>>=0,e>>>=0,n||S(t,e,this.length);let r=this[t+--e],i=1;for(;e>0&&(i*=256);)r+=this[t+--e]*i;return r},u.prototype.readUint8=u.prototype.readUInt8=function(t,e){return t>>>=0,e||S(t,1,this.length),this[t]},u.prototype.readUint16LE=u.prototype.readUInt16LE=function(t,e){return t>>>=0,e||S(t,2,this.length),this[t]|this[t+1]<<8},u.prototype.readUint16BE=u.prototype.readUInt16BE=function(t,e){return t>>>=0,e||S(t,2,this.length),this[t]<<8|this[t+1]},u.prototype.readUint32LE=u.prototype.readUInt32LE=function(t,e){return t>>>=0,e||S(t,4,this.length),(this[t]|this[t+1]<<8|this[t+2]<<16)+16777216*this[t+3]},u.prototype.readUint32BE=u.prototype.readUInt32BE=function(t,e){return t>>>=0,e||S(t,4,this.length),16777216*this[t]+(this[t+1]<<16|this[t+2]<<8|this[t+3])},u.prototype.readBigUInt64LE=J((function(t){G(t>>>=0,"offset");const e=this[t],n=this[t+7];void 0!==e&&void 0!==n||Y(t,this.length-8);const r=e+256*this[++t]+65536*this[++t]+this[++t]*2**24,i=this[++t]+256*this[++t]+65536*this[++t]+n*2**24;return BigInt(r)+(BigInt(i)<<BigInt(32))})),u.prototype.readBigUInt64BE=J((function(t){G(t>>>=0,"offset");const e=this[t],n=this[t+7];void 0!==e&&void 0!==n||Y(t,this.length-8);const r=e*2**24+65536*this[++t]+256*this[++t]+this[++t],i=this[++t]*2**24+65536*this[++t]+256*this[++t]+n;return(BigInt(r)<<BigInt(32))+BigInt(i)})),u.prototype.readIntLE=function(t,e,n){t>>>=0,e>>>=0,n||S(t,e,this.length);let r=this[t],i=1,o=0;for(;++o<e&&(i*=256);)r+=this[t+o]*i;return i*=128,r>=i&&(r-=Math.pow(2,8*e)),r},u.prototype.readIntBE=function(t,e,n){t>>>=0,e>>>=0,n||S(t,e,this.length);let r=e,i=1,o=this[t+--r];for(;r>0&&(i*=256);)o+=this[t+--r]*i;return i*=128,o>=i&&(o-=Math.pow(2,8*e)),o},u.prototype.readInt8=function(t,e){return t>>>=0,e||S(t,1,this.length),128&this[t]?-1*(255-this[t]+1):this[t]},u.prototype.readInt16LE=function(t,e){t>>>=0,e||S(t,2,this.length);const n=this[t]|this[t+1]<<8;return 32768&n?4294901760|n:n},u.prototype.readInt16BE=function(t,e){t>>>=0,e||S(t,2,this.length);const n=this[t+1]|this[t]<<8;return 32768&n?4294901760|n:n},u.prototype.readInt32LE=function(t,e){return t>>>=0,e||S(t,4,this.length),this[t]|this[t+1]<<8|this[t+2]<<16|this[t+3]<<24},u.prototype.readInt32BE=function(t,e){return t>>>=0,e||S(t,4,this.length),this[t]<<24|this[t+1]<<16|this[t+2]<<8|this[t+3]},u.prototype.readBigInt64LE=J((function(t){G(t>>>=0,"offset");const e=this[t],n=this[t+7];void 0!==e&&void 0!==n||Y(t,this.length-8);const r=this[t+4]+256*this[t+5]+65536*this[t+6]+(n<<24);return(BigInt(r)<<BigInt(32))+BigInt(e+256*this[++t]+65536*this[++t]+this[++t]*2**24)})),u.prototype.readBigInt64BE=J((function(t){G(t>>>=0,"offset");const e=this[t],n=this[t+7];void 0!==e&&void 0!==n||Y(t,this.length-8);const r=(e<<24)+65536*this[++t]+256*this[++t]+this[++t];return(BigInt(r)<<BigInt(32))+BigInt(this[++t]*2**24+65536*this[++t]+256*this[++t]+n)})),u.prototype.readFloatLE=function(t,e){return t>>>=0,e||S(t,4,this.length),i.read(this,t,!0,23,4)},u.prototype.readFloatBE=function(t,e){return t>>>=0,e||S(t,4,this.length),i.read(this,t,!1,23,4)},u.prototype.readDoubleLE=function(t,e){return t>>>=0,e||S(t,8,this.length),i.read(this,t,!0,52,8)},u.prototype.readDoubleBE=function(t,e){return t>>>=0,e||S(t,8,this.length),i.read(this,t,!1,52,8)},u.prototype.writeUintLE=u.prototype.writeUIntLE=function(t,e,n,r){t=+t,e>>>=0,n>>>=0,r||D(this,t,e,n,Math.pow(2,8*n)-1,0);let i=1,o=0;for(this[e]=255&t;++o<n&&(i*=256);)this[e+o]=t/i&255;return e+n},u.prototype.writeUintBE=u.prototype.writeUIntBE=function(t,e,n,r){t=+t,e>>>=0,n>>>=0,r||D(this,t,e,n,Math.pow(2,8*n)-1,0);let i=n-1,o=1;for(this[e+i]=255&t;--i>=0&&(o*=256);)this[e+i]=t/o&255;return e+n},u.prototype.writeUint8=u.prototype.writeUInt8=function(t,e,n){return t=+t,e>>>=0,n||D(this,t,e,1,255,0),this[e]=255&t,e+1},u.prototype.writeUint16LE=u.prototype.writeUInt16LE=function(t,e,n){return t=+t,e>>>=0,n||D(this,t,e,2,65535,0),this[e]=255&t,this[e+1]=t>>>8,e+2},u.prototype.writeUint16BE=u.prototype.writeUInt16BE=function(t,e,n){return t=+t,e>>>=0,n||D(this,t,e,2,65535,0),this[e]=t>>>8,this[e+1]=255&t,e+2},u.prototype.writeUint32LE=u.prototype.writeUInt32LE=function(t,e,n){return t=+t,e>>>=0,n||D(this,t,e,4,4294967295,0),this[e+3]=t>>>24,this[e+2]=t>>>16,this[e+1]=t>>>8,this[e]=255&t,e+4},u.prototype.writeUint32BE=u.prototype.writeUInt32BE=function(t,e,n){return t=+t,e>>>=0,n||D(this,t,e,4,4294967295,0),this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=255&t,e+4},u.prototype.writeBigUInt64LE=J((function(t,e=0){return k(this,t,e,BigInt(0),BigInt("0xffffffffffffffff"))})),u.prototype.writeBigUInt64BE=J((function(t,e=0){return U(this,t,e,BigInt(0),BigInt("0xffffffffffffffff"))})),u.prototype.writeIntLE=function(t,e,n,r){if(t=+t,e>>>=0,!r){const r=Math.pow(2,8*n-1);D(this,t,e,n,r-1,-r)}let i=0,o=1,s=0;for(this[e]=255&t;++i<n&&(o*=256);)t<0&&0===s&&0!==this[e+i-1]&&(s=1),this[e+i]=(t/o|0)-s&255;return e+n},u.prototype.writeIntBE=function(t,e,n,r){if(t=+t,e>>>=0,!r){const r=Math.pow(2,8*n-1);D(this,t,e,n,r-1,-r)}let i=n-1,o=1,s=0;for(this[e+i]=255&t;--i>=0&&(o*=256);)t<0&&0===s&&0!==this[e+i+1]&&(s=1),this[e+i]=(t/o|0)-s&255;return e+n},u.prototype.writeInt8=function(t,e,n){return t=+t,e>>>=0,n||D(this,t,e,1,127,-128),t<0&&(t=255+t+1),this[e]=255&t,e+1},u.prototype.writeInt16LE=function(t,e,n){return t=+t,e>>>=0,n||D(this,t,e,2,32767,-32768),this[e]=255&t,this[e+1]=t>>>8,e+2},u.prototype.writeInt16BE=function(t,e,n){return t=+t,e>>>=0,n||D(this,t,e,2,32767,-32768),this[e]=t>>>8,this[e+1]=255&t,e+2},u.prototype.writeInt32LE=function(t,e,n){return t=+t,e>>>=0,n||D(this,t,e,4,2147483647,-2147483648),this[e]=255&t,this[e+1]=t>>>8,this[e+2]=t>>>16,this[e+3]=t>>>24,e+4},u.prototype.writeInt32BE=function(t,e,n){return t=+t,e>>>=0,n||D(this,t,e,4,2147483647,-2147483648),t<0&&(t=4294967295+t+1),this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=255&t,e+4},u.prototype.writeBigInt64LE=J((function(t,e=0){return k(this,t,e,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))})),u.prototype.writeBigInt64BE=J((function(t,e=0){return U(this,t,e,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))})),u.prototype.writeFloatLE=function(t,e,n){return R(this,t,e,!0,n)},u.prototype.writeFloatBE=function(t,e,n){return R(this,t,e,!1,n)},u.prototype.writeDoubleLE=function(t,e,n){return P(this,t,e,!0,n)},u.prototype.writeDoubleBE=function(t,e,n){return P(this,t,e,!1,n)},u.prototype.copy=function(t,e,n,r){if(!u.isBuffer(t))throw new TypeError("argument should be a Buffer");if(n||(n=0),r||0===r||(r=this.length),e>=t.length&&(e=t.length),e||(e=0),r>0&&r<n&&(r=n),r===n)return 0;if(0===t.length||0===this.length)return 0;if(e<0)throw new RangeError("targetStart out of bounds");if(n<0||n>=this.length)throw new RangeError("Index out of range");if(r<0)throw new RangeError("sourceEnd out of bounds");r>this.length&&(r=this.length),t.length-e<r-n&&(r=t.length-e+n);const i=r-n;return this===t&&"function"==typeof Uint8Array.prototype.copyWithin?this.copyWithin(e,n,r):Uint8Array.prototype.set.call(t,this.subarray(n,r),e),i},u.prototype.fill=function(t,e,n,r){if("string"==typeof t){if("string"==typeof e?(r=e,e=0,n=this.length):"string"==typeof n&&(r=n,n=this.length),void 0!==r&&"string"!=typeof r)throw new TypeError("encoding must be a string");if("string"==typeof r&&!u.isEncoding(r))throw new TypeError("Unknown encoding: "+r);if(1===t.length){const e=t.charCodeAt(0);("utf8"===r&&e<128||"latin1"===r)&&(t=e)}}else"number"==typeof t?t&=255:"boolean"==typeof t&&(t=Number(t));if(e<0||this.length<e||this.length<n)throw new RangeError("Out of range index");if(n<=e)return this;let i;if(e>>>=0,n=void 0===n?this.length:n>>>0,t||(t=0),"number"==typeof t)for(i=e;i<n;++i)this[i]=t;else{const o=u.isBuffer(t)?t:u.from(t,r),s=o.length;
211if(0===s)throw new TypeError('The value "'+t+'" is invalid for argument "value"');for(i=0;i<n-e;++i)this[i+e]=o[i%s]}return this};const K={};function M(t,e,n){K[t]=class extends n{constructor(){super(),Object.defineProperty(this,"message",{value:e.apply(this,arguments),writable:!0,configurable:!0}),this.name=`${this.name} [${t}]`,this.stack,delete this.name}get code(){return t}set code(t){Object.defineProperty(this,"code",{configurable:!0,enumerable:!0,value:t,writable:!0})}toString(){return`${this.name} [${t}]: ${this.message}`}}}function j(t){let e="",n=t.length;const r="-"===t[0]?1:0;for(;n>=r+4;n-=3)e=`_${t.slice(n-3,n)}${e}`;return`${t.slice(0,n)}${e}`}function V(t,e,n,r,i,o){if(t>n||t<e){const r="bigint"==typeof e?"n":"";let i;throw i=o>3?0===e||e===BigInt(0)?`>= 0${r} and < 2${r} ** ${8*(o+1)}${r}`:`>= -(2${r} ** ${8*(o+1)-1}${r}) and < 2 ** ${8*(o+1)-1}${r}`:`>= ${e}${r} and <= ${n}${r}`,new K.ERR_OUT_OF_RANGE("value",i,t)}!function(t,e,n){G(e,"offset"),void 0!==t[e]&&void 0!==t[e+n]||Y(e,t.length-(n+1))}(r,i,o)}function G(t,e){if("number"!=typeof t)throw new K.ERR_INVALID_ARG_TYPE(e,"number",t)}function Y(t,e,n){if(Math.floor(t)!==t)throw G(t,n),new K.ERR_OUT_OF_RANGE(n||"offset","an integer",t);if(e<0)throw new K.ERR_BUFFER_OUT_OF_BOUNDS;throw new K.ERR_OUT_OF_RANGE(n||"offset",`>= ${n?1:0} and <= ${e}`,t)}M("ERR_BUFFER_OUT_OF_BOUNDS",(function(t){return t?`${t} is outside of buffer bounds`:"Attempt to access memory outside buffer bounds"}),RangeError),M("ERR_INVALID_ARG_TYPE",(function(t,e){return`The "${t}" argument must be of type number. Received type ${typeof e}`}),TypeError),M("ERR_OUT_OF_RANGE",(function(t,e,n){let r=`The value of "${t}" is out of range.`,i=n;return Number.isInteger(n)&&Math.abs(n)>2**32?i=j(String(n)):"bigint"==typeof n&&(i=String(n),(n>BigInt(2)**BigInt(32)||n<-(BigInt(2)**BigInt(32)))&&(i=j(i)),i+="n"),r+=` It must be ${e}. Received ${i}`,r}),RangeError);const z=/[^+/0-9A-Za-z-_]/g;function q(t,e){let n;e=e||1/0;const r=t.length;let i=null;const o=[];for(let s=0;s<r;++s){if(n=t.charCodeAt(s),n>55295&&n<57344){if(!i){if(n>56319){(e-=3)>-1&&o.push(239,191,189);continue}if(s+1===r){(e-=3)>-1&&o.push(239,191,189);continue}i=n;continue}if(n<56320){(e-=3)>-1&&o.push(239,191,189),i=n;continue}n=65536+(i-55296<<10|n-56320)}else i&&(e-=3)>-1&&o.push(239,191,189);if(i=null,n<128){if((e-=1)<0)break;o.push(n)}else if(n<2048){if((e-=2)<0)break;o.push(n>>6|192,63&n|128)}else if(n<65536){if((e-=3)<0)break;o.push(n>>12|224,n>>6&63|128,63&n|128)}else{if(!(n<1114112))throw new Error("Invalid code point");if((e-=4)<0)break;o.push(n>>18|240,n>>12&63|128,n>>6&63|128,63&n|128)}}return o}function X(t){return r.toByteArray(function(t){if((t=(t=t.split("=")[0]).trim().replace(z,"")).length<2)return"";for(;t.length%4!=0;)t+="=";return t}(t))}function $(t,e,n,r){let i;for(i=0;i<r&&!(i+n>=e.length||i>=t.length);++i)e[i+n]=t[i];return i}function H(t,e){return t instanceof e||null!=t&&null!=t.constructor&&null!=t.constructor.name&&t.constructor.name===e.name}function W(t){return t!=t}const Q=function(){const t="0123456789abcdef",e=new Array(256);for(let n=0;n<16;++n){const r=16*n;for(let i=0;i<16;++i)e[r+i]=t[n]+t[i]}return e}();function J(t){return"undefined"==typeof BigInt?Z:t}function Z(){throw new Error("BigInt not supported")}},757:t=>{function e(t){if(t)return function(t){return Object.assign(t,e.prototype),t._callbacks=new Map,t}(t);this._callbacks=new Map}e.prototype.on=function(t,e){const n=this._callbacks.get(t)??[];return n.push(e),this._callbacks.set(t,n),this},e.prototype.once=function(t,e){const n=(...r)=>{this.off(t,n),e.apply(this,r)};return n.fn=e,this.on(t,n),this},e.prototype.off=function(t,e){if(void 0===t&&void 0===e)return this._callbacks.clear(),this;if(void 0===e)return this._callbacks.delete(t),this;const n=this._callbacks.get(t);if(n){for(const[t,r]of n.entries())if(r===e||r.fn===e){n.splice(t,1);break}0===n.length?this._callbacks.delete(t):this._callbacks.set(t,n)}return this},e.prototype.emit=function(t,...e){const n=this._callbacks.get(t);if(n){const t=[...n];for(const n of t)n.apply(this,e)}return this},e.prototype.listeners=function(t){return this._callbacks.get(t)??[]},e.prototype.listenerCount=function(t){if(t)return this.listeners(t).length;let e=0;for(const t of this._callbacks.values())e+=t.length;return e},e.prototype.hasListeners=function(t){return this.listenerCount(t)>0},e.prototype.addEventListener=e.prototype.on,e.prototype.removeListener=e.prototype.off,e.prototype.removeEventListener=e.prototype.off,e.prototype.removeAllListeners=e.prototype.off,t.exports=e},411:(t,e,n)=>{"use strict";
211Object.defineProperty(e,"__esModule",{value:!0});var r=n(268),i=n(486),o=n(282);e.default=function(t){var e=t.options,n={_declaration:{_attributes:{version:"1.0",encoding:"utf-8"}},feed:{_attributes:{xmlns:"http://www.w3.org/2005/Atom"},id:e.id,title:e.title,updated:e.updated?e.updated.toISOString():(new Date).toISOString(),generator:o.sanitize(e.generator||i.generator)}};e.author&&(n.feed.author=s(e.author)),n.feed.link=[],e.link&&n.feed.link.push({_attributes:{rel:"alternate",href:o.sanitize(e.link)}});var u=o.sanitize(e.feed||e.feedLinks&&e.feedLinks.atom);return u&&n.feed.link.push({_attributes:{rel:"self",href:o.sanitize(u)}}),e.hub&&n.feed.link.push({_attributes:{rel:"hub",href:o.sanitize(e.hub)}}),e.description&&(n.feed.subtitle=e.description),e.image&&(n.feed.logo=e.image),e.favicon&&(n.feed.icon=e.favicon),e.copyright&&(n.feed.rights=e.copyright),n.feed.category=[],t.categories.map((function(t){n.feed.category.push({_attributes:{term:t}})})),n.feed.contributor=[],t.contributors.map((function(t){n.feed.contributor.push(s(t))})),n.feed.entry=[],t.items.map((function(t){var e={title:{_attributes:{type:"html"},_cdata:t.title},id:o.sanitize(t.id||t.link),link:[{_attributes:{href:o.sanitize(t.link)}}],updated:t.date.toISOString()};t.description&&(e.summary={_attributes:{type:"html"},_cdata:t.description}),t.content&&(e.content={_attributes:{type:"html"},_cdata:t.content}),Array.isArray(t.author)&&(e.author=[],t.author.map((function(t){e.author.push(s(t))}))),Array.isArray(t.category)&&(e.category=[],t.category.map((function(t){e.category.push(a(t))}))),t.contributor&&Array.isArray(t.contributor)&&(e.contributor=[],t.contributor.map((function(t){e.contributor.push(s(t))}))),t.published&&(e.published=t.published.toISOString()),t.copyright&&(e.rights=t.copyright),n.feed.entry.push(e)})),r.js2xml(n,{compact:!0,ignoreComment:!0,spaces:4})};var s=function(t){var e=t.name,n=t.email,r=t.link,i={name:e};return n&&(i.email=n),r&&(i.uri=o.sanitize(r)),i},a=function(t){return{_attributes:{label:t.name,scheme:t.scheme,term:t.term}}}},486:(t,e)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.generator=void 0,e.generator="https://github.com/jpmonette/feed"},247:(t,e,n)=>{"use strict";n(411),n(985),n(697)},985:(t,e)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(t){var e=t.options,n=t.items,r=t.extensions,i={version:"https://jsonfeed.org/version/1",title:e.title};return e.link&&(i.home_page_url=e.link),e.feedLinks&&e.feedLinks.json&&(i.feed_url=e.feedLinks.json),e.description&&(i.description=e.description),e.image&&(i.icon=e.image),e.author&&(i.author={},e.author.name&&(i.author.name=e.author.name),e.author.link&&(i.author.url=e.author.link)),r.map((function(t){i[t.name]=t.objects})),i.items=n.map((function(t){var e={id:t.id,content_html:t.content};if(t.link&&(e.url=t.link),t.title&&(e.title=t.title),t.description&&(e.summary=t.description),t.image&&(e.image=t.image),t.date&&(e.date_modified=t.date.toISOString()),t.published&&(e.date_published=t.published.toISOString()),t.author){var n=t.author;n instanceof Array&&(n=n[0]),e.author={},n.name&&(e.author.name=n.name),n.link&&(e.author.url=n.link)}return Array.isArray(t.category)&&(e.tags=[],t.category.map((function(t){t.name&&e.tags.push(t.name)}))),t.extensions&&t.extensions.map((function(t){e[t.name]=t.objects})),e})),JSON.stringify(i,null,4)}},697:function(t,e,n){"use strict";var r=this&&this.__assign||function(){return r=Object.assign||function(t){for(var e,n=1,r=arguments.length;n<r;n++)for(var i in e=arguments[n])Object.prototype.hasOwnProperty.call(e,i)&&(t[i]=e[i]);return t},r.apply(this,arguments)};Object.defineProperty(e,"__esModule",{value:!0});var i=n(268),o=n(486),s=n(282);e.default=function(t){var e=t.options,n=!1,r=!1,c={_declaration:{_attributes:{version:"1.0",encoding:"utf-8"}},rss:{_attributes:{version:"2.0"},channel:{title:{_text:e.title},link:{_text:s.sanitize(e.link)},description:{_text:e.description},lastBuildDate:{_text:e.updated?e.updated.toUTCString():(new Date).toUTCString()},docs:{_text:e.docs?e.docs:"https://validator.w3.org/feed/docs/rss2.html"},generator:{_text:e.generator||o.generator}}}};e.language&&(c.rss.channel.language={_text:e.language}),e.ttl&&(c.rss.channel.ttl={_text:e.ttl}
211),e.image&&(c.rss.channel.image={title:{_text:e.title},url:{_text:e.image},link:{_text:s.sanitize(e.link)}}),e.copyright&&(c.rss.channel.copyright={_text:e.copyright}),t.categories.map((function(t){c.rss.channel.category||(c.rss.channel.category=[]),c.rss.channel.category.push({_text:t})}));var l=e.feed||e.feedLinks&&e.feedLinks.rss;return l&&(n=!0,c.rss.channel["atom:link"]=[{_attributes:{href:s.sanitize(l),rel:"self",type:"application/rss+xml"}}]),e.hub&&(n=!0,c.rss.channel["atom:link"]||(c.rss.channel["atom:link"]=[]),c.rss.channel["atom:link"]={_attributes:{href:s.sanitize(e.hub),rel:"hub"}}),c.rss.channel.item=[],t.items.map((function(t){var e={};t.title&&(e.title={_cdata:t.title}),t.link&&(e.link={_text:s.sanitize(t.link)}),t.guid?e.guid={_text:t.guid}:t.id?e.guid={_text:t.id}:t.link&&(e.guid={_text:s.sanitize(t.link)}),t.date&&(e.pubDate={_text:t.date.toUTCString()}),t.published&&(e.pubDate={_text:t.published.toUTCString()}),t.description&&(e.description={_cdata:t.description}),t.content&&(r=!0,e["content:encoded"]={_cdata:t.content}),Array.isArray(t.author)&&(e.author=[],t.author.map((function(t){t.email&&t.name&&e.author.push({_text:t.email+" ("+t.name+")"})}))),Array.isArray(t.category)&&(e.category=[],t.category.map((function(t){e.category.push(u(t))}))),t.enclosure&&(e.enclosure=a(t.enclosure)),t.image&&(e.enclosure=a(t.image,"image")),t.audio&&(e.enclosure=a(t.audio,"audio")),t.video&&(e.enclosure=a(t.video,"video")),c.rss.channel.item.push(e)})),r&&(c.rss._attributes["xmlns:dc"]="http://purl.org/dc/elements/1.1/",c.rss._attributes["xmlns:content"]="http://purl.org/rss/1.0/modules/content/"),n&&(c.rss._attributes["xmlns:atom"]="http://www.w3.org/2005/Atom"),i.js2xml(c,{compact:!0,ignoreComment:!0,spaces:4})};var a=function(t,e){if(void 0===e&&(e="image"),"string"==typeof t)return{_attributes:{url:t,length:0,type:e+"/"+new URL(t).pathname.split(".").slice(-1)[0]}};var n=new URL(t.url).pathname.split(".").slice(-1)[0];return{_attributes:r({length:0,type:e+"/"+n},t)}},u=function(t){return{_text:t.name,_attributes:{domain:t.domain}}}},282:(t,e)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.sanitize=void 0,e.sanitize=function(t){if(void 0!==t)return t.replace(/&/g,"&")}},801:(t,e)=>{e.read=function(t,e,n,r,i){var o,s,a=8*i-r-1,u=(1<<a)-1,c=u>>1,l=-7,f=n?i-1:0,h=n?-1:1,p=t[e+f];for(f+=h,o=p&(1<<-l)-1,p>>=-l,l+=a;l>0;o=256*o+t[e+f],f+=h,l-=8);for(s=o&(1<<-l)-1,o>>=-l,l+=r;l>0;s=256*s+t[e+f],f+=h,l-=8);if(0===o)o=1-c;else{if(o===u)return s?NaN:1/0*(p?-1:1);s+=Math.pow(2,r),o-=c}return(p?-1:1)*s*Math.pow(2,o-r)},e.write=function(t,e,n,r,i,o){var s,a,u,c=8*o-i-1,l=(1<<c)-1,f=l>>1,h=23===i?Math.pow(2,-24)-Math.pow(2,-77):0,p=r?0:o-1,g=r?1:-1,d=e<0||0===e&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(a=isNaN(e)?1:0,s=l):(s=Math.floor(Math.log(e)/Math.LN2),e*(u=Math.pow(2,-s))<1&&(s--,u*=2),(e+=s+f>=1?h/u:h*Math.pow(2,1-f))*u>=2&&(s++,u/=2),s+f>=l?(a=0,s=l):s+f>=1?(a=(e*u-1)*Math.pow(2,i),s+=f):(a=e*Math.pow(2,f-1)*Math.pow(2,i),s=0));i>=8;t[n+p]=255&a,p+=g,a/=256,i-=8);for(s=s<<i|a,c+=i;c>0;t[n+p]=255&s,p+=g,s/=256,c-=8);t[n+p-g]|=128*d}},719:(t,e,n)=>{var r=n(429),i=r.Buffer;function o(t,e){for(var n in t)e[n]=t[n]}function s(t,e,n){return i(t,e,n)}i.from&&i.alloc&&i.allocUnsafe&&i.allocUnsafeSlow?t.exports=r:(o(r,e),e.Buffer=s),s.prototype=Object.create(i.prototype),o(i,s),s.from=function(t,e,n){if("number"==typeof t)throw new TypeError("Argument must not be a number");return i(t,e,n)},s.alloc=function(t,e,n){if("number"!=typeof t)throw new TypeError("Argument must be a number");var r=i(t);return void 0!==e?"string"==typeof n?r.fill(e,n):r.fill(e):r.fill(0),r},s.allocUnsafe=function(t){if("number"!=typeof t)throw new TypeError("Argument must be a number");return i(t)},s.allocUnsafeSlow=function(t){if("number"!=typeof t)throw new TypeError("Argument must be a number");return r.SlowBuffer(t)}},257:(t,e,n)=>{!function(t){t.parser=function(t,e){return new i(t,e)},t.SAXParser=i,t.SAXStream=s,t.createStream=function(t,e){return new s(t,e)},t.MAX_BUFFER_LENGTH=65536;var e,r=["comment","sgmlDecl","textNode","tagName","doctype","procInstName","procInstBody","entity","attribName","attribValue","cdata","script"];function i(e,n){if(!(this instanceof i))return new i(e,n);var o=this;!function(t){for(var e=0,n=r.length;e<n;e++)t[r[e]]=""}(o),o.q=o.c="",o.bufferCheckPosition=t.MAX_BUFFER_LENGTH,o.opt=n||{},o.opt.lowercase=o.opt.lowercase||o.opt.lowercasetags,o.looseCase=o.opt.lowercase?"toLowerCase":"toUpperCase",o.tags=[],o.closed=o.closedRoot=o.sawRoot=!1,o.tag=o.error=null,o.strict=!!e,o.noscript=!(!e&&!o.opt.noscript),o.state=v.BEGIN,o.strictEntities=o.opt.strictEntities,o.ENTITIES=o.strictEntities?Object.create(t.XML_ENTITIES):Object.create(t.ENTITIES),o.attribList=[],o.opt.xmlns&&(o.ns=Object.create(f)),void 0===o.opt.unquotedAttributeValues&&(o.opt.unquotedAttributeValues=!e),o.trackPosition=!1!==o.opt.position,o.trackPosition&&(o.position=o.line=o.column=0),N(o,"onready")}t.EVENTS=["text","processinginstruction","sgmldeclaration","doctype","comment","opentagstart","attribute","opentag","closetag","opencdata","cdata","closecdata","error","end","ready","script","opennamespace","closenamespace"],Object.create||(Object.create=function(t){function e(){}return e.prototype=t,new e}),Object.keys||(Object.keys=function(t){var e=[];for(var n in t)t.hasOwnProperty(n)&&e.push(n);return e}),i.prototype={end:function(){O(this)},write:function(e){var n=this;if(this.error)throw this.error;if(n.closed)return C(n,"Cannot write after close. Assign an onready handler.");if(null===e)return O(n);"object"==typeof e&&(e=e.toString());for(var i=0,o="";o=M(e,i++),n.c=o,o;)switch(n.trackPosition&&(n.position++,"\n"===o?(n.line++,n.column=0):n.column++),n.state){case v.BEGIN:if(n.state=v.BEGIN_WHITESPACE,"\ufeff"===o)continue;K(n,o);continue;case v.BEGIN_WHITESPACE:K(n,o);continue;case v.TEXT:if(n.sawRoot&&!n.closedRoot){for(var s=i-1;o&&"<"!==o&&"&"!==o;)(o=M(e,i++))&&n.trackPosition&&(n.position++,"\n"===o?(n.line++,n.column=0):n.column++);n.textNode+=e.substring(s,i-1)}"<"!==o||n.sawRoot&&n.closedRoot&&!n.strict?(y(o)||n.sawRoot&&!n.closedRoot||S(n,"Text data outside of root node."),"&"===o?n.state=v.TEXT_ENTITY:n.textNode+=o):(n.state=v.OPEN_WAKA,n.startTagPosition=n.position);continue;case v.SCRIPT:"<"===o?n.state=v.SCRIPT_ENDING:n.script+=o;continue;case v.SCRIPT_ENDING:"/"===o?n.state=v.CLOSE_TAG:(n.script+="<"+o,n.state=v.SCRIPT);continue;case v.OPEN_WAKA:if("!"===o)n.state=v.SGML_DECL,n.sgmlDecl="";else if(y(o));else if(E(h,o))n.state=v.OPEN_TAG,n.tagName=o;else if("/"===o)n.state=v.CLOSE_TAG,n.tagName="";else if("?"===o)n.state=v.PROC_INST,n.procInstName=n.procInstBody="";else{if(S(n,"Unencoded <"),n.startTagPosition+1<n.position){var c=n.position-n.startTagPosition;o=new Array(c).join(" ")+o}n.textNode+="<"+o,n.state=v.TEXT}continue;case v.SGML_DECL:if(n.sgmlDecl+o==="--"){n.state=v.COMMENT,n.comment="",n.sgmlDecl="";continue}n.doctype&&!0!==n.doctype&&n.sgmlDecl?(n.state=v.DOCTYPE_DTD,n.doctype+="<!"+n.sgmlDecl+o,n.sgmlDecl=""):(n.sgmlDecl+o).toUpperCase()===a?(I(n,"onopencdata"),n.state=v.CDATA,n.sgmlDecl="",n.cdata=""):(n.sgmlDecl+o).toUpperCase()===u?(n.state=v.DOCTYPE,(n.doctype||n.sawRoot)&&S(n,"Inappropriately located doctype declaration"),n.doctype="",n.sgmlDecl=""):">"===o?(I(n,"onsgmldeclaration",n.sgmlDecl),n.sgmlDecl="",n.state=v.TEXT):m(o)?(n.state=v.SGML_DECL_QUOTED,n.sgmlDecl+=o):n.sgmlDecl+=o;continue;case v.SGML_DECL_QUOTED:o===n.q&&(n.state=v.SGML_DECL,n.q=""),n.sgmlDecl+=o;continue;case v.DOCTYPE:">"===o?(n.state=v.TEXT,I(n,"ondoctype",n.doctype),n.doctype=!0):(n.doctype+=o,"["===o?n.state=v.DOCTYPE_DTD:m(o)&&(n.state=v.DOCTYPE_QUOTED,n.q=o));continue;case v.DOCTYPE_QUOTED:n.doctype+=o,o===n.q&&(n.q="",n.state=v.DOCTYPE);continue;case v.DOCTYPE_DTD:"]"===o?(n.doctype+=o,n.state=v.DOCTYPE):"<"===o?(n.state=v.OPEN_WAKA,n.startTagPosition=n.position):m(o)?(n.doctype+=o,n.state=v.DOCTYPE_DTD_QUOTED,n.q=o):n.doctype+=o;continue;case v.DOCTYPE_DTD_QUOTED:n.doctype+=o,o===n.q&&(n.state=v.DOCTYPE_DTD,n.q="");continue;case v.COMMENT:"-"===o?n.state=v.COMMENT_ENDING:n.comment+=o;continue;case v.COMMENT_ENDING:"-"===o?(n.state=v.COMMENT_ENDED,n.comment=B(n.opt,n.comment),n.comment&&I(n,"oncomment",n.comment),n.comment=""):(n.comment+="-"+o,n.state=v.COMMENT);continue;case v.COMMENT_ENDED:">"!==o?(S(n,"Malformed comment"),n.comment+="--"+o,n.state=v.COMMENT):n.doctype&&!0!==n.doctype?n.state=v.DOCTYPE_DTD:n.state=v.TEXT;continue;
vendor: 4,811 bytes, line 211
211case v.CDATA:"]"===o?n.state=v.CDATA_ENDING:n.cdata+=o;continue;case v.CDATA_ENDING:"]"===o?n.state=v.CDATA_ENDING_2:(n.cdata+="]"+o,n.state=v.CDATA);continue;case v.CDATA_ENDING_2:">"===o?(n.cdata&&I(n,"oncdata",n.cdata),I(n,"onclosecdata"),n.cdata="",n.state=v.TEXT):"]"===o?n.cdata+="]":(n.cdata+="]]"+o,n.state=v.CDATA);continue;case v.PROC_INST:"?"===o?n.state=v.PROC_INST_ENDING:y(o)?n.state=v.PROC_INST_BODY:n.procInstName+=o;continue;case v.PROC_INST_BODY:if(!n.procInstBody&&y(o))continue;"?"===o?n.state=v.PROC_INST_ENDING:n.procInstBody+=o;continue;case v.PROC_INST_ENDING:">"===o?(I(n,"onprocessinginstruction",{name:n.procInstName,body:n.procInstBody}),n.procInstName=n.procInstBody="",n.state=v.TEXT):(n.procInstBody+="?"+o,n.state=v.PROC_INST_BODY);continue;case v.OPEN_TAG:E(p,o)?n.tagName+=o:(D(n),">"===o?L(n):"/"===o?n.state=v.OPEN_TAG_SLASH:(y(o)||S(n,"Invalid character in tag name"),n.state=v.ATTRIB));continue;case v.OPEN_TAG_SLASH:">"===o?(L(n,!0),R(n)):(S(n,"Forward-slash in opening tag not followed by >"),n.state=v.ATTRIB);continue;case v.ATTRIB:if(y(o))continue;">"===o?L(n):"/"===o?n.state=v.OPEN_TAG_SLASH:E(h,o)?(n.attribName=o,n.attribValue="",n.state=v.ATTRIB_NAME):S(n,"Invalid attribute name");continue;case v.ATTRIB_NAME:"="===o?n.state=v.ATTRIB_VALUE:">"===o?(S(n,"Attribute without value"),n.attribValue=n.attribName,U(n),L(n)):y(o)?n.state=v.ATTRIB_NAME_SAW_WHITE:E(p,o)?n.attribName+=o:S(n,"Invalid attribute name");continue;case v.ATTRIB_NAME_SAW_WHITE:if("="===o)n.state=v.ATTRIB_VALUE;else{if(y(o))continue;S(n,"Attribute without value"),n.tag.attributes[n.attribName]="",n.attribValue="",I(n,"onattribute",{name:n.attribName,value:""}),n.attribName="",">"===o?L(n):E(h,o)?(n.attribName=o,n.state=v.ATTRIB_NAME):(S(n,"Invalid attribute name"),n.state=v.ATTRIB)}continue;case v.ATTRIB_VALUE:if(y(o))continue;m(o)?(n.q=o,n.state=v.ATTRIB_VALUE_QUOTED):(n.opt.unquotedAttributeValues||C(n,"Unquoted attribute value"),n.state=v.ATTRIB_VALUE_UNQUOTED,n.attribValue=o);continue;case v.ATTRIB_VALUE_QUOTED:if(o!==n.q){"&"===o?n.state=v.ATTRIB_VALUE_ENTITY_Q:n.attribValue+=o;continue}U(n),n.q="",n.state=v.ATTRIB_VALUE_CLOSED;continue;case v.ATTRIB_VALUE_CLOSED:y(o)?n.state=v.ATTRIB:">"===o?L(n):"/"===o?n.state=v.OPEN_TAG_SLASH:E(h,o)?(S(n,"No whitespace between attributes"),n.attribName=o,n.attribValue="",n.state=v.ATTRIB_NAME):S(n,"Invalid attribute name");continue;case v.ATTRIB_VALUE_UNQUOTED:if(!b(o)){"&"===o?n.state=v.ATTRIB_VALUE_ENTITY_U:n.attribValue+=o;continue}U(n),">"===o?L(n):n.state=v.ATTRIB;continue;case v.CLOSE_TAG:if(n.tagName)">"===o?R(n):E(p,o)?n.tagName+=o:n.script?(n.script+="</"+n.tagName,n.tagName="",n.state=v.SCRIPT):(y(o)||S(n,"Invalid tagname in closing tag"),n.state=v.CLOSE_TAG_SAW_WHITE);else{if(y(o))continue;T(h,o)?n.script?(n.script+="</"+o,n.state=v.SCRIPT):S(n,"Invalid tagname in closing tag."):n.tagName=o}continue;case v.CLOSE_TAG_SAW_WHITE:if(y(o))continue;">"===o?R(n):S(n,"Invalid characters in closing tag");continue;case v.TEXT_ENTITY:case v.ATTRIB_VALUE_ENTITY_Q:case v.ATTRIB_VALUE_ENTITY_U:var l,f;switch(n.state){case v.TEXT_ENTITY:l=v.TEXT,f="textNode";break;case v.ATTRIB_VALUE_ENTITY_Q:l=v.ATTRIB_VALUE_QUOTED,f="attribValue";break;case v.ATTRIB_VALUE_ENTITY_U:l=v.ATTRIB_VALUE_UNQUOTED,f="attribValue"}if(";"===o){var w=P(n);n.opt.unparsedEntities&&!Object.values(t.XML_ENTITIES).includes(w)?(n.entity="",n.state=l,n.write(w)):(n[f]+=w,n.entity="",n.state=l)}else E(n.entity.length?d:g,o)?n.entity+=o:(S(n,"Invalid character in entity name"),n[f]+="&"+n.entity+o,n.entity="",n.state=l);continue;default:throw new Error(n,"Unknown state: "+n.state)}return n.position>=n.bufferCheckPosition&&function(e){for(var n=Math.max(t.MAX_BUFFER_LENGTH,10),i=0,o=0,s=r.length;o<s;o++){var a=e[r[o]].length;if(a>n)switch(r[o]){case"textNode":F(e);break;case"cdata":I(e,"oncdata",e.cdata),e.cdata="";break;case"script":I(e,"onscript",e.script),e.script="";break;default:C(e,"Max buffer length exceeded: "+r[o])}i=Math.max(i,a)}var u=t.MAX_BUFFER_LENGTH-i;e.bufferCheckPosition=u+e.position}(n),n},resume:function(){return this.error=null,this},close:function(){return this.write(null)},flush:function(){var t;F(t=this),""!==t.cdata&&(I(t,"oncdata",t.cdata),t.cdata=""),""!==t.script&&(I(t,"onscript",t.script),t.script="")}};try{e=n(875).Stream}catch(t){e=function(){}}e||(e=function(){});var o=t.EVENTS.filter((function(t){return"error"!==t&&"end"!==t}));function s(t,n){if(!(this instanceof s))return new s(t,n);e.apply(this),this._parser=new i(t,n),this.writable=!0,this.readable=!0;var r=this;this._parser.onend=function(){r.emit("end")},this._parser.onerror=function(t){r.emit("error",t),r._parser.error=null},this._decoder=null,o.forEach((function(t){Object.defineProperty(r,"on"+t,{get:function(){return r._parser["on"+t]}
vendor: 3,254 bytes, line 211
211,set:function(e){if(!e)return r.removeAllListeners(t),r._parser["on"+t]=e,e;r.on(t,e)},enumerable:!0,configurable:!1})}))}s.prototype=Object.create(e.prototype,{constructor:{value:s}}),s.prototype.write=function(t){if("function"==typeof Buffer&&"function"==typeof Buffer.isBuffer&&Buffer.isBuffer(t)){if(!this._decoder){var e=n(739).StringDecoder;this._decoder=new e("utf8")}t=this._decoder.write(t)}return this._parser.write(t.toString()),this.emit("data",t),!0},s.prototype.end=function(t){return t&&t.length&&this.write(t),this._parser.end(),!0},s.prototype.on=function(t,n){var r=this;return r._parser["on"+t]||-1===o.indexOf(t)||(r._parser["on"+t]=function(){var e=1===arguments.length?[arguments[0]]:Array.apply(null,arguments);e.splice(0,0,t),r.emit.apply(r,e)}),e.prototype.on.call(r,t,n)};var a="[CDATA[",u="DOCTYPE",c="http://www.w3.org/XML/1998/namespace",l="http://www.w3.org/2000/xmlns/",f={xml:c,xmlns:l},h=/[:_A-Za-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD]/,p=/[:_A-Za-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\u00B7\u0300-\u036F\u203F-\u2040.\d-]/,g=/[#:_A-Za-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD]/,d=/[#:_A-Za-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\u00B7\u0300-\u036F\u203F-\u2040.\d-]/;function y(t){return" "===t||"\n"===t||"\r"===t||"\t"===t}function m(t){return'"'===t||"'"===t}function b(t){return">"===t||y(t)}function E(t,e){return t.test(e)}function T(t,e){return!E(t,e)}var w,A,_,v=0;for(var x in t.STATE={BEGIN:v++,BEGIN_WHITESPACE:v++,TEXT:v++,TEXT_ENTITY:v++,OPEN_WAKA:v++,SGML_DECL:v++,SGML_DECL_QUOTED:v++,DOCTYPE:v++,DOCTYPE_QUOTED:v++,DOCTYPE_DTD:v++,DOCTYPE_DTD_QUOTED:v++,COMMENT_STARTING:v++,COMMENT:v++,COMMENT_ENDING:v++,COMMENT_ENDED:v++,CDATA:v++,CDATA_ENDING:v++,CDATA_ENDING_2:v++,PROC_INST:v++,PROC_INST_BODY:v++,PROC_INST_ENDING:v++,OPEN_TAG:v++,OPEN_TAG_SLASH:v++,ATTRIB:v++,ATTRIB_NAME:v++,ATTRIB_NAME_SAW_WHITE:v++,ATTRIB_VALUE:v++,ATTRIB_VALUE_QUOTED:v++,ATTRIB_VALUE_CLOSED:v++,ATTRIB_VALUE_UNQUOTED:v++,ATTRIB_VALUE_ENTITY_Q:v++,ATTRIB_VALUE_ENTITY_U:v++,CLOSE_TAG:v++,CLOSE_TAG_SAW_WHITE:v++,SCRIPT:v++,SCRIPT_ENDING:v++},t.XML_ENTITIES={amp:"&",gt:">",lt:"<",quot:'"',apos:"'"},t.ENTITIES={amp:"&",gt:">",lt:"<",quot:'"',apos:"'",AElig:198,Aacute:193,Acirc:194,Agrave:192,Aring:197,Atilde:195,Auml:196,Ccedil:199,ETH:208,Eacute:201,Ecirc:202,Egrave:200,Euml:203,Iacute:205,Icirc:206,Igrave:204,Iuml:207,Ntilde:209,Oacute:211,Ocirc:212,Ograve:210,Oslash:216,Otilde:213,Ouml:214,THORN:222,Uacute:218,Ucirc:219,Ugrave:217,Uuml:220,Yacute:221,aacute:225,acirc:226,aelig:230,agrave:224,aring:229,atilde:227,auml:228,ccedil:231,eacute:233,ecirc:234,egrave:232,eth:240,euml:235,iacute:237,icirc:238,igrave:236,iuml:239,ntilde:241,oacute:243,ocirc:244,ograve:242,oslash:248,otilde:245,ouml:246,szlig:223,thorn:254,uacute:250,ucirc:251,ugrave:249,uuml:252,yacute:253,yuml:255,copy:169,reg:1
vendor: 4,094 bytes, line 211
21174,nbsp:160,iexcl:161,cent:162,pound:163,curren:164,yen:165,brvbar:166,sect:167,uml:168,ordf:170,laquo:171,not:172,shy:173,macr:175,deg:176,plusmn:177,sup1:185,sup2:178,sup3:179,acute:180,micro:181,para:182,middot:183,cedil:184,ordm:186,raquo:187,frac14:188,frac12:189,frac34:190,iquest:191,times:215,divide:247,OElig:338,oelig:339,Scaron:352,scaron:353,Yuml:376,fnof:402,circ:710,tilde:732,Alpha:913,Beta:914,Gamma:915,Delta:916,Epsilon:917,Zeta:918,Eta:919,Theta:920,Iota:921,Kappa:922,Lambda:923,Mu:924,Nu:925,Xi:926,Omicron:927,Pi:928,Rho:929,Sigma:931,Tau:932,Upsilon:933,Phi:934,Chi:935,Psi:936,Omega:937,alpha:945,beta:946,gamma:947,delta:948,epsilon:949,zeta:950,eta:951,theta:952,iota:953,kappa:954,lambda:955,mu:956,nu:957,xi:958,omicron:959,pi:960,rho:961,sigmaf:962,sigma:963,tau:964,upsilon:965,phi:966,chi:967,psi:968,omega:969,thetasym:977,upsih:978,piv:982,ensp:8194,emsp:8195,thinsp:8201,zwnj:8204,zwj:8205,lrm:8206,rlm:8207,ndash:8211,mdash:8212,lsquo:8216,rsquo:8217,sbquo:8218,ldquo:8220,rdquo:8221,bdquo:8222,dagger:8224,Dagger:8225,bull:8226,hellip:8230,permil:8240,prime:8242,Prime:8243,lsaquo:8249,rsaquo:8250,oline:8254,frasl:8260,euro:8364,image:8465,weierp:8472,real:8476,trade:8482,alefsym:8501,larr:8592,uarr:8593,rarr:8594,darr:8595,harr:8596,crarr:8629,lArr:8656,uArr:8657,rArr:8658,dArr:8659,hArr:8660,forall:8704,part:8706,exist:8707,empty:8709,nabla:8711,isin:8712,notin:8713,ni:8715,prod:8719,sum:8721,minus:8722,lowast:8727,radic:8730,prop:8733,infin:8734,ang:8736,and:8743,or:8744,cap:8745,cup:8746,int:8747,there4:8756,sim:8764,cong:8773,asymp:8776,ne:8800,equiv:8801,le:8804,ge:8805,sub:8834,sup:8835,nsub:8836,sube:8838,supe:8839,oplus:8853,otimes:8855,perp:8869,sdot:8901,lceil:8968,rceil:8969,lfloor:8970,rfloor:8971,lang:9001,rang:9002,loz:9674,spades:9824,clubs:9827,hearts:9829,diams:9830},Object.keys(t.ENTITIES).forEach((function(e){var n=t.ENTITIES[e],r="number"==typeof n?String.fromCharCode(n):n;t.ENTITIES[e]=r})),t.STATE)t.STATE[t.STATE[x]]=x;function N(t,e,n){t[e]&&t[e](n)}function I(t,e,n){t.textNode&&F(t),N(t,e,n)}function F(t){t.textNode=B(t.opt,t.textNode),t.textNode&&N(t,"ontext",t.textNode),t.textNode=""}function B(t,e){return t.trim&&(e=e.trim()),t.normalize&&(e=e.replace(/\s+/g," ")),e}function C(t,e){return F(t),t.trackPosition&&(e+="\nLine: "+t.line+"\nColumn: "+t.column+"\nChar: "+t.c),e=new Error(e),t.error=e,N(t,"onerror",e),t}function O(t){return t.sawRoot&&!t.closedRoot&&S(t,"Unclosed root tag"),t.state!==v.BEGIN&&t.state!==v.BEGIN_WHITESPACE&&t.state!==v.TEXT&&C(t,"Unexpected end"),F(t),t.c="",t.closed=!0,N(t,"onend"),i.call(t,t.strict,t.opt),t}function S(t,e){if("object"!=typeof t||!(t instanceof i))throw new Error("bad call to strictFail");t.strict&&C(t,e)}function D(t){t.strict||(t.tagName=t.tagName[t.looseCase]());var e=t.tags[t.tags.length-1]||t,n=t.tag={name:t.tagName,attributes:{}};t.opt.xmlns&&(n.ns=e.ns),t.attribList.length=0,I(t,"onopentagstart",n)}function k(t,e){var n=t.indexOf(":")<0?["",t]:t.split(":"),r=n[0],i=n[1];return e&&"xmlns"===t&&(r="xmlns",i=""),{prefix:r,local:i}}function U(t){if(t.strict||(t.attribName=t.attribName[t.looseCase]()),-1!==t.attribList.indexOf(t.attribName)||t.tag.attributes.hasOwnProperty(t.attribName))t.attribName=t.attribValue="";else{if(t.opt.xmlns){var e=k(t.attribName,!0),n=e.prefix,r=e.local;if("xmlns"===n)if("xml"===r&&t.attribValue!==c)S(t,"xml: prefix must be bound to "+c+"\nActual: "+t.attribValue);else if("xmlns"===r&&t.attribValue!==l)S(t,"xmlns: prefix must be bound to "+l+"\nActual: "+t.attribValue);else{var i=t.tag,o=t.tags[t.tags.length-1]||t;i.ns===o.ns&&(i.ns=Object.create(o.ns)),i.ns[r]=t.attribValue}t.attribList.push([t.attribName,t.attribValue])}else t.tag.attributes[t.attribName]=t.attribValue,I(t,"onattribute",{name:t.attribName,value:t.attribValue});t.attribName=t.attribValue=""}}function L(t,e){if(t.opt.xmlns){var n=t.tag,r=k(t.tagName);n.prefix=r.prefix,n.local=r.local,n.uri=n.ns[r.prefix]||"",n.prefix&&!n.uri&&(S(t,"Unbound namespace prefix: "+JSON.stringify(t.tagName)),n.uri=r.prefix);var i=t.tags[t.tags.length-1]||t;
211n.ns&&i.ns!==n.ns&&Object.keys(n.ns).forEach((function(e){I(t,"onopennamespace",{prefix:e,uri:n.ns[e]})}));for(var o=0,s=t.attribList.length;o<s;o++){var a=t.attribList[o],u=a[0],c=a[1],l=k(u,!0),f=l.prefix,h=l.local,p=""===f?"":n.ns[f]||"",g={name:u,value:c,prefix:f,local:h,uri:p};f&&"xmlns"!==f&&!p&&(S(t,"Unbound namespace prefix: "+JSON.stringify(f)),g.uri=f),t.tag.attributes[u]=g,I(t,"onattribute",g)}t.attribList.length=0}t.tag.isSelfClosing=!!e,t.sawRoot=!0,t.tags.push(t.tag),I(t,"onopentag",t.tag),e||(t.noscript||"script"!==t.tagName.toLowerCase()?t.state=v.TEXT:t.state=v.SCRIPT,t.tag=null,t.tagName=""),t.attribName=t.attribValue="",t.attribList.length=0}function R(t){if(!t.tagName)return S(t,"Weird empty close tag."),t.textNode+="</>",void(t.state=v.TEXT);if(t.script){if("script"!==t.tagName)return t.script+="</"+t.tagName+">",t.tagName="",void(t.state=v.SCRIPT);I(t,"onscript",t.script),t.script=""}var e=t.tags.length,n=t.tagName;t.strict||(n=n[t.looseCase]());for(var r=n;e--&&t.tags[e].name!==r;)S(t,"Unexpected close tag");if(e<0)return S(t,"Unmatched closing tag: "+t.tagName),t.textNode+="</"+t.tagName+">",void(t.state=v.TEXT);t.tagName=n;for(var i=t.tags.length;i-- >e;){var o=t.tag=t.tags.pop();t.tagName=t.tag.name,I(t,"onclosetag",t.tagName);var s={};for(var a in o.ns)s[a]=o.ns[a];var u=t.tags[t.tags.length-1]||t;t.opt.xmlns&&o.ns!==u.ns&&Object.keys(o.ns).forEach((function(e){var n=o.ns[e];I(t,"onclosenamespace",{prefix:e,uri:n})}))}0===e&&(t.closedRoot=!0),t.tagName=t.attribValue=t.attribName="",t.attribList.length=0,t.state=v.TEXT}function P(t){var e,n=t.entity,r=n.toLowerCase(),i="";return t.ENTITIES[n]?t.ENTITIES[n]:t.ENTITIES[r]?t.ENTITIES[r]:("#"===(n=r).charAt(0)&&("x"===n.charAt(1)?(n=n.slice(2),i=(e=parseInt(n,16)).toString(16)):(n=n.slice(1),i=(e=parseInt(n,10)).toString(10))),n=n.replace(/^0+/,""),isNaN(e)||i.toLowerCase()!==n?(S(t,"Invalid character entity"),"&"+t.entity+";"):String.fromCodePoint(e))}function K(t,e){"<"===e?(t.state=v.OPEN_WAKA,t.startTagPosition=t.position):y(e)||(S(t,"Non-whitespace before first tag."),t.textNode=e,t.state=v.TEXT)}function M(t,e){var n="";return e<t.length&&(n=t.charAt(e)),n}v=t.STATE,String.fromCodePoint||(w=String.fromCharCode,A=Math.floor,_=function(){var t,e,n=[],r=-1,i=arguments.length;if(!i)return"";for(var o="";++r<i;){var s=Number(arguments[r]);if(!isFinite(s)||s<0||s>1114111||A(s)!==s)throw RangeError("Invalid code point: "+s);s<=65535?n.push(s):(t=55296+((s-=65536)>>10),e=s%1024+56320,n.push(t,e)),(r+1===i||n.length>16384)&&(o+=w.apply(null,n),n.length=0)}return o},Object.defineProperty?Object.defineProperty(String,"fromCodePoint",{value:_,configurable:!0,writable:!0}):String.fromCodePoint=_)}(e)},875:(t,e,n)=>{var r=n(757);function i(){r.call(this)}i.prototype=new r,t.exports=i,i.Stream=i,i.prototype.pipe=function(t,e){var n=this;function r(e){t.writable&&!1===t.write(e)&&n.pause&&n.pause()}function i(){n.readable&&n.resume&&n.resume()}n.on("data",r),t.on("drain",i),t._isStdio||e&&!1===e.end||(n.on("end",s),n.on("close",a));var o=!1;function s(){o||(o=!0,t.end())}function a(){o||(o=!0,"function"==typeof t.destroy&&t.destroy())}function u(t){if(c(),!this.hasListeners("error"))throw t}function c(){n.off("data",r),t.off("drain",i),n.off("end",s),n.off("close",a),n.off("error",u),t.off("error",u),n.off("end",c),n.off("close",c),t.off("end",c),t.off("close",c)}return n.on("error",u),t.on("error",u),n.on("end",c),n.on("close",c),t.on("end",c),t.on("close",c),t.emit("pipe",n),t}},739:(t,e,n)=>{"use strict";var r=n(719).Buffer,i=r.isEncoding||function(t){switch((t=""+t)&&t.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};function o(t){var e;switch(this.encoding=function(t){var e=function(t){if(!t)return"utf8";for(var e;;)switch(t){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return t;default:if(e)return;t=(""+t).toLowerCase(),e=!0}}(t);if("string"!=typeof e&&(r.isEncoding===i||!i(t)))throw new Error("Unknown encoding: "+t);return e||t}(t),this.encoding){case"utf16le":this.text=u,this.end=c,e=4;break;case"utf8":this.fillLast=a,e=4;break;case"base64":this.text=l,this.end=f,e=3;break;default:return this.write=h,void(this.end=p)}this.lastNeed=0,this.lastTotal=0,this.lastChar=r.allocUnsafe(e)}function s(t){return t<=127?0:t>>5==6?2:t>>4==14?3:t>>3==30?4:t>>6==2?-1:-2}function a(t){var e=this.lastTotal-this.lastNeed,n=function(t,e,n){if(128!=(192&e[0]))return t.lastNeed=0,"�";if(t.lastNeed>1&&e.length>1){if(128!=(192&e[1]))return t.lastNeed=1,"�";if(t.lastNeed>2&&e.length>2&&128!=(192&e[2]))return t.lastNeed=2,"�"}}(this,t);return void 0!==n?n:this.lastNeed<=t.length?(t.copy(this.lastChar,e,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal)):(t.copy(this.lastChar,e,0,t.length),void(this.lastNeed-=t.length))}function u(t,e){if((t.length-e)%2==0){var n=t.toString("utf16le",e);if(n){var r=n.charCodeAt(n.length-1);if(r>=55296&&r<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=t[t.length-2],this.lastChar[1]=t[t.length-1],n.slice(0,-1)}return n}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=t[t.length-1],t.toString("utf16le",e,t.length-1)}function c(t){var e=t&&t.length?this.write(t):"";if(this.lastNeed){var n=this.lastTotal-this.lastNeed;return e+this.lastChar.toString("utf16le",0,n)}return e}function l(t,e){var n=(t.length-e)%3;return 0===n?t.toString("base64",e):(this.lastNeed=3-n,this.lastTotal=3,1===n?this.lastChar[0]=t[t.length-1]:(this.lastChar[0]=t[t.length-2],this.lastChar[1]=t[t.length-1]),t.toString("base64",e,t.length-n))}function f(t){var e=t&&t.length?this.write(t):"";return this.lastNeed?e+this.lastChar.toString("base64",0,3-this.lastNeed):e}function h(t){return t.toString(this.encoding)}function p(t){return t&&t.length?this.write(t):""}e.StringDecoder=o,o.prototype.write=function(t){if(0===t.length)return"";var e,n;if(this.lastNeed){if(void 0===(e=this.fillLast(t)))return"";n=this.lastNeed,this.lastNeed=0}else n=0;return n<t.length?e?e+this.text(t,n):this.text(t,n):e||""},o.prototype.end=function(t){var e=t&&t.length?this.write(t):"";return this.lastNeed?e+"�":e},o.prototype.text=function(t,e){var n=function(t,e,n){var r=e.length-1;if(r<n)return 0;var i=s(e[r]);return i>=0?(i>0&&(t.lastNeed=i-1),i):--r<n||-2===i?0:(i=s(e[r]))>=0?(i>0&&(t.lastNeed=i-2),i):--r<n||-2===i?0:(i=s(e[r]))>=0?(i>0&&(2===i?i=0:t.lastNeed=i-3),i):0}(this,t,e);if(!this.lastNeed)return t.toString("utf8",e);this.lastTotal=n;var r=t.length-(n-this.lastNeed);return t.copy(this.lastChar,0,r),t.toString("utf8",e,r)},o.prototype.fillLast=function(t){if(this.lastNeed<=t.length)return t.copy(this.lastChar,this.lastTotal-this.lastNeed,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);t.copy(this.lastChar,this.lastTotal-this.lastNeed,0,t.length),this.lastNeed-=t.length}},102:t=>{t.exports={isArray:function(t){return Array.isArray?Array.isArray(t):"[object Array]"===Object.prototype.toString.call(t)}}},268:(t,e,n)=>{var r=n(412),i=n(253),o=n(62),s=n(659);t.exports={xml2js:r,xml2json:i,js2xml:o,json2xml:s}},62:(t,e,n)=>{var r,i,o=n(603),s=n(102).isArray;function a(t,e,n){return(!n&&t.spaces?"\n":"")+Array(e+1).join(t.spaces)}function u(t,e,n){if(e.ignoreAttributes)return"";"attributesFn"in e&&(t=e.attributesFn(t,i,r));var o,s,u,c,l=[];for(o in t)t.hasOwnProperty(o)&&null!==t[o]&&void 0!==t[o]&&(c=e.noQuotesForNativeAttributes&&"string"!=typeof t[o]?"":'"',s=(s=""+t[o]).replace(/"/g,"""),u="attributeNameFn"in e?e.attributeNameFn(o,s,i,r):o,l.push(e.spaces&&e.indentAttributes?a(e,n+1,!1):" "),l.push(u+"="+c+("attributeValueFn"in e?e.attributeValueFn(s,o,i,r):s)+c));return t&&Object.keys(t).length&&e.spaces&&e.indentAttributes&&l.push(a(e,n,!1)),l.join("")}function c(t,e,n){return r=t,i="xml",e.ignoreDeclaration?"":"<?xml"+u(t[e.attributesKey],e,n)+"?>"}function l(t,e,n){if(e.ignoreInstruction)return"";var o;for(o in t)if(t.hasOwnProperty(o))break;var s="instructionNameFn"in e?e.instructionNameFn(o,t[o],i,r):o;if("object"==typeof t[o])return r=t,i=s,"<?"+s+u(t[o][e.attributesKey],e,n)+"?>";var a=t[o]?t[o]:"";return"instructionFn"in e&&(a=e.instructionFn(a,o,i,r)),"<?"+s+(a?" "+a:"")+"?>"}function f(t,e){return e.ignoreComment?"":"\x3c!--"+("commentFn"in e?e.commentFn(t,i,r):t)+"--\x3e"}function h(t,e){return e.ignoreCdata?"":"<![CDATA["+("cdataFn"in e?e.cdataFn(t,i,r):t.replace("]]>","]]]]><![CDATA[>"))+"]]>"}function p(t,e){return e.ignoreDoctype?"":"<!DOCTYPE "+("doctypeFn"in e?e.doctypeFn(t,i,r):t)+">"}function g(t,e){return e.ignoreText?"":(t=(t=(t=""+t).replace(/&/g,"&")).replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">"),"textFn"in e?e.textFn(t,i,r):t)}function d(t,e,n,o){return t.reduce((function(t,s){var c=a(e,n,o&&!t);switch(s.type){case"element":return t+c+function(t,e,n){r=t,i=t.name;var o=[],s="elementNameFn"in e?e.elementNameFn(t.name,t):t.name;o.push("<"+s),t[e.attributesKey]&&o.push(u(t[e.attributesKey],e,n));var a=t[e.elementsKey]&&t[e.elementsKey].length||t[e.attributesKey]&&"preserve"===t[e.attributesKey]["xml:space"];return a||(a="fullTagEmptyElementFn"in e?e.fullTagEmptyElementFn(t.name,t):e.fullTagEmptyElement),a?(o.push(">"),t[e.elementsKey]&&t[e.elementsKey].length&&(o.push(d(t[e.elementsKey],e,n+1)),r=t,i=t.name),o.push(e.spaces&&function(t,e){var n;if(t.elements&&t.elements.length)for(n=0;n<t.elements.length;++n)switch(t.elements[n][e.typeKey]){case"text":if(e.indentText)return!0;break;case"cdata":if(e.indentCdata)return!0;break;case"instruction":if(e.indentInstruction)return!0;break;default:return!0}return!1}(t,e)?"\n"+Array(n+1).join(e.spaces):""),o.push("</"+s+">")):o.push("/>"),o.join("")}(s,e,n);case"comment":return t+c+f(s[e.commentKey],e);case"doctype":return t+c+p(s[e.doctypeKey],e);case"cdata":return t+(e.indentCdata?c:"")+h(s[e.cdataKey],e);case"text":return t+(e.indentText?c:"")+g(s[e.textKey],e);case"instruction":var y={};return y[s[e.nameKey]]=s[e.attributesKey]?s:s[e.instructionKey],t+(e.indentInstruction?c:"")+l(y,e,n)}}),"")}function y(t,e,n){var r;for(r in t)if(t.hasOwnProperty(r))switch(r){case e.parentKey:case e.attributesKey:break;case e.textKey:if(e.indentText||n)return!0;break;case e.cdataKey:if(e.indentCdata||n)return!0;break;case e.instructionKey:if(e.indentInstruction||n)return!0;break;case e.doctypeKey:case e.commentKey:default:return!0}return!1}function m(t,e,n,o,s){r=t,i=e;var c="elementNameFn"in n?n.elementNameFn(e,t):e;if(null==t||""===t)return"fullTagEmptyElementFn"in n&&n.fullTagEmptyElementFn(e,t)||n.fullTagEmptyElement?"<"+c+"></"+c+">":"<"+c+"/>";var l=[];
211if(e){if(l.push("<"+c),"object"!=typeof t)return l.push(">"+g(t,n)+"</"+c+">"),l.join("");t[n.attributesKey]&&l.push(u(t[n.attributesKey],n,o));var f=y(t,n,!0)||t[n.attributesKey]&&"preserve"===t[n.attributesKey]["xml:space"];if(f||(f="fullTagEmptyElementFn"in n?n.fullTagEmptyElementFn(e,t):n.fullTagEmptyElement),!f)return l.push("/>"),l.join("");l.push(">")}return l.push(b(t,n,o+1,!1)),r=t,i=e,e&&l.push((s?a(n,o,!1):"")+"</"+c+">"),l.join("")}function b(t,e,n,r){var i,o,u,d=[];for(o in t)if(t.hasOwnProperty(o))for(u=s(t[o])?t[o]:[t[o]],i=0;i<u.length;++i){switch(o){case e.declarationKey:d.push(c(u[i],e,n));break;case e.instructionKey:d.push((e.indentInstruction?a(e,n,r):"")+l(u[i],e,n));break;case e.attributesKey:case e.parentKey:break;case e.textKey:d.push((e.indentText?a(e,n,r):"")+g(u[i],e));break;case e.cdataKey:d.push((e.indentCdata?a(e,n,r):"")+h(u[i],e));break;case e.doctypeKey:d.push(a(e,n,r)+p(u[i],e));break;case e.commentKey:d.push(a(e,n,r)+f(u[i],e));break;default:d.push(a(e,n,r)+m(u[i],o,e,n,y(u[i],e)))}r=r&&!d.length}return d.join("")}t.exports=function(t,e){e=function(t){var e=o.copyOptions(t);return o.ensureFlagExists("ignoreDeclaration",e),o.ensureFlagExists("ignoreInstruction",e),o.ensureFlagExists("ignoreAttributes",e),o.ensureFlagExists("ignoreText",e),o.ensureFlagExists("ignoreComment",e),o.ensureFlagExists("ignoreCdata",e),o.ensureFlagExists("ignoreDoctype",e),o.ensureFlagExists("compact",e),o.ensureFlagExists("indentText",e),o.ensureFlagExists("indentCdata",e),o.ensureFlagExists("indentAttributes",e),o.ensureFlagExists("indentInstruction",e),o.ensureFlagExists("fullTagEmptyElement",e),o.ensureFlagExists("noQuotesForNativeAttributes",e),o.ensureSpacesExists(e),"number"==typeof e.spaces&&(e.spaces=Array(e.spaces+1).join(" ")),o.ensureKeyExists("declaration",e),o.ensureKeyExists("instruction",e),o.ensureKeyExists("attributes",e),o.ensureKeyExists("text",e),o.ensureKeyExists("comment",e),o.ensureKeyExists("cdata",e),o.ensureKeyExists("doctype",e),o.ensureKeyExists("type",e),o.ensureKeyExists("name",e),o.ensureKeyExists("elements",e),o.checkFnExists("doctype",e),o.checkFnExists("instruction",e),o.checkFnExists("cdata",e),o.checkFnExists("comment",e),o.checkFnExists("text",e),o.checkFnExists("instructionName",e),o.checkFnExists("elementName",e),o.checkFnExists("attributeName",e),o.checkFnExists("attributeValue",e),o.checkFnExists("attributes",e),o.checkFnExists("fullTagEmptyElement",e),e}(e);var n=[];return r=t,i="_root_",e.compact?n.push(b(t,e,0,!0)):(t[e.declarationKey]&&n.push(c(t[e.declarationKey],e,0)),t[e.elementsKey]&&t[e.elementsKey].length&&n.push(d(t[e.elementsKey],e,0,!n.length))),n.join("")}},659:(t,e,n)=>{var r=n(62);t.exports=function(t,e){t instanceof Buffer&&(t=t.toString());var n=null;if("string"==typeof t)try{n=JSON.parse(t)}catch(t){throw new Error("The JSON structure is invalid")}else n=t;return r(n,e)}},603:(t,e,n)=>{var r=n(102).isArray;t.exports={copyOptions:function(t){var e,n={};for(e in t)t.hasOwnProperty(e)&&(n[e]=t[e]);return n},ensureFlagExists:function(t,e){t in e&&"boolean"==typeof e[t]||(e[t]=!1)},ensureSpacesExists:function(t){(!("spaces"in t)||"number"!=typeof t.spaces&&"string"!=typeof t.spaces)&&(t.spaces=0)},ensureAlwaysArrayExists:function(t){"alwaysArray"in t&&("boolean"==typeof t.alwaysArray||r(t.alwaysArray))||(t.alwaysArray=!1)},ensureKeyExists:function(t,e){t+"Key"in e&&"string"==typeof e[t+"Key"]||(e[t+"Key"]=e.compact?"_"+t:t)},checkFnExists:function(t,e){return t+"Fn"in e}}},412:(t,e,n)=>{var r,i,o=n(257),s=n(603),a=n(102).isArray;function u(t){var e=Number(t);if(!isNaN(e))return e;var n=t.toLowerCase();return"true"===n||"false"!==n&&t}function c(t,e){var n;if(r.compact){if(!i[r[t+"Key"]]&&(a(r.alwaysArray)?-1!==r.alwaysArray.indexOf(r[t+"Key"]):r.alwaysArray)&&(i[r[t+"Key"]]=[]),i[r[t+"Key"]]&&!a(i[r[t+"Key"]])&&(i[r[t+"Key"]]=[i[r[t+"Key"]]]),t+"Fn"in r&&"string"==typeof e&&(e=r[t+"Fn"](e,i)),"instruction"===t&&("instructionFn"in r||"instructionNameFn"in r))for(n in e)if(e.hasOwnProperty(n))if("instructionFn"in r)e[n]=r.instructionFn(e[n],n,i);else{var o=e[n];delete e[n],e[r.instructionNameFn(n,o,i)]=o}a(i[r[t+"Key"]])?i[r[t+"Key"]].push(e):i[r[t+"Key"]]=e}else{i[r.elementsKey]||(i[r.elementsKey]=[]);var s={};if(s[r.typeKey]=t,"instruction"===t){for(n in e)if(e.hasOwnProperty(n))break;s[r.nameKey]="instructionNameFn"in r?r.instructionNameFn(n,e,i):n,r.instructionHasAttributes?(s[r.attributesKey]=e[n][r.attributesKey],"instructionFn"in r&&(s[r.attributesKey]=r.instructionFn(s[r.attributesKey],n,i))):("instructionFn"in r&&(e[n]=r.instructionFn(e[n],n,i)),s[r.instructionKey]=e[n])}else t+"Fn"in r&&(e=r[t+"Fn"](e,i)),s[r[t+"Key"]]=e;r.addParent&&(s[r.parentKey]=i),i[r.elementsKey].push(s)}}function l(t){var e;if("attributesFn"in r&&t&&(t=r.attributesFn(t,i)),(r.trim||"attributeValueFn"in r||"attributeNameFn"in r||r.nativeTypeAttributes)&&t)for(e in t)if(t.hasOwnProperty(e)&&(r.trim&&(t[e]=t[e].trim()),r.nativeTypeAttributes&&(t[e]=u(t[e])),"attributeValueFn"in r&&(t[e]=r.attributeValueFn(t[e],e,i)),"attributeNameFn"in r)){var n=t[e];delete t[e],t[r.attributeNameFn(e,t[e],i)]=n}return t}function f(t){var e={};if(t.body&&("xml"===t.name.toLowerCase()||r.instructionHasAttributes)){for(var n,o=/([\w:-]+)\s*=\s*(?:"([^"]*)"|'([^']*)'|(\w+))\s*/g;null!==(n=o.exec(t.body));)e[n[1]]=n[2]||n[3]||n[4];e=l(e)}if("xml"===t.name.toLowerCase()){if(r.ignoreDeclaration)return;i[r.declarationKey]={},Object.keys(e).length&&(i[r.declarationKey][r.attributesKey]=e),r.addParent&&(i[r.declarationKey][r.parentKey]=i)}else{if(r.ignoreInstruction)return;r.trim&&(t.body=t.body.trim());var s={};r.instructionHasAttributes&&Object.keys(e).length?(s[t.name]={},s[t.name][r.attributesKey]=e):s[t.name]=t.body,c("instruction",s)}}function h(t,e){var n;if("object"==typeof t&&(e=t.attributes,t=t.name),e=l(e),"elementNameFn"in r&&(t=r.elementNameFn(t,i)),r.compact){var o;if(n={},!r.ignoreAttributes&&e&&Object.keys(e).length)for(o in n[r.attributesKey]={},e)e.hasOwnProperty(o)&&(n[r.attributesKey][o]=e[o]);
211!(t in i)&&(a(r.alwaysArray)?-1!==r.alwaysArray.indexOf(t):r.alwaysArray)&&(i[t]=[]),i[t]&&!a(i[t])&&(i[t]=[i[t]]),a(i[t])?i[t].push(n):i[t]=n}else i[r.elementsKey]||(i[r.elementsKey]=[]),(n={})[r.typeKey]="element",n[r.nameKey]=t,!r.ignoreAttributes&&e&&Object.keys(e).length&&(n[r.attributesKey]=e),r.alwaysChildren&&(n[r.elementsKey]=[]),i[r.elementsKey].push(n);n[r.parentKey]=i,i=n}function p(t){r.ignoreText||(t.trim()||r.captureSpacesBetweenElements)&&(r.trim&&(t=t.trim()),r.nativeType&&(t=u(t)),r.sanitize&&(t=t.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">")),c("text",t))}function g(t){r.ignoreComment||(r.trim&&(t=t.trim()),c("comment",t))}function d(t){var e=i[r.parentKey];r.addParent||delete i[r.parentKey],i=e}function y(t){r.ignoreCdata||(r.trim&&(t=t.trim()),c("cdata",t))}function m(t){r.ignoreDoctype||(t=t.replace(/^ /,""),r.trim&&(t=t.trim()),c("doctype",t))}function b(t){t.note=t}t.exports=function(t,e){var n=o.parser(!0,{}),a={};if(i=a,r=function(t){return r=s.copyOptions(t),s.ensureFlagExists("ignoreDeclaration",r),s.ensureFlagExists("ignoreInstruction",r),s.ensureFlagExists("ignoreAttributes",r),s.ensureFlagExists("ignoreText",r),s.ensureFlagExists("ignoreComment",r),s.ensureFlagExists("ignoreCdata",r),s.ensureFlagExists("ignoreDoctype",r),s.ensureFlagExists("compact",r),s.ensureFlagExists("alwaysChildren",r),s.ensureFlagExists("addParent",r),s.ensureFlagExists("trim",r),s.ensureFlagExists("nativeType",r),s.ensureFlagExists("nativeTypeAttributes",r),s.ensureFlagExists("sanitize",r),s.ensureFlagExists("instructionHasAttributes",r),s.ensureFlagExists("captureSpacesBetweenElements",r),s.ensureAlwaysArrayExists(r),s.ensureKeyExists("declaration",r),s.ensureKeyExists("instruction",r),s.ensureKeyExists("attributes",r),s.ensureKeyExists("text",r),s.ensureKeyExists("comment",r),s.ensureKeyExists("cdata",r),s.ensureKeyExists("doctype",r),s.ensureKeyExists("type",r),s.ensureKeyExists("name",r),s.ensureKeyExists("elements",r),s.ensureKeyExists("parent",r),s.checkFnExists("doctype",r),s.checkFnExists("instruction",r),s.checkFnExists("cdata",r),s.checkFnExists("comment",r),s.checkFnExists("text",r),s.checkFnExists("instructionName",r),s.checkFnExists("elementName",r),s.checkFnExists("attributeName",r),s.checkFnExists("attributeValue",r),s.checkFnExists("attributes",r),r}(e),n.opt={strictEntities:!0},n.onopentag=h,n.ontext=p,n.oncomment=g,n.onclosetag=d,n.onerror=b,n.oncdata=y,n.ondoctype=m,n.onprocessinginstruction=f,n.write(t).close(),a[r.elementsKey]){var u=a[r.elementsKey];delete a[r.elementsKey],a[r.elementsKey]=u,delete a.text}return a}},253:(t,e,n)=>{var r=n(603),i=n(412);t.exports=function(t,e){var n,o,s;return n=function(t){var e=r.copyOptions(t);return r.ensureSpacesExists(e),e}(e),o=i(t,n),s="compact"in n&&n.compact?"_parent":"parent",("addParent"in n&&n.addParent?JSON.stringify(o,(function(t,e){return t===s?"_":e}
211),n.spaces):JSON.stringify(o,null,n.spaces)).replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029")}}},e={};function n(r){var i=e[r];if(void 0!==i)return i.exports;var o=e[r]={exports:{}};return t[r].call(o.exports,o,o.exports,n),o.exports}(()=>{"use strict";var t={text:"hsl(340, 13%, 5%)",background:"hsl(0, 0%, 99.8%)",subtleBackground:"hsl(225deg, 25%, 95%)",blurredBackground:"hsla(0deg, 0%, 99.8%, 0.85)",muted:"hsl(218, 56%, 92%)",mutedContrast:"hsl(218, 56%, 96%)",primary:"hsl(221deg 80% 51%)",subtlePrimary:"hsl(221, 58%, 60%)",secondary:"#35E6A7",tertiary:"#7750E6",subtleFloating:"hsl(0deg, 0%, 100%)",scrollbar:"var(--color-gray-400)",scrollbarBackground:"transparent",code:{base:"hsl(222, 33%, 95%)",mono:{1:"#383a42",2:"#696c77",3:"#a0a1a7"},hue:{1:"#0184bc",2:"#4078f2",3:"#a626a4",4:"#50a14f",5:"#e45649","5-2":"#ca1243",6:"#d45b3d","6-2":"#5bb6cd"},diff:{deletedLine:"hsl(0deg 30% 85.98% / 40%)",changedText:"hsl(120deg 69.23% 43.33% / 40%)",changedLine:"hsl(148deg 34% 82.98% / 40%)"}},gray:{100:"hsl(225deg, 25%, 95%)",200:"hsl(225deg, 16%, 90%)",300:"hsl(225deg, 8%, 80%)",400:"hsl(225deg, 8%, 70%)",500:"hsl(225deg, 7%, 60%)",600:"hsl(225deg, 15%, 50%)",700:"hsl(225deg, 12%, 40%)",800:"hsl(225deg, 12%, 30%)",900:"hsl(225deg, 25%, 20%)",1e3:"hsl(225deg, 15%, 15%)"},error:"hsl(340deg, 95%, 50%)",errorBackground:"hsla(340deg, 95%, 43%, 0.1)",success:"hsl(160deg, 100%, 40%)",successBackground:"hsla(160deg, 100%, 40%, 0.1)",warning:"hsl(37deg, 100%, 50%)",warningBackground:"hsla(52deg, 100%, 50%, 0.25)",info:"var(--color-primary)",infoBackground:"hsl(210deg, 55%, 92%)",danger:"hsl(8, 100%, 57%)",dangerBackground:"hsla(17, 85%, 87%, 0.7)"},e={text:"hsl(280, 23%, 95%)",background:"hsl(223, 28%, 13%)",subtleBackgroun
211d:"hsl(223, 28%, 13%)",blurredBackground:"hsla(223deg, 28%, 13%, 0.85)",darkerBackground:"hsl(223, 25%, 9%)",muted:"hsl(223, 30%, 20%)",mutedContrast:"hsl(223, 30%, 15%)",primary:"#FF69B4",subtlePrimary:"hsl(330, 80%, 80%)",secondary:"#C669FF",tertiary:"#FF8769",subtleFloating:"hsl(223, 24%, 22%)",scrollbar:"var(--color-gray-700)",scrollbarBackground:"#2b333b",code:{base:"hsl(222, 23%, 18%)",mono:{1:"#abb2bf",2:"#818896",3:"#5c6370"},hue:{1:"#56b6c2",2:"#61aeee",3:"#c678dd",4:"#98c379",5:"#e06c75","5-2":"#be5046",6:"#d19a66","6-2":"#e6c07b"},diff:{deletedLine:"hsl(0deg 24% 50.98% / 12%)",changedText:"hsl(120deg 69.23% 43.33% / 40%)",changedLine:"hsl(148deg 40% 51% / 10%)"}},gray:{100:"hsl(210deg, 15%, 20%)",200:"hsl(210deg, 15%, 25%)",300:"hsl(210deg, 10%, 40%)",400:"hsl(210deg, 9%, 45%)",500:"hsl(210deg, 8%, 50%)",600:"hsl(210deg, 12%, 55%)",700:"hsl(210deg, 14%, 66%)",800:"hsl(210deg, 17%, 77%)",900:"hsl(210deg, 25%, 88%)",1e3:"hsl(210deg, 25%, 96%)"},error:"hsl(340deg, 95%, 60%)",errorBackground:"hsla(340deg, 95%, 43%, 0.1)",success:"hsl(160deg, 100%, 40%)",successBackground:"hsla(160deg, 100%, 40%, 0.1)",warning:"hsl(30deg, 100%, 50%)",warningBackground:"hsl(40deg, 17%, 21%)",info:"hsl(230deg, 100%, 69%)",infoBackground:"hsl(223deg, 31%, 24%)",danger:"hsl(0deg 81.28% 58.63%)",dangerBackground:"hsl(6.65deg 25.19% 23.95%)"},r="theme",i="--".concat(r),o=320,s=563,a=768,u=1024,c=1440;function l(t){return t.charAt(0).toLowerCase()+t.slice(1)}"(max-width: ".concat(o,"px)"),"(min-width: ".concat(o,"px and max-width: ").concat(s,"px)"),"(min-width: ".concat(s,"px and max-width: ").concat(a,"px)"),"(min-width: ".concat(a,"px and max-width: ").concat(u,"px)"),"(min-width: ".concat(u,"px and max-width: ").concat(c,"px)"),"(max-width: ".concat(o,"px)"),"(max-width: ".concat(s,"px)"),"(max-width: ".concat(a,"px)"),"(max-width: ".concat(u,"px)"),"(max-width: ".concat(c,"px)"),"(min-width: ".concat(321,"px)"),"(min-width: ".concat(564,"px)"),"(min-width: ".concat(769,"px)"),"(min-width: ".concat(1025,"px)"),"(min-width: ".concat(1441,"px)"),"(max-width: ".concat(a,"px)"),"(min-width: ".concat(769,"px)"),n(247),function(){var n=function(){var t=window.localStorage.getItem(r);if("string"==typeof t)return t;var e=window.matchMedia("(prefers-color-scheme: dark)");return"boolean"==typeof e.matches&&e.matches?"dark":"light"}(),o="dark"===n,s=document.documentElement;s.style.setProperty(i,n),s.setAttribute("data-theme",n);var a,u,c=o?e:t;Object.entries((a=c,u="color",void 0===u&&(u=""),Object.entries(a).map((function(t){var e=t[0],n=t[1];return["--".concat(u.length>0?u.toLowerCase()+"-":"").concat(l(e)),n]})).reduce((function t(e,n){var r=n[0],i=n[1],o=r.toString().replace(/([A-Z])/g,"-$1").toLowerCase();return"object"==typeof i&&null!==i?Object.entries(i).map((function(t){var e=t[0],n=t[1];return["".concat(o,"-").concat(l(e)),n]})).reduce(t,e):(e[o]="".concat(i),e)}),{}))).forEach((function(t){var e=t[0],n=t[1];s.style.setProperty(e,n)}))}()})()})();</script>
211<div id="mobile-nav"></div><div id="__next"><div style="--background:var(--color-background)" class="sc-587afea7-3 fdSmIV"><div class="sc-587afea7-0 bOlytw"><div class="sc-587afea7-2 dylOXV"><header class="sc-a3d4601d-0 dHalWr"><div class="sc-a3d4601d-1 dpdYfe"><a style="display:flex;text-decoration:none" href="/"><span style="user-select:none;font-size:24px;letter-spacing:-1px;padding:0px;color:var(--color-primary);transition:color 350ms ease 0s">Jelmar</span></a></div><div class="sc-a3d4601d-2 jcMTko"><nav style="display:flex"><ul style="display:flex;list-style:none;padding:0"><div style="position:relative;display:flex;align-items:center"><a class="sc-bd7d1a6-0 eeMrQU sc-fc826de2-0 iMDCQS" href="/blog">blog</a></div><div style="position:relative;display:flex;align-items:center"><a class="sc-bd7d1a6-0 eeMrQU sc-fc826de2-0 iMDCQS" href="/projects">projects</a></div><div style="position:relative;display:flex;align-items:center"><a href="/cv.pdf" rel="noopener noreferrer" target="_blank" class="sc-bd7d1a6-0 eeMrQU sc-fc826de2-0 iMDCQS"><div style="display:flex;align-items:center"><span style="margin-right:6px">CV </span><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 512 512" class="sc-6ab8c5dd-0 gSrEMi" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path d="M320 0c-17.7 0-32 14.3-32 32s14.3 32 32 32h82.7L201.4 265.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L448 109.3V192c0 17.7 14.3 32 32 32s32-14.3 32-32V32c0-17.7-14.3-32-32-32H320zM80 32C35.8 32 0 67.8 0 112V432c0 44.2 35.8 80 80 80H400c44.2 0 80-35.8 80-80V320c0-17.7-14.3-32-32-32s-32 14.3-32 32V432c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V112c0-8.8 7.2-16 16-16H192c17.7 0 32-14.3 32-32s-14.3-32-32-32H80z"></path></svg></div></a></div></ul></nav></div><div class="sc-a3d4601d-3 hrQlgF"><button title="Activate dark mode" class="sc-3f747a6f-0 sc-fb44507b-0 fUUqis iDesNd"><svg width="18" height="18" viewBox="0 0 18 18" style="transform:rotate(90deg)" class="sc-fb44507b-1 jZRDRC"><mask id="moon-mask-dark-mode-toggle"><rect x="0" y="0" width="18" height="18" fill="#FFF"></rect><circle cx="25" cy="0" r="8" fill="black"></circle></mask><circle cx="9" cy="9" fill="var(--color-text)" mask="url(#moon-mask-dark-mode-toggle)" r="5"></circle><g><circle cx="17" cy="9" r="1.5" fill="var(--color-text)" style="transform-origin:center center;transform:scale(1)"></circle><circle cx="13" cy="15.928203" r="1.5" fill="var(--color-text)" style="transform-origin:center center;transform:scale(1)"></circle><circle cx="5" cy="15.928203" r="1.5" fill="var(--color-text)" style="transform-origin:center center;transform:scale(1)"></circle><circle cx="1" cy="9" r="1.5" fill="var(--color-text)" style="transform-origin:center center;transform:scale(1)"></circle><circle cx="5" cy="2.071797" r="1.5" fill="var(--color-text)" style="transform-origin:center center;transform:scale(1)"></circle><circle cx="13" cy="2.071797" r="1.5" fill="var(--color-text)" style="transform-origin:center center;transform:scale(1)"></circle></g></svg></button></div><div class="sc-a3d4601d-3 cyJuVm"></div></header></div></div><div style="display:flex" class="sc-587afea7-1 eckpQN"><main class="sc-6c41d28e-0 dmNltQ"><div class="sc-6c41d28e-1 bLsiTU"><div class="sc-22bbb5f3-0 sc-6c41d28e-2 jmIyLj ejclMZ"><div class="sc-6c41d28e-4 hJZjKs"><div class="sc-8d4bf0ef-0 dCQBuK"><img alt="Picture of the author" fetchpriority="high" loading="eager" width="200" height="200" decoding="async" data-nimg="1" class="sc-8d4bf0ef-1 elsmaG" style="color:transparent;background-size:cover;background-position:50% 50%;background-repeat:no-repeat;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 320 280'%3E%3Cfilter id='b' color-interpolation-filters='sRGB'%3E%3CfeGaussianBlur stdDeviation='20'/%3E%3CfeColorMatrix values='1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 100 -1' result='s'/%3E%3CfeFlood x='0' y='0' width='100%25' height='100%25'
211/%3E%3CfeComposite operator='out' in='s'/%3E%3CfeComposite in2='SourceGraphic'/%3E%3CfeGaussianBlur stdDeviation='20'/%3E%3C/filter%3E%3Cimage width='100%25' height='100%25' x='0' y='0' preserveAspectRatio='none' style='filter: url(%23b);' href='data:image/jpeg;base64,/9j/2wBDAAoHBwgHBgoICAgLCgoLDhgQDg0NDh0VFhEYIx8lJCIfIiEmKzcvJik0KSEiMEExNDk7Pj4+JS5ESUM8SDc9Pjv/2wBDAQoLCw4NDhwQEBw7KCIoOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozv/wgARCAAHAAgDASIAAhEBAxEB/8QAFQABAQAAAAAAAAAAAAAAAAAAAAb/xAAUAQEAAAAAAAAAAAAAAAAAAAAB/9oADAMBAAIQAxAAAAGfA//EABcQAAMBAAAAAAAAAAAAAAAAAAABAgP/2gAIAQEAAQUCraGf/8QAFREBAQAAAAAAAAAAAAAAAAAAABH/2gAIAQMBAT8Br//EABURAQEAAAAAAAAAAAAAAAAAAAAR/9oACAECAQE/AY//xAAZEAABBQAAAAAAAAAAAAAAAAABABESITH/2gAIAQEABj8CIjb6v//EABcQAQADAAAAAAAAAAAAAAAAAAEAIUH/2gAIAQEAAT8h0AbSf//aAAwDAQACAAMAAAAQA//EABURAQEAAAAAAAAAAAAAAAAAAAEA/9oACAEDAQE/EFN//8QAFhEAAwAAAAAAAAAAAAAAAAAAAAER/9oACAECAQE/EJR//8QAGRABAAIDAAAAAAAAAAAAAAAAAQARITGh/9oACAEBAAE/EL8amqyOuz//2Q=='/%3E%3C/svg%3E")" srcSet="/_next/image?url=%2F_next%2Fstatic%2Fmedia%2Fbakkes_new.c28f363b.jpg&w=256&q=75 1x, /_next/image?url=%2F_next%2Fstatic%2Fmedia%2Fbakkes_new.c28f363b.jpg&w=640&q=75 2x" src="/_next/image?url=%2F_next%2Fstatic%2Fmedia%2Fbakkes_new.c28f363b.jpg&w=640&q=75"/></div><div style="margin-top:24px;transform:scale(1.2);position:relative" class="sc-3502ffbd-0 pNfUe"><a href="https://github.com/Pocket-titan" rel="noopener noreferrer" target="_blank" title="My GitHub" class="sc-bd7d1a6-0 eeMrQU sc-3502ffbd-1 jajjhf"><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 496 512" aria-label="My GitHub" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path d="M165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6zm-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3zm44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9zM244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8zM97.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1zm-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7zm32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1zm-11.4-14.7c-1.6 1-1.6 3.6 0 5.9 1.6 2.3 4.3 3.3 5.6 2.3 1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2z"></path></svg></a><a href="https://www.linkedin.com/in/jelmargerritsen/" rel="noopener noreferrer" target="_blank" title="My LinkedIn" class="sc-bd7d1a6-0 eeMrQU sc-3502ffbd-1 jajjhf"><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 448 512" aria-label="My LinkedIn" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path d="M416 32H31.9C14.3 32 0 46.5 0 64.3v383.4C0 465.5 14.3 480 31.9 480H416c17.6 0 32-14.5 32-32.3V64.3c0-17.8-14.4-32.3-32-32.3zM135.4 416H69V202.2h66.5V416zm-33.2-243c-21.3 0-38.5-17.3-38.5-38.5S80.9 96 102.2 96c21.2 0 38.5 17.3 38.5 38.5 0 21.3-17.2 38.5-38.5 38.5zm282.1 243h-66.4V312c0-24.8-.5-56.7-34.5-56.7-34.6 0-39.9 27-39.9 54.9V416h-66.4V202.2h63.7v29.2h.9c8.9-16.8 30.6-34.5 62.9-34.5 67.2 0 79.7 44.3 79.7 101.9V416z"></path></svg></a><a href="https://x.com/JelmarGerritsen" rel="noopener noreferrer" target="_blank" title="My X" class="sc-bd7d1a6-0 eeMrQU sc-3502ffbd-1 jajjhf"><svg xmlns="http://www.w3.org/2000/svg" height="1em" viewBox="0 0 512 512" aria-label="My X"><path d="M389.2 48h70.6L305.6 224.2 487 464H345L233.7 318.6 106.5 464H35.8L200.7 275.5 26.8 48H172.4L272.9 180.9 389.2 48zM364.4 421.8h39.1L151.1 88h-42L364.4 421.8z"></path></svg></a><a href="mailto:[email protected]" rel="noopener noreferrer" target="_blank" title="Send me an email" class="sc-bd7d1a6-0 eeMrQU sc-3502ffbd-1 jajjhf"><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 512 512" aria-label="Send me an email" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path d="M502.3 190.8c3.9-3.1 9.7-.2 9.7 4.7V400c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V195.6c0-5 5.7-7.8 9.7-4.7 22.4 17.4 52.1 39.5 154.1 113.6 21.1 15.4 56.7 47.8 92.2 47.6 35.7.3 72-32.8 92.3-47.6 102-74.1 131.6-96.3 154-113.7zM256 320c23.2.4 56.
2116-29.2 73.4-41.4 132.7-96.3 142.8-104.7 173.4-128.7 5.8-4.5 9.2-11.5 9.2-18.9v-19c0-26.5-21.5-48-48-48H48C21.5 64 0 85.5 0 112v19c0 7.4 3.4 14.3 9.2 18.9 30.6 23.9 40.7 32.4 173.4 128.7 16.8 12.2 50.2 41.8 73.4 41.4z"></path></svg></a><div class="sc-6c41d28e-8 cGrvOe"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 800 800" width="150" height="150" style="position:absolute;pointer-events:none;right:0;top:0;transform:scale(calc(1/1.2)) translate(53%, -45%) rotate(-15deg)"><g stroke-width="10" stroke="var(--color-gray-400)" fill="none" stroke-linecap="round" stroke-linejoin="round"><path d="M 1209 0 Q 693 702 450 400.6022" marker-end="url(#SvgjsMarker1999)"></path></g><defs><marker markerWidth="7" markerHeight="7" refX="3.5" refY="3.5" viewBox="0 0 7 7" orient="auto" id="SvgjsMarker1999"><polyline points="0,3.5 3.5,1.75 0,0" fill="none" stroke-width="1.1666666666666667" stroke="var(--color-gray-400)" stroke-linecap="round" transform="matrix(1,0,0,1,1.1666666666666667,1.75)" stroke-linejoin="round"></polyline></marker></defs></svg><span class="sc-6c41d28e-9 kFGekS">contact me!</span></div></div></div><div class="sc-6c41d28e-5 dJwPBj"><div style="display:flex;flex-direction:column;align-items:center;margin-bottom:24px"><h1 class="sc-6c41d28e-6 bVIhnS">hi!</h1></div><div>My name is Jelmar. I'm a Scientific Software Engineer with an MSc in Aerospace Engineering. I'm passionate about translating scientific research into performant, maintainable and explainable software. Have a look at some of the<!-- --> <a class="sc-bd7d1a6-0 eeMrQU sc-6c41d28e-7 dgANWe" href="/projects">projects</a> I've done, or see my <a class="sc-bd7d1a6-0 eeMrQU sc-6c41d28e-7 dgANWe" href="/blog">blog</a> if you're interested in my writings.</div></div></div><div style="display:block;position:absolute;left:0;right:0;bottom:0;transform:translateY(1px)"><svg preserveAspectRatio="none" viewBox="0 0 1703 100" width="1703" height="74" id="wave" style="position:absolute;left:-3%;right:-3%;bottom:0;width:106%;min-width:800px;max-width:unset;transition:fill 350ms ease 0s;fill:var(--color-muted)"><path fill-opacity="1" d="M 0 26.7 L 90 37.4 C 180 47.7 360 69.7 540 58.7 C 720 47.7 900 5.7 1080 0 C 1260 -5.3 1440 26.7 1620 48 C 1800 69.7 1980 79.7 2070 85.4 L 2160 90.7 L 2160 100 L 2070 100 C 1980 100 1800 100 1620 100 C 1440 100 1260 100 1080 100 C 900 100 720 100 540 100 C 360 100 180 100 90 100 L 0 100 Z"></path></svg></div><svg xmlns="http://www.w3.org/2000/svg" xml:space="preserve" width="100px" height="100px" viewBox="0 0 511.753 511.753" class="sc-cb994a5b-0 sc-cb994a5b-2 dFaSFC iQWBOc"><path d="M261.107.273a50.447 50.447 0 0 0-10.462 0c-58.735 2.756-105.702 51.26-105.702 110.66V179.2c0 7.066 3.558 13.269 9.745 18.611l86.11 143.522h-33.203c-10.829 0-19.977 7.757-21.769 18.551l-15.189 99.635-.094 1.28c0 26.982 33.101 48.461 76.8 50.953v-43.281c-19.456-3.959-34.133-21.197-34.133-41.805 0-23.518 19.14-42.667 42.667-42.667 23.518 0 42.667 19.149 42.667 42.667 0 20.608-14.686 37.845-34.133 41.805v43.281c43.691-2.492 76.8-23.97 76.8-50.953l-15.3-101.026a21.99 21.99 0 0 0-21.76-18.44h-33.203l86.11-143.522c6.187-5.342 9.754-11.546 9.754-18.611v-68.267C366.81 51.533 319.834 3.029 261.107.273zM221.743 51.2c0-18.816 15.3-34.133 34.133-34.133 18.825 0 34.133 15.317 34.133 34.133v87.287c-1.86-.213-3.721-.418-5.606-.597-1.22-.119-2.449-.205-3.678-.307a277.726 277.726 0 0 0-8.926-.597c-1.212-.06-2.406-.128-3.618-.179-4.096-.162-8.201-.273-12.305-.273-4.113 0-8.218.111-12.314.273-1.212.051-2.406.12-3.618.179-2.995.154-5.965.35-8.926.597-1.229.094-2.449.188-3.669.307-1.886.179-3.746.384-5.606.597V51.2zm65.954 104.098-10.155 48.742c-6.775.486-14.003.76-21.666.76-7.672 0-14.891-.273-21.675-.76l-10.155-48.742c9.574-1.067 20.181-1.698 31.829-1.698 11.641 0 22.248.632 31.822 1.698zM162.01 110.933c0-34.944 19.234-65.434 47.633-81.587-3.149 6.639-4.966 14.029-4.966 21.854v89.805c-.179.034-.341.068-.512.102-1.058.196-2.074.418-3.106.631a200.687 200.687 0 0 0-7.91 1.766c-1.067.265-2.142.529-3.183.811a143.701 143.701 0 0 0-8.499 2.517c-.452.145-.939.273-1.391.427a113.67 113.67 0 0 0-8.798 3.422c-.777.333-1.476.691-2.219 1.041a76.781 76.781 0 0 0-5.683 2.927c-.427.247-.947.452-1.365.708v-44.424zm.384 66.552c2.569-6.007 17.937-14.609 44.749-19.686l9.242 44.331c-23.936-3.456-40.337-9.702-48.452-15.42l-5.539-9.225zm20.77 34.62c10.94 3.447 23.509 5.99 36.881 7.612l17.186 82.5-54.067-90.112zm72.712 95.94-18.074-86.733c5.982.35 12.023.555 18.074.555 6.042 0 12.083-.205 18.065-.555l-18.065 86.733zm18.637-5.828 17.186-82.5c13.372-1.621 25.941-4.164 36.881-7.612l-54.067 90.112zm69.308-115.508c-8.124 5.717-24.525 11.964-48.452 15.42l9.233-44.331c26.812 5.077 42.18 13.679 44.749 19.686l-5.53 9.225zm5.922-31.351c-.427-.256-.947-.461-1.374-.708a76.781 76.781 0 0 0-5.683-2.927c-.742-.35-1.442-.708-2.21-1.041a114.041 114.041 0 0 0-8.806-3.422c-.452-.154-.939-.282-1.399-.435a151.4 151.4 0 0 0-8.482-2.509c-1.05-.282-2.116-.546-3.191-.811a201.09 201.09 0 0 0-7.91-1.766c-1.033-.213-2.048-.435-3.106-.631l-.503-.102V51.2c0-7.825-1.818-15.215-4.975-21.854 28.399 16.154 47.642 46.643 47.642 81.587v44.425z"></path><path d="M281.473 426.671c0-14.114-11.486-25.6-25.6-25.6s-25.6 11.486-25.6 25.6 11.486 25.6 25.6 25.6 25.6-11.486 25.6-25.6zm-25.6 8.533c-4.71 0-8.533-3.823-8.533-8.533s3.823-8.533 8.533-8.533c4.71 0 8.533 3.823 8.533 8.533s-3.823 8.533-8.533 8.533z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" xml:space="preserve" width="100px" height="100px" viewBox="0 0 512.001 512.001" class="sc-cb994a5b-0 sc-cb994a5b-1 dFaSFC fPkVf"><path d="M366.933 450.877V349.868c0-.111-.06-.196-.06-.307-.034-.922-.162-1.852-.504-2.739l-27.87-72.823a8.427 8.427 0 0 0-.341-.759c-2.654-5.299-7.97-8.585-13.892-8.585v-85.453h-102.4v85.453c-5.922 0-11.238 3.285-13.892 8.585a8.643 8.643 0 0 0-.333.759l-27.878 72.823c-.341.887-.469 1.818-.503 2.739 0 .111-.06.196-.06.307v101.009l-16.631 49.894a8.528 8.528 0 0 0 1.178 7.68 8.512 8.512 0 0 0 6.921 3.55h204.8a8.514 8.514 0 0 0 6.921-3.55 8.534 8.534 0 0 0 1.178-7.68l-16.634-49.894zm-93.867-254.609a8.536 8.536 0 0 1 8.533 8.533 8.536 8.536 0 0 1-8.533 8.533 8.536 8.536 0 0 1-8.533-8.533 8.536 8.536 0 0 1 8.533-8.533zm0 34.133c4.71 0 8.533 3.823 8.533 8.533s-3.823 8.533-8.533 8.533c-4.71 0-8.533-3.823-8.533-8.533s3.823-8.533 8.533-8.533zm-17.63 100.224 17.613-46.106 17.647 46.106 4.096 10.709H251.34l4.096-10.709zm-39.722 164.309h-33.212l11.383-34.133h33.212l-11.383 34.133zm-15.574-153.6 21.726-56.764.563 1.468v.009l15.898 41.532-5.265 13.756H200.14zm33.571 153.6 11.375-34.133h55.962l11.383 34.133h-78.72zm74.094-167.356 15.898-41.532c.026-.068.017-.145.043-.213l.503-1.314 21.752 56.815h-32.93l-5.266-13.756zm22.614 167.356-11.375-34.133h33.203l11.383 34.133h-33.211zM286.958 8.701c-2.654-5.299-7.97-8.585-13.892-8.585s-11.238 3.285-14.225 9.353l-25.779 67.328h80.009L286.958 8.701zM316.63 93.868h-87.125l-6.827 68.267h100.779l-6.827-68.267zm-35.03 42.666a8.536 8.536 0 0 1-8.533 8.533 8.536 8.536 0 0 1-8.533-8.533v-17.067a8.536 8.536 0 0 1 8.533-8.533 8.536 8.536 0 0 1 8.533 8.533v17.067z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" xml:space="preserve" width="100px" height="100px" viewBox="0 0 510.596 510.596" class="sc-cb994a5b-0 sc-cb994a5b-4 dFaSFC lgurHR"><path d="m509.801 395.907-31.188-68.626-.009-.009-.018-.035c-.071-.168-.203-.309-.291-.477-.238-.459-.486-.909-.803-1.315-.221-.282-.494-.503-.742-.75-.247-.247-.468-.521-.75-.742-.406-.318-.856-.565-1.315-.803
211-.168-.088-.309-.212-.477-.291l-.026-.018h-.009l-65.615-29.828-27.321-60.098c10.823-10.964 13.621-26.854 8.492-40.422 5.985 1.262 12.138 1.96 18.406 1.96 23.578 0 45.753-9.181 62.42-25.856a8.817 8.817 0 0 0 0-12.482l-49.938-49.938 19.615-19.615c5.5 3.231 11.644 4.979 17.841 4.979 9.039 0 18.088-3.452 24.964-10.328 13.771-13.771 13.771-36.175 0-49.938-13.33-13.339-36.59-13.347-49.929 0-11.599 11.599-13.303 29.272-5.358 42.805l-19.615 19.615-49.938-49.938c-3.443-3.452-9.031-3.452-12.482 0-16.675 16.675-25.856 38.841-25.856 62.42 0 6.268.697 12.42 1.96 18.414-13.559-5.129-29.449-2.339-40.413 8.483l-60.107-27.321-29.82-65.598c0-.009-.009-.018-.009-.026l-.009-.026c-.088-.194-.229-.353-.335-.539-.229-.433-.459-.865-.759-1.253-.247-.318-.556-.574-.847-.847-.221-.212-.406-.45-.644-.644-.424-.335-.909-.591-1.386-.847-.15-.071-.265-.185-.415-.247l-.018-.009s-.018-.009-.026-.018l-68.619-31.19a8.784 8.784 0 0 0-9.896 1.792L27.373 87.453a8.803 8.803 0 0 0-2.445 7.812 8.809 8.809 0 0 0 5.032 6.462l65.651 29.837 29.82 65.607s0 .009.009.018l.009.026c.097.212.247.38.353.583.23.415.45.839.742 1.209.247.318.556.574.847.856.221.212.406.45.636.636.424.327.883.574 1.351.821.159.088.291.203.459.274l.018.018h.018l57.026 25.927-1.395 1.404c-8.783 8.783-12.253 20.798-10.69 32.247l-55.543 11.114a8.823 8.823 0 0 0-6.718 6.1 8.812 8.812 0 0 0 2.207 8.792l24.973 24.964 18.723-18.723c3.443-3.443 9.031-3.443 12.482 0 3.443 3.452 3.443 9.039 0 12.482l-18.723 18.723 12.482 12.491 18.723-18.723c3.452-3.452 9.039-3.452 12.482 0 3.452 3.443 3.452 9.031 0 12.482l-18.723 18.723 12.482 12.482 18.732-18.723c3.443-3.452 9.031-3.452 12.482 0a8.833 8.833 0 0 1 0 12.482l-18.732 18.723 24.973 24.973a8.854 8.854 0 0 0 6.241 2.587c.856 0 1.713-.132 2.56-.38a8.852 8.852 0 0 0 6.1-6.718l11.105-55.543c1.721.238 3.434.512 5.208.512 10.214 0 19.818-3.981 27.048-11.202l1.395-1.395 25.918 57.017a.028.028 0 0 1 .009.018l.009.026c.088.185.221.335.318.512.238.45.477.892.786 1.289.212.274.486.494.742.742.247.256.468.53.742.742.397.309.847.547 1.289.786.177.097.327.23.512.318l.026.009s.009.009.018.009l65.607 29.82 29.837 65.651a8.825 8.825 0 0 0 6.462 5.032c.521.097 1.051.15 1.58.15a8.844 8.844 0 0 0 6.241-2.586l81.143-81.152a8.814 8.814 0 0 0 1.789-9.889zM100.36 114.333l-51.5-23.411 67.814-67.805 51.5 23.402-67.814 67.814zm48.375 76.465 67.814-67.813 51.491 23.411-67.813 67.813-51.492-23.411zm134.559 115.12c-.009.009-.009.018-.009.018l-10.39 10.39c-7.795 7.777-21.363 7.777-29.131 0l-22.89-22.89-22.908-22.908c-8.015-8.033-8.007-21.08.018-29.105l95.717-95.718a20.554 20.554 0 0 1 14.557-6.02 20.564 20.564 0 0 1 14.566 6.02l45.78 45.78c8.033 8.033 8.033 21.098 0 29.131l-4.14 4.14s-.018.009-.026.018l-81.144 81.144zm40.219 59.657-23.411-51.491 67.813-67.813 23.411 51.491-67.813 67.813zm99.875 99.875-23.411-51.491 67.814-67.822 23.411 51.5-67.814 67.813z"></path><path d="M314.507 162.356c-3.452-3.452-9.039-3.452-12.482 0l-87.393 87.384c-3.443 3.452-3.443 9.039 0 12.482l37.455 37.455a8.803 8.803 0 0 0 6.241 2.586c2.26 0 4.52-.865 6.241-2.586l87.384-87.384c3.452-3.452 3.452-9.039 0-12.482l-37.446-37.455zm-56.179 118.599-24.973-24.973 31.214-31.206 24.973 24.964-31.214 31.215zm43.696-43.697-24.973-24.964 31.214-31.214 24.964 24.973-31.205 31.205z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" xml:space="preserve" width="100px" height="100px" viewBox="0 0 512 512" class="sc-cb994a5b-0 sc-cb994a5b-3 dFaSFC jjKjbA"><path d="M69.424 360.136c-9.572 0-17.356 7.784-17.356 17.356 0 9.572 7.784 17.356 17.356 17.356 9.572 0 17.356-7.784 17.356-17.356 0-9.572-7.784-17.356-17.356-17.356zM442.576 360.136c-9.572 0-17.356 7.784-17.356 17.356 0 9.572 7.784 17.356 17.356 17.356 9.572 0 17.356-7.784 17.356-17.356 0-9.572-7.784-17.356-17.356-17.356z"></path><path d="M502.61 342.78h.712v-26.034c0-25.748-18.805-47.13-43.39-51.287v-.781c0-14.353-11.681-26.034-26.034-26.034s-26.034 11.681-26.034 26.034v52.779a70.227 70.227 0 0 0-11.056 7.966h-28.195l29.956-74.873a8.779 8.779 0 0 0 .616-3.228V212.61c0-14.353-11.681-26.034-26.034-26.034s-26.034 11.681-26.034 26.034v24.151l-24.524 53.951h-53.578c-14.353 0-26.034 11.681-26.034 26.034 0 3.055.625 5.953 1.597 8.678h-18.953v-52.432c0-9.372-7.619-16.991-16.991-16.991h-.365v-17.356c0-4.417 5.059-10.899 9.971-15.638l9.121 12.167a8.66 8.66 0 0 0 6.951 3.471 8.642 8.642 0 0 0 5.198-1.736c3.836-2.872 4.608-8.313 1.736-12.149l-26.034-34.712c-2.864-3.827-8.305-4.608-12.149-1.736-3.836 2.872-4.608 8.313-1.736 12.149l6.439 8.583c-6.092 5.528-16.853 17.07-16.853 29.601V256h-.365c-9.372 0-16.991 7.619-16.991 16.991v9.042h-26.034v-78.102c0-10.709-7.845-20.654-13.937-26.789 9.285-12.062 14.371-26.728 14.371-42.201 0-18.545-7.22-35.979-20.332-49.083l-6.135-6.135-42.956 42.947-17.79-17.79V73.763l-8.678-8.678h-34.71l-8.678 8.678v34.712l8.678 8.678h31.119l17.79 17.79-42.947 42.956 6.135 6.135c13.104 13.112 30.538 20.332 49.083 20.332 15.768 0 30.694-5.259 42.887-14.883 4.487 4.573 8.747 10.362 8.747 14.449v121.492h-14.978c-12.236-10.769-28.229-17.356-45.768-17.356C31.145 308.068 0 339.213 0 377.492s31.145 69.424 69.424 69.424c25.626 0 48.007-13.998 60.034-34.712h59.835c19.473 0 35.302-15.447 36.17-34.712h87.109c.868 19.265 16.696 34.712 36.17 34.712h33.801c12.028 20.714 34.408 34.712 60.034 34.712 38.279 0 69.424-31.145 69.424-69.424-.001-12.653-3.455-24.49-9.391-34.712zM69.424 412.203c-19.144 0-34.712-15.568-34.712-34.712S50.28 342.78 69.424 342.78c19.144 0 34.712 15.568 34.712 34.712s-15.569 34.711-34.712 34.711zm119.868-17.356h-52.667c.078-.312.104-.634.182-.946a70.1 70.1 0 0 0 1.206-6.196c.104-.703.234-1.397.321-2.1.312-2.664.512-5.363.512-8.114H208.2c-.831 9.711-8.989 17.356-18.908 17.356zm159.449 0c-9.919 0-18.076-7.645-18.909-17.356h43.32c0 2.751.2 5.45.512 8.114.087.703.217 1.397.321 2.1a70.464 70.464 0 0 0 1.206 6.196c.078.312.104.633.182.946h-26.632zm33.68-51.859a68.93 68.93 0 0 0-6.934 16.965c-.017.061-.043.121-.061.182H136.574c-.017-.061-.043-.122-.061-.182a68.899 68.899 0 0 0-6.934-16.965c-.035-.069-.061-.139-.104-.208H382.525c-.044.069-.07.139-.104.208zm60.155 69.215c-19.144 0-34.712-15.568-34.712-34.712s15.568-34.712 34.712-34.712c19.144 0 34.712 15.568 34.712 34.712s-15.568 34.712-34.712 34.712zm43.39-88.819c-7.55-6.066-16.393-10.535-26.034-13.034v-27.084c14.926 3.879 26.034 17.356 26.034 33.48v6.638z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" xml:space="preserve" width="100px" height="100px" viewBox="0 0 512 512" class="sc-cb994a5b-0 sc-cb994a5b-5 dF
211aSFC fpfBLh"><path d="M238.933 247.467h34.133v42.667h-34.133zM238.933 187.733h34.133V230.4h-34.133zM409.6 8.533h34.133v34.133H409.6zM503.467 8.533H460.8v34.133H512v-25.6a8.53 8.53 0 0 0-8.533-8.533zM409.6 59.733h34.133v34.133H409.6zM460.8 93.867h42.667A8.53 8.53 0 0 0 512 85.334v-25.6h-51.2v34.133zM409.6 426.667h34.133V460.8H409.6zM503.467 426.667H460.8V460.8H512v-25.6a8.53 8.53 0 0 0-8.533-8.533zM409.6 477.867h34.133V512H409.6z"></path><path d="M341.333 435.2v25.6H307.2v-34.133c0-.119-.06-.213-.068-.324-.034-.964-.171-1.929-.538-2.85l-16.461-41.139v-41.31c19.046-1.476 34.133-17.271 34.133-36.685v-130.85c0-19.413-15.087-35.209-34.133-36.685V102.4h8.533a8.53 8.53 0 0 0 8.533-8.533V59.733h34.133v25.6a8.53 8.53 0 0 0 8.533 8.533h42.667V59.733H358.4V42.667h34.133V8.533h-42.667a8.53 8.53 0 0 0-8.533 8.533v25.6H307.2V8.533A8.53 8.53 0 0 0 298.667 0h-34.133v51.2c0 4.71-3.814 8.533-8.533 8.533s-8.533-3.823-8.533-8.533V0h-34.133a8.53 8.53 0 0 0-8.533 8.533v34.133h-34.133v-25.6a8.53 8.53 0 0 0-8.533-8.533h-42.667v34.133H153.6v17.067h-34.133v34.133h42.667a8.53 8.53 0 0 0 8.533-8.533v-25.6H204.8v34.133a8.53 8.53 0 0 0 8.533 8.533h8.533v34.423c-19.046 1.476-34.133 17.271-34.133 36.685v130.85c0 19.413 15.087 35.209 34.133 36.685v41.31l-16.461 41.139c-.367.922-.503 1.886-.538 2.842-.009.12-.068.213-.068.333V460.8h-34.133v-25.6a8.53 8.53 0 0 0-8.533-8.533h-42.667V460.8H153.6v17.067h-34.133V512h42.667a8.53 8.53 0 0 0 8.533-8.533v-25.6H204.8v25.6a8.53 8.53 0 0 0 8.533 8.533h34.133v-51.2c0-4.71 3.814-8.533 8.533-8.533s8.533 3.823 8.533 8.533V512h34.133a8.53 8.53 0 0 0 8.533-8.533v-25.6h34.133v25.6a8.53 8.53 0 0 0 8.533 8.533h42.667v-34.133H358.4V460.8h34.133v-34.133h-42.667a8.531 8.531 0 0 0-8.533 8.533zm-115.396-17.067 10.24-25.6h39.646l10.24 25.6h-60.126zM281.6 307.2h-51.2a8.53 8.53 0 0 1-8.533-8.533V179.2a8.53 8.53 0 0 1 8.533-8.533h51.2a8.53 8.53 0 0 1 8.533 8.533v119.467a8.53 8.53 0 0 1-8.533 8.533zM460.8 512h42.667a8.53 8.53 0 0 0 8.533-8.533v-25.6h-51.2V512zM68.267 477.867H102.4V512H68.267zM0 503.467A8.53 8.53 0 0 0 8.533 512H51.2v-34.133H0v25.6zM68.267 426.667H102.4V460.8H68.267zM0 435.2v25.6h51.2v-34.133H8.533A8.53 8.53 0 0 0 0 435.2zM68.267 59.733H102.4v34.133H68.267zM8.533 93.867H51.2V59.733H0v25.
2116a8.53 8.53 0 0 0 8.533 8.534zM68.267 8.533H102.4v34.133H68.267zM51.2 8.533H8.533A8.53 8.53 0 0 0 0 17.067v25.6h51.2V8.533z"></path></svg></div><div class="sc-6c41d28e-3 cuPbEq"><div class="sc-22bbb5f3-0 jmIyLj"><div class="sc-6c41d28e-10 eswUlC"><div class="sc-f1fc5137-0 sc-3469ce87-0 gNfuPm kOCyIX"><h1 class="sc-fadeac6e-1 bxdBtu sc-f1fc5137-4 jWINiI" style="transition:color 350ms ease 0s"> GitHub activity </h1><a href="https://github.com/Pocket-titan/jelmar/releases/branch/feat/we-are-so-back" target="_blank" class="sc-f1fc5137-1 dDSNPp"><img height="35" width="35" src="https://avatars.githubusercontent.com/u/4435990?" class="sc-f1fc5137-2 gdXoBA"/><div class="sc-f1fc5137-3 ivkHMN"><span>created <!-- -->branch<!-- --> <!-- -->feat/we-are-so-back<!-- --> in<!-- --> <span class="sc-3469ce87-1 cVyDJD">jelmar</span></span></div><div class="sc-f1fc5137-5 bFMIRG">1 week ago</div></a><a href="https://github.com/Pocket-titan/jelmar/commit/3d2b53a6be46003400915a1997ef9e9e3ea7e242" target="_blank" class="sc-f1fc5137-1 dDSNPp"><img height="35" width="35" src="https://avatars.githubusercontent.com/u/4435990?" class="sc-f1fc5137-2 gdXoBA"/><div class="sc-f1fc5137-3 ivkHMN"><span>pushed <!-- -->2<!-- --> commit<!-- -->s<!-- --> to <span class="sc-3469ce87-1 cVyDJD">jelmar</span></span></div><div class="sc-f1fc5137-5 bFMIRG">1 week ago</div></a><a href="https://github.com/F5OEO/rpitx" target="_blank" class="sc-f1fc5137-1 dDSNPp"><img height="35" width="35" src="https://avatars.githubusercontent.com/u/4435990?" class="sc-f1fc5137-2 gdXoBA"/><div class="sc-f1fc5137-3 ivkHMN"><span>starred <span class="sc-3469ce87-1 cVyDJD">F5OEO/rpitx</span></span></div><div class="sc-f1fc5137-5 bFMIRG">1 week ago</div></a><a href="https://github.com/ocornut/imgui" target="_blank" class="sc-f1fc5137-1 dDSNPp"><img height="35" width="35" src="https://avatars.githubusercontent.com/u/4435990?" class="sc-f1fc5137-2 gdXoBA"/><div class="sc-f1fc5137-3 ivkHMN"><span>starred <span class="sc-3469ce87-1 cVyDJD">ocornut/imgui</span></span></div><div class="sc-f1fc5137-5 bFMIRG">1 week ago</div></a><a href="https://github.com/F1bonacc1/process-compose" target="_blank" class="sc-f1fc5137-1 dDSNPp"><img height="35" width="35" src="https://avatars.githubusercontent.com/u/4435990?" class="sc-f1fc5137-2 gdXoBA"/><div class="sc-f1fc5137-3 ivkHMN"><span>starred <span class="sc-3469ce87-1 cVyDJD">F1bonacc1/process-compose</span></span></div><div class="sc-f1fc5137-5 bFMIRG">1 week ago</div></a></div><div class="sc-f1fc5137-0 sc-46bdd2b9-0 gNfuPm eUpDdR"><h1 class="sc-fadeac6e-1 bxdBtu sc-f1fc5137-4 jWINiI" style="transition:color 350ms ease 0s"> LinkedIn activity </h1><a href="https://www.linkedin.com/feed/update/urn:li:activity:7483598694357860352" target="_blank" class="sc-f1fc5137-1 sc-46bdd2b9-1 dDSNPp ZBOTM"><div class="sc-46bdd2b9-11 iKGfzM"><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 640 512" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path d="M629.657 343.598L528.971 444.284c-9.373 9.372-24.568 9.372-33.941 0L394.343 343.598c-9.373-9.373-9.373-24.569 0-33.941l10.823-10.823c9.562-9.562 25.133-9.34 34.419.492L480 342.118V160H292.451a24.005 24.005 0 0 1-16.971-7.029l-16-16C244.361 121.851 255.069 96 276.451 96H520c13.255 0 24 10.745 24 24v222.118l40.416-42.792c9.285-9.831 24.856-10.054 34.419-.492l10.823 10.823c9.372 9.372 9.372 24.569-.001 33.941zm-265.138 15.431A23.999 23.999 0 0 0 347.548 352H160V169.881l40.416 42.792c9.286 9.831 24.856 10.054 34.419.491l10.822-10.822c9.373-9.373 9.373-24.569 0-33.941L144.971 67.716c-9.373-9.373-24.569-9.373-33.941 0L10.343 168.402c-9.373 9.373-9.373 24.569 0 33.941l10.822 10.822c9.562 9.562 25.133 9.34 34.419-.491L96 169.881V392c0 13.255 10.745 24 24 24h243.549c21.382 0 32.09-25.851 16.971-40.971l-16.001-16z"></path></svg><span>Jelmar Gerritsen<!-- --> reposted</span></div><div class="sc-46bdd2b9-2 knCAuj"><div class="sc-46bdd2b9-3 KiTHe"><img height="40" width="40" src="/images/linkedin/avatars/21937273674acfc9.jpg" alt="Xin Zhang" class="sc-f1fc5137-2 gdXoBA"/></div><div class="sc-46bdd2b9-4 yykhC"><div class="sc-46bdd2b9-5 cqjfgc"><span class="sc-46bdd2b9-6 jBufCe">Xin Zhang</span><span class="sc-46bdd2b9-7 cnTqjr">Postdoc at SRON, working on methane emissions using hyperspectral satellites.</span></div><div class="sc-46bdd2b9-8 jhoncs">1mo<!-- --> â¢<svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 448 512" style="margin-left:0.2rem" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path d="M416 32H31.9C14.3 32 0 46.5 0 64.3v383.4C0 465.5 14.3 480 31.9 480H416c17.6 0 32-14.5 32-32.3V64.3c0-17.8-14.4-32.3-32-32.3zM135.4 416H69V202.2h66.5V416zm-33.2-243c-21.3 0-38.5-17.3-38.5-38.5S80.9 96 102.2 96c21.2 0 38.5 17.3 38.5 38.5 0 21.3-17.2 38.5-38.5 38.5zm282.1 243h-66.4V312c0-24.8-.5-56.7-34.5-56.7-34.6 0-39.9 27-39.9 54.9V416h-66.4V202.2h63.7v29.2h.9c8.9-16.8 30.6-34.5 62.9-34.5 67.2 0 79.7 44.3 79.7 101.9V416z"></path></svg></div></div><div class="sc-46bdd2b9-9 jBIrhg"><div class="sc-46bdd2b9-15 nHkMw"><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 512 512" style="color:var(--color-primary);display:inline;margin-right:0.2rem;transition:color 350ms ease 0s" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path d="M104 224H24c-13.255 0-24 10.745-24 24v240c0 13.255 10.745 24 24 24h80c13.255 0 24-10.745 24-24V248c0-13.255-10.745-24-24-24zM64 472c-13.255 0-24-10.745-24-24s10.745-24 24-24 24 10.745 24 24-10.745 24-24 24zM384 81.452c0 42.416-25.97 66.208-33.277 94.548h101.723c33.397 0 59.397 27.746 59.553 58.098.084 17.938-7.546 37.249-19.439 49.197l-.11.11c9.836 23.337 8.237 56.037-9.308 79.469 8.681 25.895-.069 57.704-16.382 74.757 4.298 17.598 2.244 32.575-6.148 44.632C440.202 511.587 389.616 512 346.839 512l-2.845-.001c-48.287-.017-87.806-17.598-119.56-31.725-15.957-7.099-36.821-15.887-52.651-16.178-6.54-.12-11.783-5.457-11.783-11.998v-213.77c0-3.2 1.282-6.271 3.558-8.521 39.614-39.144 56.648-80.587 89.117-113.111 14.804-14.832 20.188-37.236 25.393-58.902C282.515 39.293 291.817 0 312 0c24 0 72 8 72 81.452z"></path></svg><span>125</span></div></div></div><span class="sc-46bdd2b9-10 hvbqRL"> 212 <span class="break-words tvm-parent-container"> 213 <span dir="ltr">ð Excited to share our new paper and the open-source Python package, HyperGas! HyperGas provides a consistent and transparent system for quantifying facility-level greenhouse gas emissions using hyperspectral observations.<span><br></span><span><br></span>ð Key features:<span><br></span><span><br></span>1ï¸â£ Read Level-1 radiance data from hyperspectral satellite imagers, including EnMAP, EMIT, and PRISMA,â¦</span></span></span><div class="sc-46bdd2b9-12 fmnAks"></div></a><a href="https://www.linkedin.com/feed/update/urn:li:activity:7467107496692858880" target="_blank" class="sc-f1fc5137-1 sc-46bdd2b9-1 dDSNPp ZBOTM"><div class="sc-46bdd2b9-11 iKGfzM"><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 640 512" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path d="M629.657 343.598L528.971 444.284c-9.373 9.372-24.568 9.372-33.941 0L394.343 343.598c-9.373-9.373-9.373-24.569 0-33.941l10.823-10.823c9.562-9.562 25.133-9.34 34.419.492L480 342.118V160H292.451a24.005 24.005 0 0 1-16.971-7.029l-16-16C244.361 121.851 255.069 96 276.451 96H520c13.255 0 24 10.745 24 24v222.118l40.416-42.792c9.285-9.831 24.856-10.054 34.419-.492l10.823 10.823c9.372 9.372 9.372 24.569-.001 33.941zm-265.138 15.431A23.999 23.999 0 0 0 347.548 352H160V169.881l40.416 42.792c9.286 9.831 24.856 10.054 34.419.491l10.822-10.822c9.373-9.373 9.373-24.569 0-33.941L144.971 67.716c-9.373-9.373-24.569-9.373-33.941 0L10.343 168.402c-9.373 9.373-9.373 24.569 0 33.941l10.822 10.822c9.562 9.562 25.133 9.34 34.419-.491L96 169.881V392c0 13.255 10.745 24 24 24h243.549c21.382 0 32.09-25.851 16.971-40.971l-16.001-16z"></path></svg><span>Jelmar Gerritsen<!-- --> reposted</span></div><div class="sc-46bdd2b9-2 knCAuj"><div class="sc-46bdd2b9-3 KiTHe"><img height="40" width="40" src="/images/linkedin/avatars/095c1372d5d0bba8.jpg" alt="Ilse Aben" class="sc-f1fc5137-2 gdXoBA"/></div><div class="sc-46bdd2b9-4 yykhC"><div class="sc-46bdd2b9-5 cqjfgc"><span class="sc-46bdd2b9-6 jBufCe">Ilse Aben</span><span class="sc-46bdd2b9-7 cnTqjr">Senior Scientist at SRON Space Research Organisation Netherlands</span></div><div class="sc-46bdd2b9-8 jhoncs">3mo<!-- --> â¢<svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 448 512" style="margin-left:0.2rem" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path d="M416 32H31.9C14.3 32 0 46.5 0 64.3v383.4C0 465.5 14.3 480 31.9 480H416c17.6 0 32-14.5 32-32.3V64.3c0-17.8-14.4-32.3-32-32.3zM135.4 416H69V202.2h66.5V416zm-33.2-243c-21.3 0-38.5-17.3-38.5-38.5S80.9 96 102.2 96c21.2 0 38.5 17.3 38.5 38.5 0 21.3-17.2 38.5-38.5 38.5zm282.1 243h-66.4V312c0-24.8-.5-56.7-34.5-56.7-34.6 0-39.9 27-39.9 54.9V416h-66.4V202.2h63.7v29.2h.9c8.9-16.8 30.6-34.5 62.9-34.5 67.2 0 79.7 44.3 79.7 101.9V416z"></path></svg></div></div><div class="sc-46bdd2b9-9 jBIrhg"><div class="sc-46bdd2b9-15 nHkMw"><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 512 512" style="color:var(--color-primary);display:inline;margin-right:0.2rem;transition:color 350ms ease 0s" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path d="M104 224H24c-13.255 0-24 10.745-24 24v240c0 13.255 10.745 24 24 24h80c13.255 0 24-10.745 24-24V248c0-13.255-10.745-24-24-24zM64 472c-13.255 0-24-10.745-24-24s10.745-24 24-24 24 10.745 24 24-10.745 24-24 24zM384 81.452c0 42.416-25.97 66.208-33.277 94.548h101.723c33.397 0 59.397 27.746 59.553 58.098.084 17.938-7.546 37.249-19.439 49.197l-.11.11c9.836 23.337 8.237 56.037-9.308 79.469 8.681 25.895-.069 57.704-16.382 74.757 4.298 17.598 2.244 32.575-6.148 44.632C440.202 511.587 389.616 512 346.839 512l-2.845-.001c-48.287-.017-87.806-17.598-119.56-31.725-15.957-7.099-36.821-15.887-52.651-16.178-6.54-.12-11.783-5.457-11.783-11.998v-213.77c0-3.2 1.282-6.271 3.558-8.521 39.614-39.144 56.648-80.587 89.117-113.111 14.804-14.832 20.188-37.236 25.393-58.902C282.515 39.293 291.817 0 312 0c24 0 72 8 72 81.452z"></path></svg><span>60</span></div></div></div><span class="sc-46bdd2b9-10 hvbqRL"> 214 <span class="break-words tvm-parent-container"> 215 <span dir="ltr">Sign the petition to keep TROPOMI Sentinel-5 Precursor going !<s
215pan class="white-space-pre"> </span><span><br></span><span><br></span><span class='link'>https://lnkd.in/dCqTga5U</span><span><br></span><span><br></span>And share in your network</span> 216 </span> 217 </span><div class="sc-46bdd2b9-12 fmnAFo"><div style="grid-row:1;grid-column:1" class="sc-46bdd2b9-13 clCwem"><img alt="image" loading="lazy" decoding="async" data-nimg="fill" class="sc-46bdd2b9-14 kptaTT" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent;background-size:cover;background-position:50% 50%;background-repeat:no-repeat;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' %3E%3Cfilter id='b' color-interpolation-filters='sRGB'%3E%3CfeGaussianBlur stdDeviation='20'/%3E%3CfeColorMatrix values='1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 100 -1' result='s'/%3E%3CfeFlood x='0' y='0' width='100%25' height='100%25'/%3E%3CfeComposite operator='out' in='s'/%3E%3CfeComposite in2='SourceGraphic'/%3E%3CfeGaussianBlur stdDeviation='20'/%3E%3C/filter%3E%3Cimage width='100%25' height='100%25' x='0' y='0' preserveAspectRatio='none' style='filter: url(%23b);' href='data:image/webp;base64,UklGRlwAAABXRUJQVlA4IFAAAACwAQCdASoKAAYAAUAmJZQAAsaM259AAP64X7lxr/drY+kUP7vPsZYv/Go7jN5jd74JcxvrD3AYz/4yjPptwSdnwXAC2fEZnt20CRm+DwAAAA=='/%3E%3C/svg%3E")" sizes="100vw" srcSet="/_next/image?url=%2Fimages%2Flinkedin%2F7467107496692858880%2F0.jpg&w=640&q=75 640w, /_next/image?url=%2Fimages%2Flinkedin%2F7467107496692858880%2F0.jpg&w=750&q=75 750w, /_next/image?url=%2Fimages%2Flinkedin%2F7467107496692858880%2F0.jpg&w=828&q=75 828w, /_next/image?url=%2Fimages%2Flinkedin%2F7467107496692858880%2F0.jpg&w=1080&q=75 1080w, /_next/image?url=%2Fimages%2Flinkedin%2F7467107496692858880%2F0.jpg&w=1200&q=75 1200w, /_next/image?url=%2Fimages%2Flinkedin%2F7467107496692858880%2F0.jpg&w=1920&q=75 1920w, /_next/image?url=%2Fimages%2Flinkedin%2F7467107496692858880%2F0.jpg&w=2048&q=75 2048w, /_next/image?url=%2Fimages%2Flinkedin%2F7467107496692858880%2F0.jpg&w=3840&q=75 3840w" src="/_next/image?url=%2Fimages%2Flinkedin%2F7467107496692858880%2F0.jpg&w=3840&q=75"/></div></div></a></div></div></div></div></main></div><footer style="background:var(--color-muted)" class="sc-e0f25c4f-0 gdlNCG"><div class="sc-e0f25c4f-1 dGuckJ"><div class="sc-e0f25c4f-2 fnNsqL"><span color="var(--color-gray-600)" class="sc-e0f25c4f-4 ljENWa">© <!-- -->2026<!-- --> Jelmar Gerritsen. All rights reserved.</span></div><div class="sc-e0f25c4f-3 ePzmSz"><div class="sc-3502ffbd-0 gsRtLz"><a href="https://github.com/Pocket-titan" rel="noopener noreferrer" target="_blank" title="My GitHub" class="sc-bd7d1a6-0 eeMrQU sc-3502ffbd-1 jajjhf"><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 496 512" aria-label="My GitHub" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path d="M165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6zm-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3zm44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9zM244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8zM97.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1zm-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7zm32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1zm-11.4-14.7c-1.6 1-1.6 3.6 0 5.9 1.6 2.3 4.3 3.3 5.6 2.3 1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2z"></path></svg></a><a href="https://www.linkedin.com/in/jelmargerritsen/" rel="noopener noreferrer" target="_blank" title="My LinkedIn" class="sc-bd7d1a6-0 eeMrQU sc-3502ffbd-1 jajjhf"><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 448 512" aria-label="My LinkedIn" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path d="M416 32H31.9C14.3 32 0 46.5 0 64.3v383.4C0 465.5 14.3 480 31.9 480H416c17.6 0 32-14.5 32-32.3V64.3c0-17.8-14.4-32.3-32-32.3zM135.4 416H69V202.2h66.5V416zm-33.2-243c-21.3 0-38.5-17.3-38.5-38.5S80.9 96 102.2 96c21.2 0 38.5 17.3 38.5 38.5 0 21.3-17.2 38.5-38.5 38.5zm282.1 243h-66.4V312c0-24.8-.5-56.7-34.5-56.7-34.6 0-39.9 27-39.9 54.9V416h-66.4V202.2h63.7v29.2h.9c8.9-16.8 30.6-34.5 62.9-34.5 67.2 0 79.7 44.3 79.7 101.9V416z"></path></svg></a><a href="https://x.com/JelmarGerritsen" rel="noopener noreferrer" target="_blank" title="My X" class="sc-bd7d1a6-0 eeMrQU sc-3502ffbd-1 jajjhf"><svg xmlns="http://www.w3.org/2000/svg" height="1em" viewBox="0 0 512 512" aria-label="My X"><path d="M389.2 48h70.6L305.6 224.2 487 464H345L233.7 318.6 106.5 464H35.8L200.7 275.5 26.8 48H172.4L272.9 180.9 389.2 48zM364.4 421.8h39.1L151.1 88h-42L364.4 421.8z"></path></svg></a><a href="mailto:[email protected]" rel="noopener noreferrer" target="_blank" title="Send me an email" class="sc-bd7d1a6-0 eeMrQU sc-3502ffbd-1 jajjhf"><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 512 512" aria-label="Send me an email" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path d="M502.3 190.8c3.9-3.1 9.7-.2 9.7 4.7V400c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V195.6c0-5 5.7-7.8 9.7-4.7 22.4 17.4 52.1 39.5 154.1 113.6 21.1 15.4 56.7 47.8 92.2 47.6 35.7.3 72-32.8 92.3-47.6 102-74.1 131.6-96.3 154-113.7zM256 320c23.2.4 56.
2176-29.2 73.4-41.4 132.7-96.3 142.8-104.7 173.4-128.7 5.8-4.5 9.2-11.5 9.2-18.9v-19c0-26.5-21.5-48-48-48H48C21.5 64 0 85.5 0 112v19c0 7.4 3.4 14.3 9.2 18.9 30.6 23.9 40.7 32.4 173.4 128.7 16.8 12.2 50.2 41.8 73.4 41.4z"></path></svg></a></div></div></div></footer></div></div>
217<script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{"events":[{"id":"19878969131","type":"CreateEvent","actor":{"id":4435990,"login":"Pocket-titan","display_login":"Pocket-titan","gravatar_id":"","url":"https://api.github.com/users/Pocket-titan","avatar_url":"https://avatars.githubusercontent.com/u/4435990?"},"repo":{"id":720479967,"name":"Pocket-titan/jelmar","url":"https://api.github.com/repos/Pocket-titan/jelmar"},"payload":{"ref":"feat/we-are-so-back","ref_type":"branch","full_ref":"refs/heads/feat/we-are-so-back","master_branch":"main","description":"personal website","pusher_type":"user"},"public":true,"created_at":"2026-09-02T10:01:39Z"},{"id":"19862263887","type":"PushEvent","actor":{"id":4435990,"login":"Pocket-titan","display_login":"Pocket-titan","gravatar_id":"","url":"https://api.github.com/users/Pocket-titan","avatar_url":"https://avatars.githubusercontent.com/u/4435990?"},"repo":{"id":720479967,"name":"Pocket-titan/jelmar","url":"https://api.github.com/repos/Pocket-titan/jelmar"},"payload":{"repository_id":720479967,"push_id":42256223721,"ref":"refs/heads/main","head":"3d2b53a6be46003400915a1997ef9e9e3ea7e242","before":"c957b912716fcad54c96c3eb75c4984310cb7003"},"public":true,"created_at":"2026-09-02T10:14:57Z"}
217,{"id":"19790391175","type":"PushEvent","actor":{"id":4435990,"login":"Pocket-titan","display_login":"Pocket-titan","gravatar_id":"","url":"https://api.github.com/users/Pocket-titan","avatar_url":"https://avatars.githubusercontent.com/u/4435990?"},"repo":{"id":720479967,"name":"Pocket-titan/jelmar","url":"https://api.github.com/repos/Pocket-titan/jelmar"},"payload":{"repository_id":720479967,"push_id":42256198556,"ref":"refs/heads/feat/we-are-so-back","head":"3d2b53a6be46003400915a1997ef9e9e3ea7e242","before":"0199b1565af5f88571777fc38086ebb9442fe949"},"public":true,"created_at":"2026-09-02T10:14:46Z"},{"id":"14210929120","type":"WatchEvent","actor":{"id":4435990,"login":"Pocket-titan","display_login":"Pocket-titan","gravatar_id":"","url":"https://api.github.com/users/Pocket-titan","avatar_url":"https://avatars.githubusercontent.com/u/4435990?"},"repo":{"id":44688186,"name":"F5OEO/rpitx","url":"https://api.github.com/repos/F5OEO/rpitx"},"payload":{"action":"started"},"public":true,"created_at":"2026-09-01T14:53:18Z"},{"id":"14210927694","type":"WatchEvent","actor":{"id":4435990,"login":"Pocket-titan","display_login":"Pocket-titan","gravatar_id":"","url":"https://api.github.com/users/Pocket-titan","avatar_url":"https://avatars.githubusercontent.com/u/4435990?"},"repo":{"id":22067521,"name":"ocornut/imgui","url":"https://api.github.com/repos/ocornut/imgui"},"payload":{"action":"started"},"public":true,"created_at":"2026-09-01T14:53:17Z"}
217,{"id":"14210925546","type":"WatchEvent","actor":{"id":4435990,"login":"Pocket-titan","display_login":"Pocket-titan","gravatar_id":"","url":"https://api.github.com/users/Pocket-titan","avatar_url":"https://avatars.githubusercontent.com/u/4435990?"},"repo":{"id":478293508,"name":"F1bonacc1/process-compose","url":"https://api.github.com/repos/F1bonacc1/process-compose"},"payload":{"action":"started"},"public":true,"created_at":"2026-09-01T14:53:14Z"},{"id":"14210773153","type":"WatchEvent","actor":{"id":4435990,"login":"Pocket-titan","display_login":"Pocket-titan","gravatar_id":"","url":"https://api.github.com/users/Pocket-titan","avatar_url":"https://avatars.githubusercontent.com/u/4435990?"},"repo":{"id":988647442,"name":"ClusterM/flipper_rc","url":"https://api.github.com/repos/ClusterM/flipper_rc"},"payload":{"action":"started"},"public":true,"created_at":"2026-09-01T14:50:22Z"},{"id":"14210720344","type":"WatchEvent","actor":{"id":4435990,"login":"Pocket-titan","display_login":"Pocket-titan","gravatar_id":"","url":"https://api.github.com/users/Pocket-titan","avatar_url":"https://avatars.githubusercontent.com/u/4435990?"},"repo":{"id":3298647,"name":"veeresht/CommPy","url":"https://api.github.com/repos/veeresht/CommPy"},"payload":{"action":"started"},"public":true,"created_at":"2026-09-01T14:49:24Z"},{"id":"19560547132","type":"PushEvent","actor":{"id":4435990,"login":"Pocket-titan","display_login":"Pocket-titan","gravatar_id":"","url":"https://api.github.com/users/Pocket-titan","avatar_url":"https://avatars.githubusercontent.com/u/4435990?"},"repo":{"id":720479967,"name":"Pocket-titan/jelmar","url":"https://api.github.com/repos/Pocket-titan/jelmar"},"payload":{"repository_id":720479967,"push_id":41970175996,"ref":"refs/heads/main","head":"c957b912716fcad54c96c3eb75c4984310cb7003","before":"00b1eea645533199925e070ae7b6b00e71269a82"},"public":true,"created_at":"2026-08-31T16:01:38Z"}],"posts":[{"id":"7483598694357860352","link":"https://www.linkedin.com/feed/update/urn:li:activity:7483598694357860352","date":"2026-07-16T19:09:27.275Z","time_ago":"1mo","text":"ð Excited to share our new paper and the open-source Python package, HyperGas! HyperGas provides a consistent and transparent system for quantifying facility-level greenhouse gas emissions using hyperspectral observations.ð Key features:1ï¸â£ Read Level-1 radiance data from hyperspectral satellite imagers, including EnMAP, EMIT, and PRISMA, and other three-dimensional hyperspectral datasets.2ï¸â£ Retrieve, denoise, and automatically mask trace gas enhancements such as methane and carbon dioxide.3ï¸â£ Process data in batch mode or explore plumes interactively through a graphical user interface.4ï¸â£ Estimate plume emission rates using multiple methods (including IME and CSF), which have been validated against controlled releases.ð We hope HyperGas will be useful for the atmospheric remote sensing community. Contributions, feedback, and feature requests are always welcome!Many thanks to all my collaborators for making this work possible!J.D. (Bram) Maasakkers, Tobias Arie de Jong, Paul Tol, Frances Reuland, Adam Brandt, Eric A. Kort, Taylor Adams, Ilse Abenð Paper: https://lnkd.in/e_nGziaWð Documentation: https://lnkd.in/enXqbd66ðï¸ News: https://lnkd.in/e3tKY_CVhashtag#SRON hashtag#GMH hashtag#Hyperspectral hashtag#Satellite hashtag#RemoteSensing hashtag#GreenhouseGas hashtag#Methane hashtag#CarbonDioxide hashtag#EMIT hashtag#EnMAP hashtag#PRISMA hashtag#Python hashtag#OpenSource","description":"\n \u003cspan class=\"break-words tvm-parent-container\"\u003e\n \u003cspan dir=\"ltr\"\u003eð Excited to share our new paper and the open-source Python package, HyperGas! HyperGas provides a consistent and transparent system for quantifying facility-level greenhouse gas emissions using hyperspectral observations.\u003cspan\u003e\u003cbr\u003e\u003c/span\u003e\u003cspan\u003e\u003cbr\u003e\u003c/span\u003eð Key features:\u003cspan\u003e\u003cbr\u003e\u003c/span\u003e\u003cspan\u003e\u003cbr\u003e\u003c/span\u003e1ï¸â£ Read Level-1 radiance data from hyperspectral satellite imagers, including EnMAP, EMIT, and PRISMA, and other three-dimensional hyperspectral datasets.\u003cspan\u003e\u003cbr\u003e\u003c/span\u003e2ï¸â£ Retrieve, denoise, and automatically mask trace gas enhancements such as\u0026nbsp;methane and carbon dioxide.\u003cspan\u003e\u003cbr\u003e\u003c/span\u003e3ï¸â£ Process data in batch mode or explore plumes interactively through a graphical user interface.\u003cspan\u003e\u003cbr\u003e\u003c/span\u003e4ï¸â£ Estimate plume emission rates using multiple methods (including IME and CSF), which have been validated against controlled releases.\u003cspan\u003e\u003cbr\u003e\u003c/span\u003e\u003cspan\u003e\u003cbr\u003e\u003c/span\u003eð We hope HyperGas will be useful for the atmospheric remote sensing community. Contributions, feedback, and feature requests are always welcome!\u003cspan\u003e\u003cbr\u003e\u003c/span\u003e\u003cspan\u003e\u003cbr\u003e\u003c/span\u003eMany thanks to all my collaborators for making this work possible!\u003cspan\u003e\u003cbr\u003e\u003c/span\u003e\u003cspan\u003e\u003cbr\u003e\u003c/span\u003e\u003cspan\u003e\u003ca tabindex=\"0\" href=\"https://www.linkedin.com/in/jdmaasakkers/\" id=\"ember111\" class=\"ember-view\"\u003eJ.D. (Bram) Maasakkers\u003c/a\u003e\u003c/span\u003e,\u003cspan class=\"white-space-pre\"\u003e \u003c/span\u003e\u003cspan\u003e\u003ca tabindex=\"0\" href=\"https://www.linkedin.com/in/tobias-a-de-jong/\" id=\"ember112\" class=\"ember-view\"\u003eTobias Arie de Jong\u003c/a\u003e\u003c/span\u003e, Paul Tol,\u003cspan class=\"white-space-pre\"\u003e \u003c/span\u003e\u003cspan\u003e\u003ca tabindex=\"0\" href=\"https://www.linkedin.com/in/frances-reuland/\" id=\"ember113\" class=\"ember-view\"\u003eFrances Reuland\u003c/a\u003e\u003c/span\u003e,\u003cspan class=\"white-space-pre\"\u003e \u003c/span\u003e\u003cspan\u003e\u003ca tabindex=\"0\" href=\"https://www.linkedin.com/in/adamrbrandt/\" id=\"ember114\" class=\"ember-view\"\u003eAdam Brandt\u003c/a\u003e\u003c/span\u003e, Eric A. Kort,\u003cspan class=\"white-space-pre\"\u003e \u003c/span\u003e\u003cspan\u003e\u003ca tabindex=\"0\" href=\"https://www.linkedin.com/in/taylor-adams-85438790/\" id=\"ember115\" class=\"ember-view\"\u003eTaylor Adams\u003c/a\u003e\u003c/span\u003e,\u003cspan class=\"white-space-pre\"\u003e \u003c/span\u003e\u003cspan\u003e\u003ca tabindex=\"0\" href=\"https://www.linkedin.com/in/ilse-aben-95a099223/\" id=\"ember116\" class=\"ember-view\"\u003eIlse Aben\u003c/a\u003e\u003c/span\u003e\u003cspan\u003e\u003cbr\u003e\u003c/span\u003e\u003cspan\u003e\u003cbr\u003e\u003c/span\u003eð Paper:\u003cspan class=\"white-space-pre\"\u003e \u003c/span\u003e\u003ca class=\"BJEbSaIJBPeWfhLqLplZbvbHLceVASpzKHENE\" target=\"_self\" tabindex=\"0\" href=\"https://lnkd.in/e_nGziaW\" data-test-app-aware-link=\"\"\u003ehttps://lnkd.in/e_nGziaW\u003c/a\u003e\u003cspan\u003e\u003cbr\u003e\u003c/span\u003eð\u0026nbsp;Documentation:\u003cspan class=\"white-space-pre\"\u003e \u003c/span\u003e\u003ca class=\"BJEbSaIJBPeWfhLqLplZbvbHLceVASpzKHENE\" target=\"_self\" tabindex=\"0\" href=\"https://lnkd.in/enXqbd66\" data-test-app-aware-link=\"\"\u003ehttps://lnkd.in/enXqbd66\u003c/a\u003e\u003cspan\u003e\u003cbr\u003e\u003c/span\u003eðï¸ News:\u003cspan class=\"white-space-pre\"\u003e \u003c/span\u003e\u003ca class=\"BJEbSaIJBPeWfhLqLplZbvbHLceVASpzKHENE\" target=\"_self\" tabindex=\"0\" href=\"https://lnkd.in/e3tKY_CV\" data-test-app-aware-link=\"\"\u003ehttps://lnkd.in/e3tKY_CV\u003c/a\u003e\u003cspan\u003e\u003cbr\u003e\u003c/span\u003e\u003cspan\u003e\u003cbr\u003e\u003c/span\u003e\u003ca class=\"BJEbSaIJBPeWfhLqLplZbvbHLceVASpzKHENE\" tabindex=\"0\" href=\"https://www.linkedin.com/search/results/all/?keywords=%23sron\u0026amp;origin=HASH_TAG_FROM_FEED\" data-test-app-aware-link=\"\"\u003e\u003cspan class=\"visually-hidden\"\u003ehashtag\u003c/span\u003e\u003cspan\u003e\u003cspan aria-hidden=\"true\"\u003e#\u003c/span\u003eSRON\u003c/span\u003e\u003c/a\u003e\u003cspan class=\"white-space-pre\"\u003e \u003c/span\u003e\u003ca class=\"BJEbSaIJBPeWfhLqLplZbvbHLceVASpzKHENE\" tabindex=\"0\" href=\"https://www.linkedin.com/search/results/all/?keywords=%23gmh\u0026amp;origin=HASH_TAG_FROM_FEED\" data-test-app-aware-link=\"\"\u003e\u003cspan class=\"visually-hidden\"\u003ehashtag\u003c/span\u003e\u003cspan\u003e\u003cspan aria-hidden=\"true\"\u003e#\u003c/span\u003eGMH\u003c/span\u003e\u003c/a\u003e\u003cspan class=\"white-space-pre\"\u003e \u003c/span\u003e\u003ca class=\"BJEbSaIJBPeWfhLqLplZbvbHLceVASpzKHENE\" tabindex=\"0\" href=\"https://www.linkedin.com/search/results/all/?keywords=%23hyperspectral\u0026amp;origin=HASH_TAG_FROM_FEED\" data-test-app-aware-link=\"\"\u003e\u003cspan class=\"visually-hidden\"\u003ehashtag\u003c/span\u003e\u003cspan\u003e\u003cspan aria-hidden=\"true\"\u003e#\u003c/span\u003eHyperspectral\u003c/span\u003e\u003c/a\u003e\u003cspan class=\"white-space-pre\"\u003e \u003c/span\u003e\u003ca class=\"BJEbSaIJBPeWfhLqLplZbvbHLceVASpzKHENE\" tabindex=\"0\" href=\"https://www.linkedin.com/search/results/all/?keywords=%23satellite\u0026amp;origin=HASH_TAG_FROM_FEED\" data-test-app-aware-link=\"\"\u003e\u003cspan class=\"visually-hidden\"\u003ehashtag\u003c/span\u003e\u003cspan\u003e\u003cspan aria-hidden=\"true\"\u003e#\u003c/span\u003eSatellite\u003c/span\u003e\u003c/a\u003e\u003cspan class=\"white-space-pre\"\u003e \u003c/span\u003e\u003ca class=\"BJEbSaIJBPeWfhLqLplZbvbHLceVASpzKHENE\" tabindex=\"0\" href=\"https://www.linkedin.com/search/results/all/?keywords=%23remotesensing\u0026amp;origin=HASH_TAG_FROM_FEED\" data-test-app-aware-link=\"\"\u003e\u003cspan class=\"visually-hidden\"\u003ehashtag\u003c/span\u003e\u003cspan\u003e\u003cspan aria-hidden=\"true\"\u003e#\u003c/span\u003eRemoteSensing\u003c/span\u003e\u003c/a\u003e\u003cspan class=\"white-space-pre\"\u003e \u003c/span\u003e\u003ca class=\"BJEbSaIJBPeWfhLqLplZbvbHLceVASpzKHENE\" tabindex=\"0\" href=\"https://www.linkedin.com/search/results/all/?keywords=%23greenhousegas\u0026amp;origin=HASH_TAG_FROM_FEED\" data-test-app-aware-link=\"\"\u003e\u003cspan class=\"visually-hidden\"\u003ehashtag\u003c/span\u003e\u003cspan\u003e\u003cspan aria-hidden=\"true\"\u003e#\u003c/span\u003eGreenhouseGas\u003c/span\u003e\u003c/a\u003e\u003cspan class=\"white-space-pre\"\u003e \u003c/span\u003e\u003ca class=\"BJEbSaIJBPeWfhLqLplZbvbHLceVASpzKHENE\" tabindex=\"0\" href=\"https://www.linkedin.com/search/results/all/?keywords=%23methane\u0026amp;origin=HASH_TAG_FROM_FEED\" data-test-app-aware-link=\"\"\u003e\u003cspan class=\"visually-hidden\"\u003ehashtag\u003c/span\u003e\u003cspan\u003e\u003cspan aria-hidden=\"true\"\u003e#\u003c/span\u003eMethane\u003c/span\u003e\u003c/a\u003e\u003cspan class=\"white-space-pre\"\u003e \u003c/span\u003e\u003ca class=\"BJEbSaIJBPeWfhLqLplZbvbHLceVASpzKHENE\" tabindex=\"0\" href=\"https://www.linkedin.com/search/results/all/?keywords=%23c
217arbondioxide\u0026amp;origin=HASH_TAG_FROM_FEED\" data-test-app-aware-link=\"\"\u003e\u003cspan class=\"visually-hidden\"\u003ehashtag\u003c/span\u003e\u003cspan\u003e\u003cspan aria-hidden=\"true\"\u003e#\u003c/span\u003eCarbonDioxide\u003c/span\u003e\u003c/a\u003e\u003cspan class=\"white-space-pre\"\u003e \u003c/span\u003e\u003ca class=\"BJEbSaIJBPeWfhLqLplZbvbHLceVASpzKHENE\" tabindex=\"0\" href=\"https://www.linkedin.com/search/results/all/?keywords=%23emit\u0026amp;origin=HASH_TAG_FROM_FEED\" data-test-app-aware-link=\"\"\u003e\u003cspan class=\"visually-hidden\"\u003ehashtag\u003c/span\u003e\u003cspan\u003e\u003cspan aria-hidden=\"true\"\u003e#\u003c/span\u003eEMIT\u003c/span\u003e\u003c/a\u003e\u003cspan class=\"white-space-pre\"\u003e \u003c/span\u003e\u003ca class=\"BJEbSaIJBPeWfhLqLplZbvbHLceVASpzKHENE\" tabindex=\"0\" href=\"https://www.linkedin.com/search/results/all/?keywords=%23enmap\u0026amp;origin=HASH_TAG_FROM_FEED\" data-test-app-aware-link=\"\"\u003e\u003cspan class=\"visually-hidden\"\u003ehashtag\u003c/span\u003e\u003cspan\u003e\u003cspan aria-hidden=\"true\"\u003e#\u003c/span\u003eEnMAP\u003c/span\u003e\u003c/a\u003e\u003cspan class=\"white-space-pre\"\u003e \u003c/span\u003e\u003ca class=\"BJEbSaIJBPeWfhLqLplZbvbHLceVASpzKHENE\" tabindex=\"0\" href=\"https://www.linkedin.com/search/results/all/?keywords=%23prisma\u0026amp;origin=HASH_TAG_FROM_FEED\" data-test-app-aware-link=\"\"\u003e\u003cspan class=\"visually-hidden\"\u003ehashtag\u003c/span\u003e\u003cspan\u003e\u003cspan aria-hidden=\"true\"\u003e#\u003c/span\u003ePRISMA\u003c/span\u003e\u003c/a\u003e\u003cspan class=\"white-space-pre\"\u003e \u003c/span\u003e\u003ca class=\"BJEbSaIJBPeWfhLqLplZbvbHLceVASpzKHENE\" tabindex=\"0\" href=\"https://www.linkedin.com/search/results/all/?keywords=%23python\u0026amp;origin=HASH_TAG_FROM_FEED\" data-test-app-aware-link=\"\"\u003e\u003cspan class=\"visually-hidden\"\u003ehashtag\u003c/span\u003e\u003cspan\u003e\u003cspan aria-hidden=\"true\"\u003e#\u003c/span\u003ePython\u003c/span\u003e\u003c/a\u003e\u003cspan class=\"white-space-pre\"\u003e \u003c/span\u003e\u003ca class=\"BJEbSaIJBPeWfhLqLplZbvbHLceVASpzKHENE\" tabindex=\"0\" href=\"https://www.linkedin.com/search/results/all/?keywords=%23opensource\u0026amp;origin=HASH_TAG_FROM_FEED\" data-test-app-aware-link=\"\"\u003e\u003cspan class=\"visually-hidden\"\u003ehashtag\u003c/span\u003e\u003cspan\u003e\u003cspan aria-hidden=\"true\"\u003e#\u003c/span\u003eOpenSource\u003c/span\u003e\u003c/a\u003e\u003c/span\u003e\n \u003c/span\u003e\n ","likes_count":"125","images":[],"author":{"name":"Xin Zhang","headline":"Postdoc at SRON, working on methane emissions using hyperspectral satellites.","profile_url":"https://www.linkedin.com/in/zxdawn","avatar":"/images/linkedin/avatars/21937273674acfc9.jpg"},"reposted_by":{"name":"Jelmar Gerritsen","profile_url":"https://www.linkedin.com/in/jelmargerritsen/"}},{"id":"7467107496692858880","link":"https://www.linkedin.com/feed/update/urn:li:activity:7467107496692858880","date":"2026-06-01T06:59:19.360Z","time_ago":"3mo","text":"Sign the petition to keep TROPOMI Sentinel-5 Precursor going ! https://lnkd.in/dCqTga5UAnd share in your network","description":"\n \u003cspan class=\"break-words tvm-parent-container\"\u003e\n \u003cspan dir=\"ltr\"\u003eSign the petition to keep TROPOMI Sentinel-5 Precursor going !\u003cspan class=\"white-space-pre\"\u003e \u003c/span\u003e\u003cspan\u003e\u003cbr\u003e\u003c/span\u003e\u003cspan\u003e\u003cbr\u003e\u003c/span\u003e\u003ca class=\"BJEbSaIJBPeWfhLqLplZbvbHLceVASpzKHENE\" target=\"_self\" tabindex=\"0\" href=\"https://lnkd.in/dCqTga5U\" data-test-app-aware-link=\"\"\u003ehttps://lnkd.in/dCqTga5U\u003c/a\u003e\u003cspan\u003e\u003cbr\u003e\u003c/span\u003e\u003cspan\u003e\u003cbr\u003e\u003c/span\u003eAnd share in your network\u003c/span\u003e\n \u003c/span\u003e\n ","likes_count":"60","images":[{"src":"/images/linkedin/7467107496692858880/0.jpg","blurDataURL":"data:image/webp;base64,UklGRlwAAABXRUJQVlA4IFAAAACwAQCdASoKAAYAAUAmJZQAAsaM259AAP64X7lxr/drY+kUP7vPsZYv/Go7jN5jd74JcxvrD3AYz/4yjPptwSdnwXAC2fEZnt20CRm+DwAAAA=="}],"author":{"name":"Ilse Aben","headline":"Senior Scientist at SRON Space Research Organisation Netherlands","profile_url":"https://www.linkedin.com/in/ilse-aben-95a099223","avatar":"/images/linkedin/avatars/095c1372d5d0bba8.jpg"},"reposted_by":{"name":"Jelmar Gerritsen","profile_url":"https://www.linkedin.com/in/jelmargerritsen/"}},{"id":"7443940714658316288","link":"https://www.linkedin.com/feed/update/urn:li:activity:7443940714658316288","date":"2026-03-29T08:42:48.105Z","time_ago":"5mo","text":"At Waving we continue to rapidly grow our great tech team, with Jelmar Gerritsen joining us and already making a difference. Jelmar is a MSc graduate from TU Delft | Aerospace Engineering and has an already impressive CV with a for Waving perfect combination of hashtag#AI / hashtag#MachineLearning and hashtag#RemoteSensing expertise, and having contributed to SRON Space Research Organisation Netherlands and hashtag#IAC2024. Welcome aboard Jelmar Gerritsen!If you are interested in Waving or joining, do reach out to any of our team and weâll be happy to tell you more.hashtag#Security hashtag#CriticalInfrastru
217cture hashtag#RemoteSensing hashtag#MachineLearning","description":"\n \u003cspan class=\"break-words tvm-parent-container\"\u003e\n \u003cspan dir=\"ltr\"\u003eAt\u003cspan class=\"white-space-pre\"\u003e \u003c/span\u003e\u003ca class=\"BJEbSaIJBPeWfhLqLplZbvbHLceVASpzKHENE\" target=\"_self\" tabindex=\"0\" href=\"https://www.linkedin.com/company/waving-ai/\" data-test-app-aware-link=\"\"\u003e\u003cspan\u003e\u003cspan\u003eWaving\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e\u003cspan class=\"white-space-pre\"\u003e \u003c/span\u003ewe continue to rapidly grow our great tech team, with\u003cspan class=\"white-space-pre\"\u003e \u003c/span\u003e\u003cspan\u003e\u003ca tabindex=\"0\" href=\"https://www.linkedin.com/in/jelmargerritsen/\" id=\"ember183\" class=\"ember-view\"\u003eJelmar Gerritsen\u003c/a\u003e\u003c/span\u003e\u003cspan class=\"white-space-pre\"\u003e \u003c/span\u003ejoining us and already making a difference.\u003cspan class=\"white-space-pre\"\u003e \u003c/span\u003e\u003cspan\u003e\u003cbr\u003e\u003c/span\u003e\u003cspan\u003e\u003cbr\u003e\u003c/span\u003eJelmar is a MSc graduate from\u003cspan class=\"white-space-pre\"\u003e \u003c/span\u003e\u003ca class=\"BJEbSaIJBPeWfhLqLplZbvbHLceVASpzKHENE\" target=\"_self\" tabindex=\"0\" href=\"https://www.linkedin.com/company/tu-delft-aerospace-engineering/\" data-test-app-aware-link=\"\"\u003e\u003cspan\u003e\u003cspan\u003eTU Delft | Aerospace Engineering\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e\u003cspan class=\"white-space-pre\"\u003e \u003c/span\u003eand has an already impressive CV with a for\u003cspan class=\"white-space-pre\"\u003e \u003c/span\u003e\u003ca class=\"BJEbSaIJBPeWfhLqLplZbvbHLceVASpzKHENE\" target=\"_self\" tabindex=\"0\" href=\"https://www.linkedin.com/company/waving-ai/\" data-test-app-aware-link=\"\"\u003e\u003cspan\u003e\u003cspan\u003eWaving\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e\u003cspan class=\"white-space-pre\"\u003e \u003c/span\u003eperfect combination of\u003cspan class=\"white-space-pre\"\u003e \u003c/span\u003e\u003ca class=\"BJEbSaIJBPeWfhLqLplZbvbHLceVASpzKHENE\" tabindex=\"0\" href=\"https://www.linkedin.com/search/results/all/?keywords=%23ai\u0026amp;origin=HASH_TAG_FROM_FEED\" data-test-app-aware-link=\"\"\u003e\u003cspan class=\"visually-hidden\"\u003ehashtag\u003c/span\u003e\u003cspan\u003e\u003cspan aria-hidden=\"true\"\u003e#\u003c/span\u003eAI\u003c/span\u003e\u003c/a\u003e\u003cspan class=\"white-space-pre\"\u003e \u003c/span\u003e/\u003cspan class=\"white-space-pre\"\u003e \u003c/span\u003e\u003ca class=\"BJEbSaIJBPeWfhLqLplZbvbHLceVASpzKHENE\" tabindex=\"0\" href=\"https://www.linkedin.com/search/results/all/?keywords=%23machinelearning\u0026amp;origin=HASH_TAG_FROM_FEED\" data-test-app-aware-link=\"\"\u003e\u003cspan class=\"visually-hidden\"\u003ehashtag\u003c/span\u003e\u003cspan\u003e\u003cspan aria-hidden=\"true\"\u003e#\u003c/span\u003eMachineLearning\u003c/span\u003e\u003c/a\u003e\u003cspan class=\"white-space-pre\"\u003e \u003c/span\u003eand\u003cspan class=\"white-space-pre\"\u003e \u003c/span\u003e\u003ca class=\"BJEbSaIJBPeWfhLqLplZbvbHLceVASpzKHENE\" tabindex=\"0\" href=\"https://www.linkedin.com/search/results/all/?keywords=%23remotesensing\u0026amp;origin=HASH_TAG_FROM_FEED\" data-test-app-aware-link=\"\"\u003e\u003cspan class=\"visually-hidden\"\u003ehashtag\u003c/span\u003e\u003cspan\u003e\u003cspan aria-hidden=\"true\"\u003e#\u003c/span\u003eRemoteSensing\u003c/span\u003e\u003c/a\u003e\u003cspan class=\"white-space-pre\"\u003e \u003c/span\u003eexpertise, and having contributed to\u003cspan class=\"white-space-pre\"\u003e \u003c/span\u003e\u003ca class=\"BJEbSaIJBPeWfhLqLplZbvbHLceVASpzKHENE\" target=\"_self\" tabindex=\"0\" href=\"https://www.linkedin.com/company/sron/\" data-test-app-aware-link=\"\"\u003e\u003cspan\u003e\u003cspan\u003eSRON Space Research Organisation Netherlands\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e\u003cspan class=\"white-space-pre\"\u003e \u003c/span\u003eand\u003cspan class=\"white-space-pre\"\u003e \u003c/span\u003e\u003ca class=\"BJEbSaIJBPeWfhLqLplZbvbHLceVASpzKHENE\" tabindex=\"0\" href=\"https://www.linkedin.com/search/results/all/?keywords=%23iac2024\u0026amp;origin=HASH_TAG_FROM_FEED\" data-test-app-aware-link=\"\"\u003e\u003cspan class=\"visually-hidden\"\u003ehashtag\u003c/span\u003e\u003cspan\u003e\u003cspan aria-hidden=\"true\"\u003e#\u003c/span\u003eIAC2024\u003c/span\u003e\u003c/a\u003e.\u003cspan class=\"white-space-pre\"\u003e \u003c/span\u003e\u003cspan\u003e\u003cbr\u003e\u003c/span\u003e\u003cspan\u003e\u003cbr\u003e\u003c/span\u003eWelcome aboard\u003cspan class=\"white-space-pre\"\u003e \u003c/span\u003e\u003cspan\u003e\u003ca tabindex=\"0\" href=\"https://www.linkedin.com/in/jelmargerritsen/\" id=\"ember184\" class=\"ember-view\"\u003eJelmar Gerritsen\u003c/a\u003e\u003c/span\u003e!\u003cspan\u003e\u003cbr\u003e\u003c/span\u003e\u003cspan\u003e\u003cbr\u003e\u003c/span\u003eIf you are interested in Waving or joining, do reach out to any of our team and weâll be happy to tell you more.\u003cspan\u003e\u003cbr\u003e\u003c/span\u003e\u003cspan\u003e\u003cbr\u003e\u003c/span\u003e\u003ca class=\"BJEbSaIJBPeWfhLqLplZbvbHLceVASpzKHENE\" tabindex=\"0\" href=\"https://www.linkedin.com/search/results/all/?keywords=%23security\u0026amp;origin=HASH_TAG_FROM_FEED\" data-test-app-aware-link=\"\"\u003e\u003cspan class=\"visually-hidden\"\u003ehashtag\u003c/span\u003e\u003cspan\u003e\u003cspan aria-hidden=\"true\"\u003e#\u003c/span\u003eSecurity\u003c/span\u003e\u003c/a\u003e\u003cspan class=\"white-space-pre\"\u003e \u003c/span\u003e\u003ca class=\"BJEbSaIJBPeWfhLqLplZbvbHLceVASpzKHENE\" tabindex=\"0\" href=\"https://www.linkedin.com/search/results/all/?keywords=%23criticalinfrastru
217cture\u0026amp;origin=HASH_TAG_FROM_FEED\" data-test-app-aware-link=\"\"\u003e\u003cspan class=\"visually-hidden\"\u003ehashtag\u003c/span\u003e\u003cspan\u003e\u003cspan aria-hidden=\"true\"\u003e#\u003c/span\u003eCriticalInfrastructure\u003c/span\u003e\u003c/a\u003e\u003cspan class=\"white-space-pre\"\u003e \u003c/span\u003e\u003ca class=\"BJEbSaIJBPeWfhLqLplZbvbHLceVASpzKHENE\" tabindex=\"0\" href=\"https://www.linkedin.com/search/results/all/?keywords=%23remotesensing\u0026amp;origin=HASH_TAG_FROM_FEED\" data-test-app-aware-link=\"\"\u003e\u003cspan class=\"visually-hidden\"\u003ehashtag\u003c/span\u003e\u003cspan\u003e\u003cspan aria-hidden=\"true\"\u003e#\u003c/span\u003eRemoteSensing\u003c/span\u003e\u003c/a\u003e\u003cspan class=\"white-space-pre\"\u003e \u003c/span\u003e\u003ca class=\"BJEbSaIJBPeWfhLqLplZbvbHLceVASpzKHENE\" tabindex=\"0\" href=\"https://www.linkedin.com/search/results/all/?keywords=%23machinelearning\u0026amp;origin=HASH_TAG_FROM_FEED\" data-test-app-aware-link=\"\"\u003e\u003cspan class=\"visually-hidden\"\u003ehashtag\u003c/span\u003e\u003cspan\u003e\u003cspan aria-hidden=\"true\"\u003e#\u003c/span\u003eMachineLearning\u003c/span\u003e\u003c/a\u003e\u003c/span\u003e\n \u003c/span\u003e\n ","likes_count":"37","images":[{"src":"/images/linkedin/7443940714658316288/0.jpg","blurDataURL":"data:image/webp;base64,UklGRmwAAABXRUJQVlA4IGAAAABQAgCdASoKAAkAAUAmJYwCdAYqDwLOhKt5YwAA/vb+t087x8FY1+hNUKq4QPKoJkeXd/CcfiDCW98zD7bc5kTMK8gjyWfxPhzYKwQ07cXLb7yFzPydRTibwpRUBnSAAAA="}],"author":{"name":"Waving","headline":"2,068 followers","profile_url":"https://www.linkedin.com/company/waving-ai/posts","avatar":"/images/linkedin/avatars/d0e047c02d8131c1.jpg"},"reposted_by":{"name":"Jelmar Gerritsen","profile_url":"https://www.linkedin.com/in/jelmargerritsen/"}},{"id":"7427092600106528768","link":"https://www.linkedin.com/feed/update/urn:li:activity:7427092600106528768","date":"2026-02-10T20:54:24.573Z","time_ago":"6mo","text":"Very happy to announce that I have graduated from TU Delft | Aerospace Engineering! I successfully defended my MSc thesis titled \"Generalized multi-band methane enhancement retrievals using PACE-OCI\", in which I developed a new retrieval algorithm for multispectral methane enhancement retrievals and applied it to OCI, the main instrument aboard the PACE satellite.I'm hugely thankful to the people at SRON Space Research Organisation Netherlands who helped me get here - in particular my supervisors Tobias Arie de Jong and J.D. (Bram) Maasakkers.Now on to the next challenge ð","description":"\n \u003cspan class=\"break-words tvm-parent-container\"\u003e\n \u003cspan dir=\"ltr\"\u003eVery happy to announce that I have graduated from\u003cspan class=\"white-space-pre\"\u003e \u003c/span\u003e\u003ca class=\"BJEbSaIJBPeWfhLqLplZbvbHLceVASpzKHENE\" target=\"_self\" tabindex=\"0\" href=\"https://www.linkedin.com/company/tu-delft-aerospace-engineering/\" data-test-app-aware-link=\"\"\u003e\u003cspan\u003e\u003cspan\u003eTU Delft | Aerospace Engineering\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e! I successfully defended my MSc thesis titled \"Generalized multi-band methane enhancement retrievals using PACE-OCI\", in which I developed a new retrieval algorithm for multispectral methane enhancement retrievals and applied it to OCI, the main instrument aboard the PACE satellite.\u003cspan\u003e\u003cbr\u003e\u003c/span\u003e\u003cspan\u003e\u003cbr\u003e\u003c/span\u003eI'm hugely thankful to the people at\u003cspan class=\"white-space-pre\"\u003e \u003c/span\u003e\u003ca class=\"BJEbSaIJBPeWfhLqLplZbvbHLceVASpzKHENE\" target=\"_self\" tabindex=\"0\" href=\"https://www.linkedin.com/company/sron/\" data-test-app-aware-link=\"\"\u003e\u003cspan\u003e\u003cspan\u003eSRON Space Research Organisation Netherlands\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e\u003cspan class=\"white-space-pre\"\u003e \u003c/span\u003ewho helped me get here - in particular my supervisors\u003cspan class=\"white-space-pre\"\u003e \u003c/span\u003e\u003cspan\u003e\u003ca tabindex=\"0\" href=\"https://www.linkedin.com/in/tobias-a-de-jong/\" id=\"ember216\" class=\"ember-view\"\u003eTobias Arie de Jong\u003c/a\u003e\u003c/span\u003e\u003cspan class=\"white-space-pre\"\u003e \u003c/span\u003eand\u003cspan class=\"white-space-pre\"\u003e \u003c/span\u003e\u003cspan\u003e\u003ca tabindex=\"0\" href=\"https://www.linkedin.com/in/jdmaasakkers/\" id=\"ember217\" class=\"ember-view\"\u003eJ.D. (Bram) Maasakkers\u003c/a\u003e\u003c/span\u003e.\u003cspan\u003e\u003cbr\u003e\u003c/span\u003e\u003cspan\u003e\u003cbr\u003e\u003c/span\u003eNow on to the next challenge ð\u
217003c/span\u003e\n \u003c/span\u003e\n ","likes_count":"83","images":[{"src":"/images/linkedin/7427092600106528768/0.jpg","blurDataURL":"data:image/webp;base64,UklGRnwAAABXRUJQVlA4IHAAAABQAgCdASoKAAgAAUAmJbACdAYrdzYdWj7ZngAA/k8m0WuOfiTZNsldyOTJbfWOg9z7vBcytteq7svVFp0uznLU2Fd+gofpy1P80wRXZiZafz/qnLsePMkn/6amzTpP/M7/PgG3vrria//5pVE+e2gA"},{"src":"/images/linkedin/7427092600106528768/1.jpg","blurDataURL":"data:image/webp;base64,UklGRmgAAABXRUJQVlA4IFwAAACwAQCdASoKAAUAAUAmJYwCdADyf/7UAP7tLrnTxwX9NBoEynsNoJJfS+6wTH/VuHs3SOLfWAKReTno5vl6yPbo5VPZyfrDz3vcxv4OTEuAHbqdW5q++vzUWvcIAA=="}],"author":{"name":"Jelmar Gerritsen","headline":"Software engineer @ Waving.ai","profile_url":"https://www.linkedin.com/in/jelmargerritsen","avatar":"/images/linkedin/avatars/7388566a72ad89d9.jpg"},"reposted_by":null},{"id":"7315487614508101632","link":"https://www.linkedin.com/feed/update/urn:li:activity:7315487614508101632","date":"2025-04-08T21:36:02.486Z","time_ago":"1yr","text":"A little (late) update: back in January, I wrapped up my internship at SRON Space Research Organisation Netherlands. I had a great time and learned a lot about Earth observation and atmospheric modeling. My work focused on comparing fire emissions datasets by using them as priors in the TM5 chemical transport model, and evaluating the results against TROPOMI CO satellite observations.To visualize the large number of generated plots (~5000), I wrote a simple interactive tool. Being able to quickly jump between and cross-compare results is in my opinion a big benefit and makes it way easier to find interesting patterns and formulate hypotheses.Some of my findings:-ð¥ Extreme fires like the 2020 California and 2019â2020 Australia wildfires were underestimated across all inventories- â Australia, Europe, and Boreal Asia showed two fire seasons (a smaller one in spring and a main one in summer); while South America and South Africa experienced extended fire seasons- ð The bottom-up GFED5 inventory performed best overall, while the top-down FINN2.5 often overestimated emissionsâlikely affected by how both handle small firesFor my full results, you can read my report on my page or just shoot me a message ð©I'm also happy to say I'm staying on as a thesis student at SRON! I'll be focusing on methane plume observations from space ð°ï¸","description":"\n \u003cspan class=\"break-words tvm-parent-container\"\u003e\n \u003cspan dir=\"ltr\"\u003eA little (late) update: back in January, I wrapped up my internship at\u003cspan class=\"white-space-pre\"\u003e \u003c/span\u003e\u003ca class=\"BJEbSaIJBPeWfhLqLplZbvbHLceVASpzKHENE\" target=\"_self\" tabindex=\"0\" href=\"https://www.linkedin.com/company/sron/\" data-test-app-aware-link=\"\"\u003e\u003cspan\u003e\u003cspan\u003eSRON Space Research Organisation Netherlands\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e. I had a great time and learned a lot about Earth observation and atmospheric modeling. My work focused on comparing fire emissions datasets by using them as priors in the TM5 chemical transport model, and evaluating the results against TROPOMI CO satellite observations.\u003cspan\u003e\u003cbr\u003e\u003c/span\u003e\u003cspan\u003e\u003cbr\u003e\u003c/span\u003eTo visualize the large number of generated plots (~5000), I wrote a simple interactive tool. Being able to quickly jump between and cross-compare results is in my opinion a big benefit and makes it way easier to find interesting patterns and formulate hypotheses.\u003cspan\u003e\u003cbr\u003e\u003c/span\u003e\u003cspan\u003e\u003cbr\u003e\u003c/span\u003eSome of my findings:\u003cspan\u003e\u003cbr\u003e\u003c/span\u003e-ð¥ Extreme fires like the 2020 California and 2019â2020 Australia wildfires were underestimated across all inventories\u003cspan\u003e\u003cbr\u003e\u003c/span\u003e\u003cspan\u003e\u003cbr\u003e\u003c/span\u003e- â Australia, Europe, and Boreal Asia showed two fire seasons (a smaller one in spring and a main one in summer); while South America and South Africa experienced extended fire seasons\u003cspan\u003e\u003cbr\u003e\u003c/span\u003e\u003cspan\u003e\u003cbr\u003e\u003c/span\u003e- ð The bottom-up GFED5 inventory performed best overall, while the top-down FINN2.5 often overestimated emissionsâlikely affected by how both handle small fires\u003cspan\u003e\u003cbr\u003e\u003c/span\u003e\u003cspan\u003e\u003cbr\u003e\u003c/span\u003eFor my full results, you can read my report on my page or just shoot me a message ð©\u003cspan\u003e\u003cbr\u003e\u003c/span\u003e\u003cspan\u003e\u003cbr\u003e\u003c/span\u003eI'm also happy to say I'm staying on as a thesis student at SRON! I'll be focusing on methane plume observations from space ð°ï¸\u003c/span\u003e\n \u003c/span\u003e\n ","likes_count":"33","images":[{"src":"/images/linkedin/7315487614508101632/0.gif","blurDataURL":"data:image/webp;base64,UklGRlQAAABXRUJQVlA4IEgAAADQAQCdASoKAAYAAUAmJZwAAv+5MoXsiAD+/rEGVJfDT/tD0r7Dfw0Ly0XjctX5EQ8yO9v8/VGLFiZb0R4v0D74Tcq5lMagAAA="},{"src":"/images/linkedin/7315487614508101632/1.jpg","blurDataURL":"data:image/webp;base64,UklGRmgAAABXRUJQVlA4IFwAAADQAQCdASoKAAkAAUAmJQBOgCHheJQnAAD+4pT6yfHElHdl/l7JdM7s2m3TrXr/of0j1DfDbBXyRuNUA2RGfvsp/kE3KovqEXyp9bXHZIdtyf1f9SuiSe1/FYMAAA=="}],"author":{"name":"Jelmar Gerritsen","headline":"Software engineer @ Waving.ai","profile_url":"https://www.linkedin.com/in/jelmargerritsen","avatar":"/images/linkedin/avatars/7388566a72ad89d9.jpg"},"reposted_by":null},{"id":"7254581917734297600","link":"https://www.linkedin.com/feed/update/urn:li:activity:7254581917734297600","date":"2024-10-22T19:58:32.802Z","time_ago":"1yr","text":"It was a busy week at the hashtag#IAC2024 in Milan! I'm very grateful for getting the chance to present my work, and for the new friends and connections I made. Hope to see you all at the next one, and here's to the future ð","description":"\n \u003cspan class=\"break-words tvm-parent-container\"\u003e\n \u003cspan dir=\"ltr\"\u003eIt was a busy week at the\u003cspan class=\"white-space-pre\"\u003e \u003c/span\u003e\u003ca class=\"BJEbSaIJBPeWfhLqLplZbvbHLceVASpzKHENE\" tabindex=\"0\" href=\"https://www.linkedin.com/search/results/all/?keywords=%23iac2024\u0026amp;origin=HASH_TAG_FROM_FEED\" data-test-app-aware-link=\"\"\u003e\u003cspan class=\"visually-hidden\"\u003ehashtag\u003c/span\u003e\u003cspan\u003e\u003cspan aria-hidden=\"true\"\u003e#\u003c/span\u003eIAC2024\u003c/span\u003e\u003c/a\u003e\u003cspan class=\"white-space-pre\"\u003e \u003c/span\u003ein Milan! I'm very grateful for getting the chance to present my work, and for the new friends and connections I made. Hope to see you all at the next one, and here's to the future ð\u
217003c/span\u003e\n \u003c/span\u003e\n ","likes_count":"27","images":[{"src":"/images/linkedin/7254581917734297600/0.jpg","blurDataURL":"data:image/webp;base64,UklGRoIAAABXRUJQVlA4IHYAAAAQAgCdASoKAA0AAUAmJQBOgMW+yYBa8M/gAP70oX3nQoAYFhlNsAlZ/4QxiAkoSwolBv4MiwcOy088N0xsl1/HXbtvXNO/vk4zwgFo1QVv3r1/VBr0L6UTPtt94+YC/eUWaOr3l/vW7wjVXlu02awHnXYyAAAA"},{"src":"/images/linkedin/7254581917734297600/1.jpg","blurDataURL":"data:image/webp;base64,UklGRogAAABXRUJQVlA4IHwAAABQAgCdASoKAAoAAUAmJbACdAD5jZaaK3H/wAAA+UL4V3jI++HKKpA8R+/g1yaCLRLJFtN5hk0sTpe0/+bVn/xiLou5H7a9kHMkPnHkSlpZSXP5ptM9rNCvzHRn3nfURJWidJI5NlFLVfUFJ67P/pKZoE7xMIi+TwdpngAA"},{"src":"/images/linkedin/7254581917734297600/2.jpg","blurDataURL":"data:image/webp;base64,UklGRoYAAABXRUJQVlA4IHoAAAAQAgCdASoKAAwAAUAmJbACdAEDoADPjAMAAPaYdY110tgVISqgNorUih76ysnT6+30gU2iaLso+DdYw9iOO43ztNKaL0cmyjqoIP2ldJUikG/8fTOH4X9/wnP72fGXE+3oUnoD//GLz3f/f2YSiZP7De/5nfMC98/QAA=="},{"src":"/images/linkedin/7254581917734297600/3.jpg","blurDataURL":"data:image/webp;base64,UklGRm4AAABXRUJQVlA4IGIAAAAwAgCdASoKAAcAAUAmJYgCdAYuvmw4BOBOgADLTz30f4IbZOeaBCOwfHmOBD/JTNSP4Q00dxTcWg8Af/NQ5JlWLBDmGw7yl5B1GDI+ux7U7qMnT6pXop2HW2x6AAXxgHgAAA=="}],"author":{"name":"Jelmar Gerritsen","headline":"Software engineer @ Waving.ai","profile_url":"https://www.linkedin.com/in/jelmargerritsen","avatar":"/images/linkedin/avatars/7388566a72ad89d9.jpg"},"reposted_by":null},{"id":"7243312350685011968","link":"https://www.linkedin.com/feed/update/urn:li:activity:7243312350685011968","date":"2024-09-21T17:37:18.639Z","time_ago":"1yr","text":"3 weeks ago I started my new position at SRON as an earth science intern working on fire emissions ð. To get a grasp of the datasets I'm using, I like to visualise things - these are global CO fire emissions during the year 2018. It's truly mind-boggling to see the amount of fires in both Southern Africa and South America. While many of these fires are lit by humans for land management purposes, climate change is contributing to drier environments where fires can both occur and spread more easily.","description":"\n \u003cspan class=\"break-words tvm-parent-container\"\u003e\n \u003cspan dir=\"ltr\"\u003e3 weeks ago I started my new position at SRON as an earth science intern working on fire emissions ð. To get a grasp of the datasets I'm using, I like to visualise things - these are global CO fire emissions during the year 2018. It's truly mind-boggling to see the amount of fires in both Southern Africa and South America. While many of these fires are lit by humans for land management purposes, climate change is contributing to drier environments where fires can both occur and spread more easily.\u003c/span\u003e\n \u003c/span\u003e\n ","likes_count":"43","images":[{"src":"/images/linkedin/7243312350685011968/0.gif","blurDataURL":"data:image/webp;base64,UklGRkYAAABXRUJQVlA4IDoAAADQAQCdASoKAAYAAUAmJYwC7AEOuuK0AAD++oYf+o/x8Lf/CO2sG61XKDh/cus/BwEI/fdJ+p/PyAAA"}],"author":{"name":"Jelmar Gerritsen","headline":"Software engineer @ Waving.ai","profile_url":"https://www.linkedin.com/in/jelmargerritsen","avatar":"/images/linkedin/avatars/7388566a72ad89d9.jpg"},"reposted_by":null},{"id":"7219074694535151617","link":"https://www.linkedin.com/feed/update/urn:li:activity:7219074694535151617","date":"2024-07-16T20:25:31.099Z","time_ago":"2yr","text":"ð After months of hard work, my new personal website over at https://jelmar.eu is finally live! To celebrate, I've written a small blog post on ice sheets and how we use computers to model them. You can read it here: https://lnkd.in/e_xSnSb9.","description":"\n \u003cspan class=\"break-words tvm-parent-container\"\u003e\n \u003cspan dir=\"ltr\"\u003eð After months of hard work, my new personal website over at\u003cspan class=\"white-space-pre\"\u003e \u003c/span\u003e\u003ca class=\"BJEbSaIJBPeWfhLqLplZbvbHLceVASpzKHENE\" target=\"_self\" tabindex=\"0\" href=\"https://jelmar.eu/\" data-test-app-aware-link=\"\"\u003ehttps://jelmar.eu\u003c/a\u003e\u003cspan class=\"white-space-pre\"\u003e \u003c/span\u003eis finally live! To celebrate, I've written a small blog post on ice sheets and how we use computers to model them. You can read it here:\u003cspan class=\"white-space-pre\"\u003e \u003c/span\u003e\u003ca class=\"BJEbSaIJBPeWfhLqLplZbvbHLceVASpzKHENE\" target=\"_self\" tabindex=\"0\" href=\"https://lnkd.in/e_xSnSb9\" data-test-app-aware-link=\"\"\u003ehttps://lnkd.in/e_xSnSb9\u003c/a\u003e.\u003c/span\u003e\n \u003c/span\u003e\n ","likes_count":"21","images":[],"author":{"name":"Jelmar Gerritsen","headline":"Software engineer @ Waving.ai","profile_url":"https://www.linkedin.com/in/jelmargerritsen","avatar":"/images/linkedin/avatars/7388566a72ad89d9.jpg"},"reposted_by":null},{"id":"7197627068400943104","link":"https://www.linkedin.com/feed/update/urn:li:activity:7197627068400943104","date":"2024-05-18T16:00:18.551Z","time_ago":"2yr","text":"I just published Apygee, a small Python package for working with and making sense of Kepler orbits. Check it out on GitHub (https://lnkd.in/eZfQSswy) or PyPi (https://lnkd.in/en79NBeP)!","description":"\n \u003cspan class=\"break-words tvm-parent-container\"\u003e\n \u003cspan dir=\"ltr\"\u003eI just published Apygee, a small Python package for working with and making sense of Kepler orbits. Check it out on GitHub (\u003ca class=\"BJEbSaIJBPeWfhLqLplZbvbHLceVASpzKHENE\" target=\"_self\" tabindex=\"0\" href=\"https://lnkd.in/eZfQSswy\" data-test-app-aware-link=\"\"\u003ehttps://lnkd.in/eZfQSswy\u003c/a\u003e) or PyPi (\u003ca class=\"BJEbSaIJBPeWfhLqLplZbvbHLceVASpzKHENE\" target=\"_self\" tabindex=\"0\" href=\"https://lnkd.in/en79NBeP\" data-test-app-aware-link=\"\"\u003ehttps://lnkd.in/en79NBeP\u003c/a\u003e)!\u003c/span\u003e\n \u003c/span\u003e\n ","likes_count":"9","images":[{"src":"/images/linkedin/7197627068400943104/0.jpg","blurDataURL":"data:image/webp;base64,UklGRkQAAABXRUJQVlA4IDgAAACwAQCdASoKAAQAAUAmJYwCdADp7m/IAP78cGvk3waYAL79RreUmib+2L8tsUyxuk/U/0MHxXwAAA=="},{"src":"/images/linkedin/7197627068400943104/1.gif","blurDataURL":"data:image/webp;base64,UklGRjwAAABXRUJQVlA4IDAAAADwAQCdASoKAAsAAUAmJZwC7AEOaCO8fgAA/v7bJ8s3OT4rQmelL1JmoUmCcHzCwAA="},{"src":"/images/linkedin/7197627068400943104/2.jpg","blurDataURL":"data:image/webp;base64,UklGRjwAAABXRUJQVlA4IDAAAADwAQCdASoKAAkAAUAmJaQAAxZhG1mMGAAA/v6EgTQi48Oh87wTIDrz56jqasAAAAA="},{"src":"/images/linkedin/7197627068400943104/3.jpg","blurDataURL":"data:image/webp;base64,UklGRkgAAABXRUJQVlA4IDwAAADwAQCdASoKAAsAAUAmJaQAAudjxF0BL8AA/v7K1hF8sAfhRoN2BcZyB8v0U
2175sxt7x7akJKPCmyhsFiOAA="}],"author":{"name":"Jelmar Gerritsen","headline":"Software engineer @ Waving.ai","profile_url":"https://www.linkedin.com/in/jelmargerritsen","avatar":"/images/linkedin/avatars/7388566a72ad89d9.jpg"},"reposted_by":null},{"id":"7191415282962214912","link":"https://www.linkedin.com/feed/update/urn:li:activity:7191415282962214912","date":"2024-05-01T12:36:53.493Z","time_ago":"2yr","text":"ð¥³It's official! Very happy to announce that our paper \"ððððð: ðð¦ð±ðµð¶ð¯ð¦ ðð³ð£ðªðµð¦ð³ ððªð´ð´ðªð°ð¯ ð§ð°ð³ ðð¶ð³ð°ð³ð¢ð ðð¦ðµð¦ð¤ðµðªð°ð¯\" got accepted for presentation at the IAC 2024 in Milan. We'll be speaking on the 17th of October in the 15:00 session on solar system exploration including ocean worlds. If you're there, come say hi to Danny Tjokrosetio and me!","description":"\n \u003cspan class=\"break-words tvm-parent-container\"\u003e\n \u003cspan dir=\"ltr\"\u003eð¥³It's official! Very happy to announce that our paper \"ððððð: ðð¦ð±ðµð¶ð¯ð¦ ðð³ð£ðªðµð¦ð³ ððªð´ð´ðªð°ð¯ ð§ð°ð³ ðð¶ð³ð°ð³ð¢ð ðð¦ðµð¦ð¤ðµðªð°ð¯\" got accepted for presentation at the IAC 2024 in Milan. We'll be speaking on the 17th of October in the 15:00 session on solar system exploration including ocean worlds. If you're there, come say hi to\u003cspan class=\"white-space-pre\"\u003e \u003c/span\u003e\u003cspan\u003e\u003ca tabindex=\"0\" href=\"https://www.linkedin.com/in/danny-tio/\" id=\"ember419\" class=\"ember-view\"\u003eDanny Tjokrosetio\u003c/a\u003e\u003c/span\u003e\u003cspan class=\"white-space-pre\"\u003e \u003c/span\u003eand me!\u003c/span\u003e\n \u003c/span\u003e\n ","likes_count":"17","images":[{"src":"/images/linkedin/7191415282962214912/0.jpg","blurDataURL":"data:image/webp;base64,UklGRlQAAABXRUJQVlA4IEgAAAAQAgCdASoKAAgAAUAmJZwCdH8AF8heUQoAAP77oTPbxDpLMbO0h0CC7U+v+v4iLQkIAhnPHm/XUBhpoJDA1TGDOKtAhtBJAAA="},{"src":"/images/linkedin/7191415282962214912/1.jpg","blurDataURL":"data:image/webp;base64,UklGRlgAAABXRUJQVlA4IEwAAADwAQCdASoKAAYAAUAmJZwC7AEWYSY3WgAA/v3XtA8pq9wuzdN405/b1j0a/7WVEYtzy/i9Zo4Q006Ud/m1t8bM0bCZU1UodSRGqwAA"}],"author":{"name":"Jelmar Gerritsen","headline":"Software engineer @ Waving.ai","profile_url":"https://www.linkedin.com/in/jelmargerritsen","avatar":"/images/linkedin/avatars/7388566a72ad89d9.jpg"},"reposted_by":null}]},"__N_SSG":true},"page":"/","query":{},"buildId":"aPpCufkkKcq-j_mdxoDlO","isFallback":false,"gsp":true,"scriptLoader":[]}</script>
217</body></html>
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.