mysite/public-clearnet/phd_journey/october_2025/index.html

137 lines
No EOL
24 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!doctype html><html lang=en dir=auto><head><meta charset=utf-8><meta http-equiv=X-UA-Compatible content="IE=edge"><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=robots content="noindex, nofollow"><title>October '25 | AlipourIm journeys</title>
<meta name=keywords content><meta name=description content="1st
Ok, let&rsquo;s start the month by declareing some goals and agendas.
What do I want to do this month?
Finish previous semester.
Pick the last of the course work for my prep phase.
Finalize the CoNEXT student workshop paper.
Finish my second RIL.
Start my 3rd and last RIL.
Learn more Go to become more comfortable with it, but how do I set this as a measureable goal?
More literature review, persumabely all of FOCI related papers this month.
Work on my codebase:
Do code cleaning
Add comments for code
Start working on ICMP stuff
More socializing! :-)
A fun pet project? Maybe with Go? Maybe with 3d printer? Idk.
Enhance your routines and add exercise to it please!
Alright. Now that the goals are set, let&rsquo;s start the month strong!
My last exam for pervious semester will be on October 7th.
I have done 74 ECTS, another 6 will be my last RIL.
If they give me Router Lab, 4 of it would count as ungraded along with an advance course such as either NN, ML sec or EML I would be done with the requirements for my prep phase.
I then just need to do my QE for which I should submit my first paper for which I&rsquo;m doing work!"><meta name=author content="Iman Alipour"><link rel=canonical href=https://blog.alipour.eu/phd_journey/october_2025/><link crossorigin=anonymous href=/assets/css/stylesheet.31b150d909186c48d6dbbf653acc2489945fa9ac2c8f8cd3fe8448e89e40fccf.css integrity="sha256-MbFQ2QkYbEjW279lOswkiZRfqawsj4zT/oRI6J5A/M8=" rel="preload stylesheet" as=style><link rel=icon href=https://blog.alipour.eu/favicon.ico><link rel=icon type=image/png sizes=16x16 href=https://blog.alipour.eu/favicon-16x16.png><link rel=icon type=image/png sizes=32x32 href=https://blog.alipour.eu/favicon-32x32.png><link rel=apple-touch-icon href=https://blog.alipour.eu/apple-touch-icon.png><link rel=mask-icon href=https://blog.alipour.eu/safari-pinned-tab.svg><meta name=theme-color content="#2e2e33"><meta name=msapplication-TileColor content="#2e2e33"><link rel=alternate hreflang=en href=https://blog.alipour.eu/phd_journey/october_2025/><noscript><style>#theme-toggle,.top-link{display:none}</style><style>@media(prefers-color-scheme:dark){:root{--theme:rgb(29, 30, 32);--entry:rgb(46, 46, 51);--primary:rgb(218, 218, 219);--secondary:rgb(155, 156, 157);--tertiary:rgb(65, 66, 68);--content:rgb(196, 196, 197);--code-block-bg:rgb(46, 46, 51);--code-bg:rgb(55, 56, 62);--border:rgb(51, 51, 51)}.list{background:var(--theme)}.list:not(.dark)::-webkit-scrollbar-track{background:0 0}.list:not(.dark)::-webkit-scrollbar-thumb{border-color:var(--theme)}}</style></noscript><script>(function(){window.goatcounter={endpoint:"/count"};const e=document.createElement("script");e.async=!0,e.src="/js/count.js",document.head.appendChild(e)})()</script><script>(function(){const s="",t=new Intl.NumberFormat,o="visit",i="visits";function a(e){document.readyState==="complete"||document.readyState==="interactive"?setTimeout(e,0):document.addEventListener("DOMContentLoaded",e)}function r(){try{return window.goatcounter&&window.goatcounter.get_data?window.goatcounter.get_data().p:location.pathname}catch{return location.pathname}}async function e(e,t){try{const o=new URLSearchParams({t:String(Date.now())});t&&o.set("start",t);const a=`${s}/counter/${encodeURIComponent(e)}.json?${o}`,n=await fetch(a,{credentials:"omit"});if(n.status===404)return 0;if(!n.ok)throw 0;const r=await n.json(),i=Number(String(r.count).replace(/,/g,""));return Number.isFinite(i)?i:0}catch{return null}}const n=e=>e===null?"—":`${t.format(e)} ${e===1?o:i}`;a(async function(){const s=document.querySelector(".post-single");if(s){const t=s.querySelector(".post-header .post-meta, .post-header .entry-meta, .post-meta"),o=await e(r());if(t){let e=t.querySelector(".post-views");e||(e=document.createElement("span"),e.className="post-views",t.appendChild(e)),e.textContent=n(o??0)}}const i=document.querySelectorAll("article.post-entry");await Promise.all(Array.from(i).map(async t=>{const s=t.querySelector(".entry-footer, .post-meta"),o=t.querySelector("a.entry-link, h2 a, .entry-title a");if(!s||!o)return;try{const i=new URL(o.getAttribute("href"),location.origin);if(i.origin!==location.origin)return;let t=s.querySelector(".post-views");t||(t=document.createElement("span"),t.className="post-views",s.appendChild(t)),t.textContent=n(await e(i.pathname)??0)}catch{}}));const o=document.getElementById("gc_site_visitors_week");if(o){const n=await e("TOTAL","week");o.textContent=n===null?"—":t.format(n)}})})()</script></head><body id=top><script>localStorage.getItem("pref-theme")==="dark"?document.body.classList.add("dark"):localStorage.getItem("pref-theme")==="light"?document.body.classList.remove("dark"):window.matchMedia("(prefers-color-scheme: dark)").matches&&document.body.classList.add("dark")</script><header class=header><nav class=nav><div class=logo><a href=https://blog.alipour.eu/ accesskey=h title="AlipourIm journeys (Alt + H)">AlipourIm journeys</a><div class=logo-switches><button id=theme-toggle accesskey=t title="(Alt + T)" aria-label="Toggle theme"><svg id="moon" width="24" height="18" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M21 12.79A9 9 0 1111.21 3 7 7 0 0021 12.79z"/></svg><svg id="sun" width="24" height="18" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="5"/><line x1="12" y1="1" x2="12" y2="3"/><line x1="12" y1="21" x2="12" y2="23"/><line x1="4.22" y1="4.22" x2="5.64" y2="5.64"/><line x1="18.36" y1="18.36" x2="19.78" y2="19.78"/><line x1="1" y1="12" x2="3" y2="12"/><line x1="21" y1="12" x2="23" y2="12"/><line x1="4.22" y1="19.78" x2="5.64" y2="18.36"/><line x1="18.36" y1="5.64" x2="19.78" y2="4.22"/></svg></button></div></div><ul id=menu><li><a href=https://blog.alipour.eu/posts/ title=Posts><span>Posts</span></a></li><li><a href=https://blog.alipour.eu/phd_journey/ title=PhD_journey><span>PhD_journey</span></a></li><li><a href=https://blog.alipour.eu/about/ title=About><span>About</span></a></li></ul></nav></header><main class=main><article class=post-single><header class=post-header><div class=breadcrumbs><a href=https://blog.alipour.eu/>Home</a>&nbsp;»&nbsp;<a href=https://blog.alipour.eu/phd_journey/>PhD_journeys</a></div><h1 class="post-title entry-hint-parent">October '25</h1><div class=post-meta><span title='2025-10-31 08:40:43 +0000 UTC'>October 31, 2025</span>&nbsp;·&nbsp;8 min&nbsp;·&nbsp;Iman Alipour
<span class=post-meta-item><a href=https://blog.alipour.eu/phd_journey/october_2025/#isso-thread class=isso-comments-link>Comments</a></span></div></header><div class=post-content><h1 id=1st>1st<a hidden class=anchor aria-hidden=true href=#1st>#</a></h1><p>Ok, let&rsquo;s start the month by declareing some goals and agendas.</p><p>What do I want to do this month?</p><ul><li>Finish previous semester.</li><li>Pick the last of the course work for my prep phase.</li><li>Finalize the CoNEXT student workshop paper.</li><li>Finish my second RIL.</li><li>Start my 3rd and last RIL.</li><li>Learn more Go to become more comfortable with it, but how do I set this as a measureable goal?</li><li>More literature review, persumabely all of FOCI related papers this month.</li><li>Work on my codebase:<ol><li>Do code cleaning</li><li>Add comments for code</li><li>Start working on ICMP stuff</li></ol></li><li>More socializing! :-)</li><li>A fun pet project? Maybe with Go? Maybe with 3d printer? Idk.</li><li>Enhance your routines and add exercise to it please!</li></ul><p>Alright. Now that the goals are set, let&rsquo;s start the month strong!
My last exam for pervious semester will be on October 7th.
I have done 74 ECTS, another 6 will be my last RIL.
If they give me Router Lab, 4 of it would count as ungraded along with an advance course such as either NN, ML sec or EML I would be done with the requirements for my prep phase.
I then just need to do my QE for which I should submit my first paper for which I&rsquo;m doing work!</p><p>I have started to take SSRIs again.
I used to take them before I came to Germany to start my PhD, but after coming here things were going really well for many months, and I wanted to cut the medication.
I was taking more than just SSRIs actually, and my psychiatrist agreed to cut all other three medications but advised me to keep taking my SSRI.
After being all happy and things working very well, we started to cut the last piece of the puzzle.
We agreed to reduce the dosage by 0.25% of the max and wait for one month.
Things were going really well for the first two and a half month, and then it happened.
The catastrophe that put me in my worst mental and physicall position happened to me.
It&rsquo;s not something I want to talk about in my blog, well at least for now, but I&rsquo;ve tried to talk about it with my closest friends.
It&rsquo;s so sad that things happened the way they did.
I never really fully recovered.
But&mldr; time has passed.
Almost 8 months now.
I should not have continued to cut my medication, but I did.
I damaged myself badly by being stubborn.
My brother who knew everything insisted that I should continue the usage, but I didn&rsquo;t listen.
My parents didn&rsquo;t know anything, but could see thier happy son turning into the saddest, most depressed thing of all time.
I was scared of my own shadow for more than one month.
I eventually started to go out, but seeing some certain people made me uncomfortable.
This is another thing I haven&rsquo;t been able to figure out.
In the end, I just endured pain, a lot of pain.
I&rsquo;m glad I didn&rsquo;t break, but I do think most people would&rsquo;ve.
To deal with this pain, I decided to take many courses.
Cure pain with more pain.
What a fool I was.
I just tore myself up mentally and added much more unneeded stress.</p><p>Did I mention I didn&rsquo;t show up in office for 6 weeks?
And that when I came back I was hit again with things I didn&rsquo;t understand?
Sometimes in life shit happens, but this was a whole new level.
I don&rsquo;t know how much of this I want to talk about publicly, but I do want to just say that I was hurt really badly.
I&rsquo;ve been trying to just lay low, stick to myself, and stay the hell out of trouble.</p><h1 id=3rd>3rd<a hidden class=anchor aria-hidden=true href=#3rd>#</a></h1><p>Today is the German unity day, and we have a long weekend ahead!
Other than that, last night was one of the most fantabolous days of my life.
I&rsquo;m feeling more content and secure.
I&rsquo;m feeling true happiness.
I don&rsquo;t know how much the SSRI is affecting me, but I know one thing for sure.
I&rsquo;m just like I used to be 9 months ago.
Just as jolly, positive, and feeling like I&rsquo;m on top of the world.
Thinking about it a bit more, I do think I&rsquo;m being a bit less passionate about my work.
What could be the reason? Different priorities? Nah. I really love my research and care about it.
I think it&rsquo;s just that there is no pressure on me, and no deadline.
I will try to set small deadlines for myself and force myself to be more productive.
Oh, and the SSRI adverse effects are visible! Yeah&mldr; But it&rsquo;s going to be alright, I&rsquo;m sure of it.
I have an exam I need to prepare for on 7th, but I&rsquo;ve been procrastinating. I should plan my days and stick to it. Hell yes.</p><h1 id=5th>5th<a hidden class=anchor aria-hidden=true href=#5th>#</a></h1><p>My student workshop paper to CoNEXT &lsquo;25 was rejected.
It got one weak accept and one weak reject, with both reviewers claiming to have somewhat familiarity with the topic.</p><p>First review (wa) provided two suggestions for improving the work.
However, as this was a workshop paper, the goal was to talk about the research in the presentation and afterwards fine-tune details.</p><p>Second review (wr) asked for more details.
In the end they suggested only focusing on one approach and it&rsquo;s evaluation.
This kinda defeated the purpose of what I was trying to do, to provide &ldquo;tools&rdquo;.</p><p>Another thing they mentioned was how ML-based traffic analysis can be used to detect evasion.
This is indeed something I like to work on and look at in the near future.</p><h1 id=7th>7th<a hidden class=anchor aria-hidden=true href=#7th>#</a></h1><p>Stressful day.
I had my last exam, the exam for Interactive systems that I did not attend the main exam for.
I tried to study over the weekend, but some weird things happened throughout the weekend, making my very distracted mind even more distracted.
I don&rsquo;t know how I did, but I&rsquo;m glad I did the exam.
Hopefully I did alright, although I kinda do know some of the mistakes I&rsquo;ve made, which is a really bad sign&mldr;
I hope I won&rsquo;t have to take another extra course in the next semesters, that would just be annoying.
I really do hope so.</p><h1 id=8th>8th<a hidden class=anchor aria-hidden=true href=#8th>#</a></h1><p>I&rsquo;m back at work, still very distracted with life.
I do need to do literature review, expand my framework, and focus on my work.
It&rsquo;s a Wednesday unfortunately, meaning I have my German class until 9:30, which today it lasted until 9:45, and then we have cookies at 14:00.
I hope I can get myself together and start being productive again.</p><h1 id=9th>9th<a hidden class=anchor aria-hidden=true href=#9th>#</a></h1><p>I will be doing literature review today.
Yesteday I didn&rsquo;t manage to get myself together. Drat.
There will be a nice social event later today too.
I can rest and socialize with my group&rsquo;s amazing people!
It&rsquo;ll be fun! :)</p><p>Another fun thing is that I will get my very own physical GFW box today.
It&rsquo;s probably the most majestic thing that could&rsquo;ve happened?
The reason for it is that a month ago there was a leak for GFW.
Lucky us I guess.</p><h1 id=13th>13th<a hidden class=anchor aria-hidden=true href=#13th>#</a></h1><p>Last week was again not a productive week.
I will start to plan my days from now on.
The important things are literature review, working on the code base, and looking at the box a bit.
Unfortunately the new semester also starts from today.
I&rsquo;ll be having one, at most two courses.</p><h1 id=17th>17th<a hidden class=anchor aria-hidden=true href=#17th>#</a></h1><p>Another unproductive week.
I think this was the worst one actually.
I can&rsquo;t focus on reading the papers, I get distracted easily or lose interest.
Tobias suggested USENIX&rsquo;s 3-slide slide deck to enhance my focus, I&rsquo;ll give it a try.</p><p>I also need to address the elephant in the room, and start working on the codebase.</p><p>I also need to look at the GFW files more, and try to find useful stuff there.</p><p>But first I need to work on HTDN&rsquo;s papers, and craft the slides. That is the highest priority on my list. I&rsquo;ll do it.</p><hr><h1 id=31st>31st<a hidden class=anchor aria-hidden=true href=#31st>#</a></h1><p>It went by.
It went by quickly.
I wasn&rsquo;t able to pick myself up this month, but I won&rsquo;t let it happen in the following.
I want to be truthful, so I won&rsquo;t hide anything.
the only thing is I should&rsquo;ve let myself grief a bit, and I did. I&rsquo;m proud of it. It&rsquo;s fine.
For next month, I will start strong, try to get myself together, and pick myself up. I will make progress.
I promise.</p><p>Also I think there is no point in me ranting everyday or every once in a while in my PhD journey posts? Maybe it&rsquo;s not a bad thing. The problem is I don&rsquo;t have much to present, and that&rsquo;s why this is the content. Idk if I change the structure or not, but for now it is what it is.</p><p>Ok, let&rsquo;s set some goals for next month in advance, then we can see how good we did.</p><ul><li>I want to work on ICMP stuff and make it work nicely.</li><li>I want to do more literature review, maybe read all 2025 and 2024 censorship papers. Cross your fingers for this.</li><li>I need to keep up with my courses, including the German class.</li><li>I might work more on the GFW leaked data, but I think it&rsquo;s not a priority for me for now. So&mldr; scrap this last one.</li></ul><div class=signature-block style=margin-top:1rem><p><strong>Downloads:</strong>
<a href=/sources/PhD_journey/October_2025.md>Markdown</a> ·
<a href=/sources/PhD_journey/October_2025.md.asc>Signature (.asc)</a></p><details class=signature><summary>View OpenPGP signature</summary><pre style=font-size:.85em;overflow-x:auto;padding:.75rem>-----BEGIN PGP SIGNATURE-----
iQIzBAABCgAdFiEEVaKl3oR5K6zGyu4/tYgoUOBMjSoFAmpkbtwACgkQtYgoUOBM
jSryHhAAvH&#43;XWK2675p6vFyzP9ZVDmyh1klyhNM/rLiErk5GfmnwNmKQIFxoMei9
2UuypSgH7l7mG9Ga&#43;1Ph9W5YhA0qMMbA5LVWMyqlRfvVF9hoY4On21YRBieXqwsx
G4jS7A4PxYZbRt8&#43;lVuyphe&#43;KMRiwOMfPuWoIse2hfpfhs64h&#43;cmZVPen5zsWHD5
2jAV888Y5oqGc9uISf380zBqEn3jIJOxiWCi&#43;4vS6p87h0x8E2tVqCUNQEGgiriu
NLBkMOkuXAlQZnnv379jX4wh7N79bVjDoH3IHRQx&#43;W8FqEGzu11D3VxO85&#43;Q5/EY
n0FvOI4EXtWAHKjsHFcEX/MfXESy5zwNgIWW7&#43;8OYnIv1CRPLPz/hHoZxklkflyZ
yqNdg8o&#43;aRHsqbDVQxIKQXH5xUEcDH&#43;9A7bRxmCmgksML01dPnrcw4ioYzu&#43;t0em
4DRVp1HWJP/P7Sv2QrR6KgLS3DINRzC7ZkzV7Yeg40eQcb7BadEAZZ9aEjjDJtR0
B/n18yUje9BWNFc7nYKkmBYO4UU4L5O1lJWQZhgLrfWxZziJSRs2WTD&#43;tKsbY&#43;5/
YSEmToD9nAFioRSpWIV9/uYlsJYfGFtCCgNb/JD2uE&#43;bROitVdZ6auE5AXmef1aN
t1QRAQvtpctfFlmwkDdb0BLFS5GSbRr55mkLg1yGS2o4zsC6FQ8=
=NvQ7
-----END PGP SIGNATURE-----
</pre></details><p><em>Verify locally:</em></p><pre style=font-size:.85em;overflow-x:auto;padding:.75rem>curl -fSLO https://blog.alipour.eu/sources/PhD_journey/October_2025.md
curl -fSLO https://blog.alipour.eu/sources/PhD_journey/October_2025.md.asc
gpg --verify October_2025.md.asc October_2025.md
</pre></div></div><footer class=post-footer><ul class=post-tags></ul><nav class=paginav><a class=prev href=https://blog.alipour.eu/posts/cupid/><span class=title>« Prev</span><br><span>Cupid is so dumb</span>
</a><a class=next href=https://blog.alipour.eu/posts/e2ee/><span class=title>Next »</span><br><span>Sending EndtoEnd Encrypted Email (E2EE) without losing friends</span></a></nav></footer><div class=comments-switch style="display:flex;gap:.5rem;margin:.5rem 0 1rem"><button id=btn-isso type=button aria-pressed=true>Anonymous (Isso)</button>
<button id=btn-giscus type=button aria-pressed=false>GitHub (Giscus)</button>
<a href=https://github.com/AlipourIm/blog-comments/discussions/categories/comments target=_blank rel=noopener>Open on GitHub ↗</a></div><div id=panel-giscus style=display:none><section id=giscus-thread></section></div><div id=panel-isso><section id=isso-thread data-isso-id=/phd_journey/october_2025/ data-title="October &amp;#39;25"><noscript>Javascript needs to be activated to view comments.</noscript></section><script src=/isso/js/embed.min.js data-isso=/isso/ data-isso-css=false data-isso-lang=en data-isso-max-comments-nested=5 data-isso-sorting=newest async></script><small class=isso-powered style="display:block;margin:.5rem 0;color:var(--secondary,#888)">Comments powered by <a href=https://isso-comments.de target=_blank rel=noopener>Isso</a></small></div><script>(function(){var i=document.getElementById("panel-isso"),a=document.getElementById("panel-giscus"),e=document.getElementById("btn-isso"),t=document.getElementById("btn-giscus"),s=!1;function r(){if(n=localStorage.getItem("pref-theme"),n==="dark")return!0;if(n==="light")return!1;var n,e=document.documentElement,t=document.body;return!!(e.classList&&e.classList.contains("dark")||t.classList&&t.classList.contains("dark")||e.getAttribute("data-theme")==="dark"||t.getAttribute("data-theme")==="dark"||e.classList&&e.classList.contains("theme-dark")||t.classList&&t.classList.contains("theme-dark"))||window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches}function o(){return r()?"dark_dimmed":"noborder_light"}function c(){if(s)return;var t,n,e=document.createElement("script");e.src="https://giscus.app/client.js",e.async=!0,e.crossOrigin="anonymous",e.setAttribute("data-repo","AlipourIm/blog-comments"),e.setAttribute("data-repo-id","R_kgDOQGARyA"),e.setAttribute("data-category","Comments"),e.setAttribute("data-category-id","DIC_kwDOQGARyM4Cw3x-"),e.setAttribute("data-mapping","pathname"),e.setAttribute("data-strict","0"),e.setAttribute("data-reactions-enabled","1"),e.setAttribute("data-emit-metadata","0"),e.setAttribute("data-input-position","bottom"),e.setAttribute("data-lang","en"),e.setAttribute("data-theme",o()),document.getElementById("giscus-thread").appendChild(e);function i(){var e=document.querySelector("iframe.giscus-frame");e&&e.contentWindow&&e.contentWindow.postMessage({giscus:{setConfig:{theme:o()}}},"https://giscus.app")}t=document.getElementById("theme-toggle"),t&&t.addEventListener("click",function(){setTimeout(i,0)}),n=new MutationObserver(function(){i()}),n.observe(document.documentElement,{attributes:!0,attributeFilter:["class","data-theme"]}),n.observe(document.body,{attributes:!0,attributeFilter:["class","data-theme"]}),s=!0}function n(n){var s=n==="isso";i.style.display=s?"block":"none",a.style.display=s?"none":"block",e&&e.setAttribute("aria-pressed",s?"true":"false"),t&&t.setAttribute("aria-pressed",s?"false":"true"),s||c()}e&&e.addEventListener("click",function(e){e.preventDefault(),n("isso")}),t&&t.addEventListener("click",function(e){e.preventDefault(),n("giscus")}),n("isso")})()</script></article></main><footer class=footer><span>&copy; 2026 <a href=https://blog.alipour.eu/>AlipourIm journeys</a></span> ·
<span>Powered by
<a href=https://gohugo.io/ rel="noopener noreferrer" target=_blank>Hugo</a> &
<a href=https://github.com/adityatelange/hugo-PaperMod/ rel=noopener target=_blank>PaperMod</a></span></footer><a href=#top aria-label="go to top" title="Go to Top (Alt + G)" class=top-link id=top-link accesskey=g><svg viewBox="0 0 12 6" fill="currentcolor"><path d="M12 6H0l6-6z"/></svg></a><div class=site-meta-row style=display:flex;align-items:center;gap:.75rem;flex-wrap:wrap><a href=/index.xml rel=alternate type=application/rss+xml title=RSS class=rss-link style=display:inline-flex;align-items:center;gap:.35rem><svg viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M4 11a9 9 0 019 9"/><path d="M4 4a16 16 0 0116 16"/><circle cx="5" cy="19" r="1"/></svg>
<span>RSS</span>
</a><span aria-hidden=true>·</span>
<span>Visitors this week: <span id=gc_site_visitors_week></span></span></div><script>let menu=document.getElementById("menu");menu&&(menu.scrollLeft=localStorage.getItem("menu-scroll-position"),menu.onscroll=function(){localStorage.setItem("menu-scroll-position",menu.scrollLeft)}),document.querySelectorAll('a[href^="#"]').forEach(e=>{e.addEventListener("click",function(e){e.preventDefault();var t=this.getAttribute("href").substr(1);window.matchMedia("(prefers-reduced-motion: reduce)").matches?document.querySelector(`[id='${decodeURIComponent(t)}']`).scrollIntoView():document.querySelector(`[id='${decodeURIComponent(t)}']`).scrollIntoView({behavior:"smooth"}),t==="top"?history.replaceState(null,null," "):history.pushState(null,null,`#${t}`)})})</script><script>var mybutton=document.getElementById("top-link");window.onscroll=function(){document.body.scrollTop>800||document.documentElement.scrollTop>800?(mybutton.style.visibility="visible",mybutton.style.opacity="1"):(mybutton.style.visibility="hidden",mybutton.style.opacity="0")}</script><script>document.getElementById("theme-toggle").addEventListener("click",()=>{document.body.className.includes("dark")?(document.body.classList.remove("dark"),localStorage.setItem("pref-theme","light")):(document.body.classList.add("dark"),localStorage.setItem("pref-theme","dark"))})</script><script>document.querySelectorAll("pre > code").forEach(e=>{const n=e.parentNode.parentNode,t=document.createElement("button");t.classList.add("copy-code"),t.innerHTML="copy";function s(){t.innerHTML="copied!",setTimeout(()=>{t.innerHTML="copy"},2e3)}t.addEventListener("click",t=>{if("clipboard"in navigator){navigator.clipboard.writeText(e.textContent),s();return}const n=document.createRange();n.selectNodeContents(e);const o=window.getSelection();o.removeAllRanges(),o.addRange(n);try{document.execCommand("copy"),s()}catch{}o.removeRange(n)}),n.classList.contains("highlight")?n.appendChild(t):n.parentNode.firstChild==n||(e.parentNode.parentNode.parentNode.parentNode.parentNode.nodeName=="TABLE"?e.parentNode.parentNode.parentNode.parentNode.parentNode.appendChild(t):e.parentNode.appendChild(t))})</script></body></html>