Help
RSS
API
Feed
Maltego
Contact
Domain > floriansabani.com
×
More information on this domain is in
AlienVault OTX
Is this malicious?
Yes
No
DNS Resolutions
Date
IP Address
2024-11-25
3.166.135.24
(
ClassC
)
2025-10-17
3.163.24.117
(
ClassC
)
Port 80
HTTP/1.1 301 Moved PermanentlyServer: CloudFrontDate: Fri, 17 Oct 2025 03:26:31 GMTContent-Type: text/htmlContent-Length: 167Connection: keep-aliveLocation: https://floriansabani.com/X-Cache: Redirect from cloudfrontVia: 1.1 7f51caabae8141bdcde4283a42be2a56.cloudfront.net (CloudFront)X-Amz-Cf-Pop: HIO52-P2X-Amz-Cf-Id: 3ezJsbuUS9gbXgU8yIZ5g0tWCA7_Yru630J0xjG6_8M-cQVZq2kAsQ html>head>title>301 Moved Permanently/title>/head>body>center>h1>301 Moved Permanently/h1>/center>hr>center>CloudFront/center>/body>/html>
Port 443
HTTP/1.1 200 OKContent-Type: text/html;charsetUTF-8Content-Length: 128360Connection: keep-aliveDate: Fri, 17 Oct 2025 03:26:32 GMTLast-Modified: Sat, 27 Sep 2025 03:41:53 GMTETag: 284f49fb15ea2989b1d25c136875a64ex-amz-server-side-encryption: AES256Cache-Control: public,max-age0,s-maxage86400,stale-while-revalidate86400Accept-Ranges: bytesServer: AmazonS3X-Cache: Miss from cloudfrontVia: 1.1 d220e3f3d93439a8c69225156c6ae800.cloudfront.net (CloudFront)X-Amz-Cf-Pop: HIO52-P2X-Amz-Cf-Id: y0kd5uZs_ZbBT0bcnSu58kzEFNHG4xdHN3NOWvd5z5xu7QjX3sj4Xw !DOCTYPE html>html langen data-themeslack-ochin data-theme-modesingle data-theme-hasheb400bc7 style--theme-font: JetBrains Mono Variable;--ec-frm-frameBoxShdCssVal: none;--ec-frm-edTabBrdRad: 0;--ec-frm-edTabBarBrdCol: color-mix(in srgb, var(--theme-foreground), 10%, transparent);--ec-brdCol: color-mix(in srgb, var(--theme-foreground), 10%, transparent);> head>meta charsetUTF-8>meta contentwidthdevice-width, initial-scale1.0 nameviewport>meta namegenerator contentAstro v5.13.5>meta nametitle contentFlorian Sabani>meta namedescription contentSoftware Engineer | Tech Entrepreneur | Cloud Specialist>meta nameauthor contentFlorian Sabani>meta propertyog:title contentFlorian Sabani>meta propertyog:description contentSoftware Engineer | Tech Entrepreneur | Cloud Specialist>meta propertyog:url contenthttps://floriansabani.com>meta propertyog:type contentwebsite>meta propertyog:image contenthttps://floriansabani.com/social-cards/__default.png>meta nametwitter:card contentsummary_large_image>meta nametwitter:title contentFlorian Sabani>meta nametwitter:description contentSoftware Engineer | Tech Entrepreneur | Cloud Specialist>meta nametwitter:image contenthttps://floriansabani.com/social-cards/__default.png>meta namekeywords contentsoftware engineer, tech entrepreneur, cloud specialist, full stack developer, dipsway, aws>link relcanonical hrefhttps://floriansabani.com>link relsitemap href/sitemap-index.xml>link relicon href/favicon.svg typeimage/svg+xml>link relalternate typeapplication/rss+xml titleFlorian Sabani hrefhttps://floriansabani.com/rss.xml>title>Florian Sabani/title>style>:rootdata-themeandromeeda {--theme-foreground: #d5ced9;--theme-background: #23262e;--theme-accent: #ff00aa;--theme-heading1: #ff00aa;--theme-heading2: #ff00aa;--theme-heading3: #ff00aa;--theme-heading4: #ff00aa;--theme-heading5: #ff00aa;--theme-heading6: #ff00aa;--theme-list: #d5ced9;--theme-italic: #c74ded;--theme-link: #d5ced9;--theme-separator: #d5ced9;--theme-note: #7cb7ff;--theme-tip: #96e072;--theme-important: #ff00aa;--theme-caution: #ffe66d;--theme-warning: #ee5d43;--theme-blue: #7cb7ff;--theme-green: #96e072;--theme-red: #ee5d43;--theme-yellow: #ffe66d;--theme-magenta: #ff00aa;--theme-cyan: #00e8c6;}:rootdata-themeaurora-x {--theme-foreground: #bbbbbb;--theme-background: #07090f;--theme-accent: #c3e88d;--theme-heading1: #c3e88d;--theme-heading2: #c3e88d;--theme-heading3: #c3e88d;--theme-heading4: #c3e88d;--theme-heading5: #c3e88d;--theme-heading6: #c3e88d;--theme-list: #bbbbbb;--theme-italic: #f07178;--theme-link: #82aaff;--theme-separator: #65737e;--theme-note: #2472c8;--theme-tip: #63eb90;--theme-important: #bc3fbc;--theme-caution: #e5e510;--theme-warning: #dd5073;--theme-blue: #2472c8;--theme-green: #63eb90;--theme-red: #dd5073;--theme-yellow: #e5e510;--theme-magenta: #bc3fbc;--theme-cyan: #11a8cd;}:rootdata-themeayu-dark {--theme-foreground: #bfbdb6;--theme-background: #0b0e14;--theme-accent: #aad94c;--theme-heading1: #aad94c;--theme-heading2: #aad94c;--theme-heading3: #aad94c;--theme-heading4: #aad94c;--theme-heading5: #aad94c;--theme-heading6: #aad94c;--theme-list: #bfbdb6;--theme-italic: #f07178;--theme-link: #bfbdb6;--theme-separator: #acb6bf8c;--theme-note: #53bdfa;--theme-tip: #7fd962;--theme-important: #cda1fa;--theme-caution: #f9af4f;--theme-warning: #ea6c73;--theme-blue: #53bdfa;--theme-green: #7fd962;--theme-red: #ea6c73;--theme-yellow: #f9af4f;--theme-magenta: #cda1fa;--theme-cyan: #90e1c6;}:rootdata-themecatppuccin-frappe {--theme-foreground: #c6d0f5;--theme-background: #303446;--theme-accent: #e78284;--theme-heading1: #e78284;--theme-heading2: #ef9f76;--theme-heading3: #e5c890;--theme-heading4: #a6d189;--theme-heading5: #85c1dc;--theme-heading6: #babbf1;--theme-list: #81c8be;--theme-italic: #e78284;--theme-link: #babbf1;--theme-separator: #81c8be;--theme-note: #8caaee;--theme-tip: #a6d189;--theme-important: #f4b8e4;--theme-caution: #e5c890;--theme-warning: #e78284;--theme-blue: #8caaee;--theme-green: #a6d189;--theme-red: #e78284;--theme-yellow: #e5c890;--theme-magenta: #f4b8e4;--theme-cyan: #81c8be;}:rootdata-themecatppuccin-latte {--theme-foreground: #4c4f69;--theme-background: #eff1f5;--theme-accent: #d20f39;--theme-heading1: #d20f39;--theme-heading2: #fe640b;--theme-heading3: #df8e1d;--theme-heading4: #40a02b;--theme-heading5: #209fb5;--theme-heading6: #7287fd;--theme-list: #179299;--theme-italic: #d20f39;--theme-link: #7287fd;--theme-separator: #179299;--theme-note: #1e66f5;--theme-tip: #40a02b;--theme-important: #ea76cb;--theme-caution: #df8e1d;--theme-warning: #d20f39;--theme-blue: #1e66f5;--theme-green: #40a02b;--theme-red: #d20f39;--theme-yellow: #df8e1d;--theme-magenta: #ea76cb;--theme-cyan: #179299;}:rootdata-themecatppuccin-macchiato {--theme-foreground: #cad3f5;--theme-background: #24273a;--theme-accent: #ed8796;--theme-heading1: #ed8796;--theme-heading2: #f5a97f;--theme-heading3: #eed49f;--theme-heading4: #a6da95;--theme-heading5: #7dc4e4;--theme-heading6: #b7bdf8;--theme-list: #8bd5ca;--theme-italic: #ed8796;--theme-link: #b7bdf8;--theme-separator: #8bd5ca;--theme-note: #8aadf4;--theme-tip: #a6da95;--theme-important: #f5bde6;--theme-caution: #eed49f;--theme-warning: #ed8796;--theme-blue: #8aadf4;--theme-green: #a6da95;--theme-red: #ed8796;--theme-yellow: #eed49f;--theme-magenta: #f5bde6;--theme-cyan: #8bd5ca;}:rootdata-themecatppuccin-mocha {--theme-foreground: #cdd6f4;--theme-background: #1e1e2e;--theme-accent: #f38ba8;--theme-heading1: #f38ba8;--theme-heading2: #fab387;--theme-heading3: #f9e2af;--theme-heading4: #a6e3a1;--theme-heading5: #74c7ec;--theme-heading6: #b4befe;--theme-list: #94e2d5;--theme-italic: #f38ba8;--theme-link: #b4befe;--theme-separator: #94e2d5;--theme-note: #89b4fa;--theme-tip: #a6e3a1;--theme-important: #f5c2e7;--theme-caution: #f9e2af;--theme-warning: #f38ba8;--theme-blue: #89b4fa;--theme-green: #a6e3a1;--theme-red: #f38ba8;--theme-yellow: #f9e2af;--theme-magenta: #f5c2e7;--theme-cyan: #94e2d5;}:rootdata-themedark-plus {--theme-foreground: #d4d4d4;--theme-background: #1e1e1e;--theme-accent: #569cd6;--theme-heading1: #569cd6;--theme-heading2: #569cd6;--theme-heading3: #569cd6;--theme-heading4: #569cd6;--theme-heading5: #569cd6;--theme-heading6: #569cd6;--theme-list: #6796e6;--theme-italic: #d4d4d4;--theme-link: #d4d4d4;--theme-separator: #d4d4d4;--theme-note: #2472c8;--theme-tip: #0dbc79;--theme-important: #bc3fbc;--theme-caution: #e5e510;--theme-warning: #cd3131;--theme-blue: #2472c8;--theme-green: #0dbc79;--theme-red: #cd3131;--theme-yellow: #e5e510;--theme-magenta: #bc3fbc;--theme-cyan: #11a8cd;}:rootdata-themedracula {--theme-foreground: #f8f8f2;--theme-background: #282a36;--theme-accent: #bd93f9;--theme-heading1: #bd93f9;--theme-heading2: #bd93f9;--theme-heading3: #bd93f9;--theme-heading4: #bd93f9;--theme-heading5: #bd93f9;--theme-heading6: #bd93f9;--theme-list: #f8f8f2;--theme-italic: #f1fa8c;--theme-link: #f8f8f2;--theme-separator: #6272a4;--theme-note: #bd93f9;--theme-tip: #50fa7b;--theme-important: #ff79c6;--theme-caution: #f1fa8c;--theme-warning: #ff5555;--theme-blue: #bd93f9;--theme-green: #50fa7b;--theme-red: #ff5555;--theme-yellow: #f1fa8c;--theme-magenta: #ff79c6;--theme-cyan: #8be9fd;}:rootdata-themedracula-soft {--theme-foreground: #f6f6f4;--theme-background: #282a36;--theme-accent: #bf9eee;--theme-heading1: #bf9eee;--theme-heading2: #bf9eee;--theme-heading3: #bf9eee;--theme-heading4: #bf9eee;--theme-heading5: #bf9eee;--theme-heading6: #bf9eee;--theme-list: #f6f6f4;--theme-italic: #e7ee98;--theme-link: #f6f6f4;--theme-separator: #7b7f8b;--theme-note: #bf9eee;--theme-tip: #62e884;--theme-important: #f286c4;--theme-caution: #e7ee98;--theme-warning: #ee6666;--theme-blue: #bf9eee;--theme-green: #62e884;--theme-red: #ee6666;--theme-yellow: #e7ee98;--theme-magenta: #f286c4;--theme-cyan: #97e1f1;}:rootdata-themeeverforest-dark {--theme-foreground: #d3c6aa;--theme-background: #2d353b;--theme-accent: #e67e80;--theme-heading1: #e67e80;--theme-heading2: #e69875;--theme-heading3: #dbbc7f;--theme-heading4: #a7c080;--theme-heading5: #7fbbb3;--theme-heading6: #d699b6;--theme-list: #e67e80;--theme-italic: #859289;--theme-link: #d699b6;--theme-separator: #859289;--theme-note: #7fbbb3;--theme-tip: #a7c080;--theme-important: #d699b6;--theme-caution: #dbbc7f;--theme-warning: #e67e80;--theme-blue: #7fbbb3;--theme-green: #a7c080;--theme-red: #e67e80;--theme-yellow: #dbbc7f;--theme-magenta: #d699b6;--theme-cyan: #83c092;}:rootdata-themeeverforest-light {--theme-foreground: #5c6a72;--theme-background: #fdf6e3;--theme-accent: #f85552;--theme-heading1: #f85552;--theme-heading2: #f57d26;--theme-heading3: #dfa000;--theme-heading4: #8da101;--theme-heading5: #3a94c5;--theme-heading6: #df69ba;--theme-list: #f85552;--theme-italic: #939f91;--theme-link: #df69ba;--theme-separator: #939f91;--theme-note: #3a94c5;--theme-tip: #8da101;--theme-important: #df69ba;--theme-caution: #dfa000;--theme-warning: #f85552;--theme-blue: #3a94c5;--theme-green: #8da101;--theme-red: #f85552;--theme-yellow: #dfa000;--theme-magenta: #df69ba;--theme-cyan: #35a77c;}:rootdata-themegithub-dark {--theme-foreground: #e1e4e8;--theme-background: #24292e;--theme-accent: #79b8ff;--theme-heading1: #79b8ff;--theme-heading2: #79b8ff;--theme-heading3: #79b8ff;--theme-heading4: #79b8ff;--theme-heading5: #79b8ff;--theme-heading6: #79b8ff;--theme-list: #ffab70;--theme-italic: #e1e4e8;--theme-link: #e1e4e8;--theme-separator: #79b8ff;--theme-note: #2188ff;--theme-tip: #34d058;--theme-important: #b392f0;--theme-caution: #ffea7f;--theme-warning: #ea4a5a;--theme-blue: #2188ff;--theme-green: #34d058;--theme-red: #ea4a5a;--theme-yellow: #ffea7f;--theme-magenta: #b392f0;--theme-cyan: #39c5cf;}:rootdata-themegithub-dark-default {--theme-foreground: #e6edf3;--theme-background: #0d1117;--theme-accent: #79c0ff;--theme-heading1: #79c0ff;--theme-heading2: #79c0ff;--theme-heading3: #79c0ff;--theme-heading4: #79c0ff;--theme-heading5: #79c0ff;--theme-heading6: #79c0ff;--theme-list: #ffa657;--theme-italic: #e6edf3;--theme-link: #e6edf3;--theme-separator: #79c0ff;--theme-note: #58a6ff;--theme-tip: #3fb950;--theme-important: #bc8cff;--theme-caution: #d29922;--theme-warning: #ff7b72;--theme-blue: #58a6ff;--theme-green: #3fb950;--theme-red: #ff7b72;--theme-yellow: #d29922;--theme-magenta: #bc8cff;--theme-cyan: #39c5cf;}:rootdata-themegithub-dark-dimmed {--theme-foreground: #adbac7;--theme-background: #22272e;--theme-accent: #6cb6ff;--theme-heading1: #6cb6ff;--theme-heading2: #6cb6ff;--theme-heading3: #6cb6ff;--theme-heading4: #6cb6ff;--theme-heading5: #6cb6ff;--theme-heading6: #6cb6ff;--theme-list: #f69d50;--theme-italic: #adbac7;--theme-link: #adbac7;--theme-separator: #6cb6ff;--theme-note: #539bf5;--theme-tip: #57ab5a;--theme-important: #b083f0;--theme-caution: #c69026;--theme-warning: #f47067;--theme-blue: #539bf5;--theme-green: #57ab5a;--theme-red: #f47067;--theme-yellow: #c69026;--theme-magenta: #b083f0;--theme-cyan: #39c5cf;}:rootdata-themegithub-dark-high-contrast {--theme-foreground: #f0f3f6;--theme-background: #0a0c10;--theme-accent: #91cbff;--theme-heading1: #91cbff;--theme-heading2: #91cbff;--theme-heading3: #91cbff;--theme-heading4: #91cbff;--theme-heading5: #91cbff;--theme-heading6: #91cbff;--theme-list: #ffb757;--theme-italic: #f0f3f6;--theme-link: #f0f3f6;--theme-separator: #91cbff;--theme-note: #71b7ff;--theme-tip: #26cd4d;--theme-important: #cb9eff;--theme-caution: #f0b72f;--theme-warning: #ff9492;--theme-blue: #71b7ff;--theme-green: #26cd4d;--theme-red: #ff9492;--theme-yellow: #f0b72f;--theme-magenta: #cb9eff;--theme-cyan: #39c5cf;}:rootdata-themegithub-light {--theme-foreground: #24292e;--theme-background: #fff;--theme-accent: #005cc5;--theme-heading1: #005cc5;--theme-heading2: #005cc5;--theme-heading3: #005cc5;--theme-heading4: #005cc5;--theme-heading5: #005cc5;--theme-heading6: #005cc5;--theme-list: #e36209;--theme-italic: #24292e;--theme-link: #24292e;--theme-separator: #005cc5;--theme-note: #0366d6;--theme-tip: #28a745;--theme-important: #5a32a3;--theme-caution: #dbab09;--theme-warning: #d73a49;--theme-blue: #0366d6;--theme-green: #28a745;--theme-red: #d73a49;--theme-yellow: #dbab09;--theme-magenta: #5a32a3;--theme-cyan: #1b7c83;}:rootdata-themegithub-light-default {--theme-foreground: #1f2328;--theme-background: #ffffff;--theme-accent: #0550ae;--theme-heading1: #0550ae;--theme-heading2: #0550ae;--theme-heading3: #0550ae;--theme-heading4: #0550ae;--theme-heading5: #0550ae;--theme-heading6: #0550ae;--theme-list: #953800;--theme-italic: #1f2328;--theme-link: #1f2328;--theme-separator: #0550ae;--theme-note: #0969da;--theme-tip: #116329;--theme-important: #8250df;--theme-caution: #4d2d00;--theme-warning: #cf222e;--theme-blue: #0969da;--theme-green: #116329;--theme-red: #cf222e;--theme-yellow: #4d2d00;--theme-magenta: #8250df;--theme-cyan: #1b7c83;}:rootdata-themegithub-light-high-contrast {--theme-foreground: #0e1116;--theme-background: #ffffff;--theme-accent: #023b95;--theme-heading1: #023b95;--theme-heading2: #023b95;--theme-heading3: #023b95;--theme-heading4: #023b95;--theme-heading5: #023b95;--theme-heading6: #023b95;--theme-list: #702c00;--theme-italic: #0e1116;--theme-link: #0e1116;--theme-separator: #023b95;--theme-note: #0349b4;--theme-tip: #024c1a;--theme-important: #622cbc;--theme-caution: #3f2200;--theme-warning: #a0111f;--theme-blue: #0349b4;--theme-green: #024c1a;--theme-red: #a0111f;--theme-yellow: #3f2200;--theme-magenta: #622cbc;--theme-cyan: #1b7c83;}:rootdata-themegruvbox-dark-hard {--theme-foreground: #ebdbb2;--theme-background: #1d2021;--theme-accent: #fe8019;--theme-heading1: #fe8019;--theme-heading2: #fe8019;--theme-heading3: #fe8019;--theme-heading4: #fe8019;--theme-heading5: #fe8019;--theme-heading6: #fe8019;--theme-list: #ebdbb2;--theme-italic: #ebdbb2;--theme-link: #928374;--theme-separator: #ebdbb2;--theme-note: #458588;--theme-tip: #98971a;--theme-important: #b16286;--theme-caution: #d79921;--theme-warning: #cc241d;--theme-blue: #458588;--theme-green: #98971a;--theme-red: #cc241d;--theme-yellow: #d79921;--theme-magenta: #b16286;--theme-cyan: #689d6a;}:rootdata-themegruvbox-dark-medium {--theme-foreground: #ebdbb2;--theme-background: #282828;--theme-accent: #fe8019;--theme-heading1: #fe8019;--theme-heading2: #fe8019;--theme-heading3: #fe8019;--theme-heading4: #fe8019;--theme-heading5: #fe8019;--theme-heading6: #fe8019;--theme-list: #ebdbb2;--theme-italic: #ebdbb2;--theme-link: #928374;--theme-separator: #ebdbb2;--theme-note: #458588;--theme-tip: #98971a;--theme-important: #b16286;--theme-caution: #d79921;--theme-warning: #cc241d;--theme-blue: #458588;--theme-green: #98971a;--theme-red: #cc241d;--theme-yellow: #d79921;--theme-magenta: #b16286;--theme-cyan: #689d6a;}:rootdata-themegruvbox-dark-soft {--theme-foreground: #ebdbb2;--theme-background: #32302f;--theme-accent: #fe8019;--theme-heading1: #fe8019;--theme-heading2: #fe8019;--theme-heading3: #fe8019;--theme-heading4: #fe8019;--theme-heading5: #fe8019;--theme-heading6: #fe8019;--theme-list: #ebdbb2;--theme-italic: #ebdbb2;--theme-link: #928374;--theme-separator: #ebdbb2;--theme-note: #458588;--theme-tip: #98971a;--theme-important: #b16286;--theme-caution: #d79921;--theme-warning: #cc241d;--theme-blue: #458588;--theme-green: #98971a;--theme-red: #cc241d;--theme-yellow: #d79921;--theme-magenta: #b16286;--theme-cyan: #689d6a;}:rootdata-themegruvbox-light-hard {--theme-foreground: #3c3836;--theme-background: #f9f5d7;--theme-accent: #af3a03;--theme-heading1: #af3a03;--theme-heading2: #af3a03;--theme-heading3: #af3a03;--theme-heading4: #af3a03;--theme-heading5: #af3a03;--theme-heading6: #af3a03;--theme-list: #3c3836;--theme-italic: #3c3836;--theme-link: #928374;--theme-separator: #3c3836;--theme-note: #458588;--theme-tip: #98971a;--theme-important: #b16286;--theme-caution: #d79921;--theme-warning: #cc241d;--theme-blue: #458588;--theme-green: #98971a;--theme-red: #cc241d;--theme-yellow: #d79921;--theme-magenta: #b16286;--theme-cyan: #689d6a;}:rootdata-themegruvbox-light-medium {--theme-foreground: #3c3836;--theme-background: #fbf1c7;--theme-accent: #af3a03;--theme-heading1: #af3a03;--theme-heading2: #af3a03;--theme-heading3: #af3a03;--theme-heading4: #af3a03;--theme-heading5: #af3a03;--theme-heading6: #af3a03;--theme-list: #3c3836;--theme-italic: #3c3836;--theme-link: #928374;--theme-separator: #3c3836;--theme-note: #458588;--theme-tip: #98971a;--theme-important: #b16286;--theme-caution: #d79921;--theme-warning: #cc241d;--theme-blue: #458588;--theme-green: #98971a;--theme-red: #cc241d;--theme-yellow: #d79921;--theme-magenta: #b16286;--theme-cyan: #689d6a;}:rootdata-themegruvbox-light-soft {--theme-foreground: #3c3836;--theme-background: #f2e5bc;--theme-accent: #af3a03;--theme-heading1: #af3a03;--theme-heading2: #af3a03;--theme-heading3: #af3a03;--theme-heading4: #af3a03;--theme-heading5: #af3a03;--theme-heading6: #af3a03;--theme-list: #3c3836;--theme-italic: #3c3836;--theme-link: #928374;--theme-separator: #3c3836;--theme-note: #458588;--theme-tip: #98971a;--theme-important: #b16286;--theme-caution: #d79921;--theme-warning: #cc241d;--theme-blue: #458588;--theme-green: #98971a;--theme-red: #cc241d;--theme-yellow: #d79921;--theme-magenta: #b16286;--theme-cyan: #689d6a;}:rootdata-themehouston {--theme-foreground: #eef0f9;--theme-background: #17191e;--theme-accent: #4bf3c8;--theme-heading1: #4bf3c8;--theme-heading2: #4bf3c8;--theme-heading3: #4bf3c8;--theme-heading4: #4bf3c8;--theme-heading5: #4bf3c8;--theme-heading6: #4bf3c8;--theme-list: #4bf3c8;--theme-italic: #54b9ff;--theme-link: #00daef;--theme-separator: #eef0f9;--theme-note: #2b7eca;--theme-tip: #23d18b;--theme-important: #ad5dca;--theme-caution: #ffc368;--theme-warning: #dc3657;--theme-blue: #2b7eca;--theme-green: #23d18b;--theme-red: #dc3657;--theme-yellow: #ffc368;--theme-magenta: #ad5dca;--theme-cyan: #24c0cf;}:rootdata-themekanagawa-dragon {--theme-foreground: #c5c9c5;--theme-background: #181616;--theme-accent: #8ba4b0;--theme-heading1: #8ba4b0;--theme-heading2: #8ba4b0;--theme-heading3: #8ba4b0;--theme-heading4: #8ba4b0;--theme-heading5: #8ba4b0;--theme-heading6: #8ba4b0;--theme-list: #c5c9c5;--theme-italic: #c4746e;--theme-link: #b6927b;--theme-separator: #9e9b93;--theme-note: #8ba4b0;--theme-tip: #8a9a7b;--theme-important: #a292a3;--theme-caution: #c4b28a;--theme-warning: #c4746e;--theme-blue: #8ba4b0;--theme-green: #8a9a7b;--theme-red: #c4746e;--theme-yellow: #c4b28a;--theme-magenta: #a292a3;--theme-cyan: #8ea4a2;}:rootdata-themekanagawa-lotus {--theme-foreground: #545464;--theme-background: #f2ecbc;--theme-accent: #4d699b;--theme-heading1: #4d699b;--theme-heading2: #4d699b;--theme-heading3: #4d699b;--theme-heading4: #4d699b;--theme-heading5: #4d699b;--theme-heading6: #4d699b;--theme-list: #545464;--theme-italic: #c84053;--theme-link: #cc6d00;--theme-separator: #4e8ca2;--theme-note: #4d699b;--theme-tip: #6f894e;--theme-important: #b35b79;--theme-caution: #77713f;--theme-warning: #c84053;--theme-blue: #4d699b;--theme-green: #6f894e;--theme-red: #c84053;--theme-yellow: #77713f;--theme-magenta: #b35b79;--theme-cyan: #597b75;}:rootdata-themekanagawa-wave {--theme-foreground: #dcd7ba;--theme-background: #1f1f28;--theme-accent: #7e9cd8;--theme-heading1: #7e9cd8;--theme-heading2: #7e9cd8;--theme-heading3: #7e9cd8;--theme-heading4: #7e9cd8;--theme-heading5: #7e9cd8;--theme-heading6: #7e9cd8;--theme-list: #dcd7ba;--theme-italic: #e46876;--theme-link: #ffa066;--theme-separator: #9cabca;--theme-note: #7e9cd8;--theme-tip: #76946a;--theme-important: #957fb8;--theme-caution: #c0a36e;--theme-warning: #c34043;--theme-blue: #7e9cd8;--theme-green: #76946a;--theme-red: #c34043;--theme-yellow: #c0a36e;--theme-magenta: #957fb8;--theme-cyan: #6a9589;}:rootdata-themelaserwave {--theme-foreground: #ffffff;--theme-background: #27212e;--theme-accent: #40b4c4;--theme-heading1: #40b4c4;--theme-heading2: #40b4c4;--theme-heading3: #40b4c4;--theme-heading4: #40b4c4;--theme-heading5: #40b4c4;--theme-heading6: #40b4c4;--theme-list: #ffffff;--theme-italic: #eb64b9;--theme-link: #b4dce7;--theme-separator: #ffffff;--theme-note: #40b4c4;--theme-tip: #74dfc4;--theme-important: #b381c5;--theme-caution: #ffe261;--theme-warning: #eb64b9;--theme-blue: #40b4c4;--theme-green: #74dfc4;--theme-red: #eb64b9;--theme-yellow: #ffe261;--theme-magenta: #b381c5;--theme-cyan: #b4dce7;}:rootdata-themelight-plus {--theme-foreground: #000000;--theme-background: #ffffff;--theme-accent: #800000;--theme-heading1: #800000;--theme-heading2: #800000;--theme-heading3: #800000;--theme-heading4: #800000;--theme-heading5: #800000;--theme-heading6: #800000;--theme-list: #0451a5;--theme-italic: #000000;--theme-link: #000000;--theme-separator: #000000;--theme-note: #0451a5;--theme-tip: #00bc00;--theme-important: #bc05bc;--theme-caution: #949800;--theme-warning: #cd3131;--theme-blue: #0451a5;--theme-green: #00bc00;--theme-red: #cd3131;--theme-yellow: #949800;--theme-magenta: #bc05bc;--theme-cyan: #0598bc;}:rootdata-themematerial-theme {--theme-foreground: #eeffff;--theme-background: #263238;--theme-accent: #89ddff;--theme-heading1: #89ddff;--theme-heading2: #89ddff;--theme-heading3: #89ddff;--theme-heading4: #89ddff;--theme-heading5: #89ddff;--theme-heading6: #89ddff;--theme-list: #eeffff;--theme-italic: #f07178;--theme-link: #eeffff;--theme-separator: #eeffff;--theme-note: #82aaff;--theme-tip: #c3e88d;--theme-important: #c792ea;--theme-caution: #ffcb6b;--theme-warning: #f07178;--theme-blue: #82aaff;--theme-green: #c3e88d;--theme-red: #f07178;--theme-yellow: #ffcb6b;--theme-magenta: #c792ea;--theme-cyan: #89ddff;}:rootdata-themematerial-theme-darker {--theme-foreground: #eeffff;--theme-background: #212121;--theme-accent: #89ddff;--theme-heading1: #89ddff;--theme-heading2: #89ddff;--theme-heading3: #89ddff;--theme-heading4: #89ddff;--theme-heading5: #89ddff;--theme-heading6: #89ddff;--theme-list: #eeffff;--theme-italic: #f07178;--theme-link: #eeffff;--theme-separator: #eeffff;--theme-note: #82aaff;--theme-tip: #c3e88d;--theme-important: #c792ea;--theme-caution: #ffcb6b;--theme-warning: #f07178;--theme-blue: #82aaff;--theme-green: #c3e88d;--theme-red: #f07178;--theme-yellow: #ffcb6b;--theme-magenta: #c792ea;--theme-cyan: #89ddff;}:rootdata-themematerial-theme-lighter {--theme-foreground: #90a4ae;--theme-background: #fafafa;--theme-accent: #39adb5;--theme-heading1: #39adb5;--theme-heading2: #39adb5;--theme-heading3: #39adb5;--theme-heading4: #39adb5;--theme-heading5: #39adb5;--theme-heading6: #39adb5;--theme-list: #90a4ae;--theme-italic: #e53935;--theme-link: #90a4ae;--theme-separator: #90a4ae;--theme-note: #6182b8;--theme-tip: #91b859;--theme-important: #9c3eda;--theme-caution: #e2931d;--theme-warning: #e53935;--theme-blue: #6182b8;--theme-green: #91b859;--theme-red: #e53935;--theme-yellow: #e2931d;--theme-magenta: #9c3eda;--theme-cyan: #39adb5;}:rootdata-themematerial-theme-ocean {--theme-foreground: #babed8;--theme-background: #0f111a;--theme-accent: #89ddff;--theme-heading1: #89ddff;--theme-heading2: #89ddff;--theme-heading3: #89ddff;--theme-heading4: #89ddff;--theme-heading5: #89ddff;--theme-heading6: #89ddff;--theme-list: #babed8;--theme-italic: #f07178;--theme-link: #babed8;--theme-separator: #babed8;--theme-note: #82aaff;--theme-tip: #c3e88d;--theme-important: #c792ea;--theme-caution: #ffcb6b;--theme-warning: #f07178;--theme-blue: #82aaff;--theme-green: #c3e88d;--theme-red: #f07178;--theme-yellow: #ffcb6b;--theme-magenta: #c792ea;--theme-cyan: #89ddff;}:rootdata-themematerial-theme-palenight {--theme-foreground: #babed8;--theme-background: #292d3e;--theme-accent: #89ddff;--theme-heading1: #89ddff;--theme-heading2: #89ddff;--theme-heading3: #89ddff;--theme-heading4: #89ddff;--theme-heading5: #89ddff;--theme-heading6: #89ddff;--theme-list: #babed8;--theme-italic: #f07178;--theme-link: #babed8;--theme-separator: #babed8;--theme-note: #82aaff;--theme-tip: #c3e88d;--theme-important: #c792ea;--theme-caution: #ffcb6b;--theme-warning: #f07178;--theme-blue: #82aaff;--theme-green: #c3e88d;--theme-red: #f07178;--theme-yellow: #ffcb6b;--theme-magenta: #c792ea;--theme-cyan: #89ddff;}:rootdata-thememin-dark {--theme-foreground: #bbbbbb;--theme-background: #1f1f1f;--theme-accent: #ff7a84;--theme-heading1: #ff7a84;--theme-heading2: #ff7a84;--theme-heading3: #ff7a84;--theme-heading4: #ff7a84;--theme-heading5: #ff7a84;--theme-heading6: #ff7a84;--theme-list: #bbbbbb;--theme-italic: #bbbbbb;--theme-link: #79b8ff;--theme-separator: #bbbbbb;--theme-note: #2472c8;--theme-tip: #0dbc79;--theme-important: #bc3fbc;--theme-caution: #e5e510;--theme-warning: #cd3131;--theme-blue: #2472c8;--theme-green: #0dbc79;--theme-red: #cd3131;--theme-yellow: #e5e510;--theme-magenta: #bc3fbc;--theme-cyan: #11a8cd;}:rootdata-thememin-light {--theme-foreground: #212121;--theme-background: #ffffff;--theme-accent: #6f42c1;--theme-heading1: #6f42c1;--theme-heading2: #6f42c1;--theme-heading3: #6f42c1;--theme-heading4: #6f42c1;--theme-heading5: #6f42c1;--theme-heading6: #6f42c1;--theme-list: #212121;--theme-italic: #212121;--theme-link: #d32f2f;--theme-separator: #212121;--theme-note: #e0e0e0;--theme-tip: #77cc00;--theme-important: #9966cc;--theme-caution: #f29718;--theme-warning: #d32f2f;--theme-blue: #e0e0e0;--theme-green: #77cc00;--theme-red: #d32f2f;--theme-yellow: #f29718;--theme-magenta: #9966cc;--theme-cyan: #4dbf99;}:rootdata-thememonokai {--theme-foreground: #f8f8f2;--theme-background: #272822;--theme-accent: #a6e22e;--theme-heading1: #a6e22e;--theme-heading2: #a6e22e;--theme-heading3: #a6e22e;--theme-heading4: #a6e22e;--theme-heading5: #a6e22e;--theme-heading6: #a6e22e;--theme-list: #a6e22e;--theme-italic: #66d9ef;--theme-link: #ae81ff;--theme-separator: #f8f8f2;--theme-note: #6a7ec8;--theme-tip: #86b42b;--theme-important: #8c6bc8;--theme-caution: #b3b42b;--theme-warning: #c4265e;--theme-blue: #6a7ec8;--theme-green: #86b42b;--theme-red: #c4265e;--theme-yellow: #b3b42b;--theme-magenta: #8c6bc8;--theme-cyan: #56adbc;}:rootdata-themenight-owl {--theme-foreground: #d6deeb;--theme-background: #011627;--theme-accent: #82b1ff;--theme-heading1: #82b1ff;--theme-heading2: #82b1ff;--theme-heading3: #82b1ff;--theme-heading4: #82b1ff;--theme-heading5: #82b1ff;--theme-heading6: #82b1ff;--theme-list: #d6deeb;--theme-italic: #c792ea;--theme-link: #d6deeb;--theme-separator: #d6deeb;--theme-note: #82aaff;--theme-tip: #22da6e;--theme-important: #c792ea;--theme-caution: #c5e478;--theme-warning: #ef5350;--theme-blue: #82aaff;--theme-green: #22da6e;--theme-red: #ef5350;--theme-yellow: #c5e478;--theme-magenta: #c792ea;--theme-cyan: #21c7a8;}:rootdata-themenord {--theme-foreground: #d8dee9;--theme-background: #2e3440;--theme-accent: #88c0d0;--theme-heading1: #88c0d0;--theme-heading2: #88c0d0;--theme-heading3: #88c0d0;--theme-heading4: #88c0d0;--theme-heading5: #88c0d0;--theme-heading6: #88c0d0;--theme-list: #d8dee9;--theme-italic: #d8dee9;--theme-link: #d8dee9;--theme-separator: #d8dee9;--theme-note: #81a1c1;--theme-tip: #a3be8c;--theme-important: #b48ead;--theme-caution: #ebcb8b;--theme-warning: #bf616a;--theme-blue: #81a1c1;--theme-green: #a3be8c;--theme-red: #bf616a;--theme-yellow: #ebcb8b;--theme-magenta: #b48ead;--theme-cyan: #88c0d0;}:rootdata-themeone-dark-pro {--theme-foreground: #abb2bf;--theme-background: #282c34;--theme-accent: #e06c75;--theme-heading1: #e06c75;--theme-heading2: #e06c75;--theme-heading3: #e06c75;--theme-heading4: #e06c75;--theme-heading5: #e06c75;--theme-heading6: #e06c75;--theme-list: #e5c07b;--theme-italic: #c678dd;--theme-link: #61afef;--theme-separator: #abb2bf;--theme-note: #4aa5f0;--theme-tip: #8cc265;--theme-important: #c162de;--theme-caution: #d18f52;--theme-warning: #e05561;--theme-blue: #4aa5f0;--theme-green: #8cc265;--theme-red: #e05561;--theme-yellow: #d18f52;--theme-magenta: #c162de;--theme-cyan: #42b3c2;}:rootdata-themeone-light {--theme-foreground: #383a42;--theme-background: #fafafa;--theme-accent: #e45649;--theme-heading1: #e45649;--theme-heading2: #e45649;--theme-heading3: #e45649;--theme-heading4: #e45649;--theme-heading5: #e45649;--theme-heading6: #e45649;--theme-list: #383a42;--theme-italic: #a626a4;--theme-link: #4078f2;--theme-separator: #383a42;--theme-note: #0451a5;--theme-tip: #00bc00;--theme-important: #bc05bc;--theme-caution: #949800;--theme-warning: #cd3131;--theme-blue: #0451a5;--theme-green: #00bc00;--theme-red: #cd3131;--theme-yellow: #949800;--theme-magenta: #bc05bc;--theme-cyan: #0598bc;}:rootdata-themeplastic {--theme-foreground: #a9b2c3;--theme-background: #21252b;--theme-accent: #a9b2c3;--theme-heading1: #a9b2c3;--theme-heading2: #a9b2c3;--theme-heading3: #a9b2c3;--theme-heading4: #a9b2c3;--theme-heading5: #a9b2c3;--theme-heading6: #a9b2c3;--theme-list: #a9b2c3;--theme-italic: #a9b2c3;--theme-link: #a9b2c3;--theme-separator: #a9b2c3;--theme-note: #61afef;--theme-tip: #98c379;--theme-important: #b57edc;--theme-caution: #e5c07b;--theme-warning: #e06c75;--theme-blue: #61afef;--theme-green: #98c379;--theme-red: #e06c75;--theme-yellow: #e5c07b;--theme-magenta: #b57edc;--theme-cyan: #56b6c2;}:rootdata-themepoimandres {--theme-foreground: #a6accd;--theme-background: #1b1e28;--theme-accent: #5de4c7;--theme-heading1: #5de4c7;--theme-heading2: #5de4c7;--theme-heading3: #5de4c7;--theme-heading4: #5de4c7;--theme-heading5: #5de4c7;--theme-heading6: #5de4c7;--theme-list: #add7ff;--theme-italic: #7390aa;--theme-link: #add7ff;--theme-separator: #767c9d;--theme-note: #89ddff;--theme-tip: #5de4c7;--theme-important: #f087bd;--theme-caution: #fffac2;--theme-warning: #d0679d;--theme-blue: #89ddff;--theme-green: #5de4c7;--theme-red: #d0679d;--theme-yellow: #fffac2;--theme-magenta: #f087bd;--theme-cyan: #89ddff;}:rootdata-themered {--theme-foreground: #f8f8f8;--theme-background: #390000;--theme-accent: #fec758ff;--theme-heading1: #fec758ff;--theme-heading2: #fec758ff;--theme-heading3: #fec758ff;--theme-heading4: #fec758ff;--theme-heading5: #fec758ff;--theme-heading6: #fec758ff;--theme-list: #f8f8f8;--theme-italic: #fb9a4bff;--theme-link: #f8f8f8;--theme-separator: #f8f8f8;--theme-note: #2472c8;--theme-tip: #0dbc79;--theme-important: #bc3fbc;--theme-caution: #e5e510;--theme-warning: #cd3131;--theme-blue: #2472c8;--theme-green: #0dbc79;--theme-red: #cd3131;--theme-yellow: #e5e510;--theme-magenta: #bc3fbc;--theme-cyan: #11a8cd;}:rootdata-themerose-pine {--theme-foreground: #e0def4;--theme-background: #191724;--theme-accent: #e0def4;--theme-heading1: #e0def4;--theme-heading2: #e0def4;--theme-heading3: #e0def4;--theme-heading4: #e0def4;--theme-heading5: #e0def4;--theme-heading6: #e0def4;--theme-list: #e0def4;--theme-italic: #e0def4;--theme-link: #e0def4;--theme-separator: #e0def4;--theme-note: #9ccfd8;--theme-tip: #31748f;--theme-important: #c4a7e7;--theme-caution: #f6c177;--theme-warning: #eb6f92;--theme-blue: #9ccfd8;--theme-green: #31748f;--theme-red: #eb6f92;--theme-yellow: #f6c177;--theme-magenta: #c4a7e7;--theme-cyan: #ebbcba;}:rootdata-themerose-pine-dawn {--theme-foreground: #575279;--theme-background: #faf4ed;--theme-accent: #575279;--theme-heading1: #575279;--theme-heading2: #575279;--theme-heading3: #575279;--theme-heading4: #575279;--theme-heading5: #575279;--theme-heading6: #575279;--theme-list: #575279;--theme-italic: #575279;--theme-link: #575279;--theme-separator: #575279;--theme-note: #56949f;--theme-tip: #286983;--theme-important: #907aa9;--theme-caution: #ea9d34;--theme-warning: #b4637a;--theme-blue: #56949f;--theme-green: #286983;--theme-red: #b4637a;--theme-yellow: #ea9d34;--theme-magenta: #907aa9;--theme-cyan: #d7827e;}:rootdata-themerose-pine-moon {--theme-foreground: #e0def4;--theme-background: #232136;--theme-accent: #e0def4;--theme-heading1: #e0def4;--theme-heading2: #e0def4;--theme-heading3: #e0def4;--theme-heading4: #e0def4;--theme-heading5: #e0def4;--theme-heading6: #e0def4;--theme-list: #e0def4;--theme-italic: #e0def4;--theme-link: #e0def4;--theme-separator: #e0def4;--theme-note: #9ccfd8;--theme-tip: #3e8fb0;--theme-important: #c4a7e7;--theme-caution: #f6c177;--theme-warning: #eb6f92;--theme-blue: #9ccfd8;--theme-green: #3e8fb0;--theme-red: #eb6f92;--theme-yellow: #f6c177;--theme-magenta: #c4a7e7;--theme-cyan: #ea9a97;}:rootdata-themeslack-dark {--theme-foreground: #e6e6e6;--theme-background: #222222;--theme-accent: #569cd6;--theme-heading1: #569cd6;--theme-heading2: #569cd6;--theme-heading3: #569cd6;--theme-heading4: #569cd6;--theme-heading5: #569cd6;--theme-heading6: #569cd6;--theme-list: #6796e6;--theme-italic: #e6e6e6;--theme-link: #e6e6e6;--theme-separator: #e6e6e6;--theme-note: #2472c8;--theme-tip: #0dbc79;--theme-important: #bc3fbc;--theme-caution: #e5e510;--theme-warning: #cd3131;--theme-blue: #2472c8;--theme-green: #0dbc79;--theme-red: #cd3131;--theme-yellow: #e5e510;--theme-magenta: #bc3fbc;--theme-cyan: #11a8cd;}:rootdata-themeslack-ochin {--theme-foreground: #000;--theme-background: #fff;--theme-accent: #000;--theme-heading1: #000;--theme-heading2: #000;--theme-heading3: #000;--theme-heading4: #000;--theme-heading5: #000;--theme-heading6: #000;--theme-list: #000;--theme-italic: #c792ea;--theme-link: #000;--theme-separator: #000;--theme-note: #6182b8;--theme-tip: #91b859;--theme-important: #7c4dff;--theme-caution: #ffb62c;--theme-warning: #e53935;--theme-blue: #6182b8;--theme-green: #91b859;--theme-red: #e53935;--theme-yellow: #ffb62c;--theme-magenta: #7c4dff;--theme-cyan: #39adb5;}:rootdata-themesnazzy-light {--theme-foreground: #565869;--theme-background: #fafbfc;--theme-accent: #2dae58;--theme-heading1: #2dae58;--theme-heading2: #2dae58;--theme-heading3: #2dae58;--theme-heading4: #2dae58;--theme-heading5: #2dae58;--theme-heading6: #2dae58;--theme-list: #565869;--theme-italic: #13bbb7;--theme-link: #09a1ed;--theme-separator: #09a1ed;--theme-note: #09a1ed;--theme-tip: #2dae58;--theme-important: #f767bb;--theme-caution: #cf9c00;--theme-warning: #ff5c57;--theme-blue: #09a1ed;--theme-green: #2dae58;--theme-red: #ff5c57;--theme-yellow: #cf9c00;--theme-magenta: #f767bb;--theme-cyan: #13bbb7;}:rootdata-themesolarized-dark {--theme-foreground: #839496;--theme-background: #002b36;--theme-accent: #268bd2;--theme-heading1: #268bd2;--theme-heading2: #268bd2;--theme-heading3: #268bd2;--theme-heading4: #268bd2;--theme-heading5: #268bd2;--theme-heading6: #268bd2;--theme-list: #839496;--theme-italic: #d33682;--theme-link: #839496;--theme-separator: #839496;--theme-note: #268bd2;--theme-tip: #859900;--theme-important: #d33682;--theme-caution: #b58900;--theme-warning: #dc322f;--theme-blue: #268bd2;--theme-green: #859900;--theme-red: #dc322f;--theme-yellow: #b58900;--theme-magenta: #d33682;--theme-cyan: #2aa198;}:rootdata-themesolarized-light {--theme-foreground: #657b83;--theme-background: #fdf6e3;--theme-accent: #268bd2;--theme-heading1: #268bd2;--theme-heading2: #268bd2;--theme-heading3: #268bd2;--theme-heading4: #268bd2;--theme-heading5: #268bd2;--theme-heading6: #268bd2;--theme-list: #657b83;--theme-italic: #d33682;--theme-link: #657b83;--theme-separator: #657b83;--theme-note: #268bd2;--theme-tip: #859900;--theme-important: #d33682;--theme-caution: #b58900;--theme-warning: #dc322f;--theme-blue: #268bd2;--theme-green: #859900;--theme-red: #dc322f;--theme-yellow: #b58900;--theme-magenta: #d33682;--theme-cyan: #2aa198;}:rootdata-themesynthwave-84 {--theme-foreground: #bbbbbb;--theme-background: #262335;--theme-accent: #ff7edb;--theme-heading1: #ff7edb;--theme-heading2: #ff7edb;--theme-heading3: #ff7edb;--theme-heading4: #ff7edb;--theme-heading5: #ff7edb;--theme-heading6: #ff7edb;--theme-list: #bbbbbb;--theme-italic: #2ee2fa;--theme-link: #fede5d;--theme-separator: #bbbbbb;--theme-note: #03edf9;--theme-tip: #72f1b8;--theme-important: #ff7edb;--theme-caution: #f3e70f;--theme-warning: #fe4450;--theme-blue: #03edf9;--theme-green: #72f1b8;--theme-red: #fe4450;--theme-yellow: #f3e70f;--theme-magenta: #ff7edb;--theme-cyan: #03edf9;}:rootdata-themetokyo-night {--theme-foreground: #a9b1d6;--theme-background: #1a1b26;--theme-accent: #89ddff;--theme-heading1: #89ddff;--theme-heading2: #61bdf2;--theme-heading3: #7aa2f7;--theme-heading4: #6d91de;--theme-heading5: #9aa5ce;--theme-heading6: #747ca1;--theme-list: #a9b1d6;--theme-italic: #c0caf5;--theme-link: #a9b1d6;--theme-separator: #51597d;--theme-note: #7aa2f7;--theme-tip: #73daca;--theme-important: #bb9af7;--theme-caution: #e0af68;--theme-warning: #f7768e;--theme-blue: #7aa2f7;--theme-green: #73daca;--theme-red: #f7768e;--theme-yellow: #e0af68;--theme-magenta: #bb9af7;--theme-cyan: #7dcfff;}:rootdata-themevesper {--theme-foreground: #fff;--theme-background: #101010;--theme-accent: #ffc799;--theme-heading1: #ffc799;--theme-heading2: #ffc799;--theme-heading3: #ffc799;--theme-heading4: #ffc799;--theme-heading5: #ffc799;--theme-heading6: #ffc799;--theme-list: #fff;--theme-italic: #fff;--theme-link: #ffff;--theme-separator: #65737e;--theme-note: #2472c8;--theme-tip: #0dbc79;--theme-important: #bc3fbc;--theme-caution: #e5e510;--theme-warning: #cd3131;--theme-blue: #2472c8;--theme-green: #0dbc79;--theme-red: #cd3131;--theme-yellow: #e5e510;--theme-magenta: #bc3fbc;--theme-cyan: #11a8cd;}:rootdata-themevitesse-black {--theme-foreground: #dbd7cacc;--theme-background: #000;--theme-accent: #4d9375;--theme-heading1: #4d9375;--theme-heading2: #4d9375;--theme-heading3: #4d9375;--theme-heading4: #4d9375;--theme-heading5: #4d9375;--theme-heading6: #4d9375;--theme-list: #d4976c;--theme-italic: #dbd7cacc;--theme-link: #dbd7cacc;--theme-separator: #79b8ff;--theme-note: #6394bf;--theme-tip: #4d9375;--theme-important: #d9739f;--theme-caution: #e6cc77;--theme-warning: #cb7676;--theme-blue: #6394bf;--theme-green: #4d9375;--theme-red: #cb7676;--theme-yellow: #e6cc77;--theme-magenta: #d9739f;--theme-cyan: #5eaab5;}:rootdata-themevitesse-dark {--theme-foreground: #dbd7caee;--theme-background: #121212;--theme-accent: #4d9375;--theme-heading1: #4d9375;--theme-heading2: #4d9375;--theme-heading3: #4d9375;--theme-heading4: #4d9375;--theme-heading5: #4d9375;--theme-heading6: #4d9375;--theme-list: #d4976c;--theme-italic: #dbd7caee;--theme-link: #dbd7caee;--theme-separator: #79b8ff;--theme-note: #6394bf;--theme-tip: #4d9375;--theme-important: #d9739f;--theme-caution: #e6cc77;--theme-warning: #cb7676;--theme-blue: #6394bf;--theme-green: #4d9375;--theme-red: #cb7676;--theme-yellow: #e6cc77;--theme-magenta: #d9739f;--theme-cyan: #5eaab5;}:rootdata-themevitesse-light {--theme-foreground: #393a34;--theme-background: #ffffff;--theme-accent: #1c6b48;--theme-heading1: #1c6b48;--theme-heading2: #1c6b48;--theme-heading3: #1c6b48;--theme-heading4: #1c6b48;--theme-heading5: #1c6b48;--theme-heading6: #1c6b48;--theme-list: #a65e2b;--theme-italic: #393a34;--theme-link: #393a34;--theme-separator: #005cc5;--theme-note: #296aa3;--theme-tip: #1e754f;--theme-important: #a13865;--theme-caution: #bda437;--theme-warning: #ab5959;--theme-blue: #296aa3;--theme-green: #1e754f;--theme-red: #ab5959;--theme-yellow: #bda437;--theme-magenta: #a13865;--theme-cyan: #2993a3;}/style>link relstylesheet href/_astro/about.DpeV0Mop.css>style>a.heading-anchor{display:none!important}:where(data-astro-image){object-fit:var(--fit);object-position:var(--pos);height:auto}:where(data-astro-imagefull-width){width:100%}:where(data-astro-imageconstrained){max-width:100%}/style>script typemodule src/_astro/page.V2R8AmkL.js>/script>/head> body classw-full h-full m-0 bg-background text-foreground style--theme-font: JetBrains Mono Variable;--ec-frm-frameBoxShdCssVal: none;--ec-frm-edTabBrdRad: 0;--ec-frm-edTabBarBrdCol: color-mix(in srgb, var(--theme-foreground), 10%, transparent);--ec-brdCol: color-mix(in srgb, var(--theme-foreground), 10%, transparent);> div classflex flex-col max-w-4xl min-h-screen border-accent/10 m-auto p-3 sm:py-5 sm:px-6 md:py-10 style--theme-font: JetBrains Mono Variable;--ec-frm-frameBoxShdCssVal: none;--ec-frm-edTabBrdRad: 0;--ec-frm-edTabBarBrdCol: color-mix(in srgb, var(--theme-foreground), 10%, transparent);--ec-brdCol: color-mix(in srgb, var(--theme-foreground), 10%, transparent);> header> div classrelative flex items-center justify-between bg-accent/10 rounded-xl> a idlogo href/ classblock px-4 py-1.5 max-w-full no-underline items-center bg-accent text-background font-bold rounded-xl> Florian Sabani /a> div classflex items-center gap-3 sm:mr-3> site-search classms-auto idsearch data-trailing-slashesfalse> button classhover:text-accent flex cursor-pointer items-center justify-center rounded-md aria-keyshortcutsControl+K Meta+K data-open-modal disabled> svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classsize-6 text-accent>path dm21 21-4.34-4.34 />circle cx11 cy11 r8 />/svg> span classsr-only>Open Search/span> /button> dialog aria-labelsearch classtext-foreground! bg-background max-h-5/6 min-h-48 w-7/8 sm:w-5/6 max-w-xl border-double! border-4 border-accent/30 shadow-sm backdrop:backdrop-blur-sm open:flex mx-auto mt-10 sm:mt-16 mb-auto rounded-xl> div classdialog-frame flex grow flex-col gap-4 p-6 pt-6 max-w-full> button classcursor-pointer fixed top-2 right-2 rounded-full data-close-modal> svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classsize-6 text-accent/50>circle cx12 cy12 r10 />path dm15 9-6 6 />path dm9 9 6 6 />/svg> /button> div classsearch-container> div idpagefind-search classmax-w-full>/div> /div> /div> /dialog> /site-search> script typemodule src/_astro/Search.astro_astro_type_script_index_0_lang.DgEFfGQ3.js>/script> nav idnav-mobile aria-labelMenu classp-0 text-accent sm:hidden> button idnav-mobile-button classpx-3 py-1 h-full cursor-pointer border-2 rounded-xl bg-background typebutton aria-expandedfalse aria-controlsnav-menu-list>▾/button> ul idnav-mobile-list classinvisible absolute flex flex-col bg-background shadow text-accent border-2 m-0 p-2.5 top-11.5 left-auto right-0 z-50 rounded-xl> li classp-1 aria-expandedfalse> a classunderline href/> Home /a> /li>li classp-1 aria-expandedfalse> a classunderline href/about> About /a> /li>li classp-1 aria-expandedfalse> a classunderline href/projects> Projects /a> /li>li classp-1 aria-expandedfalse> a classunderline href/posts> Archive /a> /li>li classp-1 aria-expandedfalse> a classunderline relnoopener noreferrer target_blank hrefhttps://github.com/fl0wo> GitHub /a> /li> /ul> /nav> /div> /div> nav aria-labelMenu classp-0 mt-4 ml-0.5 text-accent hidden sm:block> ul classflex flex-row text-accent> li classmr-5 aria-expandedtrue> a classunderline href/> Home /a> /li>li classmr-5 aria-expandedtrue> a classunderline href/about> About /a> /li>li classmr-5 aria-expandedtrue> a classunderline href/projects> Projects /a> /li>li classmr-5 aria-expandedtrue> a classunderline href/posts> Archive /a> /li>li classmr-5 aria-expandedtrue> a classunderline relnoopener noreferrer target_blank hrefhttps://github.com/fl0wo> GitHub /a> /li> /ul> /nav> /header> script typemodule>const tdocument.getElementById(nav-mobile-button),ndocument.getElementById(nav-mobile-list),on?.querySelectorAll(li),ai>{let e!1;e!n?.classList.toggle(invisible),t?.setAttribute(aria-expanded,e?true:false),o?.forEach(l>{l.setAttribute(aria-expanded,e?true:false)})};t?.addEventListener(click,i>{a()});//# sourceMappingURLHeader.astro_astro_type_script_index_0_lang.Cc_FkZiM.js.map/script> main classflex flex-col py-1 style--theme-font: JetBrains Mono Variable;--ec-frm-frameBoxShdCssVal: none;--ec-frm-edTabBrdRad: 0;--ec-frm-edTabBarBrdCol: color-mix(in srgb, var(--theme-foreground), 10%, transparent);--ec-brdCol: color-mix(in srgb, var(--theme-foreground), 10%, transparent);> div classmy-6 md:mx-2> div classflex flex-col sm:flex-row items-center justify-around sm:gap-5 max-w-full mb-6> img src/_astro/flopp2.D7JBJfld_Z2W9AQ.webp srcset/_astro/flopp2.D7JBJfld_Z2sitrV.webp 288w altFlorian Sabani loadingeager decodingsync fetchpriorityhigh width144 height144 classrounded-full border-8 border-accent/15 size-36 aspect-square box-content shrink-0> div> div classm-4 max-w-full prose> p>Founder at a hrefhttps://bluvo.dev relnoreferrer noopener target_blank>Bluvo/a>, APIs for direct deposits from CEX <-> DeFi./p>p>I bought BTC at $500 and sold it at $11k when I was 19yo, then bought again and never sold again T.T/p>p>I love solving real problems and make dev’s lives easier./p> /div> /div> /div> article idgithub-activity-calendar classw-max max-w-full flex flex-col gap-2 text-sm> div classmax-w-full overflow-x-auto pt-0.5 stylescrollbar-gutter:stable> svg classblock visible width844 height130 viewBox0 0 844 130> g> text x32 y0 dominant-baselinehanging fillcurrentColor> Oct /text>text x96 y0 dominant-baselinehanging fillcurrentColor> Nov /text>text x160 y0 dominant-baselinehanging fillcurrentColor> Dec /text>text x240 y0 dominant-baselinehanging fillcurrentColor> Jan /text>text x304 y0 dominant-baselinehanging fillcurrentColor> Feb /text>text x368 y0 dominant-baselinehanging fillcurrentColor> Mar /text>text x448 y0 dominant-baselinehanging fillcurrentColor> Apr /text>text x512 y0 dominant-baselinehanging fillcurrentColor> May /text>text x576 y0 dominant-baselinehanging fillcurrentColor> Jun /text>text x656 y0 dominant-baselinehanging fillcurrentColor> Jul /text>text x720 y0 dominant-baselinehanging fillcurrentColor> Aug /text>text x800 y0 dominant-baselinehanging fillcurrentColor> Sep /text> /g> g transformtranslate(0, 0)> rect classstroke-foreground/10 x0 y22 width12 height12 rx2 ry2 fillvar(--theme-background) data-date2024-09-22 data-level0>/rect>rect classstroke-foreground/10 x0 y38 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 25%, var(--theme-background)) data-date2024-09-23 data-level1>/rect>rect classstroke-foreground/10 x0 y54 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 25%, var(--theme-background)) data-date2024-09-24 data-level1>/rect>rect classstroke-foreground/10 x0 y70 width12 height12 rx2 ry2 fillvar(--theme-background) data-date2024-09-25 data-level0>/rect>rect classstroke-foreground/10 x0 y86 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 25%, var(--theme-background)) data-date2024-09-26 data-level1>/rect>rect classstroke-foreground/10 x0 y102 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 25%, var(--theme-background)) data-date2024-09-27 data-level1>/rect>rect classstroke-foreground/10 x0 y118 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 50%, var(--theme-background)) data-date2024-09-28 data-level2>/rect> /g>g transformtranslate(16, 0)> rect classstroke-foreground/10 x0 y22 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 50%, var(--theme-background)) data-date2024-09-29 data-level2>/rect>rect classstroke-foreground/10 x0 y38 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 25%, var(--theme-background)) data-date2024-09-30 data-level1>/rect>rect classstroke-foreground/10 x0 y54 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 25%, var(--theme-background)) data-date2024-10-01 data-level1>/rect>rect classstroke-foreground/10 x0 y70 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 25%, var(--theme-background)) data-date2024-10-02 data-level1>/rect>rect classstroke-foreground/10 x0 y86 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 25%, var(--theme-background)) data-date2024-10-03 data-level1>/rect>rect classstroke-foreground/10 x0 y102 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 25%, var(--theme-background)) data-date2024-10-04 data-level1>/rect>rect classstroke-foreground/10 x0 y118 width12 height12 rx2 ry2 fillvar(--theme-background) data-date2024-10-05 data-level0>/rect> /g>g transformtranslate(32, 0)> rect classstroke-foreground/10 x0 y22 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 75%, var(--theme-background)) data-date2024-10-06 data-level3>/rect>rect classstroke-foreground/10 x0 y38 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 25%, var(--theme-background)) data-date2024-10-07 data-level1>/rect>rect classstroke-foreground/10 x0 y54 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 25%, var(--theme-background)) data-date2024-10-08 data-level1>/rect>rect classstroke-foreground/10 x0 y70 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 25%, var(--theme-background)) data-date2024-10-09 data-level1>/rect>rect classstroke-foreground/10 x0 y86 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 50%, var(--theme-background)) data-date2024-10-10 data-level2>/rect>rect classstroke-foreground/10 x0 y102 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 25%, var(--theme-background)) data-date2024-10-11 data-level1>/rect>rect classstroke-foreground/10 x0 y118 width12 height12 rx2 ry2 fillvar(--theme-background) data-date2024-10-12 data-level0>/rect> /g>g transformtranslate(48, 0)> rect classstroke-foreground/10 x0 y22 width12 height12 rx2 ry2 fillvar(--theme-background) data-date2024-10-13 data-level0>/rect>rect classstroke-foreground/10 x0 y38 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 50%, var(--theme-background)) data-date2024-10-14 data-level2>/rect>rect classstroke-foreground/10 x0 y54 width12 height12 rx2 ry2 fillvar(--theme-background) data-date2024-10-15 data-level0>/rect>rect classstroke-foreground/10 x0 y70 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 25%, var(--theme-background)) data-date2024-10-16 data-level1>/rect>rect classstroke-foreground/10 x0 y86 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 50%, var(--theme-background)) data-date2024-10-17 data-level2>/rect>rect classstroke-foreground/10 x0 y102 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 25%, var(--theme-background)) data-date2024-10-18 data-level1>/rect>rect classstroke-foreground/10 x0 y118 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 25%, var(--theme-background)) data-date2024-10-19 data-level1>/rect> /g>g transformtranslate(64, 0)> rect classstroke-foreground/10 x0 y22 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 25%, var(--theme-background)) data-date2024-10-20 data-level1>/rect>rect classstroke-foreground/10 x0 y38 width12 height12 rx2 ry2 fillvar(--theme-background) data-date2024-10-21 data-level0>/rect>rect classstroke-foreground/10 x0 y54 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 50%, var(--theme-background)) data-date2024-10-22 data-level2>/rect>rect classstroke-foreground/10 x0 y70 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 25%, var(--theme-background)) data-date2024-10-23 data-level1>/rect>rect classstroke-foreground/10 x0 y86 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 75%, var(--theme-background)) data-date2024-10-24 data-level3>/rect>rect classstroke-foreground/10 x0 y102 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 25%, var(--theme-background)) data-date2024-10-25 data-level1>/rect>rect classstroke-foreground/10 x0 y118 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 25%, var(--theme-background)) data-date2024-10-26 data-level1>/rect> /g>g transformtranslate(80, 0)> rect classstroke-foreground/10 x0 y22 width12 height12 rx2 ry2 fillvar(--theme-background) data-date2024-10-27 data-level0>/rect>rect classstroke-foreground/10 x0 y38 width12 height12 rx2 ry2 fillvar(--theme-background) data-date2024-10-28 data-level0>/rect>rect classstroke-foreground/10 x0 y54 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 50%, var(--theme-background)) data-date2024-10-29 data-level2>/rect>rect classstroke-foreground/10 x0 y70 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 25%, var(--theme-background)) data-date2024-10-30 data-level1>/rect>rect classstroke-foreground/10 x0 y86 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 25%, var(--theme-background)) data-date2024-10-31 data-level1>/rect>rect classstroke-foreground/10 x0 y102 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 75%, var(--theme-background)) data-date2024-11-01 data-level3>/rect>rect classstroke-foreground/10 x0 y118 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 25%, var(--theme-background)) data-date2024-11-02 data-level1>/rect> /g>g transformtranslate(96, 0)> rect classstroke-foreground/10 x0 y22 width12 height12 rx2 ry2 fillvar(--theme-background) data-date2024-11-03 data-level0>/rect>rect classstroke-foreground/10 x0 y38 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 50%, var(--theme-background)) data-date2024-11-04 data-level2>/rect>rect classstroke-foreground/10 x0 y54 width12 height12 rx2 ry2 fillvar(--theme-accent) data-date2024-11-05 data-level4>/rect>rect classstroke-foreground/10 x0 y70 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 25%, var(--theme-background)) data-date2024-11-06 data-level1>/rect>rect classstroke-foreground/10 x0 y86 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 25%, var(--theme-background)) data-date2024-11-07 data-level1>/rect>rect classstroke-foreground/10 x0 y102 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 25%, var(--theme-background)) data-date2024-11-08 data-level1>/rect>rect classstroke-foreground/10 x0 y118 width12 height12 rx2 ry2 fillvar(--theme-background) data-date2024-11-09 data-level0>/rect> /g>g transformtranslate(112, 0)> rect classstroke-foreground/10 x0 y22 width12 height12 rx2 ry2 fillvar(--theme-background) data-date2024-11-10 data-level0>/rect>rect classstroke-foreground/10 x0 y38 width12 height12 rx2 ry2 fillvar(--theme-background) data-date2024-11-11 data-level0>/rect>rect classstroke-foreground/10 x0 y54 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 75%, var(--theme-background)) data-date2024-11-12 data-level3>/rect>rect classstroke-foreground/10 x0 y70 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 50%, var(--theme-background)) data-date2024-11-13 data-level2>/rect>rect classstroke-foreground/10 x0 y86 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 75%, var(--theme-background)) data-date2024-11-14 data-level3>/rect>rect classstroke-foreground/10 x0 y102 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 50%, var(--theme-background)) data-date2024-11-15 data-level2>/rect>rect classstroke-foreground/10 x0 y118 width12 height12 rx2 ry2 fillvar(--theme-background) data-date2024-11-16 data-level0>/rect> /g>g transformtranslate(128, 0)> rect classstroke-foreground/10 x0 y22 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 25%, var(--theme-background)) data-date2024-11-17 data-level1>/rect>rect classstroke-foreground/10 x0 y38 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 25%, var(--theme-background)) data-date2024-11-18 data-level1>/rect>rect classstroke-foreground/10 x0 y54 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 50%, var(--theme-background)) data-date2024-11-19 data-level2>/rect>rect classstroke-foreground/10 x0 y70 width12 height12 rx2 ry2 fillvar(--theme-background) data-date2024-11-20 data-level0>/rect>rect classstroke-foreground/10 x0 y86 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 25%, var(--theme-background)) data-date2024-11-21 data-level1>/rect>rect classstroke-foreground/10 x0 y102 width12 height12 rx2 ry2 fillvar(--theme-background) data-date2024-11-22 data-level0>/rect>rect classstroke-foreground/10 x0 y118 width12 height12 rx2 ry2 fillvar(--theme-background) data-date2024-11-23 data-level0>/rect> /g>g transformtranslate(144, 0)> rect classstroke-foreground/10 x0 y22 width12 height12 rx2 ry2 fillvar(--theme-background) data-date2024-11-24 data-level0>/rect>rect classstroke-foreground/10 x0 y38 width12 height12 rx2 ry2 fillvar(--theme-background) data-date2024-11-25 data-level0>/rect>rect classstroke-foreground/10 x0 y54 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 50%, var(--theme-background)) data-date2024-11-26 data-level2>/rect>rect classstroke-foreground/10 x0 y70 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 75%, var(--theme-background)) data-date2024-11-27 data-level3>/rect>rect classstroke-foreground/10 x0 y86 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 75%, var(--theme-background)) data-date2024-11-28 data-level3>/rect>rect classstroke-foreground/10 x0 y102 width12 height12 rx2 ry2 fillvar(--theme-background) data-date2024-11-29 data-level0>/rect>rect classstroke-foreground/10 x0 y118 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 25%, var(--theme-background)) data-date2024-11-30 data-level1>/rect> /g>g transformtranslate(160, 0)> rect classstroke-foreground/10 x0 y22 width12 height12 rx2 ry2 fillvar(--theme-background) data-date2024-12-01 data-level0>/rect>rect classstroke-foreground/10 x0 y38 width12 height12 rx2 ry2 fillvar(--theme-background) data-date2024-12-02 data-level0>/rect>rect classstroke-foreground/10 x0 y54 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 25%, var(--theme-background)) data-date2024-12-03 data-level1>/rect>rect classstroke-foreground/10 x0 y70 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 25%, var(--theme-background)) data-date2024-12-04 data-level1>/rect>rect classstroke-foreground/10 x0 y86 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 25%, var(--theme-background)) data-date2024-12-05 data-level1>/rect>rect classstroke-foreground/10 x0 y102 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 25%, var(--theme-background)) data-date2024-12-06 data-level1>/rect>rect classstroke-foreground/10 x0 y118 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 25%, var(--theme-background)) data-date2024-12-07 data-level1>/rect> /g>g transformtranslate(176, 0)> rect classstroke-foreground/10 x0 y22 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 25%, var(--theme-background)) data-date2024-12-08 data-level1>/rect>rect classstroke-foreground/10 x0 y38 width12 height12 rx2 ry2 fillvar(--theme-background) data-date2024-12-09 data-level0>/rect>rect classstroke-foreground/10 x0 y54 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 25%, var(--theme-background)) data-date2024-12-10 data-level1>/rect>rect classstroke-foreground/10 x0 y70 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 25%, var(--theme-background)) data-date2024-12-11 data-level1>/rect>rect classstroke-foreground/10 x0 y86 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 25%, var(--theme-background)) data-date2024-12-12 data-level1>/rect>rect classstroke-foreground/10 x0 y102 width12 height12 rx2 ry2 fillvar(--theme-background) data-date2024-12-13 data-level0>/rect>rect classstroke-foreground/10 x0 y118 width12 height12 rx2 ry2 fillvar(--theme-background) data-date2024-12-14 data-level0>/rect> /g>g transformtranslate(192, 0)> rect classstroke-foreground/10 x0 y22 width12 height12 rx2 ry2 fillvar(--theme-background) data-date2024-12-15 data-level0>/rect>rect classstroke-foreground/10 x0 y38 width12 height12 rx2 ry2 fillvar(--theme-background) data-date2024-12-16 data-level0>/rect>rect classstroke-foreground/10 x0 y54 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 25%, var(--theme-background)) data-date2024-12-17 data-level1>/rect>rect classstroke-foreground/10 x0 y70 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 25%, var(--theme-background)) data-date2024-12-18 data-level1>/rect>rect classstroke-foreground/10 x0 y86 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 25%, var(--theme-background)) data-date2024-12-19 data-level1>/rect>rect classstroke-foreground/10 x0 y102 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 25%, var(--theme-background)) data-date2024-12-20 data-level1>/rect>rect classstroke-foreground/10 x0 y118 width12 height12 rx2 ry2 fillvar(--theme-background) data-date2024-12-21 data-level0>/rect> /g>g transformtranslate(208, 0)> rect classstroke-foreground/10 x0 y22 width12 height12 rx2 ry2 fillvar(--theme-background) data-date2024-12-22 data-level0>/rect>rect classstroke-foreground/10 x0 y38 width12 height12 rx2 ry2 fillvar(--theme-background) data-date2024-12-23 data-level0>/rect>rect classstroke-foreground/10 x0 y54 width12 height12 rx2 ry2 fillvar(--theme-background) data-date2024-12-24 data-level0>/rect>rect classstroke-foreground/10 x0 y70 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 25%, var(--theme-background)) data-date2024-12-25 data-level1>/rect>rect classstroke-foreground/10 x0 y86 width12 height12 rx2 ry2 fillvar(--theme-background) data-date2024-12-26 data-level0>/rect>rect classstroke-foreground/10 x0 y102 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 50%, var(--theme-background)) data-date2024-12-27 data-level2>/rect>rect classstroke-foreground/10 x0 y118 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 50%, var(--theme-background)) data-date2024-12-28 data-level2>/rect> /g>g transformtranslate(224, 0)> rect classstroke-foreground/10 x0 y22 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 50%, var(--theme-background)) data-date2024-12-29 data-level2>/rect>rect classstroke-foreground/10 x0 y38 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 25%, var(--theme-background)) data-date2024-12-30 data-level1>/rect>rect classstroke-foreground/10 x0 y54 width12 height12 rx2 ry2 fillvar(--theme-background) data-date2024-12-31 data-level0>/rect>rect classstroke-foreground/10 x0 y70 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 25%, var(--theme-background)) data-date2025-01-01 data-level1>/rect>rect classstroke-foreground/10 x0 y86 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 25%, var(--theme-background)) data-date2025-01-02 data-level1>/rect>rect classstroke-foreground/10 x0 y102 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 50%, var(--theme-background)) data-date2025-01-03 data-level2>/rect>rect classstroke-foreground/10 x0 y118 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 50%, var(--theme-background)) data-date2025-01-04 data-level2>/rect> /g>g transformtranslate(240, 0)> rect classstroke-foreground/10 x0 y22 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 25%, var(--theme-background)) data-date2025-01-05 data-level1>/rect>rect classstroke-foreground/10 x0 y38 width12 height12 rx2 ry2 fillvar(--theme-background) data-date2025-01-06 data-level0>/rect>rect classstroke-foreground/10 x0 y54 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 25%, var(--theme-background)) data-date2025-01-07 data-level1>/rect>rect classstroke-foreground/10 x0 y70 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 50%, var(--theme-background)) data-date2025-01-08 data-level2>/rect>rect classstroke-foreground/10 x0 y86 width12 height12 rx2 ry2 fillvar(--theme-background) data-date2025-01-09 data-level0>/rect>rect classstroke-foreground/10 x0 y102 width12 height12 rx2 ry2 fillvar(--theme-background) data-date2025-01-10 data-level0>/rect>rect classstroke-foreground/10 x0 y118 width12 height12 rx2 ry2 fillvar(--theme-background) data-date2025-01-11 data-level0>/rect> /g>g transformtranslate(256, 0)> rect classstroke-foreground/10 x0 y22 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 50%, var(--theme-background)) data-date2025-01-12 data-level2>/rect>rect classstroke-foreground/10 x0 y38 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 25%, var(--theme-background)) data-date2025-01-13 data-level1>/rect>rect classstroke-foreground/10 x0 y54 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 25%, var(--theme-background)) data-date2025-01-14 data-level1>/rect>rect classstroke-foreground/10 x0 y70 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 50%, var(--theme-background)) data-date2025-01-15 data-level2>/rect>rect classstroke-foreground/10 x0 y86 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 50%, var(--theme-background)) data-date2025-01-16 data-level2>/rect>rect classstroke-foreground/10 x0 y102 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 50%, var(--theme-background)) data-date2025-01-17 data-level2>/rect>rect classstroke-foreground/10 x0 y118 width12 height12 rx2 ry2 fillvar(--theme-accent) data-date2025-01-18 data-level4>/rect> /g>g transformtranslate(272, 0)> rect classstroke-foreground/10 x0 y22 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 75%, var(--theme-background)) data-date2025-01-19 data-level3>/rect>rect classstroke-foreground/10 x0 y38 width12 height12 rx2 ry2 fillvar(--theme-accent) data-date2025-01-20 data-level4>/rect>rect classstroke-foreground/10 x0 y54 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 50%, var(--theme-background)) data-date2025-01-21 data-level2>/rect>rect classstroke-foreground/10 x0 y70 width12 height12 rx2 ry2 fillvar(--theme-accent) data-date2025-01-22 data-level4>/rect>rect classstroke-foreground/10 x0 y86 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 25%, var(--theme-background)) data-date2025-01-23 data-level1>/rect>rect classstroke-foreground/10 x0 y102 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 25%, var(--theme-background)) data-date2025-01-24 data-level1>/rect>rect classstroke-foreground/10 x0 y118 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 25%, var(--theme-background)) data-date2025-01-25 data-level1>/rect> /g>g transformtranslate(288, 0)> rect classstroke-foreground/10 x0 y22 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 50%, var(--theme-background)) data-date2025-01-26 data-level2>/rect>rect classstroke-foreground/10 x0 y38 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 50%, var(--theme-background)) data-date2025-01-27 data-level2>/rect>rect classstroke-foreground/10 x0 y54 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 25%, var(--theme-background)) data-date2025-01-28 data-level1>/rect>rect classstroke-foreground/10 x0 y70 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 25%, var(--theme-background)) data-date2025-01-29 data-level1>/rect>rect classstroke-foreground/10 x0 y86 width12 height12 rx2 ry2 fillvar(--theme-background) data-date2025-01-30 data-level0>/rect>rect classstroke-foreground/10 x0 y102 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 25%, var(--theme-background)) data-date2025-01-31 data-level1>/rect>rect classstroke-foreground/10 x0 y118 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 25%, var(--theme-background)) data-date2025-02-01 data-level1>/rect> /g>g transformtranslate(304, 0)> rect classstroke-foreground/10 x0 y22 width12 height12 rx2 ry2 fillvar(--theme-background) data-date2025-02-02 data-level0>/rect>rect classstroke-foreground/10 x0 y38 width12 height12 rx2 ry2 fillvar(--theme-background) data-date2025-02-03 data-level0>/rect>rect classstroke-foreground/10 x0 y54 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 25%, var(--theme-background)) data-date2025-02-04 data-level1>/rect>rect classstroke-foreground/10 x0 y70 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 25%, var(--theme-background)) data-date2025-02-05 data-level1>/rect>rect classstroke-foreground/10 x0 y86 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 50%, var(--theme-background)) data-date2025-02-06 data-level2>/rect>rect classstroke-foreground/10 x0 y102 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 25%, var(--theme-background)) data-date2025-02-07 data-level1>/rect>rect classstroke-foreground/10 x0 y118 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 25%, var(--theme-background)) data-date2025-02-08 data-level1>/rect> /g>g transformtranslate(320, 0)> rect classstroke-foreground/10 x0 y22 width12 height12 rx2 ry2 fillvar(--theme-background) data-date2025-02-09 data-level0>/rect>rect classstroke-foreground/10 x0 y38 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 25%, var(--theme-background)) data-date2025-02-10 data-level1>/rect>rect classstroke-foreground/10 x0 y54 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 25%, var(--theme-background)) data-date2025-02-11 data-level1>/rect>rect classstroke-foreground/10 x0 y70 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 50%, var(--theme-background)) data-date2025-02-12 data-level2>/rect>rect classstroke-foreground/10 x0 y86 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 25%, var(--theme-background)) data-date2025-02-13 data-level1>/rect>rect classstroke-foreground/10 x0 y102 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 75%, var(--theme-background)) data-date2025-02-14 data-level3>/rect>rect classstroke-foreground/10 x0 y118 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 25%, var(--theme-background)) data-date2025-02-15 data-level1>/rect> /g>g transformtranslate(336, 0)> rect classstroke-foreground/10 x0 y22 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 50%, var(--theme-background)) data-date2025-02-16 data-level2>/rect>rect classstroke-foreground/10 x0 y38 width12 height12 rx2 ry2 fillvar(--theme-background) data-date2025-02-17 data-level0>/rect>rect classstroke-foreground/10 x0 y54 width12 height12 rx2 ry2 fillvar(--theme-background) data-date2025-02-18 data-level0>/rect>rect classstroke-foreground/10 x0 y70 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 25%, var(--theme-background)) data-date2025-02-19 data-level1>/rect>rect classstroke-foreground/10 x0 y86 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 25%, var(--theme-background)) data-date2025-02-20 data-level1>/rect>rect classstroke-foreground/10 x0 y102 width12 height12 rx2 ry2 fillvar(--theme-background) data-date2025-02-21 data-level0>/rect>rect classstroke-foreground/10 x0 y118 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 25%, var(--theme-background)) data-date2025-02-22 data-level1>/rect> /g>g transformtranslate(352, 0)> rect classstroke-foreground/10 x0 y22 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 25%, var(--theme-background)) data-date2025-02-23 data-level1>/rect>rect classstroke-foreground/10 x0 y38 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 25%, var(--theme-background)) data-date2025-02-24 data-level1>/rect>rect classstroke-foreground/10 x0 y54 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 25%, var(--theme-background)) data-date2025-02-25 data-level1>/rect>rect classstroke-foreground/10 x0 y70 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 25%, var(--theme-background)) data-date2025-02-26 data-level1>/rect>rect classstroke-foreground/10 x0 y86 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 75%, var(--theme-background)) data-date2025-02-27 data-level3>/rect>rect classstroke-foreground/10 x0 y102 width12 height12 rx2 ry2 fillvar(--theme-background) data-date2025-02-28 data-level0>/rect>rect classstroke-foreground/10 x0 y118 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 25%, var(--theme-background)) data-date2025-03-01 data-level1>/rect> /g>g transformtranslate(368, 0)> rect classstroke-foreground/10 x0 y22 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 25%, var(--theme-background)) data-date2025-03-02 data-level1>/rect>rect classstroke-foreground/10 x0 y38 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 50%, var(--theme-background)) data-date2025-03-03 data-level2>/rect>rect classstroke-foreground/10 x0 y54 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 50%, var(--theme-background)) data-date2025-03-04 data-level2>/rect>rect classstroke-foreground/10 x0 y70 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 50%, var(--theme-background)) data-date2025-03-05 data-level2>/rect>rect classstroke-foreground/10 x0 y86 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 50%, var(--theme-background)) data-date2025-03-06 data-level2>/rect>rect classstroke-foreground/10 x0 y102 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 50%, var(--theme-background)) data-date2025-03-07 data-level2>/rect>rect classstroke-foreground/10 x0 y118 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 25%, var(--theme-background)) data-date2025-03-08 data-level1>/rect> /g>g transformtranslate(384, 0)> rect classstroke-foreground/10 x0 y22 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 25%, var(--theme-background)) data-date2025-03-09 data-level1>/rect>rect classstroke-foreground/10 x0 y38 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 25%, var(--theme-background)) data-date2025-03-10 data-level1>/rect>rect classstroke-foreground/10 x0 y54 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 25%, var(--theme-background)) data-date2025-03-11 data-level1>/rect>rect classstroke-foreground/10 x0 y70 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 25%, var(--theme-background)) data-date2025-03-12 data-level1>/rect>rect classstroke-foreground/10 x0 y86 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 50%, var(--theme-background)) data-date2025-03-13 data-level2>/rect>rect classstroke-foreground/10 x0 y102 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 25%, var(--theme-background)) data-date2025-03-14 data-level1>/rect>rect classstroke-foreground/10 x0 y118 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 25%, var(--theme-background)) data-date2025-03-15 data-level1>/rect> /g>g transformtranslate(400, 0)> rect classstroke-foreground/10 x0 y22 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 25%, var(--theme-background)) data-date2025-03-16 data-level1>/rect>rect classstroke-foreground/10 x0 y38 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 50%, var(--theme-background)) data-date2025-03-17 data-level2>/rect>rect classstroke-foreground/10 x0 y54 width12 height12 rx2 ry2 fillvar(--theme-accent) data-date2025-03-18 data-level4>/rect>rect classstroke-foreground/10 x0 y70 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 75%, var(--theme-background)) data-date2025-03-19 data-level3>/rect>rect classstroke-foreground/10 x0 y86 width12 height12 rx2 ry2 fillvar(--theme-background) data-date2025-03-20 data-level0>/rect>rect classstroke-foreground/10 x0 y102 width12 height12 rx2 ry2 fillvar(--theme-background) data-date2025-03-21 data-level0>/rect>rect classstroke-foreground/10 x0 y118 width12 height12 rx2 ry2 fillvar(--theme-background) data-date2025-03-22 data-level0>/rect> /g>g transformtranslate(416, 0)> rect classstroke-foreground/10 x0 y22 width12 height12 rx2 ry2 fillvar(--theme-background) data-date2025-03-23 data-level0>/rect>rect classstroke-foreground/10 x0 y38 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 25%, var(--theme-background)) data-date2025-03-24 data-level1>/rect>rect classstroke-foreground/10 x0 y54 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 50%, var(--theme-background)) data-date2025-03-25 data-level2>/rect>rect classstroke-foreground/10 x0 y70 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 25%, var(--theme-background)) data-date2025-03-26 data-level1>/rect>rect classstroke-foreground/10 x0 y86 width12 height12 rx2 ry2 fillvar(--theme-background) data-date2025-03-27 data-level0>/rect>rect classstroke-foreground/10 x0 y102 width12 height12 rx2 ry2 fillvar(--theme-background) data-date2025-03-28 data-level0>/rect>rect classstroke-foreground/10 x0 y118 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 25%, var(--theme-background)) data-date2025-03-29 data-level1>/rect> /g>g transformtranslate(432, 0)> rect classstroke-foreground/10 x0 y22 width12 height12 rx2 ry2 fillvar(--theme-background) data-date2025-03-30 data-level0>/rect>rect classstroke-foreground/10 x0 y38 width12 height12 rx2 ry2 fillvar(--theme-background) data-date2025-03-31 data-level0>/rect>rect classstroke-foreground/10 x0 y54 width12 height12 rx2 ry2 fillvar(--theme-background) data-date2025-04-01 data-level0>/rect>rect classstroke-foreground/10 x0 y70 width12 height12 rx2 ry2 fillvar(--theme-background) data-date2025-04-02 data-level0>/rect>rect classstroke-foreground/10 x0 y86 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 50%, var(--theme-background)) data-date2025-04-03 data-level2>/rect>rect classstroke-foreground/10 x0 y102 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 25%, var(--theme-background)) data-date2025-04-04 data-level1>/rect>rect classstroke-foreground/10 x0 y118 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 25%, var(--theme-background)) data-date2025-04-05 data-level1>/rect> /g>g transformtranslate(448, 0)> rect classstroke-foreground/10 x0 y22 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 25%, var(--theme-background)) data-date2025-04-06 data-level1>/rect>rect classstroke-foreground/10 x0 y38 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 25%, var(--theme-background)) data-date2025-04-07 data-level1>/rect>rect classstroke-foreground/10 x0 y54 width12 height12 rx2 ry2 fillvar(--theme-background) data-date2025-04-08 data-level0>/rect>rect classstroke-foreground/10 x0 y70 width12 height12 rx2 ry2 fillvar(--theme-background) data-date2025-04-09 data-level0>/rect>rect classstroke-foreground/10 x0 y86 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 25%, var(--theme-background)) data-date2025-04-10 data-level1>/rect>rect classstroke-foreground/10 x0 y102 width12 height12 rx2 ry2 fillvar(--theme-background) data-date2025-04-11 data-level0>/rect>rect classstroke-foreground/10 x0 y118 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 25%, var(--theme-background)) data-date2025-04-12 data-level1>/rect> /g>g transformtranslate(464, 0)> rect classstroke-foreground/10 x0 y22 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 25%, var(--theme-background)) data-date2025-04-13 data-level1>/rect>rect classstroke-foreground/10 x0 y38 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 50%, var(--theme-background)) data-date2025-04-14 data-level2>/rect>rect classstroke-foreground/10 x0 y54 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 75%, var(--theme-background)) data-date2025-04-15 data-level3>/rect>rect classstroke-foreground/10 x0 y70 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 50%, var(--theme-background)) data-date2025-04-16 data-level2>/rect>rect classstroke-foreground/10 x0 y86 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 25%, var(--theme-background)) data-date2025-04-17 data-level1>/rect>rect classstroke-foreground/10 x0 y102 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 25%, var(--theme-background)) data-date2025-04-18 data-level1>/rect>rect classstroke-foreground/10 x0 y118 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 25%, var(--theme-background)) data-date2025-04-19 data-level1>/rect> /g>g transformtranslate(480, 0)> rect classstroke-foreground/10 x0 y22 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 50%, var(--theme-background)) data-date2025-04-20 data-level2>/rect>rect classstroke-foreground/10 x0 y38 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 25%, var(--theme-background)) data-date2025-04-21 data-level1>/rect>rect classstroke-foreground/10 x0 y54 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 25%, var(--theme-background)) data-date2025-04-22 data-level1>/rect>rect classstroke-foreground/10 x0 y70 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 25%, var(--theme-background)) data-date2025-04-23 data-level1>/rect>rect classstroke-foreground/10 x0 y86 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 25%, var(--theme-background)) data-date2025-04-24 data-level1>/rect>rect classstroke-foreground/10 x0 y102 width12 height12 rx2 ry2 fillvar(--theme-background) data-date2025-04-25 data-level0>/rect>rect classstroke-foreground/10 x0 y118 width12 height12 rx2 ry2 fillvar(--theme-background) data-date2025-04-26 data-level0>/rect> /g>g transformtranslate(496, 0)> rect classstroke-foreground/10 x0 y22 width12 height12 rx2 ry2 fillvar(--theme-background) data-date2025-04-27 data-level0>/rect>rect classstroke-foreground/10 x0 y38 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 25%, var(--theme-background)) data-date2025-04-28 data-level1>/rect>rect classstroke-foreground/10 x0 y54 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 25%, var(--theme-background)) data-date2025-04-29 data-level1>/rect>rect classstroke-foreground/10 x0 y70 width12 height12 rx2 ry2 fillvar(--theme-background) data-date2025-04-30 data-level0>/rect>rect classstroke-foreground/10 x0 y86 width12 height12 rx2 ry2 fillvar(--theme-background) data-date2025-05-01 data-level0>/rect>rect classstroke-foreground/10 x0 y102 width12 height12 rx2 ry2 fillvar(--theme-background) data-date2025-05-02 data-level0>/rect>rect classstroke-foreground/10 x0 y118 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 25%, var(--theme-background)) data-date2025-05-03 data-level1>/rect> /g>g transformtranslate(512, 0)> rect classstroke-foreground/10 x0 y22 width12 height12 rx2 ry2 fillvar(--theme-background) data-date2025-05-04 data-level0>/rect>rect classstroke-foreground/10 x0 y38 width12 height12 rx2 ry2 fillvar(--theme-background) data-date2025-05-05 data-level0>/rect>rect classstroke-foreground/10 x0 y54 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 25%, var(--theme-background)) data-date2025-05-06 data-level1>/rect>rect classstroke-foreground/10 x0 y70 width12 height12 rx2 ry2 fillvar(--theme-background) data-date2025-05-07 data-level0>/rect>rect classstroke-foreground/10 x0 y86 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 25%, var(--theme-background)) data-date2025-05-08 data-level1>/rect>rect classstroke-foreground/10 x0 y102 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 25%, var(--theme-background)) data-date2025-05-09 data-level1>/rect>rect classstroke-foreground/10 x0 y118 width12 height12 rx2 ry2 fillvar(--theme-background) data-date2025-05-10 data-level0>/rect> /g>g transformtranslate(528, 0)> rect classstroke-foreground/10 x0 y22 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 25%, var(--theme-background)) data-date2025-05-11 data-level1>/rect>rect classstroke-foreground/10 x0 y38 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 25%, var(--theme-background)) data-date2025-05-12 data-level1>/rect>rect classstroke-foreground/10 x0 y54 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 50%, var(--theme-background)) data-date2025-05-13 data-level2>/rect>rect classstroke-foreground/10 x0 y70 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 25%, var(--theme-background)) data-date2025-05-14 data-level1>/rect>rect classstroke-foreground/10 x0 y86 width12 height12 rx2 ry2 fillvar(--theme-background) data-date2025-05-15 data-level0>/rect>rect classstroke-foreground/10 x0 y102 width12 height12 rx2 ry2 fillvar(--theme-background) data-date2025-05-16 data-level0>/rect>rect classstroke-foreground/10 x0 y118 width12 height12 rx2 ry2 fillvar(--theme-background) data-date2025-05-17 data-level0>/rect> /g>g transformtranslate(544, 0)> rect classstroke-foreground/10 x0 y22 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 25%, var(--theme-background)) data-date2025-05-18 data-level1>/rect>rect classstroke-foreground/10 x0 y38 width12 height12 rx2 ry2 fillvar(--theme-background) data-date2025-05-19 data-level0>/rect>rect classstroke-foreground/10 x0 y54 width12 height12 rx2 ry2 fillvar(--theme-background) data-date2025-05-20 data-level0>/rect>rect classstroke-foreground/10 x0 y70 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 25%, var(--theme-background)) data-date2025-05-21 data-level1>/rect>rect classstroke-foreground/10 x0 y86 width12 height12 rx2 ry2 fillvar(--theme-accent) data-date2025-05-22 data-level4>/rect>rect classstroke-foreground/10 x0 y102 width12 height12 rx2 ry2 fillvar(--theme-accent) data-date2025-05-23 data-level4>/rect>rect classstroke-foreground/10 x0 y118 width12 height12 rx2 ry2 fillvar(--theme-background) data-date2025-05-24 data-level0>/rect> /g>g transformtranslate(560, 0)> rect classstroke-foreground/10 x0 y22 width12 height12 rx2 ry2 fillvar(--theme-background) data-date2025-05-25 data-level0>/rect>rect classstroke-foreground/10 x0 y38 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 75%, var(--theme-background)) data-date2025-05-26 data-level3>/rect>rect classstroke-foreground/10 x0 y54 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 50%, var(--theme-background)) data-date2025-05-27 data-level2>/rect>rect classstroke-foreground/10 x0 y70 width12 height12 rx2 ry2 fillvar(--theme-background) data-date2025-05-28 data-level0>/rect>rect classstroke-foreground/10 x0 y86 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 75%, var(--theme-background)) data-date2025-05-29 data-level3>/rect>rect classstroke-foreground/10 x0 y102 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 25%, var(--theme-background)) data-date2025-05-30 data-level1>/rect>rect classstroke-foreground/10 x0 y118 width12 height12 rx2 ry2 fillvar(--theme-accent) data-date2025-05-31 data-level4>/rect> /g>g transformtranslate(576, 0)> rect classstroke-foreground/10 x0 y22 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 75%, var(--theme-background)) data-date2025-06-01 data-level3>/rect>rect classstroke-foreground/10 x0 y38 width12 height12 rx2 ry2 fillvar(--theme-background) data-date2025-06-02 data-level0>/rect>rect classstroke-foreground/10 x0 y54 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 25%, var(--theme-background)) data-date2025-06-03 data-level1>/rect>rect classstroke-foreground/10 x0 y70 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 25%, var(--theme-background)) data-date2025-06-04 data-level1>/rect>rect classstroke-foreground/10 x0 y86 width12 height12 rx2 ry2 fillvar(--theme-background) data-date2025-06-05 data-level0>/rect>rect classstroke-foreground/10 x0 y102 width12 height12 rx2 ry2 fillvar(--theme-background) data-date2025-06-06 data-level0>/rect>rect classstroke-foreground/10 x0 y118 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 50%, var(--theme-background)) data-date2025-06-07 data-level2>/rect> /g>g transformtranslate(592, 0)> rect classstroke-foreground/10 x0 y22 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 50%, var(--theme-background)) data-date2025-06-08 data-level2>/rect>rect classstroke-foreground/10 x0 y38 width12 height12 rx2 ry2 fillvar(--theme-accent) data-date2025-06-09 data-level4>/rect>rect classstroke-foreground/10 x0 y54 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 25%, var(--theme-background)) data-date2025-06-10 data-level1>/rect>rect classstroke-foreground/10 x0 y70 width12 height12 rx2 ry2 fillvar(--theme-background) data-date2025-06-11 data-level0>/rect>rect classstroke-foreground/10 x0 y86 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 25%, var(--theme-background)) data-date2025-06-12 data-level1>/rect>rect classstroke-foreground/10 x0 y102 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 25%, var(--theme-background)) data-date2025-06-13 data-level1>/rect>rect classstroke-foreground/10 x0 y118 width12 height12 rx2 ry2 fillvar(--theme-background) data-date2025-06-14 data-level0>/rect> /g>g transformtranslate(608, 0)> rect classstroke-foreground/10 x0 y22 width12 height12 rx2 ry2 fillvar(--theme-background) data-date2025-06-15 data-level0>/rect>rect classstroke-foreground/10 x0 y38 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 25%, var(--theme-background)) data-date2025-06-16 data-level1>/rect>rect classstroke-foreground/10 x0 y54 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 25%, var(--theme-background)) data-date2025-06-17 data-level1>/rect>rect classstroke-foreground/10 x0 y70 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 25%, var(--theme-background)) data-date2025-06-18 data-level1>/rect>rect classstroke-foreground/10 x0 y86 width12 height12 rx2 ry2 fillvar(--theme-background) data-date2025-06-19 data-level0>/rect>rect classstroke-foreground/10 x0 y102 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 25%, var(--theme-background)) data-date2025-06-20 data-level1>/rect>rect classstroke-foreground/10 x0 y118 width12 height12 rx2 ry2 fillvar(--theme-background) data-date2025-06-21 data-level0>/rect> /g>g transformtranslate(624, 0)> rect classstroke-foreground/10 x0 y22 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 25%, var(--theme-background)) data-date2025-06-22 data-level1>/rect>rect classstroke-foreground/10 x0 y38 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 25%, var(--theme-background)) data-date2025-06-23 data-level1>/rect>rect classstroke-foreground/10 x0 y54 width12 height12 rx2 ry2 fillvar(--theme-background) data-date2025-06-24 data-level0>/rect>rect classstroke-foreground/10 x0 y70 width12 height12 rx2 ry2 fillvar(--theme-background) data-date2025-06-25 data-level0>/rect>rect classstroke-foreground/10 x0 y86 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 75%, var(--theme-background)) data-date2025-06-26 data-level3>/rect>rect classstroke-foreground/10 x0 y102 width12 height12 rx2 ry2 fillvar(--theme-accent) data-date2025-06-27 data-level4>/rect>rect classstroke-foreground/10 x0 y118 width12 height12 rx2 ry2 fillvar(--theme-accent) data-date2025-06-28 data-level4>/rect> /g>g transformtranslate(640, 0)> rect classstroke-foreground/10 x0 y22 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 50%, var(--theme-background)) data-date2025-06-29 data-level2>/rect>rect classstroke-foreground/10 x0 y38 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 50%, var(--theme-background)) data-date2025-06-30 data-level2>/rect>rect classstroke-foreground/10 x0 y54 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 50%, var(--theme-background)) data-date2025-07-01 data-level2>/rect>rect classstroke-foreground/10 x0 y70 width12 height12 rx2 ry2 fillvar(--theme-background) data-date2025-07-02 data-level0>/rect>rect classstroke-foreground/10 x0 y86 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 75%, var(--theme-background)) data-date2025-07-03 data-level3>/rect>rect classstroke-foreground/10 x0 y102 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 25%, var(--theme-background)) data-date2025-07-04 data-level1>/rect>rect classstroke-foreground/10 x0 y118 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 25%, var(--theme-background)) data-date2025-07-05 data-level1>/rect> /g>g transformtranslate(656, 0)> rect classstroke-foreground/10 x0 y22 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 25%, var(--theme-background)) data-date2025-07-06 data-level1>/rect>rect classstroke-foreground/10 x0 y38 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 25%, var(--theme-background)) data-date2025-07-07 data-level1>/rect>rect classstroke-foreground/10 x0 y54 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 25%, var(--theme-background)) data-date2025-07-08 data-level1>/rect>rect classstroke-foreground/10 x0 y70 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 25%, var(--theme-background)) data-date2025-07-09 data-level1>/rect>rect classstroke-foreground/10 x0 y86 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 25%, var(--theme-background)) data-date2025-07-10 data-level1>/rect>rect classstroke-foreground/10 x0 y102 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 25%, var(--theme-background)) data-date2025-07-11 data-level1>/rect>rect classstroke-foreground/10 x0 y118 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 25%, var(--theme-background)) data-date2025-07-12 data-level1>/rect> /g>g transformtranslate(672, 0)> rect classstroke-foreground/10 x0 y22 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 25%, var(--theme-background)) data-date2025-07-13 data-level1>/rect>rect classstroke-foreground/10 x0 y38 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 25%, var(--theme-background)) data-date2025-07-14 data-level1>/rect>rect classstroke-foreground/10 x0 y54 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 25%, var(--theme-background)) data-date2025-07-15 data-level1>/rect>rect classstroke-foreground/10 x0 y70 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 50%, var(--theme-background)) data-date2025-07-16 data-level2>/rect>rect classstroke-foreground/10 x0 y86 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 25%, var(--theme-background)) data-date2025-07-17 data-level1>/rect>rect classstroke-foreground/10 x0 y102 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 25%, var(--theme-background)) data-date2025-07-18 data-level1>/rect>rect classstroke-foreground/10 x0 y118 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 25%, var(--theme-background)) data-date2025-07-19 data-level1>/rect> /g>g transformtranslate(688, 0)> rect classstroke-foreground/10 x0 y22 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 50%, var(--theme-background)) data-date2025-07-20 data-level2>/rect>rect classstroke-foreground/10 x0 y38 width12 height12 rx2 ry2 fillvar(--theme-background) data-date2025-07-21 data-level0>/rect>rect classstroke-foreground/10 x0 y54 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 25%, var(--theme-background)) data-date2025-07-22 data-level1>/rect>rect classstroke-foreground/10 x0 y70 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 25%, var(--theme-background)) data-date2025-07-23 data-level1>/rect>rect classstroke-foreground/10 x0 y86 width12 height12 rx2 ry2 fillvar(--theme-background) data-date2025-07-24 data-level0>/rect>rect classstroke-foreground/10 x0 y102 width12 height12 rx2 ry2 fillvar(--theme-background) data-date2025-07-25 data-level0>/rect>rect classstroke-foreground/10 x0 y118 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 75%, var(--theme-background)) data-date2025-07-26 data-level3>/rect> /g>g transformtranslate(704, 0)> rect classstroke-foreground/10 x0 y22 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 25%, var(--theme-background)) data-date2025-07-27 data-level1>/rect>rect classstroke-foreground/10 x0 y38 width12 height12 rx2 ry2 fillvar(--theme-background) data-date2025-07-28 data-level0>/rect>rect classstroke-foreground/10 x0 y54 width12 height12 rx2 ry2 fillvar(--theme-background) data-date2025-07-29 data-level0>/rect>rect classstroke-foreground/10 x0 y70 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 25%, var(--theme-background)) data-date2025-07-30 data-level1>/rect>rect classstroke-foreground/10 x0 y86 width12 height12 rx2 ry2 fillvar(--theme-background) data-date2025-07-31 data-level0>/rect>rect classstroke-foreground/10 x0 y102 width12 height12 rx2 ry2 fillvar(--theme-background) data-date2025-08-01 data-level0>/rect>rect classstroke-foreground/10 x0 y118 width12 height12 rx2 ry2 fillvar(--theme-background) data-date2025-08-02 data-level0>/rect> /g>g transformtranslate(720, 0)> rect classstroke-foreground/10 x0 y22 width12 height12 rx2 ry2 fillvar(--theme-background) data-date2025-08-03 data-level0>/rect>rect classstroke-foreground/10 x0 y38 width12 height12 rx2 ry2 fillvar(--theme-background) data-date2025-08-04 data-level0>/rect>rect classstroke-foreground/10 x0 y54 width12 height12 rx2 ry2 fillvar(--theme-background) data-date2025-08-05 data-level0>/rect>rect classstroke-foreground/10 x0 y70 width12 height12 rx2 ry2 fillvar(--theme-background) data-date2025-08-06 data-level0>/rect>rect classstroke-foreground/10 x0 y86 width12 height12 rx2 ry2 fillvar(--theme-background) data-date2025-08-07 data-level0>/rect>rect classstroke-foreground/10 x0 y102 width12 height12 rx2 ry2 fillvar(--theme-background) data-date2025-08-08 data-level0>/rect>rect classstroke-foreground/10 x0 y118 width12 height12 rx2 ry2 fillvar(--theme-background) data-date2025-08-09 data-level0>/rect> /g>g transformtranslate(736, 0)> rect classstroke-foreground/10 x0 y22 width12 height12 rx2 ry2 fillvar(--theme-background) data-date2025-08-10 data-level0>/rect>rect classstroke-foreground/10 x0 y38 width12 height12 rx2 ry2 fillvar(--theme-background) data-date2025-08-11 data-level0>/rect>rect classstroke-foreground/10 x0 y54 width12 height12 rx2 ry2 fillvar(--theme-background) data-date2025-08-12 data-level0>/rect>rect classstroke-foreground/10 x0 y70 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 25%, var(--theme-background)) data-date2025-08-13 data-level1>/rect>rect classstroke-foreground/10 x0 y86 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 50%, var(--theme-background)) data-date2025-08-14 data-level2>/rect>rect classstroke-foreground/10 x0 y102 width12 height12 rx2 ry2 fillvar(--theme-background) data-date2025-08-15 data-level0>/rect>rect classstroke-foreground/10 x0 y118 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 25%, var(--theme-background)) data-date2025-08-16 data-level1>/rect> /g>g transformtranslate(752, 0)> rect classstroke-foreground/10 x0 y22 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 25%, var(--theme-background)) data-date2025-08-17 data-level1>/rect>rect classstroke-foreground/10 x0 y38 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 25%, var(--theme-background)) data-date2025-08-18 data-level1>/rect>rect classstroke-foreground/10 x0 y54 width12 height12 rx2 ry2 fillvar(--theme-background) data-date2025-08-19 data-level0>/rect>rect classstroke-foreground/10 x0 y70 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 50%, var(--theme-background)) data-date2025-08-20 data-level2>/rect>rect classstroke-foreground/10 x0 y86 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 25%, var(--theme-background)) data-date2025-08-21 data-level1>/rect>rect classstroke-foreground/10 x0 y102 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 25%, var(--theme-background)) data-date2025-08-22 data-level1>/rect>rect classstroke-foreground/10 x0 y118 width12 height12 rx2 ry2 fillvar(--theme-background) data-date2025-08-23 data-level0>/rect> /g>g transformtranslate(768, 0)> rect classstroke-foreground/10 x0 y22 width12 height12 rx2 ry2 fillvar(--theme-background) data-date2025-08-24 data-level0>/rect>rect classstroke-foreground/10 x0 y38 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 25%, var(--theme-background)) data-date2025-08-25 data-level1>/rect>rect classstroke-foreground/10 x0 y54 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 50%, var(--theme-background)) data-date2025-08-26 data-level2>/rect>rect classstroke-foreground/10 x0 y70 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 25%, var(--theme-background)) data-date2025-08-27 data-level1>/rect>rect classstroke-foreground/10 x0 y86 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 50%, var(--theme-background)) data-date2025-08-28 data-level2>/rect>rect classstroke-foreground/10 x0 y102 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 25%, var(--theme-background)) data-date2025-08-29 data-level1>/rect>rect classstroke-foreground/10 x0 y118 width12 height12 rx2 ry2 fillvar(--theme-background) data-date2025-08-30 data-level0>/rect> /g>g transformtranslate(784, 0)> rect classstroke-foreground/10 x0 y22 width12 height12 rx2 ry2 fillvar(--theme-background) data-date2025-08-31 data-level0>/rect>rect classstroke-foreground/10 x0 y38 width12 height12 rx2 ry2 fillvar(--theme-background) data-date2025-09-01 data-level0>/rect>rect classstroke-foreground/10 x0 y54 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 50%, var(--theme-background)) data-date2025-09-02 data-level2>/rect>rect classstroke-foreground/10 x0 y70 width12 height12 rx2 ry2 fillvar(--theme-background) data-date2025-09-03 data-level0>/rect>rect classstroke-foreground/10 x0 y86 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 50%, var(--theme-background)) data-date2025-09-04 data-level2>/rect>rect classstroke-foreground/10 x0 y102 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 75%, var(--theme-background)) data-date2025-09-05 data-level3>/rect>rect classstroke-foreground/10 x0 y118 width12 height12 rx2 ry2 fillvar(--theme-accent) data-date2025-09-06 data-level4>/rect> /g>g transformtranslate(800, 0)> rect classstroke-foreground/10 x0 y22 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 25%, var(--theme-background)) data-date2025-09-07 data-level1>/rect>rect classstroke-foreground/10 x0 y38 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 75%, var(--theme-background)) data-date2025-09-08 data-level3>/rect>rect classstroke-foreground/10 x0 y54 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 75%, var(--theme-background)) data-date2025-09-09 data-level3>/rect>rect classstroke-foreground/10 x0 y70 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 50%, var(--theme-background)) data-date2025-09-10 data-level2>/rect>rect classstroke-foreground/10 x0 y86 width12 height12 rx2 ry2 fillvar(--theme-background) data-date2025-09-11 data-level0>/rect>rect classstroke-foreground/10 x0 y102 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 50%, var(--theme-background)) data-date2025-09-12 data-level2>/rect>rect classstroke-foreground/10 x0 y118 width12 height12 rx2 ry2 fillvar(--theme-background) data-date2025-09-13 data-level0>/rect> /g>g transformtranslate(816, 0)> rect classstroke-foreground/10 x0 y22 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 50%, var(--theme-background)) data-date2025-09-14 data-level2>/rect>rect classstroke-foreground/10 x0 y38 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 75%, var(--theme-background)) data-date2025-09-15 data-level3>/rect>rect classstroke-foreground/10 x0 y54 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 50%, var(--theme-background)) data-date2025-09-16 data-level2>/rect>rect classstroke-foreground/10 x0 y70 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 50%, var(--theme-background)) data-date2025-09-17 data-level2>/rect>rect classstroke-foreground/10 x0 y86 width12 height12 rx2 ry2 fillvar(--theme-accent) data-date2025-09-18 data-level4>/rect>rect classstroke-foreground/10 x0 y102 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 75%, var(--theme-background)) data-date2025-09-19 data-level3>/rect>rect classstroke-foreground/10 x0 y118 width12 height12 rx2 ry2 fillvar(--theme-background) data-date2025-09-20 data-level0>/rect> /g>g transformtranslate(832, 0)> rect classstroke-foreground/10 x0 y22 width12 height12 rx2 ry2 fillvar(--theme-background) data-date2025-09-21 data-level0>/rect>rect classstroke-foreground/10 x0 y38 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 75%, var(--theme-background)) data-date2025-09-22 data-level3>/rect>rect classstroke-foreground/10 x0 y54 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 75%, var(--theme-background)) data-date2025-09-23 data-level3>/rect>rect classstroke-foreground/10 x0 y70 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 75%, var(--theme-background)) data-date2025-09-24 data-level3>/rect>rect classstroke-foreground/10 x0 y86 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 25%, var(--theme-background)) data-date2025-09-25 data-level1>/rect>rect classstroke-foreground/10 x0 y102 width12 height12 rx2 ry2 fillcolor-mix(in oklab, var(--theme-accent) 50%, var(--theme-background)) data-date2025-09-26 data-level2>/rect>rect classstroke-foreground/10 x0 y118 width12 height12 rx2 ry2 fillvar(--theme-background) data-date2025-09-27 data-level0>/rect> /g> /svg> /div> footer classflex flex-col sm:flex-row sm:justify-between gap-x-1 gap-y-2> div> 2013 contributions in the last year /div> div classflex items-center gap-3px> span classmr-1.5>Less/span> svg width12 height12> rect classstroke-foreground/10 width12 height12 fillvar(--theme-background) rx2 ry2>/rect> /svg>svg width12 height12> rect classstroke-foreground/10 width12 height12 fillcolor-mix(in oklab, var(--theme-accent) 25%, var(--theme-background)) rx2 ry2>/rect> /svg>svg width12 height12> rect classstroke-foreground/10 width12 height12 fillcolor-mix(in oklab, var(--theme-accent) 50%, var(--theme-background)) rx2 ry2>/rect> /svg>svg width12 height12> rect classstroke-foreground/10 width12 height12 fillcolor-mix(in oklab, var(--theme-accent) 75%, var(--theme-background)) rx2 ry2>/rect> /svg>svg width12 height12> rect classstroke-foreground/10 width12 height12 fillvar(--theme-accent) rx2 ry2>/rect> /svg> span classml-1.5>More/span> /div> /footer> /article> /div> section> h1 classtext-accent text-1.6rem pb-2.5 pl-1 mt-4 md:mt-7 font-semibold>Articles/h1>div classborder-1 border-accent/30 rounded-xl h-1 w-full>/div> article classw-full py-2 border-b border-accent/10> div classflex justify-between items-center gap-4> h3 classtext-base font-normal flex-1> a href/posts/showing-off-blog-features classhover:text-accent transition-colors> Showing Off Blog Features /a> /h3> time classtext-sm text-foreground/60 shrink-0> 2025-07-20 /time> /div> /article>article classw-full py-2 border-b border-accent/10> div classflex justify-between items-center gap-4> h3 classtext-base font-normal flex-1> a href/posts/pythons-context-managers-and-the-with-statement classhover:text-accent transition-colors> Python's Context Managers and the with Statement /a> /h3> time classtext-sm text-foreground/60 shrink-0> 2025-07-15 /time> /div> /article>article classw-full py-2 border-b border-accent/10> div classflex justify-between items-center gap-4> h3 classtext-base font-normal flex-1> a href/posts/typescripts-keyof-and-mapped-types classhover:text-accent transition-colors> TypeScript's keyof and Mapped Types /a> /h3> time classtext-sm text-foreground/60 shrink-0> 2025-07-14 /time> /div> /article>article classw-full py-2 border-b border-accent/10> div classflex justify-between items-center gap-4> h3 classtext-base font-normal flex-1> a href/posts/javascript-prototypal-inheritance classhover:text-accent transition-colors> JavaScript's Prototypal Inheritance /a> /h3> time classtext-sm text-foreground/60 shrink-0> 2025-07-13 /time> /div> /article>article classw-full py-2 border-b border-accent/10> div classflex justify-between items-center gap-4> h3 classtext-base font-normal flex-1> a href/posts/gos-interfaces-and-polymorphism classhover:text-accent transition-colors> Go's Interfaces and Polymorphism /a> /h3> time classtext-sm text-foreground/60 shrink-0> 2025-07-12 /time> /div> /article>article classw-full py-2 border-b border-accent/10> div classflex justify-between items-center gap-4> h3 classtext-base font-normal flex-1> a href/posts/pythons-generators-and-yield classhover:text-accent transition-colors> Python's Generators and Yield /a> /h3> time classtext-sm text-foreground/60 shrink-0> 2025-07-11 /time> /div> /article>article classw-full py-2 border-b border-accent/10> div classflex justify-between items-center gap-4> h3 classtext-base font-normal flex-1> a href/posts/advanced-typescript-conditional-types classhover:text-accent transition-colors> Advanced TypeScript: Conditional Types /a> /h3> time classtext-sm text-foreground/60 shrink-0> 2025-07-10 /time> /div> /article>article classw-full py-2 border-b border-accent/10> div classflex justify-between items-center gap-4> h3 classtext-base font-normal flex-1> a href/posts/javascripts-event-loop-explained classhover:text-accent transition-colors> JavaScript's Event Loop Explained /a> /h3> time classtext-sm text-foreground/60 shrink-0> 2025-07-09 /time> /div> /article>article classw-full py-2 border-b border-accent/10> div classflex justify-between items-center gap-4> h3 classtext-base font-normal flex-1> a href/posts/error-handling-in-go classhover:text-accent transition-colors> Error Handling in Go /a> /h3> time classtext-sm text-foreground/60 shrink-0> 2025-07-08 /time> /div> /article>article classw-full py-2 border-b border-accent/10> div classflex justify-between items-center gap-4> h3 classtext-base font-normal flex-1> a href/posts/pythons-list-comprehensions classhover:text-accent transition-colors> Python's List Comprehensions /a> /h3> time classtext-sm text-foreground/60 shrink-0> 2025-07-07 /time> /div> /article> div classmy-5 flex flex-row flex-wrap gap-3 justify-center> a href/posts aria-labelNext Page classbutton flex-row items-center justify-center w-full !pl-3.5 sm:w-min> Archive svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classml-2 text-xl size-5>path dm6 17 5-5-5-5 />path dm13 17 5-5-5-5 />/svg> /a> /div> /section> /main> footer classmt-auto pt-9 md:pt-11 grow-0 flex flex-col gap-6 items-center justify-between max-w-full text-foreground/80> div classflex w-full max-w-md items-center justify-between> a hrefhttps://github.com/fl0wo target_blank relnoopener noreferrer classsocial-link> span classsr-only>GitHub/span> svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classsize-7>path dM15 22v-4a4.8 4.8 0 0 0-1-3.5c3 0 6-2 6-5.5.08-1.25-.27-2.48-1-3.5.28-1.15.28-2.35 0-3.5 0 0-1 0-3 1.5-2.64-.5-5.36-.5-8 0C6 2 5 2 5 2c-.3 1.15-.3 2.35 0 3.5A5.403 5.403 0 0 0 4 9c0 3.5 3 5.5 6 5.5-.39.49-.68 1.05-.85 1.65-.17.6-.22 1.23-.15 1.85v4 />path dM9 18c-4.51 2-5-2-7-2 />/svg> /a> a hrefhttps://www.linkedin.com/in/florian-sabani target_blank relnoopener noreferrer classsocial-link> span classsr-only>LinkedIn/span> svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classsize-7>path dM16 8a6 6 0 0 1 6 6v7h-4v-7a2 2 0 0 0-2-2 2 2 0 0 0-2 2v7h-4v-7a6 6 0 0 1 6-6z />rect width4 height12 x2 y9 />circle cx4 cy4 r2 />/svg> /a> a hrefmailto:sabaniforian@gmail.com target_blank relnoopener noreferrer classsocial-link> span classsr-only>Email/span> svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classsize-7>path dm22 7-8.991 5.727a2 2 0 0 1-2.009 0L2 7 />rect x2 y4 width20 height16 rx2 />/svg> /a> /div> div classflex flex-col md:flex-row flex-wrap flex-1 items-center justify-center> span classmy-1>© 2025 Florian Sabani, from Italy 🇮🇹 with 🍕 and ❤️. All rights reserved./span> /div> /footer> /div> /body>/html>
View on OTX
|
View on ThreatMiner
Please enable JavaScript to view the
comments powered by Disqus.
Data with thanks to
AlienVault OTX
,
VirusTotal
,
Malwr
and
others
. [
Sitemap
]