blog/public/posts/index.html

29 lines
23 KiB
HTML

<!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="index, follow"><title>Posts | Morgan's Blog</title><meta name=keywords content><meta name=description content="Posts - Morgan's Blog"><meta name=author content="Me"><link rel=canonical href=http://blog.morgan.kr/posts/><meta name=google-site-verification content="XYZabc"><meta name=yandex-verification content="XYZabc"><meta name=msvalidate.01 content="XYZabc"><link crossorigin=anonymous href=/assets/css/stylesheet.31527a12923607f33c1cac9636a2fa755f6ade7c55866bdb96e44c6bcaf6cfbb.css integrity="sha256-MVJ6EpI2B/M8HKyWNqL6dV9q3nxVhmvbluRMa8r2z7s=" rel="preload stylesheet" as=style><link rel=icon href=https://blog.morgan.kr/favicon.ico><link rel=icon type=image/png sizes=16x16 href=http://blog.morgan.kr/favicon-16x16.png><link rel=icon type=image/png sizes=32x32 href=http://blog.morgan.kr/favicon-32x32.png><link rel=apple-touch-icon href=https://blog.morgan.kr/favicon.ico><link rel=mask-icon href=https://blog.morgan.kr/favicon.ico><meta name=theme-color content="#2e2e33"><meta name=msapplication-TileColor content="#2e2e33"><link rel=alternate type=application/rss+xml href=http://blog.morgan.kr/posts/index.xml><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);--hljs-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 type=application/javascript>var doNotTrack=!1;doNotTrack||(function(e,t,n,s,o,i,a){e.GoogleAnalyticsObject=o,e[o]=e[o]||function(){(e[o].q=e[o].q||[]).push(arguments)},e[o].l=1*new Date,i=t.createElement(n),a=t.getElementsByTagName(n)[0],i.async=1,i.src=s,a.parentNode.insertBefore(i,a)}(window,document,"script","https://www.google-analytics.com/analytics.js","ga"),ga("create","UA-123-45","auto"),ga("send","pageview"))</script><meta property="og:title" content="Posts"><meta property="og:description" content="Hi! I'm Morgan!"><meta property="og:type" content="website"><meta property="og:url" content="http://blog.morgan.kr/posts/"><meta property="og:image" content="http://blog.morgan.kr"><meta property="og:site_name" content="Morgan's Blog"><meta name=twitter:card content="summary_large_image"><meta name=twitter:image content="http://blog.morgan.kr"><meta name=twitter:title content="Posts"><meta name=twitter:description content="Hi! I'm Morgan!"><script type=application/ld+json>{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":2,"name":"Posts","item":"http://blog.morgan.kr/posts/"}]}</script></head><body class=list 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><script type=text/x-mathjax-config>
MathJax.Hub.Config({
tex2jax: {
inlineMath: [['$','$'], ['\\(','\\)']],
displayMath: [['$$','$$']],
},
"HTML-CSS": {
scale: 80
},
});
</script><script src="//cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script><header class=header><nav class=nav><div class=logo><div class=logo-switches><button id=theme-toggle accesskey=t title="(Alt + T)"><svg id="moon" xmlns="http://www.w3.org/2000/svg" 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" xmlns="http://www.w3.org/2000/svg" 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=http://blog.morgan.kr/categories/ title=Categories><span>Categories</span></a></li><li><a href=http://blog.morgan.kr/tags/ title=Tags><span>Tags</span></a></li><li><a href=http://blog.morgan.kr/posts/ title=Posts><span class=active>Posts</span></a></li></ul></nav></header><main class=main><header class=page-header><div class=breadcrumbs><a href=http://blog.morgan.kr>Home</a></div><h1>Posts
<a href=index.xml title=RSS aria-label=RSS><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" height="23"><path d="M4 11a9 9 0 019 9"/><path d="M4 4a16 16 0 0116 16"/><circle cx="5" cy="19" r="1"/></svg></a></h1></header><article class=post-entry><header class=entry-header><h2>What the hell is USB-C DP Alt mode</h2></header><div class=entry-content><p>What the hell is USB-C DP Alt mode To. @hachsiapg, as part of my note
서론: Microsoft Surface Laptop 4 & Linux 제가 밖에서도 쓰고 집에서도 사용하는 만능 서피스 랩탑 4를 사용한지 어느새 2년이 넘었습니다. 그 사이에 리퍼도 받고 OS도 여러번 갈아엎기도 하고, 또 제 하드한 작업들을 잘 버텨주기도 한 정말 대단한 랩탑입니다. 특히 3:2의 광활한 세로는 정말 좋아서 다른 비율의 노트북은 이제 사용할 수 없는 몸이 되어버리기도 했습니다. 길이를 측정해보면 13인치 랩탑들과 동일한데, 세로에 5cm정도를 추가한 정도라 타이틀바 하나정도 넓혀주는 셈이라 마음놓고 패널바를 띄어놓고 사용할 수 있습니다....</p></div><footer class=entry-footer><span title='2023-05-06 12:55:32 +0000 UTC'>May 6, 6000</span>&nbsp;·&nbsp;659 words&nbsp;·&nbsp;Me</footer><a class=entry-link aria-label="post link to What the hell is USB-C DP Alt mode" href=http://blog.morgan.kr/posts/what-the-hell-is-usb-c-dp-alt-mode/></a></article><article class=post-entry><header class=entry-header><h2>Wasting Time</h2></header><div class=entry-content><p>Wasting Time of My Life</p></div><footer class=entry-footer><span title='2023-04-20 08:07:41 +0900 KST'>April 20, 20000</span>&nbsp;·&nbsp;5 words&nbsp;·&nbsp;Me</footer><a class=entry-link aria-label="post link to Wasting Time" href=http://blog.morgan.kr/posts/wasting-time/></a></article><article class=post-entry><header class=entry-header><h2>(Untitled)</h2></header><div class=entry-content><p></p></div><footer class=entry-footer><span title='2022-10-03 15:25:08 +0000 UTC'>October 3, 3000</span>&nbsp;·&nbsp;0 words&nbsp;·&nbsp;Me</footer><a class=entry-link aria-label="post link to (Untitled)" href=http://blog.morgan.kr/posts/cam-nae-jinjja-sangsangdo-moshaessdeon-ilinde/></a></article><article class=post-entry><header class=entry-header><h2>선택실패</h2></header><div class=entry-content><p>고등학교 3학년 때까지만 해도 나는 무조건 컴퓨터 공학과나 전기전자 공학과. 학과만 보고 대학교에 진학하리라 마음먹었었다. 진짜 학교 이름은 절대 보지 않을 것이라 생각했다. 하지만 막상 입시에 처하고 선택의 갈림길에 있으니 그 다짐은 물거품이 되었다.
역시나, 아니나 다를까 원서 접수 기간이 되니 진로 담당 선생님은 실적을 위해 상위 대학교의 낮은 학과에 원서를 넣어볼 것을 추천하셨다. 말이 추천이지 반 강제로 넣게 되었다. 아무런 관심도 없었고, 3년동안 생각도 없었는데다 자기소개서도 짜맞춰야 쓸 수 있는 학과에 지원했다....</p></div><footer class=entry-footer><span title='2022-04-14 06:55:25 +0000 UTC'>April 14, 14000</span>&nbsp;·&nbsp;489 words&nbsp;·&nbsp;Me</footer><a class=entry-link aria-label="post link to 선택실패" href=http://blog.morgan.kr/posts/2022041406/></a></article><article class=post-entry><header class=entry-header><h2>다른 집</h2></header><div class=entry-content><p>우리 집은 창원이다.어렸을 때 서울에 살다가 초증학교때 창원으로 내려왔고, 고등학교 3학년까지 거기서 살아왔다. 고등학교는 기숙사 학교를 가기는 했지만, 내가 가장 마음의 안식을 느끼고 진정으로 쉴 수 있는 곳은 오직 우리 집이다.
대학을 서울로 와서 대학 기숙사에 들어가게 되었다. 고등학교때 기숙사는 들어오자마자 화장실과 샤워실을 리모델링 하기도 했고, 전국에서 아마 가장 넓은 방을 가지고 있었지 않을까 싶다. 각 방마다 냉장고도 있고. 하지만 대학교 기숙사는 참담했다. 2/3로 줄어든 엄청 좁은 방에, 낮은 천장, 허술한 난방, 게다가 못 쓸정도로 더러운 화장실과 때와 곰팡이로 가득한 샤워실까지....</p></div><footer class=entry-footer><span title='2022-04-09 04:02:17 +0000 UTC'>April 9, 9000</span>&nbsp;·&nbsp;481 words&nbsp;·&nbsp;Me</footer><a class=entry-link aria-label="post link to 다른 집" href=http://blog.morgan.kr/posts/dareun-jibe-eonjhyeo-sandaneun-geoseun/></a></article><article class=post-entry><header class=entry-header><h2>고등학교 돌아보기</h2></header><div class=entry-content><p>2021년을 돌아보며.
2021.12.22
벌써 12월 22일이다. 12월달에는 열심히 살아야지 하던게 어제같은데 벌써 새해가 다가온다. 나는 내년 성인이 되지만, 아직 실감이 안난다. 술담배를 할 수 있는 나이라기 보다는 내 행동에 내가 책임져야 하는 때가 되었다는 게 더 실감이 난다. 대학을 고민하며 내가 앞으로 뭘 하면서 먹고 살아야할지 꽤 오랫동안 고심했는데, 그 결과로 조금 성장한 것 같아 이제와서는 약간 기쁘기도 하고 무섭기도 하면서 슬픈 약간 오묘한 기분이다. 어찌되었든 이제 성인이 되니까 조금 변해야겠다고 다짐하고 있다....</p></div><footer class=entry-footer><span title='2021-12-21 16:23:55 +0000 UTC'>December 21, 21000</span>&nbsp;·&nbsp;925 words&nbsp;·&nbsp;Me</footer><a class=entry-link aria-label="post link to 고등학교 돌아보기" href=http://blog.morgan.kr/posts/godeunghaggyo-dolabogi/></a></article><article class=post-entry><header class=entry-header><h2>대학 입시가 한단계만 남았다.</h2></header><div class=entry-content><p>대학 입시가 한단계만을 앞두고 있다.
합격자 발표와 등록.
뭐 공부하고 대비해야하는 시험은 다 끝났으니 마음껏 놀고 있지만 마음의 한편에는 아직 불안함이 많이 존재하고 있다. 또 공부와 시험대비라는 정해져 있는 계획만을 12년 동안 따르던 나에게서 갑자기 계획이나 강제성이 사라졌다. 이제부터는 내가 무엇을 할 것인지를 나 혼자서 알아서 결정해야 하고 또한 그 책임도 내가 져야할 것이다. 예를 들어 늦게자도 누군가 깨워주지 않는다는 것에서 그것을 처음으로 느꼈다.
지금 하고싶은 것도 없다. 무언가 해야하는 것도 딱히 없다....</p></div><footer class=entry-footer><span title='2021-12-01 08:09:52 +0000 UTC'>December 1, 1000</span>&nbsp;·&nbsp;589 words&nbsp;·&nbsp;Me</footer><a class=entry-link aria-label="post link to 대학 입시가 한단계만 남았다." href=http://blog.morgan.kr/posts/daehag-ibsiga-handangye-namassda/></a></article><article class=post-entry><header class=entry-header><h2>Spectre Attacks: Exploiting Speculative Execution</h2></header><div class=entry-content><p>The Central Processing Unit (CPU) is a device that plays a major role as the brain of a computer. The CPU controls four main functions: memory, interpretation, computation, and control, which are based on the role of interpreting the commands of a given program to perform operations with data. In CPU, there are the program counter, a command register, an ALU (arithmetic logic unit), a control unit, a bus, and a register....</p></div><footer class=entry-footer><span title='2021-10-30 07:19:36 +0000 UTC'>October 30, 30000</span>&nbsp;·&nbsp;864 words&nbsp;·&nbsp;Me</footer><a class=entry-link aria-label="post link to Spectre Attacks: Exploiting Speculative Execution" href=http://blog.morgan.kr/posts/1-spectre-attacks-exploiting-peculative-execution/></a></article><article class=post-entry><header class=entry-header><h2>전자 제어의 세계인 미래, 그 보안의 위협</h2></header><div class=entry-content><p>미래 사회에는 전기자동차와 자율주행 자동차가 성하게 유행할 것이다. 사람 운전자의 역할이 거의 축소되고, AI나 전자적으로 제어될 것인데, 지금도 많이 일어나고 있는 논란은 바로 보안이다. 만약 자율주행 자동차가 해킹을 당하게 된다면 어떨까? 해커는 자동차에 타고 있는 사람의 생사여탈권을 가지게 될 정도로 심각한 문제가 있는 것이다. 그러므로, 이러한 생활환경에 직접적인 영향을 주는 전자기기의 보안은 매우 중요한 것으로 판단된다. 미래에 우리의 생활을 가장 많은 부분 담당할 사물인터넷도 마찬가지이다. 우리의 생활과 강하게 연관되어 있고, 그러므로 보안이 가장 주요한 요인이 된다....</p></div><footer class=entry-footer><span title='2021-10-30 07:17:47 +0000 UTC'>October 30, 30000</span>&nbsp;·&nbsp;598 words&nbsp;·&nbsp;Me</footer><a class=entry-link aria-label="post link to 전자 제어의 세계인 미래, 그 보안의 위협" href=http://blog.morgan.kr/posts/jeonja-jeeoyi-segyein-mirae-geu-boanyi-wihyeob/></a></article><article class=post-entry><header class=entry-header><h2>Ad-Tech와 통계의 쓰임새</h2></header><div class=entry-content><p>CTR(클릭률) Click-through rate)는 특정 링크를 클릭한 사용자의 비율. Z지수는 표준점수로, 통계학적인 정규분포를 만들고 각각의 경우가 표준편차상의 어떤 위치를 차지하는지를 보여주는 차원없는 수치이다. Z-지수는 원수치가 평균에서 얼마나 떨어져 있는지를 나타내는 지수로, $ z = \frac{z - \mu}{\sigma} $로 나타난다. ($\sigma$ 표준편차, $\mu$는 모집단의 평균이다.
중심극한정리란 표본의 크기가 커질수록 표본 평균의 분포는 모집단의 분포 모양과는 관계없이 정규분표에 가까워진다는 정리이다.
점추정은 모집단의 특성을 단일한 값으로 추정하는 방법으로, 표본평균과 표본분산을 이용해 모집단의 평균과 분산을 계산해 내는 방법이 대표적인 예이다....</p></div><footer class=entry-footer><span title='2021-10-30 07:10:34 +0000 UTC'>October 30, 30000</span>&nbsp;·&nbsp;225 words&nbsp;·&nbsp;Me</footer><a class=entry-link aria-label="post link to Ad-Tech와 통계의 쓰임새" href=http://blog.morgan.kr/posts/ad-techwa-tonggyeyi-sseuimsae/></a></article><article class=post-entry><header class=entry-header><h2>양자들의 트랜지스터와 핫 캐리어 효과</h2></header><div class=entry-content><p>트랜지스터가 점점 소형화가 되어가면서 전자가 예상한대로 움직이지 않는 작은 단위까지 내려갔다. 나노단위까지 생산공정이 작아지면서 양자역학적인 효과가 나타나기 시작했고, 이는 트랜지스터의 스위칭 작용을 방해하는 효과를 불어일으킨다. 이를 해결하기 위해서 양자 세계에서 사용할 수 있는 양자 트랜지스터와 단일 원자 트랜지스터가 개발되었다.
단일원자 트랜지스터 단일원자 트랜지스터는 양자 터널링 효과를 적극적으로 이용하여 스위칭 작용을 한다. 터널링 효과를 제어하기 위해서 직접 제어가 아닌 양자 얽힘 효과를 이용한다. 큐비트를 이용하여, 전자 주개로써의 원자를 제어하기 위해 원자 개개별의 스핀 상태를 이용한다....</p></div><footer class=entry-footer><span title='2021-10-30 07:09:53 +0000 UTC'>October 30, 30000</span>&nbsp;·&nbsp;294 words&nbsp;·&nbsp;Me</footer><a class=entry-link aria-label="post link to 양자들의 트랜지스터와 핫 캐리어 효과" href=http://blog.morgan.kr/posts/yangjadeulyi-teuraenjiseuteo/></a></article><article class=post-entry><header class=entry-header><h2>구글은 그 많은 페이지를 어떻게 찾아낼까.</h2></header><div class=entry-content><p>구글은 방대한 웹페이지를 자사 데이터베이스에 기록하고 있으며, 이를 토대로 사용자가 검색한 검색결과와 가장 매치되는 페이지를 보여줌으로써 검색엔진의 역할을 할 수 있다. 구글이 이렇게까지 클 수 있었던 이유는 정확한 검색 결과를 보여주는 알고리즘 덕분이다. 그렇다면 이 알고리즘은 무엇일까? 구글이 웹페이지들의 관계를 산출하고 그 수치를 계산해내는 알고리즘인 페이지랭크 알고리즘은 구글의 창시자중 한명인 래리 페이지라는 사람이 석사논문으로 발명한 알고리즘이다. PageRank 알고리즘은 각각의 웹 페이지의 상대적 가중치를 계산하여 각각의 중요도와 연관성을 표현하는 방식을 이용하는데, 이를 이용하여 한 페이지와 가장 연관된 다른 페이지를 Rank를 매겨 정확한 연관성을 보여줄 수 있다....</p></div><footer class=entry-footer><span title='2021-10-30 07:07:55 +0000 UTC'>October 30, 30000</span>&nbsp;·&nbsp;395 words&nbsp;·&nbsp;Me</footer><a class=entry-link aria-label="post link to 구글은 그 많은 페이지를 어떻게 찾아낼까." href=http://blog.morgan.kr/posts/gugeuleun-geu-manheun-peijireul-eoddeohge-cajanaelgga/></a></article><article class=post-entry><header class=entry-header><h2>인생 두번째 실패. 두번째 대학탈락.</h2></header><div class=entry-content><p>내 첫번째 실패는 조기진학 실패이다. 대학을 떨어졌다.
내 두번째 실패도 대학 탈락이다. 이번엔 아직 9번 더 있지만, 작년에 떨어지고 느꼈던 그 참담함과 그 마음가짐을 다시 한번 느낄 수 있게 한 그 세글자 ‘불합격’. 역시 이번에도 참담함을 느꼈고, 여전히 안타까움과 공허함을 느낄 수 있었다.
내심 기대했었다. 붙기를 간절히 기도했다. 하지만 세상은 냉정했다.
바라던게 이제는 이룰 수 없다고 생각하니 공허했다. 하지만 그것도 잠깐이었다. 멘탈이 강하고 회복력도 강한게 내 장점이라 공허함으로 쳐져있는 것도 잠깐이었고, 앞으로를 다시 생각하고 마음가짐을 고치는 계기가 되었다....</p></div><footer class=entry-footer><span title='2021-10-23 08:52:59 +0000 UTC'>October 23, 23000</span>&nbsp;·&nbsp;85 words&nbsp;·&nbsp;Me</footer><a class=entry-link aria-label="post link to 인생 두번째 실패. 두번째 대학탈락." href=http://blog.morgan.kr/posts/insaeng-dubeonjjae-silpae/></a></article><article class=post-entry><header class=entry-header><h2>How I wanted to do.</h2></header><div class=entry-content><p>프로그래밍에 매력을 느껴 프로그래밍에 입덕하게 된 건 2학년때쯤.. 이후 그 재미를 느끼고 많은 것들을 시도해보곤 했다. HTML과 CSS를 배워 가장 기본적인 웹사이트를 만들고, 이를 더 화려하게 꾸미기 위해 JS를 공부했다. 이를 배포하기 위해 서버 구축에 대해 공부했고, PHP나 MySQL을 이용해 기능성을 부여하면서 DB와 SQL에 대해 공부했다. 이후 고전적인 서버를 넘어 SSR이나 CSR에 대해 알아보려 NodeJS를 공부했다. 학교 입학시 과제였던 C로 하는 PS를 하면서 C나 C++에 관심을 가졌고, 왜 C로 코딩하는데 C++를 써야하는지 의문을 가지고 C++을 공부했다....</p></div><footer class=entry-footer><span title='2021-10-23 08:52:15 +0000 UTC'>October 23, 23000</span>&nbsp;·&nbsp;348 words&nbsp;·&nbsp;Me</footer><a class=entry-link aria-label="post link to How I wanted to do." href=http://blog.morgan.kr/posts/how-i-wanted-to-do/></a></article><article class=post-entry><header class=entry-header><h2>학교에서 했던 프로젝트들..</h2></header><div class=entry-content><p>귀가시간 수집 프로그램 기상곡 수집 프로그램 컴퓨터실 사용현황 학교 내부 정보공유망 문서파일 자동저장 및 복구 시스템 학교 저지 사이트 API 정리 및 제출시스템 프록시 선생님들이 부탁하셨던 수많은 프로그램들</p></div><footer class=entry-footer><span title='2021-10-23 08:51:44 +0000 UTC'>October 23, 23000</span>&nbsp;·&nbsp;28 words&nbsp;·&nbsp;Me</footer><a class=entry-link aria-label="post link to 학교에서 했던 프로젝트들.." href=http://blog.morgan.kr/posts/haggyoeseo-haessdeon-peurojegteudeul/></a></article><footer class=page-footer><nav class=pagination><a class=next href=http://blog.morgan.kr/posts/page/2/>Next&nbsp;&nbsp;»</a></nav></footer></main><footer class=footer><span>&copy; 2023 <a href=http://blog.morgan.kr>Morgan's Blog</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 xmlns="http://www.w3.org/2000/svg" viewBox="0 0 12 6" fill="currentcolor"><path d="M12 6H0l6-6z"/></svg></a><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></body></html>