From b147916d060d2c5702ea2965a29743f1a30ac455 Mon Sep 17 00:00:00 2001 From: MinJun Choi Date: Tue, 15 Oct 2024 16:47:27 +0900 Subject: [PATCH] Updates --- 0-1. CA Intro/index.html | 52 ++++++++--------- 0-2. CA Overview/index.html | 52 ++++++++--------- 1-1. Defining Performance/index.html | 52 ++++++++--------- 1-2. Measuring Performance/index.html | 52 ++++++++--------- .../index.html | 52 ++++++++--------- .../index.html | 52 ++++++++--------- .../index.html | 52 ++++++++--------- .../index.html | 52 ++++++++--------- .../index.html | 52 ++++++++--------- 3-1. Addition and Subtraction/index.html | 52 ++++++++--------- 3-2. Multiplication/index.html | 52 ++++++++--------- 3-3. Division/index.html | 52 ++++++++--------- 4-1. Processor Overview/index.html | 52 ++++++++--------- 4-2. Controlling a datapath/index.html | 52 ++++++++--------- 4-3. A single-cycle datapath/index.html | 52 ++++++++--------- 4-4. Pipelining overview/index.html | 52 ++++++++--------- 4-5. Handling hazards/index.html | 52 ++++++++--------- 4-6. Exceptions/index.html | 52 ++++++++--------- 404.html | 4 +- 404/index.html | 4 +- 5-1. Cache overview/index.html | 52 ++++++++--------- 5-2. Improving cache performance/index.html | 52 ++++++++--------- 5-3. Virtual memory Part 1/index.html | 52 ++++++++--------- 5-4. Virtual memory Part 2/index.html | 52 ++++++++--------- ...807bb027b2132b1e06-2952f59d70525a6adf5b.js | 26 +++++++++ ...2b1e06-2952f59d70525a6adf5b.js.LICENSE.txt | 36 ++++++++++++ ...b027b2132b1e06-2952f59d70525a6adf5b.js.map | 1 + .../index.html" | 52 ++++++++--------- _gatsby/slices/_gatsby-scripts-1.html | 4 +- about/index.html | 34 +++++------ after-jigeumgeuddae/index.html | 52 ++++++++--------- all/index.html | 14 ++--- chunk-map.json | 2 +- commons-0dc47607e00869081fbb.js | 2 + commons-0dc47607e00869081fbb.js.map | 1 + ...rc-pages-about-jsx-8949f6c7018c76f0e2a7.js | 2 + ...ages-about-jsx-8949f6c7018c76f0e2a7.js.map | 1 + ...ages-index-jsx-f59eded68e6ee3a02450.js.map | 2 +- index.html | 30 +++++----- .../index.html | 52 ++++++++--------- nuxt-katex/index.html | 52 ++++++++--------- page-data/app-data.json | 2 +- page-data/index/page-data.json | 2 +- readme/index.html | 48 +++++++-------- retrospect-2022-1/index.html | 58 +++++++++---------- retrospect-2022-2/index.html | 58 +++++++++---------- retrospect-2023/index.html | 58 +++++++++---------- retrospect-2024-1/index.html | 58 +++++++++---------- rss.xml | 2 +- search/index.html | 14 ++--- series/index.html | 18 +++--- .../index.html" | 10 ++-- tags/index.html | 14 ++--- webpack-runtime-ec555aac44d2ef36bc59.js | 2 + webpack-runtime-ec555aac44d2ef36bc59.js.map | 1 + webpack.stats.json | 2 +- why-obsidian/index.html | 52 ++++++++--------- 57 files changed, 991 insertions(+), 923 deletions(-) create mode 100644 98746260b83f1504b91525807bb027b2132b1e06-2952f59d70525a6adf5b.js create mode 100644 98746260b83f1504b91525807bb027b2132b1e06-2952f59d70525a6adf5b.js.LICENSE.txt create mode 100644 98746260b83f1504b91525807bb027b2132b1e06-2952f59d70525a6adf5b.js.map create mode 100644 commons-0dc47607e00869081fbb.js create mode 100644 commons-0dc47607e00869081fbb.js.map create mode 100644 component---src-pages-about-jsx-8949f6c7018c76f0e2a7.js create mode 100644 component---src-pages-about-jsx-8949f6c7018c76f0e2a7.js.map create mode 100644 webpack-runtime-ec555aac44d2ef36bc59.js create mode 100644 webpack-runtime-ec555aac44d2ef36bc59.js.map diff --git a/0-1. CA Intro/index.html b/0-1. CA Intro/index.html index 51141cf..7ef08b6 100644 --- a/0-1. CA Intro/index.html +++ b/0-1. CA Intro/index.html @@ -48,34 +48,34 @@ data-styled.g10[id="Footer__FooterWrapper-sc-1qfqdid-0"]{content:"gUOgk,"}/*!sc*/ .juihub{margin-top:0;margin-bottom:48px;border:none;border-bottom:1px solid #e9ecef;}/*!sc*/ .dsTUYW{margin-top:32px;margin-bottom:48px;border:none;border-bottom:1px solid #e9ecef;}/*!sc*/ -data-styled.g12[id="Divider-sc-1jz0jl-0"]{content:"juihub,dsTUYW,"}/*!sc*/ +data-styled.g18[id="Divider-sc-1jz0jl-0"]{content:"juihub,dsTUYW,"}/*!sc*/ .gJiIIX{margin-bottom:10px;word-break:break-all;}/*!sc*/ -data-styled.g13[id="TagList__TagListWrapper-sc-s1uz5f-0"]{content:"gJiIIX,"}/*!sc*/ +data-styled.g19[id="TagList__TagListWrapper-sc-s1uz5f-0"]{content:"gJiIIX,"}/*!sc*/ .OSwVR{display:inline-block;padding:9.6px 11.2px;margin-right:8px;margin-bottom:8px;border-radius:50px;background-color:#f1f3f5;color:#404040;-webkit-text-decoration:none;text-decoration:none;font-size:14.4px;-webkit-transition:all 0.2s;transition:all 0.2s;}/*!sc*/ .OSwVR:hover{background-color:#dee2e6;}/*!sc*/ -data-styled.g14[id="TagList__TagLink-sc-s1uz5f-1"]{content:"OSwVR,"}/*!sc*/ +data-styled.g20[id="TagList__TagLink-sc-s1uz5f-1"]{content:"OSwVR,"}/*!sc*/ .cVaGFY{margin-top:32px;}/*!sc*/ @media (max-width:768px){.cVaGFY{padding:0 15px;}}/*!sc*/ -data-styled.g20[id="Header__Wrapper-sc-1d3p6ct-0"]{content:"cVaGFY,"}/*!sc*/ +data-styled.g21[id="Header__Wrapper-sc-1d3p6ct-0"]{content:"cVaGFY,"}/*!sc*/ .dkDUwb{margin-bottom:25.6px;line-height:1.2;font-size:40px;font-weight:700;color:#191919;}/*!sc*/ -data-styled.g21[id="Header__ArticleTitle-sc-1d3p6ct-1"]{content:"dkDUwb,"}/*!sc*/ +data-styled.g22[id="Header__ArticleTitle-sc-1d3p6ct-1"]{content:"dkDUwb,"}/*!sc*/ .bUGEvg{margin-bottom:32px;font-size:16px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;gap:8px;}/*!sc*/ -data-styled.g22[id="Header__Information-sc-1d3p6ct-2"]{content:"bUGEvg,"}/*!sc*/ +data-styled.g23[id="Header__Information-sc-1d3p6ct-2"]{content:"bUGEvg,"}/*!sc*/ .ceAkMY{padding-bottom:15px;font-weight:700;color:#191919;}/*!sc*/ -data-styled.g23[id="Header__Author-sc-1d3p6ct-3"]{content:"ceAkMY,"}/*!sc*/ +data-styled.g24[id="Header__Author-sc-1d3p6ct-3"]{content:"ceAkMY,"}/*!sc*/ .kmPIwO{font-weight:300;color:#404040;}/*!sc*/ -data-styled.g24[id="Header__Date-sc-1d3p6ct-4"]{content:"kmPIwO,"}/*!sc*/ +data-styled.g25[id="Header__Date-sc-1d3p6ct-4"]{content:"kmPIwO,"}/*!sc*/ .kfiAnU{font-weight:300;color:#404040;}/*!sc*/ -data-styled.g25[id="Header__Property-sc-1d3p6ct-5"]{content:"kfiAnU,"}/*!sc*/ +data-styled.g26[id="Header__Property-sc-1d3p6ct-5"]{content:"kfiAnU,"}/*!sc*/ .jUHwIM{position:relative;opacity:0;-webkit-transition:0.35s all ease;transition:0.35s all ease;opacity:1;}/*!sc*/ -data-styled.g31[id="RevealOnScroll__StyledWrapper-sc-j177rt-0"]{content:"jUHwIM,"}/*!sc*/ +data-styled.g32[id="RevealOnScroll__StyledWrapper-sc-j177rt-0"]{content:"jUHwIM,"}/*!sc*/ .cKsOEP{position:absolute;opacity:1;left:100%;}/*!sc*/ .cKsOEP > div{padding-right:20px;padding-left:16px;margin-left:48px;position:relative;width:240px;max-height:calc(100% - 185px);overflow-y:auto;position:fixed;top:100px;}/*!sc*/ .cKsOEP > div::-webkit-scrollbar{width:3px;}/*!sc*/ .cKsOEP > div::-webkit-scrollbar-track{background:#f1f3f5;}/*!sc*/ .cKsOEP > div::-webkit-scrollbar-thumb{background:#ced4da;}/*!sc*/ @media (max-width:1300px){.cKsOEP{display:None;}}/*!sc*/ -data-styled.g32[id="Toc__TocWrapper-sc-1axrmab-0"]{content:"cKsOEP,"}/*!sc*/ +data-styled.g33[id="Toc__TocWrapper-sc-1axrmab-0"]{content:"cKsOEP,"}/*!sc*/ .erkpHX{font-size:16.7px;color:#191919;line-height:1.73;overflow:hidden;}/*!sc*/ .erkpHX h1:first-child,.erkpHX h2:first-child,.erkpHX h3:first-child,.erkpHX h4:first-child{margin-top:0;}/*!sc*/ .erkpHX > p,.erkpHX > ul,.erkpHX > ol,.erkpHX table,.erkpHX blockquote,.erkpHX pre,.erkpHX img,.erkpHX .katex-display{margin-top:0;margin-bottom:24px;word-break:break-all;}/*!sc*/ @@ -121,7 +121,7 @@ .erkpHX a[data-wiki-link="true"]:hover{-webkit-text-decoration:underline;text-decoration:underline;}/*!sc*/ .erkpHX a{padding:1.6px 0;color:#191919;}/*!sc*/ .erkpHX a:hover{background-color:none;color:#868e96;}/*!sc*/ -data-styled.g34[id="StyledMarkdown-sc-lqtcur-0"]{content:"erkpHX,"}/*!sc*/ +data-styled.g35[id="StyledMarkdown-sc-lqtcur-0"]{content:"erkpHX,"}/*!sc*/ code[class*="language-"],pre[class*="language-"]{margin-bottom:24px;font-size:14.5px;color:#ccc;background:none;font-family:"Bai Jamjuree",monospace;text-align:justify;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none;}/*!sc*/ pre[class*="language-"]{padding:1em;overflow:auto;}/*!sc*/ :not(pre) > code[class*="language-"]{padding:0.1em;border-radius:0.3em;white-space:normal;}/*!sc*/ @@ -187,19 +187,19 @@ .prism-previewer-angle.prism-previewer-angle circle,.prism-previewer-time.prism-previewer-time circle{stroke:hsl(230,8%,24%);stroke-opacity:1;}/*!sc*/ .prism-previewer-easing.prism-previewer-easing circle,.prism-previewer-easing.prism-previewer-easing path,.prism-previewer-easing.prism-previewer-easing line{stroke:hsl(230,8%,24%);}/*!sc*/ .prism-previewer-easing.prism-previewer-easing circle{fill:transparent;}/*!sc*/ -data-styled.g36[id="sc-global-bIpVyQ1"]{content:"sc-global-bIpVyQ1,"}/*!sc*/ +data-styled.g37[id="sc-global-bIpVyQ1"]{content:"sc-global-bIpVyQ1,"}/*!sc*/ .bUeHPW{position:relative;margin-bottom:112px;}/*!sc*/ @media (max-width:768px){.bUeHPW{padding:0 15px;}}/*!sc*/ -data-styled.g37[id="Body__Wrapper-sc-7hat30-0"]{content:"bUeHPW,"}/*!sc*/ +data-styled.g38[id="Body__Wrapper-sc-7hat30-0"]{content:"bUeHPW,"}/*!sc*/ .becwQW{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;margin-bottom:48px;}/*!sc*/ @media (max-width:768px){.becwQW{margin-bottom:80px;padding:0 12.8px;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}.becwQW > div:first-child{margin-bottom:12.8px;}}/*!sc*/ -data-styled.g38[id="Footer__ArticleButtonContainer-sc-zqxmks-0"]{content:"becwQW,"}/*!sc*/ +data-styled.g39[id="Footer__ArticleButtonContainer-sc-zqxmks-0"]{content:"becwQW,"}/*!sc*/ .gwQEOy{width:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;white-space:nowrap;}/*!sc*/ -data-styled.g39[id="Footer__ArrowFlexWrapper-sc-zqxmks-1"]{content:"gwQEOy,"}/*!sc*/ +data-styled.g40[id="Footer__ArrowFlexWrapper-sc-zqxmks-1"]{content:"gwQEOy,"}/*!sc*/ .jxGLes{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:flex-end;-webkit-box-align:flex-end;-ms-flex-align:flex-end;align-items:flex-end;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;overflow:hidden;}/*!sc*/ -data-styled.g40[id="Footer__ArticleButtonTextWrapper-sc-zqxmks-2"]{content:"jxGLes,"}/*!sc*/ +data-styled.g41[id="Footer__ArticleButtonTextWrapper-sc-zqxmks-2"]{content:"jxGLes,"}/*!sc*/ .bhYcVf{position:relative;left:0;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;font-size:24px;-webkit-flex-basis:24px;-ms-flex-preferred-size:24px;flex-basis:24px;-webkit-transition:left 0.3s;transition:left 0.3s;}/*!sc*/ -data-styled.g41[id="Footer__Arrow-sc-zqxmks-3"]{content:"bhYcVf,"}/*!sc*/ +data-styled.g42[id="Footer__Arrow-sc-zqxmks-3"]{content:"bhYcVf,"}/*!sc*/ .OEEnV{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;padding:20.8px 16px;max-width:250px;-webkit-flex-basis:250px;-ms-flex-preferred-size:250px;flex-basis:250px;font-size:17.6px;border-radius:5px;background-color:rgba(0,0,0,0.06);color:#191919;cursor:pointer;-webkit-transition:background-color 0.3s;transition:background-color 0.3s;}/*!sc*/ .OEEnV:hover{background-color:rgba(0,0,0,0.08);}/*!sc*/ .OEEnV .Footer__ArrowFlexWrapper-sc-zqxmks-1{-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}/*!sc*/ @@ -214,18 +214,18 @@ .cCfvHe .Footer__Arrow-sc-zqxmks-3{margin-left:16px;}/*!sc*/ .cCfvHe:hover .Footer__Arrow-sc-zqxmks-3{left:2px;}/*!sc*/ @media (max-width:768px){.cCfvHe{max-width:inherit;-webkit-flex-basis:inherit;-ms-flex-preferred-size:inherit;flex-basis:inherit;}}/*!sc*/ -data-styled.g42[id="Footer__ArticleButtonWrapper-sc-zqxmks-4"]{content:"OEEnV,cCfvHe,"}/*!sc*/ +data-styled.g43[id="Footer__ArticleButtonWrapper-sc-zqxmks-4"]{content:"OEEnV,cCfvHe,"}/*!sc*/ .hngxZd{margin-bottom:9.6px;font-size:12.8px;}/*!sc*/ -data-styled.g43[id="Footer__ArticleButtonLabel-sc-zqxmks-5"]{content:"hngxZd,"}/*!sc*/ +data-styled.g44[id="Footer__ArticleButtonLabel-sc-zqxmks-5"]{content:"hngxZd,"}/*!sc*/ .brczfR{padding:2px 0;width:100%;text-overflow:ellipsis;overflow:hidden;}/*!sc*/ -data-styled.g44[id="Footer__ArticleButtonTitle-sc-zqxmks-6"]{content:"brczfR,"}/*!sc*/ +data-styled.g45[id="Footer__ArticleButtonTitle-sc-zqxmks-6"]{content:"brczfR,"}/*!sc*/ @media (max-width:768px){.cRSPGb{padding:0 15px;}}/*!sc*/ -data-styled.g45[id="Footer__CommentWrapper-sc-zqxmks-7"]{content:"cRSPGb,"}/*!sc*/ +data-styled.g46[id="Footer__CommentWrapper-sc-zqxmks-7"]{content:"cRSPGb,"}/*!sc*/ .XZnrl{height:200px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}/*!sc*/ -data-styled.g46[id="Footer__SpinnerWrapper-sc-zqxmks-8"]{content:"XZnrl,"}/*!sc*/ +data-styled.g47[id="Footer__SpinnerWrapper-sc-zqxmks-8"]{content:"XZnrl,"}/*!sc*/ .yzdKT{height:0px;overflow:hidden;}/*!sc*/ .ivqWaF{height:auto;overflow:auto;}/*!sc*/ -data-styled.g47[id="Footer__HiddenWrapper-sc-zqxmks-9"]{content:"yzdKT,ivqWaF,"}/*!sc*/ +data-styled.g48[id="Footer__HiddenWrapper-sc-zqxmks-9"]{content:"yzdKT,ivqWaF,"}/*!sc*/ Computer Architecture Intro

Computer Architecture Intro

@MJ · 1 min read
Created Date · 2024년 07월 22일 12:07
Last Update · 2024년 07월 22일 15:07

Course Description

본 스터디에서는 컴퓨터 시스템이 어떻게 구성되어있고 디자인되어있는지 공부합니다. 특히 CPU, memory를 포함한 하드웨어 시스템에 적용되고 있는 디자인 특성들을 알아봅니다.

@@ -314,6 +314,6 @@

Course Schedule

- \ No newline at end of file + \ No newline at end of file diff --git a/0-2. CA Overview/index.html b/0-2. CA Overview/index.html index 2314f6b..22c4078 100644 --- a/0-2. CA Overview/index.html +++ b/0-2. CA Overview/index.html @@ -46,34 +46,34 @@ data-styled.g10[id="Footer__FooterWrapper-sc-1qfqdid-0"]{content:"gUOgk,"}/*!sc*/ .juihub{margin-top:0;margin-bottom:48px;border:none;border-bottom:1px solid #e9ecef;}/*!sc*/ .dsTUYW{margin-top:32px;margin-bottom:48px;border:none;border-bottom:1px solid #e9ecef;}/*!sc*/ -data-styled.g12[id="Divider-sc-1jz0jl-0"]{content:"juihub,dsTUYW,"}/*!sc*/ +data-styled.g18[id="Divider-sc-1jz0jl-0"]{content:"juihub,dsTUYW,"}/*!sc*/ .gJiIIX{margin-bottom:10px;word-break:break-all;}/*!sc*/ -data-styled.g13[id="TagList__TagListWrapper-sc-s1uz5f-0"]{content:"gJiIIX,"}/*!sc*/ +data-styled.g19[id="TagList__TagListWrapper-sc-s1uz5f-0"]{content:"gJiIIX,"}/*!sc*/ .OSwVR{display:inline-block;padding:9.6px 11.2px;margin-right:8px;margin-bottom:8px;border-radius:50px;background-color:#f1f3f5;color:#404040;-webkit-text-decoration:none;text-decoration:none;font-size:14.4px;-webkit-transition:all 0.2s;transition:all 0.2s;}/*!sc*/ .OSwVR:hover{background-color:#dee2e6;}/*!sc*/ -data-styled.g14[id="TagList__TagLink-sc-s1uz5f-1"]{content:"OSwVR,"}/*!sc*/ +data-styled.g20[id="TagList__TagLink-sc-s1uz5f-1"]{content:"OSwVR,"}/*!sc*/ .cVaGFY{margin-top:32px;}/*!sc*/ @media (max-width:768px){.cVaGFY{padding:0 15px;}}/*!sc*/ -data-styled.g20[id="Header__Wrapper-sc-1d3p6ct-0"]{content:"cVaGFY,"}/*!sc*/ +data-styled.g21[id="Header__Wrapper-sc-1d3p6ct-0"]{content:"cVaGFY,"}/*!sc*/ .dkDUwb{margin-bottom:25.6px;line-height:1.2;font-size:40px;font-weight:700;color:#191919;}/*!sc*/ -data-styled.g21[id="Header__ArticleTitle-sc-1d3p6ct-1"]{content:"dkDUwb,"}/*!sc*/ +data-styled.g22[id="Header__ArticleTitle-sc-1d3p6ct-1"]{content:"dkDUwb,"}/*!sc*/ .bUGEvg{margin-bottom:32px;font-size:16px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;gap:8px;}/*!sc*/ -data-styled.g22[id="Header__Information-sc-1d3p6ct-2"]{content:"bUGEvg,"}/*!sc*/ +data-styled.g23[id="Header__Information-sc-1d3p6ct-2"]{content:"bUGEvg,"}/*!sc*/ .ceAkMY{padding-bottom:15px;font-weight:700;color:#191919;}/*!sc*/ -data-styled.g23[id="Header__Author-sc-1d3p6ct-3"]{content:"ceAkMY,"}/*!sc*/ +data-styled.g24[id="Header__Author-sc-1d3p6ct-3"]{content:"ceAkMY,"}/*!sc*/ .kmPIwO{font-weight:300;color:#404040;}/*!sc*/ -data-styled.g24[id="Header__Date-sc-1d3p6ct-4"]{content:"kmPIwO,"}/*!sc*/ +data-styled.g25[id="Header__Date-sc-1d3p6ct-4"]{content:"kmPIwO,"}/*!sc*/ .kfiAnU{font-weight:300;color:#404040;}/*!sc*/ -data-styled.g25[id="Header__Property-sc-1d3p6ct-5"]{content:"kfiAnU,"}/*!sc*/ +data-styled.g26[id="Header__Property-sc-1d3p6ct-5"]{content:"kfiAnU,"}/*!sc*/ .jUHwIM{position:relative;opacity:0;-webkit-transition:0.35s all ease;transition:0.35s all ease;opacity:1;}/*!sc*/ -data-styled.g31[id="RevealOnScroll__StyledWrapper-sc-j177rt-0"]{content:"jUHwIM,"}/*!sc*/ +data-styled.g32[id="RevealOnScroll__StyledWrapper-sc-j177rt-0"]{content:"jUHwIM,"}/*!sc*/ .cKsOEP{position:absolute;opacity:1;left:100%;}/*!sc*/ .cKsOEP > div{padding-right:20px;padding-left:16px;margin-left:48px;position:relative;width:240px;max-height:calc(100% - 185px);overflow-y:auto;position:fixed;top:100px;}/*!sc*/ .cKsOEP > div::-webkit-scrollbar{width:3px;}/*!sc*/ .cKsOEP > div::-webkit-scrollbar-track{background:#f1f3f5;}/*!sc*/ .cKsOEP > div::-webkit-scrollbar-thumb{background:#ced4da;}/*!sc*/ @media (max-width:1300px){.cKsOEP{display:None;}}/*!sc*/ -data-styled.g32[id="Toc__TocWrapper-sc-1axrmab-0"]{content:"cKsOEP,"}/*!sc*/ +data-styled.g33[id="Toc__TocWrapper-sc-1axrmab-0"]{content:"cKsOEP,"}/*!sc*/ .erkpHX{font-size:16.7px;color:#191919;line-height:1.73;overflow:hidden;}/*!sc*/ .erkpHX h1:first-child,.erkpHX h2:first-child,.erkpHX h3:first-child,.erkpHX h4:first-child{margin-top:0;}/*!sc*/ .erkpHX > p,.erkpHX > ul,.erkpHX > ol,.erkpHX table,.erkpHX blockquote,.erkpHX pre,.erkpHX img,.erkpHX .katex-display{margin-top:0;margin-bottom:24px;word-break:break-all;}/*!sc*/ @@ -119,7 +119,7 @@ .erkpHX a[data-wiki-link="true"]:hover{-webkit-text-decoration:underline;text-decoration:underline;}/*!sc*/ .erkpHX a{padding:1.6px 0;color:#191919;}/*!sc*/ .erkpHX a:hover{background-color:none;color:#868e96;}/*!sc*/ -data-styled.g34[id="StyledMarkdown-sc-lqtcur-0"]{content:"erkpHX,"}/*!sc*/ +data-styled.g35[id="StyledMarkdown-sc-lqtcur-0"]{content:"erkpHX,"}/*!sc*/ code[class*="language-"],pre[class*="language-"]{margin-bottom:24px;font-size:14.5px;color:#ccc;background:none;font-family:"Bai Jamjuree",monospace;text-align:justify;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none;}/*!sc*/ pre[class*="language-"]{padding:1em;overflow:auto;}/*!sc*/ :not(pre) > code[class*="language-"]{padding:0.1em;border-radius:0.3em;white-space:normal;}/*!sc*/ @@ -185,19 +185,19 @@ .prism-previewer-angle.prism-previewer-angle circle,.prism-previewer-time.prism-previewer-time circle{stroke:hsl(230,8%,24%);stroke-opacity:1;}/*!sc*/ .prism-previewer-easing.prism-previewer-easing circle,.prism-previewer-easing.prism-previewer-easing path,.prism-previewer-easing.prism-previewer-easing line{stroke:hsl(230,8%,24%);}/*!sc*/ .prism-previewer-easing.prism-previewer-easing circle{fill:transparent;}/*!sc*/ -data-styled.g36[id="sc-global-bIpVyQ1"]{content:"sc-global-bIpVyQ1,"}/*!sc*/ +data-styled.g37[id="sc-global-bIpVyQ1"]{content:"sc-global-bIpVyQ1,"}/*!sc*/ .bUeHPW{position:relative;margin-bottom:112px;}/*!sc*/ @media (max-width:768px){.bUeHPW{padding:0 15px;}}/*!sc*/ -data-styled.g37[id="Body__Wrapper-sc-7hat30-0"]{content:"bUeHPW,"}/*!sc*/ +data-styled.g38[id="Body__Wrapper-sc-7hat30-0"]{content:"bUeHPW,"}/*!sc*/ .becwQW{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;margin-bottom:48px;}/*!sc*/ @media (max-width:768px){.becwQW{margin-bottom:80px;padding:0 12.8px;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}.becwQW > div:first-child{margin-bottom:12.8px;}}/*!sc*/ -data-styled.g38[id="Footer__ArticleButtonContainer-sc-zqxmks-0"]{content:"becwQW,"}/*!sc*/ +data-styled.g39[id="Footer__ArticleButtonContainer-sc-zqxmks-0"]{content:"becwQW,"}/*!sc*/ .gwQEOy{width:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;white-space:nowrap;}/*!sc*/ -data-styled.g39[id="Footer__ArrowFlexWrapper-sc-zqxmks-1"]{content:"gwQEOy,"}/*!sc*/ +data-styled.g40[id="Footer__ArrowFlexWrapper-sc-zqxmks-1"]{content:"gwQEOy,"}/*!sc*/ .jxGLes{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:flex-end;-webkit-box-align:flex-end;-ms-flex-align:flex-end;align-items:flex-end;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;overflow:hidden;}/*!sc*/ -data-styled.g40[id="Footer__ArticleButtonTextWrapper-sc-zqxmks-2"]{content:"jxGLes,"}/*!sc*/ +data-styled.g41[id="Footer__ArticleButtonTextWrapper-sc-zqxmks-2"]{content:"jxGLes,"}/*!sc*/ .bhYcVf{position:relative;left:0;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;font-size:24px;-webkit-flex-basis:24px;-ms-flex-preferred-size:24px;flex-basis:24px;-webkit-transition:left 0.3s;transition:left 0.3s;}/*!sc*/ -data-styled.g41[id="Footer__Arrow-sc-zqxmks-3"]{content:"bhYcVf,"}/*!sc*/ +data-styled.g42[id="Footer__Arrow-sc-zqxmks-3"]{content:"bhYcVf,"}/*!sc*/ .OEEnV{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;padding:20.8px 16px;max-width:250px;-webkit-flex-basis:250px;-ms-flex-preferred-size:250px;flex-basis:250px;font-size:17.6px;border-radius:5px;background-color:rgba(0,0,0,0.06);color:#191919;cursor:pointer;-webkit-transition:background-color 0.3s;transition:background-color 0.3s;}/*!sc*/ .OEEnV:hover{background-color:rgba(0,0,0,0.08);}/*!sc*/ .OEEnV .Footer__ArrowFlexWrapper-sc-zqxmks-1{-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}/*!sc*/ @@ -212,18 +212,18 @@ .cCfvHe .Footer__Arrow-sc-zqxmks-3{margin-left:16px;}/*!sc*/ .cCfvHe:hover .Footer__Arrow-sc-zqxmks-3{left:2px;}/*!sc*/ @media (max-width:768px){.cCfvHe{max-width:inherit;-webkit-flex-basis:inherit;-ms-flex-preferred-size:inherit;flex-basis:inherit;}}/*!sc*/ -data-styled.g42[id="Footer__ArticleButtonWrapper-sc-zqxmks-4"]{content:"OEEnV,cCfvHe,"}/*!sc*/ +data-styled.g43[id="Footer__ArticleButtonWrapper-sc-zqxmks-4"]{content:"OEEnV,cCfvHe,"}/*!sc*/ .hngxZd{margin-bottom:9.6px;font-size:12.8px;}/*!sc*/ -data-styled.g43[id="Footer__ArticleButtonLabel-sc-zqxmks-5"]{content:"hngxZd,"}/*!sc*/ +data-styled.g44[id="Footer__ArticleButtonLabel-sc-zqxmks-5"]{content:"hngxZd,"}/*!sc*/ .brczfR{padding:2px 0;width:100%;text-overflow:ellipsis;overflow:hidden;}/*!sc*/ -data-styled.g44[id="Footer__ArticleButtonTitle-sc-zqxmks-6"]{content:"brczfR,"}/*!sc*/ +data-styled.g45[id="Footer__ArticleButtonTitle-sc-zqxmks-6"]{content:"brczfR,"}/*!sc*/ @media (max-width:768px){.cRSPGb{padding:0 15px;}}/*!sc*/ -data-styled.g45[id="Footer__CommentWrapper-sc-zqxmks-7"]{content:"cRSPGb,"}/*!sc*/ +data-styled.g46[id="Footer__CommentWrapper-sc-zqxmks-7"]{content:"cRSPGb,"}/*!sc*/ .XZnrl{height:200px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}/*!sc*/ -data-styled.g46[id="Footer__SpinnerWrapper-sc-zqxmks-8"]{content:"XZnrl,"}/*!sc*/ +data-styled.g47[id="Footer__SpinnerWrapper-sc-zqxmks-8"]{content:"XZnrl,"}/*!sc*/ .yzdKT{height:0px;overflow:hidden;}/*!sc*/ .ivqWaF{height:auto;overflow:auto;}/*!sc*/ -data-styled.g47[id="Footer__HiddenWrapper-sc-zqxmks-9"]{content:"yzdKT,ivqWaF,"}/*!sc*/ +data-styled.g48[id="Footer__HiddenWrapper-sc-zqxmks-9"]{content:"yzdKT,ivqWaF,"}/*!sc*/ CA Overview

CA Overview

@MJ · 2 min read
Created Date · 2024년 07월 22일 14:07
Last Update · 2024년 07월 31일 15:07

contents: 0-1. CA Intro

Below your program

A simplified view of hardware and software

@@ -373,6 +373,6 @@

8 great ideas for designing better computer architecture

- \ No newline at end of file + \ No newline at end of file diff --git a/1-1. Defining Performance/index.html b/1-1. Defining Performance/index.html index 239cec0..90d4f26 100644 --- a/1-1. Defining Performance/index.html +++ b/1-1. Defining Performance/index.html @@ -46,34 +46,34 @@ data-styled.g10[id="Footer__FooterWrapper-sc-1qfqdid-0"]{content:"gUOgk,"}/*!sc*/ .juihub{margin-top:0;margin-bottom:48px;border:none;border-bottom:1px solid #e9ecef;}/*!sc*/ .dsTUYW{margin-top:32px;margin-bottom:48px;border:none;border-bottom:1px solid #e9ecef;}/*!sc*/ -data-styled.g12[id="Divider-sc-1jz0jl-0"]{content:"juihub,dsTUYW,"}/*!sc*/ +data-styled.g18[id="Divider-sc-1jz0jl-0"]{content:"juihub,dsTUYW,"}/*!sc*/ .gJiIIX{margin-bottom:10px;word-break:break-all;}/*!sc*/ -data-styled.g13[id="TagList__TagListWrapper-sc-s1uz5f-0"]{content:"gJiIIX,"}/*!sc*/ +data-styled.g19[id="TagList__TagListWrapper-sc-s1uz5f-0"]{content:"gJiIIX,"}/*!sc*/ .OSwVR{display:inline-block;padding:9.6px 11.2px;margin-right:8px;margin-bottom:8px;border-radius:50px;background-color:#f1f3f5;color:#404040;-webkit-text-decoration:none;text-decoration:none;font-size:14.4px;-webkit-transition:all 0.2s;transition:all 0.2s;}/*!sc*/ .OSwVR:hover{background-color:#dee2e6;}/*!sc*/ -data-styled.g14[id="TagList__TagLink-sc-s1uz5f-1"]{content:"OSwVR,"}/*!sc*/ +data-styled.g20[id="TagList__TagLink-sc-s1uz5f-1"]{content:"OSwVR,"}/*!sc*/ .cVaGFY{margin-top:32px;}/*!sc*/ @media (max-width:768px){.cVaGFY{padding:0 15px;}}/*!sc*/ -data-styled.g20[id="Header__Wrapper-sc-1d3p6ct-0"]{content:"cVaGFY,"}/*!sc*/ +data-styled.g21[id="Header__Wrapper-sc-1d3p6ct-0"]{content:"cVaGFY,"}/*!sc*/ .dkDUwb{margin-bottom:25.6px;line-height:1.2;font-size:40px;font-weight:700;color:#191919;}/*!sc*/ -data-styled.g21[id="Header__ArticleTitle-sc-1d3p6ct-1"]{content:"dkDUwb,"}/*!sc*/ +data-styled.g22[id="Header__ArticleTitle-sc-1d3p6ct-1"]{content:"dkDUwb,"}/*!sc*/ .bUGEvg{margin-bottom:32px;font-size:16px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;gap:8px;}/*!sc*/ -data-styled.g22[id="Header__Information-sc-1d3p6ct-2"]{content:"bUGEvg,"}/*!sc*/ +data-styled.g23[id="Header__Information-sc-1d3p6ct-2"]{content:"bUGEvg,"}/*!sc*/ .ceAkMY{padding-bottom:15px;font-weight:700;color:#191919;}/*!sc*/ -data-styled.g23[id="Header__Author-sc-1d3p6ct-3"]{content:"ceAkMY,"}/*!sc*/ +data-styled.g24[id="Header__Author-sc-1d3p6ct-3"]{content:"ceAkMY,"}/*!sc*/ .kmPIwO{font-weight:300;color:#404040;}/*!sc*/ -data-styled.g24[id="Header__Date-sc-1d3p6ct-4"]{content:"kmPIwO,"}/*!sc*/ +data-styled.g25[id="Header__Date-sc-1d3p6ct-4"]{content:"kmPIwO,"}/*!sc*/ .kfiAnU{font-weight:300;color:#404040;}/*!sc*/ -data-styled.g25[id="Header__Property-sc-1d3p6ct-5"]{content:"kfiAnU,"}/*!sc*/ +data-styled.g26[id="Header__Property-sc-1d3p6ct-5"]{content:"kfiAnU,"}/*!sc*/ .jUHwIM{position:relative;opacity:0;-webkit-transition:0.35s all ease;transition:0.35s all ease;opacity:1;}/*!sc*/ -data-styled.g31[id="RevealOnScroll__StyledWrapper-sc-j177rt-0"]{content:"jUHwIM,"}/*!sc*/ +data-styled.g32[id="RevealOnScroll__StyledWrapper-sc-j177rt-0"]{content:"jUHwIM,"}/*!sc*/ .cKsOEP{position:absolute;opacity:1;left:100%;}/*!sc*/ .cKsOEP > div{padding-right:20px;padding-left:16px;margin-left:48px;position:relative;width:240px;max-height:calc(100% - 185px);overflow-y:auto;position:fixed;top:100px;}/*!sc*/ .cKsOEP > div::-webkit-scrollbar{width:3px;}/*!sc*/ .cKsOEP > div::-webkit-scrollbar-track{background:#f1f3f5;}/*!sc*/ .cKsOEP > div::-webkit-scrollbar-thumb{background:#ced4da;}/*!sc*/ @media (max-width:1300px){.cKsOEP{display:None;}}/*!sc*/ -data-styled.g32[id="Toc__TocWrapper-sc-1axrmab-0"]{content:"cKsOEP,"}/*!sc*/ +data-styled.g33[id="Toc__TocWrapper-sc-1axrmab-0"]{content:"cKsOEP,"}/*!sc*/ .erkpHX{font-size:16.7px;color:#191919;line-height:1.73;overflow:hidden;}/*!sc*/ .erkpHX h1:first-child,.erkpHX h2:first-child,.erkpHX h3:first-child,.erkpHX h4:first-child{margin-top:0;}/*!sc*/ .erkpHX > p,.erkpHX > ul,.erkpHX > ol,.erkpHX table,.erkpHX blockquote,.erkpHX pre,.erkpHX img,.erkpHX .katex-display{margin-top:0;margin-bottom:24px;word-break:break-all;}/*!sc*/ @@ -119,7 +119,7 @@ .erkpHX a[data-wiki-link="true"]:hover{-webkit-text-decoration:underline;text-decoration:underline;}/*!sc*/ .erkpHX a{padding:1.6px 0;color:#191919;}/*!sc*/ .erkpHX a:hover{background-color:none;color:#868e96;}/*!sc*/ -data-styled.g34[id="StyledMarkdown-sc-lqtcur-0"]{content:"erkpHX,"}/*!sc*/ +data-styled.g35[id="StyledMarkdown-sc-lqtcur-0"]{content:"erkpHX,"}/*!sc*/ code[class*="language-"],pre[class*="language-"]{margin-bottom:24px;font-size:14.5px;color:#ccc;background:none;font-family:"Bai Jamjuree",monospace;text-align:justify;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none;}/*!sc*/ pre[class*="language-"]{padding:1em;overflow:auto;}/*!sc*/ :not(pre) > code[class*="language-"]{padding:0.1em;border-radius:0.3em;white-space:normal;}/*!sc*/ @@ -185,19 +185,19 @@ .prism-previewer-angle.prism-previewer-angle circle,.prism-previewer-time.prism-previewer-time circle{stroke:hsl(230,8%,24%);stroke-opacity:1;}/*!sc*/ .prism-previewer-easing.prism-previewer-easing circle,.prism-previewer-easing.prism-previewer-easing path,.prism-previewer-easing.prism-previewer-easing line{stroke:hsl(230,8%,24%);}/*!sc*/ .prism-previewer-easing.prism-previewer-easing circle{fill:transparent;}/*!sc*/ -data-styled.g36[id="sc-global-bIpVyQ1"]{content:"sc-global-bIpVyQ1,"}/*!sc*/ +data-styled.g37[id="sc-global-bIpVyQ1"]{content:"sc-global-bIpVyQ1,"}/*!sc*/ .bUeHPW{position:relative;margin-bottom:112px;}/*!sc*/ @media (max-width:768px){.bUeHPW{padding:0 15px;}}/*!sc*/ -data-styled.g37[id="Body__Wrapper-sc-7hat30-0"]{content:"bUeHPW,"}/*!sc*/ +data-styled.g38[id="Body__Wrapper-sc-7hat30-0"]{content:"bUeHPW,"}/*!sc*/ .becwQW{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;margin-bottom:48px;}/*!sc*/ @media (max-width:768px){.becwQW{margin-bottom:80px;padding:0 12.8px;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}.becwQW > div:first-child{margin-bottom:12.8px;}}/*!sc*/ -data-styled.g38[id="Footer__ArticleButtonContainer-sc-zqxmks-0"]{content:"becwQW,"}/*!sc*/ +data-styled.g39[id="Footer__ArticleButtonContainer-sc-zqxmks-0"]{content:"becwQW,"}/*!sc*/ .gwQEOy{width:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;white-space:nowrap;}/*!sc*/ -data-styled.g39[id="Footer__ArrowFlexWrapper-sc-zqxmks-1"]{content:"gwQEOy,"}/*!sc*/ +data-styled.g40[id="Footer__ArrowFlexWrapper-sc-zqxmks-1"]{content:"gwQEOy,"}/*!sc*/ .jxGLes{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:flex-end;-webkit-box-align:flex-end;-ms-flex-align:flex-end;align-items:flex-end;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;overflow:hidden;}/*!sc*/ -data-styled.g40[id="Footer__ArticleButtonTextWrapper-sc-zqxmks-2"]{content:"jxGLes,"}/*!sc*/ +data-styled.g41[id="Footer__ArticleButtonTextWrapper-sc-zqxmks-2"]{content:"jxGLes,"}/*!sc*/ .bhYcVf{position:relative;left:0;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;font-size:24px;-webkit-flex-basis:24px;-ms-flex-preferred-size:24px;flex-basis:24px;-webkit-transition:left 0.3s;transition:left 0.3s;}/*!sc*/ -data-styled.g41[id="Footer__Arrow-sc-zqxmks-3"]{content:"bhYcVf,"}/*!sc*/ +data-styled.g42[id="Footer__Arrow-sc-zqxmks-3"]{content:"bhYcVf,"}/*!sc*/ .OEEnV{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;padding:20.8px 16px;max-width:250px;-webkit-flex-basis:250px;-ms-flex-preferred-size:250px;flex-basis:250px;font-size:17.6px;border-radius:5px;background-color:rgba(0,0,0,0.06);color:#191919;cursor:pointer;-webkit-transition:background-color 0.3s;transition:background-color 0.3s;}/*!sc*/ .OEEnV:hover{background-color:rgba(0,0,0,0.08);}/*!sc*/ .OEEnV .Footer__ArrowFlexWrapper-sc-zqxmks-1{-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}/*!sc*/ @@ -212,18 +212,18 @@ .cCfvHe .Footer__Arrow-sc-zqxmks-3{margin-left:16px;}/*!sc*/ .cCfvHe:hover .Footer__Arrow-sc-zqxmks-3{left:2px;}/*!sc*/ @media (max-width:768px){.cCfvHe{max-width:inherit;-webkit-flex-basis:inherit;-ms-flex-preferred-size:inherit;flex-basis:inherit;}}/*!sc*/ -data-styled.g42[id="Footer__ArticleButtonWrapper-sc-zqxmks-4"]{content:"OEEnV,cCfvHe,"}/*!sc*/ +data-styled.g43[id="Footer__ArticleButtonWrapper-sc-zqxmks-4"]{content:"OEEnV,cCfvHe,"}/*!sc*/ .hngxZd{margin-bottom:9.6px;font-size:12.8px;}/*!sc*/ -data-styled.g43[id="Footer__ArticleButtonLabel-sc-zqxmks-5"]{content:"hngxZd,"}/*!sc*/ +data-styled.g44[id="Footer__ArticleButtonLabel-sc-zqxmks-5"]{content:"hngxZd,"}/*!sc*/ .brczfR{padding:2px 0;width:100%;text-overflow:ellipsis;overflow:hidden;}/*!sc*/ -data-styled.g44[id="Footer__ArticleButtonTitle-sc-zqxmks-6"]{content:"brczfR,"}/*!sc*/ +data-styled.g45[id="Footer__ArticleButtonTitle-sc-zqxmks-6"]{content:"brczfR,"}/*!sc*/ @media (max-width:768px){.cRSPGb{padding:0 15px;}}/*!sc*/ -data-styled.g45[id="Footer__CommentWrapper-sc-zqxmks-7"]{content:"cRSPGb,"}/*!sc*/ +data-styled.g46[id="Footer__CommentWrapper-sc-zqxmks-7"]{content:"cRSPGb,"}/*!sc*/ .XZnrl{height:200px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}/*!sc*/ -data-styled.g46[id="Footer__SpinnerWrapper-sc-zqxmks-8"]{content:"XZnrl,"}/*!sc*/ +data-styled.g47[id="Footer__SpinnerWrapper-sc-zqxmks-8"]{content:"XZnrl,"}/*!sc*/ .yzdKT{height:0px;overflow:hidden;}/*!sc*/ .ivqWaF{height:auto;overflow:auto;}/*!sc*/ -data-styled.g47[id="Footer__HiddenWrapper-sc-zqxmks-9"]{content:"yzdKT,ivqWaF,"}/*!sc*/ +data-styled.g48[id="Footer__HiddenWrapper-sc-zqxmks-9"]{content:"yzdKT,ivqWaF,"}/*!sc*/ Defining Performance

Defining Performance

@MJ · 1 min read
Created Date · 2024년 07월 22일 15:07
Last Update · 2024년 07월 31일 15:07

contents: 0-1. CA Intro

Two metrics for defining computer performances

    @@ -301,6 +301,6 @@

    Defining performance

    - \ No newline at end of file + \ No newline at end of file diff --git a/1-2. Measuring Performance/index.html b/1-2. Measuring Performance/index.html index 1ac4541..e6c11fb 100644 --- a/1-2. Measuring Performance/index.html +++ b/1-2. Measuring Performance/index.html @@ -46,34 +46,34 @@ data-styled.g10[id="Footer__FooterWrapper-sc-1qfqdid-0"]{content:"gUOgk,"}/*!sc*/ .juihub{margin-top:0;margin-bottom:48px;border:none;border-bottom:1px solid #e9ecef;}/*!sc*/ .dsTUYW{margin-top:32px;margin-bottom:48px;border:none;border-bottom:1px solid #e9ecef;}/*!sc*/ -data-styled.g12[id="Divider-sc-1jz0jl-0"]{content:"juihub,dsTUYW,"}/*!sc*/ +data-styled.g18[id="Divider-sc-1jz0jl-0"]{content:"juihub,dsTUYW,"}/*!sc*/ .gJiIIX{margin-bottom:10px;word-break:break-all;}/*!sc*/ -data-styled.g13[id="TagList__TagListWrapper-sc-s1uz5f-0"]{content:"gJiIIX,"}/*!sc*/ +data-styled.g19[id="TagList__TagListWrapper-sc-s1uz5f-0"]{content:"gJiIIX,"}/*!sc*/ .OSwVR{display:inline-block;padding:9.6px 11.2px;margin-right:8px;margin-bottom:8px;border-radius:50px;background-color:#f1f3f5;color:#404040;-webkit-text-decoration:none;text-decoration:none;font-size:14.4px;-webkit-transition:all 0.2s;transition:all 0.2s;}/*!sc*/ .OSwVR:hover{background-color:#dee2e6;}/*!sc*/ -data-styled.g14[id="TagList__TagLink-sc-s1uz5f-1"]{content:"OSwVR,"}/*!sc*/ +data-styled.g20[id="TagList__TagLink-sc-s1uz5f-1"]{content:"OSwVR,"}/*!sc*/ .cVaGFY{margin-top:32px;}/*!sc*/ @media (max-width:768px){.cVaGFY{padding:0 15px;}}/*!sc*/ -data-styled.g20[id="Header__Wrapper-sc-1d3p6ct-0"]{content:"cVaGFY,"}/*!sc*/ +data-styled.g21[id="Header__Wrapper-sc-1d3p6ct-0"]{content:"cVaGFY,"}/*!sc*/ .dkDUwb{margin-bottom:25.6px;line-height:1.2;font-size:40px;font-weight:700;color:#191919;}/*!sc*/ -data-styled.g21[id="Header__ArticleTitle-sc-1d3p6ct-1"]{content:"dkDUwb,"}/*!sc*/ +data-styled.g22[id="Header__ArticleTitle-sc-1d3p6ct-1"]{content:"dkDUwb,"}/*!sc*/ .bUGEvg{margin-bottom:32px;font-size:16px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;gap:8px;}/*!sc*/ -data-styled.g22[id="Header__Information-sc-1d3p6ct-2"]{content:"bUGEvg,"}/*!sc*/ +data-styled.g23[id="Header__Information-sc-1d3p6ct-2"]{content:"bUGEvg,"}/*!sc*/ .ceAkMY{padding-bottom:15px;font-weight:700;color:#191919;}/*!sc*/ -data-styled.g23[id="Header__Author-sc-1d3p6ct-3"]{content:"ceAkMY,"}/*!sc*/ +data-styled.g24[id="Header__Author-sc-1d3p6ct-3"]{content:"ceAkMY,"}/*!sc*/ .kmPIwO{font-weight:300;color:#404040;}/*!sc*/ -data-styled.g24[id="Header__Date-sc-1d3p6ct-4"]{content:"kmPIwO,"}/*!sc*/ +data-styled.g25[id="Header__Date-sc-1d3p6ct-4"]{content:"kmPIwO,"}/*!sc*/ .kfiAnU{font-weight:300;color:#404040;}/*!sc*/ -data-styled.g25[id="Header__Property-sc-1d3p6ct-5"]{content:"kfiAnU,"}/*!sc*/ +data-styled.g26[id="Header__Property-sc-1d3p6ct-5"]{content:"kfiAnU,"}/*!sc*/ .jUHwIM{position:relative;opacity:0;-webkit-transition:0.35s all ease;transition:0.35s all ease;opacity:1;}/*!sc*/ -data-styled.g31[id="RevealOnScroll__StyledWrapper-sc-j177rt-0"]{content:"jUHwIM,"}/*!sc*/ +data-styled.g32[id="RevealOnScroll__StyledWrapper-sc-j177rt-0"]{content:"jUHwIM,"}/*!sc*/ .cKsOEP{position:absolute;opacity:1;left:100%;}/*!sc*/ .cKsOEP > div{padding-right:20px;padding-left:16px;margin-left:48px;position:relative;width:240px;max-height:calc(100% - 185px);overflow-y:auto;position:fixed;top:100px;}/*!sc*/ .cKsOEP > div::-webkit-scrollbar{width:3px;}/*!sc*/ .cKsOEP > div::-webkit-scrollbar-track{background:#f1f3f5;}/*!sc*/ .cKsOEP > div::-webkit-scrollbar-thumb{background:#ced4da;}/*!sc*/ @media (max-width:1300px){.cKsOEP{display:None;}}/*!sc*/ -data-styled.g32[id="Toc__TocWrapper-sc-1axrmab-0"]{content:"cKsOEP,"}/*!sc*/ +data-styled.g33[id="Toc__TocWrapper-sc-1axrmab-0"]{content:"cKsOEP,"}/*!sc*/ .erkpHX{font-size:16.7px;color:#191919;line-height:1.73;overflow:hidden;}/*!sc*/ .erkpHX h1:first-child,.erkpHX h2:first-child,.erkpHX h3:first-child,.erkpHX h4:first-child{margin-top:0;}/*!sc*/ .erkpHX > p,.erkpHX > ul,.erkpHX > ol,.erkpHX table,.erkpHX blockquote,.erkpHX pre,.erkpHX img,.erkpHX .katex-display{margin-top:0;margin-bottom:24px;word-break:break-all;}/*!sc*/ @@ -119,7 +119,7 @@ .erkpHX a[data-wiki-link="true"]:hover{-webkit-text-decoration:underline;text-decoration:underline;}/*!sc*/ .erkpHX a{padding:1.6px 0;color:#191919;}/*!sc*/ .erkpHX a:hover{background-color:none;color:#868e96;}/*!sc*/ -data-styled.g34[id="StyledMarkdown-sc-lqtcur-0"]{content:"erkpHX,"}/*!sc*/ +data-styled.g35[id="StyledMarkdown-sc-lqtcur-0"]{content:"erkpHX,"}/*!sc*/ code[class*="language-"],pre[class*="language-"]{margin-bottom:24px;font-size:14.5px;color:#ccc;background:none;font-family:"Bai Jamjuree",monospace;text-align:justify;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none;}/*!sc*/ pre[class*="language-"]{padding:1em;overflow:auto;}/*!sc*/ :not(pre) > code[class*="language-"]{padding:0.1em;border-radius:0.3em;white-space:normal;}/*!sc*/ @@ -185,19 +185,19 @@ .prism-previewer-angle.prism-previewer-angle circle,.prism-previewer-time.prism-previewer-time circle{stroke:hsl(230,8%,24%);stroke-opacity:1;}/*!sc*/ .prism-previewer-easing.prism-previewer-easing circle,.prism-previewer-easing.prism-previewer-easing path,.prism-previewer-easing.prism-previewer-easing line{stroke:hsl(230,8%,24%);}/*!sc*/ .prism-previewer-easing.prism-previewer-easing circle{fill:transparent;}/*!sc*/ -data-styled.g36[id="sc-global-bIpVyQ1"]{content:"sc-global-bIpVyQ1,"}/*!sc*/ +data-styled.g37[id="sc-global-bIpVyQ1"]{content:"sc-global-bIpVyQ1,"}/*!sc*/ .bUeHPW{position:relative;margin-bottom:112px;}/*!sc*/ @media (max-width:768px){.bUeHPW{padding:0 15px;}}/*!sc*/ -data-styled.g37[id="Body__Wrapper-sc-7hat30-0"]{content:"bUeHPW,"}/*!sc*/ +data-styled.g38[id="Body__Wrapper-sc-7hat30-0"]{content:"bUeHPW,"}/*!sc*/ .becwQW{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;margin-bottom:48px;}/*!sc*/ @media (max-width:768px){.becwQW{margin-bottom:80px;padding:0 12.8px;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}.becwQW > div:first-child{margin-bottom:12.8px;}}/*!sc*/ -data-styled.g38[id="Footer__ArticleButtonContainer-sc-zqxmks-0"]{content:"becwQW,"}/*!sc*/ +data-styled.g39[id="Footer__ArticleButtonContainer-sc-zqxmks-0"]{content:"becwQW,"}/*!sc*/ .gwQEOy{width:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;white-space:nowrap;}/*!sc*/ -data-styled.g39[id="Footer__ArrowFlexWrapper-sc-zqxmks-1"]{content:"gwQEOy,"}/*!sc*/ +data-styled.g40[id="Footer__ArrowFlexWrapper-sc-zqxmks-1"]{content:"gwQEOy,"}/*!sc*/ .jxGLes{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:flex-end;-webkit-box-align:flex-end;-ms-flex-align:flex-end;align-items:flex-end;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;overflow:hidden;}/*!sc*/ -data-styled.g40[id="Footer__ArticleButtonTextWrapper-sc-zqxmks-2"]{content:"jxGLes,"}/*!sc*/ +data-styled.g41[id="Footer__ArticleButtonTextWrapper-sc-zqxmks-2"]{content:"jxGLes,"}/*!sc*/ .bhYcVf{position:relative;left:0;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;font-size:24px;-webkit-flex-basis:24px;-ms-flex-preferred-size:24px;flex-basis:24px;-webkit-transition:left 0.3s;transition:left 0.3s;}/*!sc*/ -data-styled.g41[id="Footer__Arrow-sc-zqxmks-3"]{content:"bhYcVf,"}/*!sc*/ +data-styled.g42[id="Footer__Arrow-sc-zqxmks-3"]{content:"bhYcVf,"}/*!sc*/ .OEEnV{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;padding:20.8px 16px;max-width:250px;-webkit-flex-basis:250px;-ms-flex-preferred-size:250px;flex-basis:250px;font-size:17.6px;border-radius:5px;background-color:rgba(0,0,0,0.06);color:#191919;cursor:pointer;-webkit-transition:background-color 0.3s;transition:background-color 0.3s;}/*!sc*/ .OEEnV:hover{background-color:rgba(0,0,0,0.08);}/*!sc*/ .OEEnV .Footer__ArrowFlexWrapper-sc-zqxmks-1{-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}/*!sc*/ @@ -212,18 +212,18 @@ .cCfvHe .Footer__Arrow-sc-zqxmks-3{margin-left:16px;}/*!sc*/ .cCfvHe:hover .Footer__Arrow-sc-zqxmks-3{left:2px;}/*!sc*/ @media (max-width:768px){.cCfvHe{max-width:inherit;-webkit-flex-basis:inherit;-ms-flex-preferred-size:inherit;flex-basis:inherit;}}/*!sc*/ -data-styled.g42[id="Footer__ArticleButtonWrapper-sc-zqxmks-4"]{content:"OEEnV,cCfvHe,"}/*!sc*/ +data-styled.g43[id="Footer__ArticleButtonWrapper-sc-zqxmks-4"]{content:"OEEnV,cCfvHe,"}/*!sc*/ .hngxZd{margin-bottom:9.6px;font-size:12.8px;}/*!sc*/ -data-styled.g43[id="Footer__ArticleButtonLabel-sc-zqxmks-5"]{content:"hngxZd,"}/*!sc*/ +data-styled.g44[id="Footer__ArticleButtonLabel-sc-zqxmks-5"]{content:"hngxZd,"}/*!sc*/ .brczfR{padding:2px 0;width:100%;text-overflow:ellipsis;overflow:hidden;}/*!sc*/ -data-styled.g44[id="Footer__ArticleButtonTitle-sc-zqxmks-6"]{content:"brczfR,"}/*!sc*/ +data-styled.g45[id="Footer__ArticleButtonTitle-sc-zqxmks-6"]{content:"brczfR,"}/*!sc*/ @media (max-width:768px){.cRSPGb{padding:0 15px;}}/*!sc*/ -data-styled.g45[id="Footer__CommentWrapper-sc-zqxmks-7"]{content:"cRSPGb,"}/*!sc*/ +data-styled.g46[id="Footer__CommentWrapper-sc-zqxmks-7"]{content:"cRSPGb,"}/*!sc*/ .XZnrl{height:200px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}/*!sc*/ -data-styled.g46[id="Footer__SpinnerWrapper-sc-zqxmks-8"]{content:"XZnrl,"}/*!sc*/ +data-styled.g47[id="Footer__SpinnerWrapper-sc-zqxmks-8"]{content:"XZnrl,"}/*!sc*/ .yzdKT{height:0px;overflow:hidden;}/*!sc*/ .ivqWaF{height:auto;overflow:auto;}/*!sc*/ -data-styled.g47[id="Footer__HiddenWrapper-sc-zqxmks-9"]{content:"yzdKT,ivqWaF,"}/*!sc*/ +data-styled.g48[id="Footer__HiddenWrapper-sc-zqxmks-9"]{content:"yzdKT,ivqWaF,"}/*!sc*/ Measuring Performance

    Measuring Performance

    @MJ · 1 min read
    Created Date · 2024년 07월 22일 15:07
    Last Update · 2024년 08월 02일 15:08

    contents: 0-1. CA Intro

    Measuring CPU performance

      @@ -299,6 +299,6 @@

      Amdahl's law

      - \ No newline at end of file + \ No newline at end of file diff --git a/2-1. Designing principles 1~3 of MIPS ISA/index.html b/2-1. Designing principles 1~3 of MIPS ISA/index.html index d2e043c..6f75cd9 100644 --- a/2-1. Designing principles 1~3 of MIPS ISA/index.html +++ b/2-1. Designing principles 1~3 of MIPS ISA/index.html @@ -46,34 +46,34 @@ data-styled.g10[id="Footer__FooterWrapper-sc-1qfqdid-0"]{content:"gUOgk,"}/*!sc*/ .juihub{margin-top:0;margin-bottom:48px;border:none;border-bottom:1px solid #e9ecef;}/*!sc*/ .dsTUYW{margin-top:32px;margin-bottom:48px;border:none;border-bottom:1px solid #e9ecef;}/*!sc*/ -data-styled.g12[id="Divider-sc-1jz0jl-0"]{content:"juihub,dsTUYW,"}/*!sc*/ +data-styled.g18[id="Divider-sc-1jz0jl-0"]{content:"juihub,dsTUYW,"}/*!sc*/ .gJiIIX{margin-bottom:10px;word-break:break-all;}/*!sc*/ -data-styled.g13[id="TagList__TagListWrapper-sc-s1uz5f-0"]{content:"gJiIIX,"}/*!sc*/ +data-styled.g19[id="TagList__TagListWrapper-sc-s1uz5f-0"]{content:"gJiIIX,"}/*!sc*/ .OSwVR{display:inline-block;padding:9.6px 11.2px;margin-right:8px;margin-bottom:8px;border-radius:50px;background-color:#f1f3f5;color:#404040;-webkit-text-decoration:none;text-decoration:none;font-size:14.4px;-webkit-transition:all 0.2s;transition:all 0.2s;}/*!sc*/ .OSwVR:hover{background-color:#dee2e6;}/*!sc*/ -data-styled.g14[id="TagList__TagLink-sc-s1uz5f-1"]{content:"OSwVR,"}/*!sc*/ +data-styled.g20[id="TagList__TagLink-sc-s1uz5f-1"]{content:"OSwVR,"}/*!sc*/ .cVaGFY{margin-top:32px;}/*!sc*/ @media (max-width:768px){.cVaGFY{padding:0 15px;}}/*!sc*/ -data-styled.g20[id="Header__Wrapper-sc-1d3p6ct-0"]{content:"cVaGFY,"}/*!sc*/ +data-styled.g21[id="Header__Wrapper-sc-1d3p6ct-0"]{content:"cVaGFY,"}/*!sc*/ .dkDUwb{margin-bottom:25.6px;line-height:1.2;font-size:40px;font-weight:700;color:#191919;}/*!sc*/ -data-styled.g21[id="Header__ArticleTitle-sc-1d3p6ct-1"]{content:"dkDUwb,"}/*!sc*/ +data-styled.g22[id="Header__ArticleTitle-sc-1d3p6ct-1"]{content:"dkDUwb,"}/*!sc*/ .bUGEvg{margin-bottom:32px;font-size:16px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;gap:8px;}/*!sc*/ -data-styled.g22[id="Header__Information-sc-1d3p6ct-2"]{content:"bUGEvg,"}/*!sc*/ +data-styled.g23[id="Header__Information-sc-1d3p6ct-2"]{content:"bUGEvg,"}/*!sc*/ .ceAkMY{padding-bottom:15px;font-weight:700;color:#191919;}/*!sc*/ -data-styled.g23[id="Header__Author-sc-1d3p6ct-3"]{content:"ceAkMY,"}/*!sc*/ +data-styled.g24[id="Header__Author-sc-1d3p6ct-3"]{content:"ceAkMY,"}/*!sc*/ .kmPIwO{font-weight:300;color:#404040;}/*!sc*/ -data-styled.g24[id="Header__Date-sc-1d3p6ct-4"]{content:"kmPIwO,"}/*!sc*/ +data-styled.g25[id="Header__Date-sc-1d3p6ct-4"]{content:"kmPIwO,"}/*!sc*/ .kfiAnU{font-weight:300;color:#404040;}/*!sc*/ -data-styled.g25[id="Header__Property-sc-1d3p6ct-5"]{content:"kfiAnU,"}/*!sc*/ +data-styled.g26[id="Header__Property-sc-1d3p6ct-5"]{content:"kfiAnU,"}/*!sc*/ .jUHwIM{position:relative;opacity:0;-webkit-transition:0.35s all ease;transition:0.35s all ease;opacity:1;}/*!sc*/ -data-styled.g31[id="RevealOnScroll__StyledWrapper-sc-j177rt-0"]{content:"jUHwIM,"}/*!sc*/ +data-styled.g32[id="RevealOnScroll__StyledWrapper-sc-j177rt-0"]{content:"jUHwIM,"}/*!sc*/ .cKsOEP{position:absolute;opacity:1;left:100%;}/*!sc*/ .cKsOEP > div{padding-right:20px;padding-left:16px;margin-left:48px;position:relative;width:240px;max-height:calc(100% - 185px);overflow-y:auto;position:fixed;top:100px;}/*!sc*/ .cKsOEP > div::-webkit-scrollbar{width:3px;}/*!sc*/ .cKsOEP > div::-webkit-scrollbar-track{background:#f1f3f5;}/*!sc*/ .cKsOEP > div::-webkit-scrollbar-thumb{background:#ced4da;}/*!sc*/ @media (max-width:1300px){.cKsOEP{display:None;}}/*!sc*/ -data-styled.g32[id="Toc__TocWrapper-sc-1axrmab-0"]{content:"cKsOEP,"}/*!sc*/ +data-styled.g33[id="Toc__TocWrapper-sc-1axrmab-0"]{content:"cKsOEP,"}/*!sc*/ .erkpHX{font-size:16.7px;color:#191919;line-height:1.73;overflow:hidden;}/*!sc*/ .erkpHX h1:first-child,.erkpHX h2:first-child,.erkpHX h3:first-child,.erkpHX h4:first-child{margin-top:0;}/*!sc*/ .erkpHX > p,.erkpHX > ul,.erkpHX > ol,.erkpHX table,.erkpHX blockquote,.erkpHX pre,.erkpHX img,.erkpHX .katex-display{margin-top:0;margin-bottom:24px;word-break:break-all;}/*!sc*/ @@ -119,7 +119,7 @@ .erkpHX a[data-wiki-link="true"]:hover{-webkit-text-decoration:underline;text-decoration:underline;}/*!sc*/ .erkpHX a{padding:1.6px 0;color:#191919;}/*!sc*/ .erkpHX a:hover{background-color:none;color:#868e96;}/*!sc*/ -data-styled.g34[id="StyledMarkdown-sc-lqtcur-0"]{content:"erkpHX,"}/*!sc*/ +data-styled.g35[id="StyledMarkdown-sc-lqtcur-0"]{content:"erkpHX,"}/*!sc*/ code[class*="language-"],pre[class*="language-"]{margin-bottom:24px;font-size:14.5px;color:#ccc;background:none;font-family:"Bai Jamjuree",monospace;text-align:justify;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none;}/*!sc*/ pre[class*="language-"]{padding:1em;overflow:auto;}/*!sc*/ :not(pre) > code[class*="language-"]{padding:0.1em;border-radius:0.3em;white-space:normal;}/*!sc*/ @@ -185,19 +185,19 @@ .prism-previewer-angle.prism-previewer-angle circle,.prism-previewer-time.prism-previewer-time circle{stroke:hsl(230,8%,24%);stroke-opacity:1;}/*!sc*/ .prism-previewer-easing.prism-previewer-easing circle,.prism-previewer-easing.prism-previewer-easing path,.prism-previewer-easing.prism-previewer-easing line{stroke:hsl(230,8%,24%);}/*!sc*/ .prism-previewer-easing.prism-previewer-easing circle{fill:transparent;}/*!sc*/ -data-styled.g36[id="sc-global-bIpVyQ1"]{content:"sc-global-bIpVyQ1,"}/*!sc*/ +data-styled.g37[id="sc-global-bIpVyQ1"]{content:"sc-global-bIpVyQ1,"}/*!sc*/ .bUeHPW{position:relative;margin-bottom:112px;}/*!sc*/ @media (max-width:768px){.bUeHPW{padding:0 15px;}}/*!sc*/ -data-styled.g37[id="Body__Wrapper-sc-7hat30-0"]{content:"bUeHPW,"}/*!sc*/ +data-styled.g38[id="Body__Wrapper-sc-7hat30-0"]{content:"bUeHPW,"}/*!sc*/ .becwQW{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;margin-bottom:48px;}/*!sc*/ @media (max-width:768px){.becwQW{margin-bottom:80px;padding:0 12.8px;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}.becwQW > div:first-child{margin-bottom:12.8px;}}/*!sc*/ -data-styled.g38[id="Footer__ArticleButtonContainer-sc-zqxmks-0"]{content:"becwQW,"}/*!sc*/ +data-styled.g39[id="Footer__ArticleButtonContainer-sc-zqxmks-0"]{content:"becwQW,"}/*!sc*/ .gwQEOy{width:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;white-space:nowrap;}/*!sc*/ -data-styled.g39[id="Footer__ArrowFlexWrapper-sc-zqxmks-1"]{content:"gwQEOy,"}/*!sc*/ +data-styled.g40[id="Footer__ArrowFlexWrapper-sc-zqxmks-1"]{content:"gwQEOy,"}/*!sc*/ .jxGLes{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:flex-end;-webkit-box-align:flex-end;-ms-flex-align:flex-end;align-items:flex-end;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;overflow:hidden;}/*!sc*/ -data-styled.g40[id="Footer__ArticleButtonTextWrapper-sc-zqxmks-2"]{content:"jxGLes,"}/*!sc*/ +data-styled.g41[id="Footer__ArticleButtonTextWrapper-sc-zqxmks-2"]{content:"jxGLes,"}/*!sc*/ .bhYcVf{position:relative;left:0;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;font-size:24px;-webkit-flex-basis:24px;-ms-flex-preferred-size:24px;flex-basis:24px;-webkit-transition:left 0.3s;transition:left 0.3s;}/*!sc*/ -data-styled.g41[id="Footer__Arrow-sc-zqxmks-3"]{content:"bhYcVf,"}/*!sc*/ +data-styled.g42[id="Footer__Arrow-sc-zqxmks-3"]{content:"bhYcVf,"}/*!sc*/ .OEEnV{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;padding:20.8px 16px;max-width:250px;-webkit-flex-basis:250px;-ms-flex-preferred-size:250px;flex-basis:250px;font-size:17.6px;border-radius:5px;background-color:rgba(0,0,0,0.06);color:#191919;cursor:pointer;-webkit-transition:background-color 0.3s;transition:background-color 0.3s;}/*!sc*/ .OEEnV:hover{background-color:rgba(0,0,0,0.08);}/*!sc*/ .OEEnV .Footer__ArrowFlexWrapper-sc-zqxmks-1{-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}/*!sc*/ @@ -212,18 +212,18 @@ .cCfvHe .Footer__Arrow-sc-zqxmks-3{margin-left:16px;}/*!sc*/ .cCfvHe:hover .Footer__Arrow-sc-zqxmks-3{left:2px;}/*!sc*/ @media (max-width:768px){.cCfvHe{max-width:inherit;-webkit-flex-basis:inherit;-ms-flex-preferred-size:inherit;flex-basis:inherit;}}/*!sc*/ -data-styled.g42[id="Footer__ArticleButtonWrapper-sc-zqxmks-4"]{content:"OEEnV,cCfvHe,"}/*!sc*/ +data-styled.g43[id="Footer__ArticleButtonWrapper-sc-zqxmks-4"]{content:"OEEnV,cCfvHe,"}/*!sc*/ .hngxZd{margin-bottom:9.6px;font-size:12.8px;}/*!sc*/ -data-styled.g43[id="Footer__ArticleButtonLabel-sc-zqxmks-5"]{content:"hngxZd,"}/*!sc*/ +data-styled.g44[id="Footer__ArticleButtonLabel-sc-zqxmks-5"]{content:"hngxZd,"}/*!sc*/ .brczfR{padding:2px 0;width:100%;text-overflow:ellipsis;overflow:hidden;}/*!sc*/ -data-styled.g44[id="Footer__ArticleButtonTitle-sc-zqxmks-6"]{content:"brczfR,"}/*!sc*/ +data-styled.g45[id="Footer__ArticleButtonTitle-sc-zqxmks-6"]{content:"brczfR,"}/*!sc*/ @media (max-width:768px){.cRSPGb{padding:0 15px;}}/*!sc*/ -data-styled.g45[id="Footer__CommentWrapper-sc-zqxmks-7"]{content:"cRSPGb,"}/*!sc*/ +data-styled.g46[id="Footer__CommentWrapper-sc-zqxmks-7"]{content:"cRSPGb,"}/*!sc*/ .XZnrl{height:200px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}/*!sc*/ -data-styled.g46[id="Footer__SpinnerWrapper-sc-zqxmks-8"]{content:"XZnrl,"}/*!sc*/ +data-styled.g47[id="Footer__SpinnerWrapper-sc-zqxmks-8"]{content:"XZnrl,"}/*!sc*/ .yzdKT{height:0px;overflow:hidden;}/*!sc*/ .ivqWaF{height:auto;overflow:auto;}/*!sc*/ -data-styled.g47[id="Footer__HiddenWrapper-sc-zqxmks-9"]{content:"yzdKT,ivqWaF,"}/*!sc*/ +data-styled.g48[id="Footer__HiddenWrapper-sc-zqxmks-9"]{content:"yzdKT,ivqWaF,"}/*!sc*/ Design principles 1~3 of MIPS ISA

      Design principles 1~3 of MIPS ISA

      @MJ · 4 min read
      Created Date · 2024년 07월 22일 16:07
      Last Update · 2024년 07월 31일 15:07

      contents: 0-1. CA Intro

      MIPS ISA

      What is MIPS ISA

      @@ -406,6 +406,6 @@

      Key underlying design principles

      - \ No newline at end of file + \ No newline at end of file diff --git a/2-2. Design principles 4 of MIPS ISA/index.html b/2-2. Design principles 4 of MIPS ISA/index.html index ea85677..f33c449 100644 --- a/2-2. Design principles 4 of MIPS ISA/index.html +++ b/2-2. Design principles 4 of MIPS ISA/index.html @@ -46,34 +46,34 @@ data-styled.g10[id="Footer__FooterWrapper-sc-1qfqdid-0"]{content:"gUOgk,"}/*!sc*/ .juihub{margin-top:0;margin-bottom:48px;border:none;border-bottom:1px solid #e9ecef;}/*!sc*/ .dsTUYW{margin-top:32px;margin-bottom:48px;border:none;border-bottom:1px solid #e9ecef;}/*!sc*/ -data-styled.g12[id="Divider-sc-1jz0jl-0"]{content:"juihub,dsTUYW,"}/*!sc*/ +data-styled.g18[id="Divider-sc-1jz0jl-0"]{content:"juihub,dsTUYW,"}/*!sc*/ .gJiIIX{margin-bottom:10px;word-break:break-all;}/*!sc*/ -data-styled.g13[id="TagList__TagListWrapper-sc-s1uz5f-0"]{content:"gJiIIX,"}/*!sc*/ +data-styled.g19[id="TagList__TagListWrapper-sc-s1uz5f-0"]{content:"gJiIIX,"}/*!sc*/ .OSwVR{display:inline-block;padding:9.6px 11.2px;margin-right:8px;margin-bottom:8px;border-radius:50px;background-color:#f1f3f5;color:#404040;-webkit-text-decoration:none;text-decoration:none;font-size:14.4px;-webkit-transition:all 0.2s;transition:all 0.2s;}/*!sc*/ .OSwVR:hover{background-color:#dee2e6;}/*!sc*/ -data-styled.g14[id="TagList__TagLink-sc-s1uz5f-1"]{content:"OSwVR,"}/*!sc*/ +data-styled.g20[id="TagList__TagLink-sc-s1uz5f-1"]{content:"OSwVR,"}/*!sc*/ .cVaGFY{margin-top:32px;}/*!sc*/ @media (max-width:768px){.cVaGFY{padding:0 15px;}}/*!sc*/ -data-styled.g20[id="Header__Wrapper-sc-1d3p6ct-0"]{content:"cVaGFY,"}/*!sc*/ +data-styled.g21[id="Header__Wrapper-sc-1d3p6ct-0"]{content:"cVaGFY,"}/*!sc*/ .dkDUwb{margin-bottom:25.6px;line-height:1.2;font-size:40px;font-weight:700;color:#191919;}/*!sc*/ -data-styled.g21[id="Header__ArticleTitle-sc-1d3p6ct-1"]{content:"dkDUwb,"}/*!sc*/ +data-styled.g22[id="Header__ArticleTitle-sc-1d3p6ct-1"]{content:"dkDUwb,"}/*!sc*/ .bUGEvg{margin-bottom:32px;font-size:16px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;gap:8px;}/*!sc*/ -data-styled.g22[id="Header__Information-sc-1d3p6ct-2"]{content:"bUGEvg,"}/*!sc*/ +data-styled.g23[id="Header__Information-sc-1d3p6ct-2"]{content:"bUGEvg,"}/*!sc*/ .ceAkMY{padding-bottom:15px;font-weight:700;color:#191919;}/*!sc*/ -data-styled.g23[id="Header__Author-sc-1d3p6ct-3"]{content:"ceAkMY,"}/*!sc*/ +data-styled.g24[id="Header__Author-sc-1d3p6ct-3"]{content:"ceAkMY,"}/*!sc*/ .kmPIwO{font-weight:300;color:#404040;}/*!sc*/ -data-styled.g24[id="Header__Date-sc-1d3p6ct-4"]{content:"kmPIwO,"}/*!sc*/ +data-styled.g25[id="Header__Date-sc-1d3p6ct-4"]{content:"kmPIwO,"}/*!sc*/ .kfiAnU{font-weight:300;color:#404040;}/*!sc*/ -data-styled.g25[id="Header__Property-sc-1d3p6ct-5"]{content:"kfiAnU,"}/*!sc*/ +data-styled.g26[id="Header__Property-sc-1d3p6ct-5"]{content:"kfiAnU,"}/*!sc*/ .jUHwIM{position:relative;opacity:0;-webkit-transition:0.35s all ease;transition:0.35s all ease;opacity:1;}/*!sc*/ -data-styled.g31[id="RevealOnScroll__StyledWrapper-sc-j177rt-0"]{content:"jUHwIM,"}/*!sc*/ +data-styled.g32[id="RevealOnScroll__StyledWrapper-sc-j177rt-0"]{content:"jUHwIM,"}/*!sc*/ .cKsOEP{position:absolute;opacity:1;left:100%;}/*!sc*/ .cKsOEP > div{padding-right:20px;padding-left:16px;margin-left:48px;position:relative;width:240px;max-height:calc(100% - 185px);overflow-y:auto;position:fixed;top:100px;}/*!sc*/ .cKsOEP > div::-webkit-scrollbar{width:3px;}/*!sc*/ .cKsOEP > div::-webkit-scrollbar-track{background:#f1f3f5;}/*!sc*/ .cKsOEP > div::-webkit-scrollbar-thumb{background:#ced4da;}/*!sc*/ @media (max-width:1300px){.cKsOEP{display:None;}}/*!sc*/ -data-styled.g32[id="Toc__TocWrapper-sc-1axrmab-0"]{content:"cKsOEP,"}/*!sc*/ +data-styled.g33[id="Toc__TocWrapper-sc-1axrmab-0"]{content:"cKsOEP,"}/*!sc*/ .erkpHX{font-size:16.7px;color:#191919;line-height:1.73;overflow:hidden;}/*!sc*/ .erkpHX h1:first-child,.erkpHX h2:first-child,.erkpHX h3:first-child,.erkpHX h4:first-child{margin-top:0;}/*!sc*/ .erkpHX > p,.erkpHX > ul,.erkpHX > ol,.erkpHX table,.erkpHX blockquote,.erkpHX pre,.erkpHX img,.erkpHX .katex-display{margin-top:0;margin-bottom:24px;word-break:break-all;}/*!sc*/ @@ -119,7 +119,7 @@ .erkpHX a[data-wiki-link="true"]:hover{-webkit-text-decoration:underline;text-decoration:underline;}/*!sc*/ .erkpHX a{padding:1.6px 0;color:#191919;}/*!sc*/ .erkpHX a:hover{background-color:none;color:#868e96;}/*!sc*/ -data-styled.g34[id="StyledMarkdown-sc-lqtcur-0"]{content:"erkpHX,"}/*!sc*/ +data-styled.g35[id="StyledMarkdown-sc-lqtcur-0"]{content:"erkpHX,"}/*!sc*/ code[class*="language-"],pre[class*="language-"]{margin-bottom:24px;font-size:14.5px;color:#ccc;background:none;font-family:"Bai Jamjuree",monospace;text-align:justify;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none;}/*!sc*/ pre[class*="language-"]{padding:1em;overflow:auto;}/*!sc*/ :not(pre) > code[class*="language-"]{padding:0.1em;border-radius:0.3em;white-space:normal;}/*!sc*/ @@ -185,19 +185,19 @@ .prism-previewer-angle.prism-previewer-angle circle,.prism-previewer-time.prism-previewer-time circle{stroke:hsl(230,8%,24%);stroke-opacity:1;}/*!sc*/ .prism-previewer-easing.prism-previewer-easing circle,.prism-previewer-easing.prism-previewer-easing path,.prism-previewer-easing.prism-previewer-easing line{stroke:hsl(230,8%,24%);}/*!sc*/ .prism-previewer-easing.prism-previewer-easing circle{fill:transparent;}/*!sc*/ -data-styled.g36[id="sc-global-bIpVyQ1"]{content:"sc-global-bIpVyQ1,"}/*!sc*/ +data-styled.g37[id="sc-global-bIpVyQ1"]{content:"sc-global-bIpVyQ1,"}/*!sc*/ .bUeHPW{position:relative;margin-bottom:112px;}/*!sc*/ @media (max-width:768px){.bUeHPW{padding:0 15px;}}/*!sc*/ -data-styled.g37[id="Body__Wrapper-sc-7hat30-0"]{content:"bUeHPW,"}/*!sc*/ +data-styled.g38[id="Body__Wrapper-sc-7hat30-0"]{content:"bUeHPW,"}/*!sc*/ .becwQW{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;margin-bottom:48px;}/*!sc*/ @media (max-width:768px){.becwQW{margin-bottom:80px;padding:0 12.8px;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}.becwQW > div:first-child{margin-bottom:12.8px;}}/*!sc*/ -data-styled.g38[id="Footer__ArticleButtonContainer-sc-zqxmks-0"]{content:"becwQW,"}/*!sc*/ +data-styled.g39[id="Footer__ArticleButtonContainer-sc-zqxmks-0"]{content:"becwQW,"}/*!sc*/ .gwQEOy{width:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;white-space:nowrap;}/*!sc*/ -data-styled.g39[id="Footer__ArrowFlexWrapper-sc-zqxmks-1"]{content:"gwQEOy,"}/*!sc*/ +data-styled.g40[id="Footer__ArrowFlexWrapper-sc-zqxmks-1"]{content:"gwQEOy,"}/*!sc*/ .jxGLes{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:flex-end;-webkit-box-align:flex-end;-ms-flex-align:flex-end;align-items:flex-end;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;overflow:hidden;}/*!sc*/ -data-styled.g40[id="Footer__ArticleButtonTextWrapper-sc-zqxmks-2"]{content:"jxGLes,"}/*!sc*/ +data-styled.g41[id="Footer__ArticleButtonTextWrapper-sc-zqxmks-2"]{content:"jxGLes,"}/*!sc*/ .bhYcVf{position:relative;left:0;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;font-size:24px;-webkit-flex-basis:24px;-ms-flex-preferred-size:24px;flex-basis:24px;-webkit-transition:left 0.3s;transition:left 0.3s;}/*!sc*/ -data-styled.g41[id="Footer__Arrow-sc-zqxmks-3"]{content:"bhYcVf,"}/*!sc*/ +data-styled.g42[id="Footer__Arrow-sc-zqxmks-3"]{content:"bhYcVf,"}/*!sc*/ .OEEnV{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;padding:20.8px 16px;max-width:250px;-webkit-flex-basis:250px;-ms-flex-preferred-size:250px;flex-basis:250px;font-size:17.6px;border-radius:5px;background-color:rgba(0,0,0,0.06);color:#191919;cursor:pointer;-webkit-transition:background-color 0.3s;transition:background-color 0.3s;}/*!sc*/ .OEEnV:hover{background-color:rgba(0,0,0,0.08);}/*!sc*/ .OEEnV .Footer__ArrowFlexWrapper-sc-zqxmks-1{-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}/*!sc*/ @@ -212,18 +212,18 @@ .cCfvHe .Footer__Arrow-sc-zqxmks-3{margin-left:16px;}/*!sc*/ .cCfvHe:hover .Footer__Arrow-sc-zqxmks-3{left:2px;}/*!sc*/ @media (max-width:768px){.cCfvHe{max-width:inherit;-webkit-flex-basis:inherit;-ms-flex-preferred-size:inherit;flex-basis:inherit;}}/*!sc*/ -data-styled.g42[id="Footer__ArticleButtonWrapper-sc-zqxmks-4"]{content:"OEEnV,cCfvHe,"}/*!sc*/ +data-styled.g43[id="Footer__ArticleButtonWrapper-sc-zqxmks-4"]{content:"OEEnV,cCfvHe,"}/*!sc*/ .hngxZd{margin-bottom:9.6px;font-size:12.8px;}/*!sc*/ -data-styled.g43[id="Footer__ArticleButtonLabel-sc-zqxmks-5"]{content:"hngxZd,"}/*!sc*/ +data-styled.g44[id="Footer__ArticleButtonLabel-sc-zqxmks-5"]{content:"hngxZd,"}/*!sc*/ .brczfR{padding:2px 0;width:100%;text-overflow:ellipsis;overflow:hidden;}/*!sc*/ -data-styled.g44[id="Footer__ArticleButtonTitle-sc-zqxmks-6"]{content:"brczfR,"}/*!sc*/ +data-styled.g45[id="Footer__ArticleButtonTitle-sc-zqxmks-6"]{content:"brczfR,"}/*!sc*/ @media (max-width:768px){.cRSPGb{padding:0 15px;}}/*!sc*/ -data-styled.g45[id="Footer__CommentWrapper-sc-zqxmks-7"]{content:"cRSPGb,"}/*!sc*/ +data-styled.g46[id="Footer__CommentWrapper-sc-zqxmks-7"]{content:"cRSPGb,"}/*!sc*/ .XZnrl{height:200px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}/*!sc*/ -data-styled.g46[id="Footer__SpinnerWrapper-sc-zqxmks-8"]{content:"XZnrl,"}/*!sc*/ +data-styled.g47[id="Footer__SpinnerWrapper-sc-zqxmks-8"]{content:"XZnrl,"}/*!sc*/ .yzdKT{height:0px;overflow:hidden;}/*!sc*/ .ivqWaF{height:auto;overflow:auto;}/*!sc*/ -data-styled.g47[id="Footer__HiddenWrapper-sc-zqxmks-9"]{content:"yzdKT,ivqWaF,"}/*!sc*/ +data-styled.g48[id="Footer__HiddenWrapper-sc-zqxmks-9"]{content:"yzdKT,ivqWaF,"}/*!sc*/ Design principles 4 of MIPS ISA

      Design principles 4 of MIPS ISA

      @MJ · 3 min read
      Created Date · 2024년 07월 31일 15:07
      Last Update · 2024년 07월 31일 15:07

      contents: 0-1. CA Intro

      The assembly language that has been studied so far is not a form that the processor can understand.

      Therefore, we need to encode instructions and data in well-formed binary.

      @@ -413,6 +413,6 @@

      Good design demands goog compromise

      - \ No newline at end of file + \ No newline at end of file diff --git a/2-3. Representing Instructions in computer/index.html b/2-3. Representing Instructions in computer/index.html index 163cd4b..d30186f 100644 --- a/2-3. Representing Instructions in computer/index.html +++ b/2-3. Representing Instructions in computer/index.html @@ -46,34 +46,34 @@ data-styled.g10[id="Footer__FooterWrapper-sc-1qfqdid-0"]{content:"gUOgk,"}/*!sc*/ .juihub{margin-top:0;margin-bottom:48px;border:none;border-bottom:1px solid #e9ecef;}/*!sc*/ .dsTUYW{margin-top:32px;margin-bottom:48px;border:none;border-bottom:1px solid #e9ecef;}/*!sc*/ -data-styled.g12[id="Divider-sc-1jz0jl-0"]{content:"juihub,dsTUYW,"}/*!sc*/ +data-styled.g18[id="Divider-sc-1jz0jl-0"]{content:"juihub,dsTUYW,"}/*!sc*/ .gJiIIX{margin-bottom:10px;word-break:break-all;}/*!sc*/ -data-styled.g13[id="TagList__TagListWrapper-sc-s1uz5f-0"]{content:"gJiIIX,"}/*!sc*/ +data-styled.g19[id="TagList__TagListWrapper-sc-s1uz5f-0"]{content:"gJiIIX,"}/*!sc*/ .OSwVR{display:inline-block;padding:9.6px 11.2px;margin-right:8px;margin-bottom:8px;border-radius:50px;background-color:#f1f3f5;color:#404040;-webkit-text-decoration:none;text-decoration:none;font-size:14.4px;-webkit-transition:all 0.2s;transition:all 0.2s;}/*!sc*/ .OSwVR:hover{background-color:#dee2e6;}/*!sc*/ -data-styled.g14[id="TagList__TagLink-sc-s1uz5f-1"]{content:"OSwVR,"}/*!sc*/ +data-styled.g20[id="TagList__TagLink-sc-s1uz5f-1"]{content:"OSwVR,"}/*!sc*/ .cVaGFY{margin-top:32px;}/*!sc*/ @media (max-width:768px){.cVaGFY{padding:0 15px;}}/*!sc*/ -data-styled.g20[id="Header__Wrapper-sc-1d3p6ct-0"]{content:"cVaGFY,"}/*!sc*/ +data-styled.g21[id="Header__Wrapper-sc-1d3p6ct-0"]{content:"cVaGFY,"}/*!sc*/ .dkDUwb{margin-bottom:25.6px;line-height:1.2;font-size:40px;font-weight:700;color:#191919;}/*!sc*/ -data-styled.g21[id="Header__ArticleTitle-sc-1d3p6ct-1"]{content:"dkDUwb,"}/*!sc*/ +data-styled.g22[id="Header__ArticleTitle-sc-1d3p6ct-1"]{content:"dkDUwb,"}/*!sc*/ .bUGEvg{margin-bottom:32px;font-size:16px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;gap:8px;}/*!sc*/ -data-styled.g22[id="Header__Information-sc-1d3p6ct-2"]{content:"bUGEvg,"}/*!sc*/ +data-styled.g23[id="Header__Information-sc-1d3p6ct-2"]{content:"bUGEvg,"}/*!sc*/ .ceAkMY{padding-bottom:15px;font-weight:700;color:#191919;}/*!sc*/ -data-styled.g23[id="Header__Author-sc-1d3p6ct-3"]{content:"ceAkMY,"}/*!sc*/ +data-styled.g24[id="Header__Author-sc-1d3p6ct-3"]{content:"ceAkMY,"}/*!sc*/ .kmPIwO{font-weight:300;color:#404040;}/*!sc*/ -data-styled.g24[id="Header__Date-sc-1d3p6ct-4"]{content:"kmPIwO,"}/*!sc*/ +data-styled.g25[id="Header__Date-sc-1d3p6ct-4"]{content:"kmPIwO,"}/*!sc*/ .kfiAnU{font-weight:300;color:#404040;}/*!sc*/ -data-styled.g25[id="Header__Property-sc-1d3p6ct-5"]{content:"kfiAnU,"}/*!sc*/ +data-styled.g26[id="Header__Property-sc-1d3p6ct-5"]{content:"kfiAnU,"}/*!sc*/ .jUHwIM{position:relative;opacity:0;-webkit-transition:0.35s all ease;transition:0.35s all ease;opacity:1;}/*!sc*/ -data-styled.g31[id="RevealOnScroll__StyledWrapper-sc-j177rt-0"]{content:"jUHwIM,"}/*!sc*/ +data-styled.g32[id="RevealOnScroll__StyledWrapper-sc-j177rt-0"]{content:"jUHwIM,"}/*!sc*/ .cKsOEP{position:absolute;opacity:1;left:100%;}/*!sc*/ .cKsOEP > div{padding-right:20px;padding-left:16px;margin-left:48px;position:relative;width:240px;max-height:calc(100% - 185px);overflow-y:auto;position:fixed;top:100px;}/*!sc*/ .cKsOEP > div::-webkit-scrollbar{width:3px;}/*!sc*/ .cKsOEP > div::-webkit-scrollbar-track{background:#f1f3f5;}/*!sc*/ .cKsOEP > div::-webkit-scrollbar-thumb{background:#ced4da;}/*!sc*/ @media (max-width:1300px){.cKsOEP{display:None;}}/*!sc*/ -data-styled.g32[id="Toc__TocWrapper-sc-1axrmab-0"]{content:"cKsOEP,"}/*!sc*/ +data-styled.g33[id="Toc__TocWrapper-sc-1axrmab-0"]{content:"cKsOEP,"}/*!sc*/ .erkpHX{font-size:16.7px;color:#191919;line-height:1.73;overflow:hidden;}/*!sc*/ .erkpHX h1:first-child,.erkpHX h2:first-child,.erkpHX h3:first-child,.erkpHX h4:first-child{margin-top:0;}/*!sc*/ .erkpHX > p,.erkpHX > ul,.erkpHX > ol,.erkpHX table,.erkpHX blockquote,.erkpHX pre,.erkpHX img,.erkpHX .katex-display{margin-top:0;margin-bottom:24px;word-break:break-all;}/*!sc*/ @@ -119,7 +119,7 @@ .erkpHX a[data-wiki-link="true"]:hover{-webkit-text-decoration:underline;text-decoration:underline;}/*!sc*/ .erkpHX a{padding:1.6px 0;color:#191919;}/*!sc*/ .erkpHX a:hover{background-color:none;color:#868e96;}/*!sc*/ -data-styled.g34[id="StyledMarkdown-sc-lqtcur-0"]{content:"erkpHX,"}/*!sc*/ +data-styled.g35[id="StyledMarkdown-sc-lqtcur-0"]{content:"erkpHX,"}/*!sc*/ code[class*="language-"],pre[class*="language-"]{margin-bottom:24px;font-size:14.5px;color:#ccc;background:none;font-family:"Bai Jamjuree",monospace;text-align:justify;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none;}/*!sc*/ pre[class*="language-"]{padding:1em;overflow:auto;}/*!sc*/ :not(pre) > code[class*="language-"]{padding:0.1em;border-radius:0.3em;white-space:normal;}/*!sc*/ @@ -185,19 +185,19 @@ .prism-previewer-angle.prism-previewer-angle circle,.prism-previewer-time.prism-previewer-time circle{stroke:hsl(230,8%,24%);stroke-opacity:1;}/*!sc*/ .prism-previewer-easing.prism-previewer-easing circle,.prism-previewer-easing.prism-previewer-easing path,.prism-previewer-easing.prism-previewer-easing line{stroke:hsl(230,8%,24%);}/*!sc*/ .prism-previewer-easing.prism-previewer-easing circle{fill:transparent;}/*!sc*/ -data-styled.g36[id="sc-global-bIpVyQ1"]{content:"sc-global-bIpVyQ1,"}/*!sc*/ +data-styled.g37[id="sc-global-bIpVyQ1"]{content:"sc-global-bIpVyQ1,"}/*!sc*/ .bUeHPW{position:relative;margin-bottom:112px;}/*!sc*/ @media (max-width:768px){.bUeHPW{padding:0 15px;}}/*!sc*/ -data-styled.g37[id="Body__Wrapper-sc-7hat30-0"]{content:"bUeHPW,"}/*!sc*/ +data-styled.g38[id="Body__Wrapper-sc-7hat30-0"]{content:"bUeHPW,"}/*!sc*/ .becwQW{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;margin-bottom:48px;}/*!sc*/ @media (max-width:768px){.becwQW{margin-bottom:80px;padding:0 12.8px;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}.becwQW > div:first-child{margin-bottom:12.8px;}}/*!sc*/ -data-styled.g38[id="Footer__ArticleButtonContainer-sc-zqxmks-0"]{content:"becwQW,"}/*!sc*/ +data-styled.g39[id="Footer__ArticleButtonContainer-sc-zqxmks-0"]{content:"becwQW,"}/*!sc*/ .gwQEOy{width:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;white-space:nowrap;}/*!sc*/ -data-styled.g39[id="Footer__ArrowFlexWrapper-sc-zqxmks-1"]{content:"gwQEOy,"}/*!sc*/ +data-styled.g40[id="Footer__ArrowFlexWrapper-sc-zqxmks-1"]{content:"gwQEOy,"}/*!sc*/ .jxGLes{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:flex-end;-webkit-box-align:flex-end;-ms-flex-align:flex-end;align-items:flex-end;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;overflow:hidden;}/*!sc*/ -data-styled.g40[id="Footer__ArticleButtonTextWrapper-sc-zqxmks-2"]{content:"jxGLes,"}/*!sc*/ +data-styled.g41[id="Footer__ArticleButtonTextWrapper-sc-zqxmks-2"]{content:"jxGLes,"}/*!sc*/ .bhYcVf{position:relative;left:0;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;font-size:24px;-webkit-flex-basis:24px;-ms-flex-preferred-size:24px;flex-basis:24px;-webkit-transition:left 0.3s;transition:left 0.3s;}/*!sc*/ -data-styled.g41[id="Footer__Arrow-sc-zqxmks-3"]{content:"bhYcVf,"}/*!sc*/ +data-styled.g42[id="Footer__Arrow-sc-zqxmks-3"]{content:"bhYcVf,"}/*!sc*/ .OEEnV{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;padding:20.8px 16px;max-width:250px;-webkit-flex-basis:250px;-ms-flex-preferred-size:250px;flex-basis:250px;font-size:17.6px;border-radius:5px;background-color:rgba(0,0,0,0.06);color:#191919;cursor:pointer;-webkit-transition:background-color 0.3s;transition:background-color 0.3s;}/*!sc*/ .OEEnV:hover{background-color:rgba(0,0,0,0.08);}/*!sc*/ .OEEnV .Footer__ArrowFlexWrapper-sc-zqxmks-1{-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}/*!sc*/ @@ -212,18 +212,18 @@ .cCfvHe .Footer__Arrow-sc-zqxmks-3{margin-left:16px;}/*!sc*/ .cCfvHe:hover .Footer__Arrow-sc-zqxmks-3{left:2px;}/*!sc*/ @media (max-width:768px){.cCfvHe{max-width:inherit;-webkit-flex-basis:inherit;-ms-flex-preferred-size:inherit;flex-basis:inherit;}}/*!sc*/ -data-styled.g42[id="Footer__ArticleButtonWrapper-sc-zqxmks-4"]{content:"OEEnV,cCfvHe,"}/*!sc*/ +data-styled.g43[id="Footer__ArticleButtonWrapper-sc-zqxmks-4"]{content:"OEEnV,cCfvHe,"}/*!sc*/ .hngxZd{margin-bottom:9.6px;font-size:12.8px;}/*!sc*/ -data-styled.g43[id="Footer__ArticleButtonLabel-sc-zqxmks-5"]{content:"hngxZd,"}/*!sc*/ +data-styled.g44[id="Footer__ArticleButtonLabel-sc-zqxmks-5"]{content:"hngxZd,"}/*!sc*/ .brczfR{padding:2px 0;width:100%;text-overflow:ellipsis;overflow:hidden;}/*!sc*/ -data-styled.g44[id="Footer__ArticleButtonTitle-sc-zqxmks-6"]{content:"brczfR,"}/*!sc*/ +data-styled.g45[id="Footer__ArticleButtonTitle-sc-zqxmks-6"]{content:"brczfR,"}/*!sc*/ @media (max-width:768px){.cRSPGb{padding:0 15px;}}/*!sc*/ -data-styled.g45[id="Footer__CommentWrapper-sc-zqxmks-7"]{content:"cRSPGb,"}/*!sc*/ +data-styled.g46[id="Footer__CommentWrapper-sc-zqxmks-7"]{content:"cRSPGb,"}/*!sc*/ .XZnrl{height:200px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}/*!sc*/ -data-styled.g46[id="Footer__SpinnerWrapper-sc-zqxmks-8"]{content:"XZnrl,"}/*!sc*/ +data-styled.g47[id="Footer__SpinnerWrapper-sc-zqxmks-8"]{content:"XZnrl,"}/*!sc*/ .yzdKT{height:0px;overflow:hidden;}/*!sc*/ .ivqWaF{height:auto;overflow:auto;}/*!sc*/ -data-styled.g47[id="Footer__HiddenWrapper-sc-zqxmks-9"]{content:"yzdKT,ivqWaF,"}/*!sc*/ +data-styled.g48[id="Footer__HiddenWrapper-sc-zqxmks-9"]{content:"yzdKT,ivqWaF,"}/*!sc*/ Representing Instructions in computer

      Representing Instructions in computer

      @MJ · 3 min read
      Created Date · 2024년 07월 31일 15:07
      Last Update · 2024년 10월 12일 20:10

      contents: 0-1. CA Intro

      Common HW design for MIPS ISA

      @@ -475,6 +475,6 @@

      Conditional operations

      - \ No newline at end of file + \ No newline at end of file diff --git a/2-4. Supporting procedures in computer HW/index.html b/2-4. Supporting procedures in computer HW/index.html index 4a49933..c617ad1 100644 --- a/2-4. Supporting procedures in computer HW/index.html +++ b/2-4. Supporting procedures in computer HW/index.html @@ -46,34 +46,34 @@ data-styled.g10[id="Footer__FooterWrapper-sc-1qfqdid-0"]{content:"gUOgk,"}/*!sc*/ .juihub{margin-top:0;margin-bottom:48px;border:none;border-bottom:1px solid #e9ecef;}/*!sc*/ .dsTUYW{margin-top:32px;margin-bottom:48px;border:none;border-bottom:1px solid #e9ecef;}/*!sc*/ -data-styled.g12[id="Divider-sc-1jz0jl-0"]{content:"juihub,dsTUYW,"}/*!sc*/ +data-styled.g18[id="Divider-sc-1jz0jl-0"]{content:"juihub,dsTUYW,"}/*!sc*/ .gJiIIX{margin-bottom:10px;word-break:break-all;}/*!sc*/ -data-styled.g13[id="TagList__TagListWrapper-sc-s1uz5f-0"]{content:"gJiIIX,"}/*!sc*/ +data-styled.g19[id="TagList__TagListWrapper-sc-s1uz5f-0"]{content:"gJiIIX,"}/*!sc*/ .OSwVR{display:inline-block;padding:9.6px 11.2px;margin-right:8px;margin-bottom:8px;border-radius:50px;background-color:#f1f3f5;color:#404040;-webkit-text-decoration:none;text-decoration:none;font-size:14.4px;-webkit-transition:all 0.2s;transition:all 0.2s;}/*!sc*/ .OSwVR:hover{background-color:#dee2e6;}/*!sc*/ -data-styled.g14[id="TagList__TagLink-sc-s1uz5f-1"]{content:"OSwVR,"}/*!sc*/ +data-styled.g20[id="TagList__TagLink-sc-s1uz5f-1"]{content:"OSwVR,"}/*!sc*/ .cVaGFY{margin-top:32px;}/*!sc*/ @media (max-width:768px){.cVaGFY{padding:0 15px;}}/*!sc*/ -data-styled.g20[id="Header__Wrapper-sc-1d3p6ct-0"]{content:"cVaGFY,"}/*!sc*/ +data-styled.g21[id="Header__Wrapper-sc-1d3p6ct-0"]{content:"cVaGFY,"}/*!sc*/ .dkDUwb{margin-bottom:25.6px;line-height:1.2;font-size:40px;font-weight:700;color:#191919;}/*!sc*/ -data-styled.g21[id="Header__ArticleTitle-sc-1d3p6ct-1"]{content:"dkDUwb,"}/*!sc*/ +data-styled.g22[id="Header__ArticleTitle-sc-1d3p6ct-1"]{content:"dkDUwb,"}/*!sc*/ .bUGEvg{margin-bottom:32px;font-size:16px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;gap:8px;}/*!sc*/ -data-styled.g22[id="Header__Information-sc-1d3p6ct-2"]{content:"bUGEvg,"}/*!sc*/ +data-styled.g23[id="Header__Information-sc-1d3p6ct-2"]{content:"bUGEvg,"}/*!sc*/ .ceAkMY{padding-bottom:15px;font-weight:700;color:#191919;}/*!sc*/ -data-styled.g23[id="Header__Author-sc-1d3p6ct-3"]{content:"ceAkMY,"}/*!sc*/ +data-styled.g24[id="Header__Author-sc-1d3p6ct-3"]{content:"ceAkMY,"}/*!sc*/ .kmPIwO{font-weight:300;color:#404040;}/*!sc*/ -data-styled.g24[id="Header__Date-sc-1d3p6ct-4"]{content:"kmPIwO,"}/*!sc*/ +data-styled.g25[id="Header__Date-sc-1d3p6ct-4"]{content:"kmPIwO,"}/*!sc*/ .kfiAnU{font-weight:300;color:#404040;}/*!sc*/ -data-styled.g25[id="Header__Property-sc-1d3p6ct-5"]{content:"kfiAnU,"}/*!sc*/ +data-styled.g26[id="Header__Property-sc-1d3p6ct-5"]{content:"kfiAnU,"}/*!sc*/ .jUHwIM{position:relative;opacity:0;-webkit-transition:0.35s all ease;transition:0.35s all ease;opacity:1;}/*!sc*/ -data-styled.g31[id="RevealOnScroll__StyledWrapper-sc-j177rt-0"]{content:"jUHwIM,"}/*!sc*/ +data-styled.g32[id="RevealOnScroll__StyledWrapper-sc-j177rt-0"]{content:"jUHwIM,"}/*!sc*/ .cKsOEP{position:absolute;opacity:1;left:100%;}/*!sc*/ .cKsOEP > div{padding-right:20px;padding-left:16px;margin-left:48px;position:relative;width:240px;max-height:calc(100% - 185px);overflow-y:auto;position:fixed;top:100px;}/*!sc*/ .cKsOEP > div::-webkit-scrollbar{width:3px;}/*!sc*/ .cKsOEP > div::-webkit-scrollbar-track{background:#f1f3f5;}/*!sc*/ .cKsOEP > div::-webkit-scrollbar-thumb{background:#ced4da;}/*!sc*/ @media (max-width:1300px){.cKsOEP{display:None;}}/*!sc*/ -data-styled.g32[id="Toc__TocWrapper-sc-1axrmab-0"]{content:"cKsOEP,"}/*!sc*/ +data-styled.g33[id="Toc__TocWrapper-sc-1axrmab-0"]{content:"cKsOEP,"}/*!sc*/ .erkpHX{font-size:16.7px;color:#191919;line-height:1.73;overflow:hidden;}/*!sc*/ .erkpHX h1:first-child,.erkpHX h2:first-child,.erkpHX h3:first-child,.erkpHX h4:first-child{margin-top:0;}/*!sc*/ .erkpHX > p,.erkpHX > ul,.erkpHX > ol,.erkpHX table,.erkpHX blockquote,.erkpHX pre,.erkpHX img,.erkpHX .katex-display{margin-top:0;margin-bottom:24px;word-break:break-all;}/*!sc*/ @@ -119,7 +119,7 @@ .erkpHX a[data-wiki-link="true"]:hover{-webkit-text-decoration:underline;text-decoration:underline;}/*!sc*/ .erkpHX a{padding:1.6px 0;color:#191919;}/*!sc*/ .erkpHX a:hover{background-color:none;color:#868e96;}/*!sc*/ -data-styled.g34[id="StyledMarkdown-sc-lqtcur-0"]{content:"erkpHX,"}/*!sc*/ +data-styled.g35[id="StyledMarkdown-sc-lqtcur-0"]{content:"erkpHX,"}/*!sc*/ code[class*="language-"],pre[class*="language-"]{margin-bottom:24px;font-size:14.5px;color:#ccc;background:none;font-family:"Bai Jamjuree",monospace;text-align:justify;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none;}/*!sc*/ pre[class*="language-"]{padding:1em;overflow:auto;}/*!sc*/ :not(pre) > code[class*="language-"]{padding:0.1em;border-radius:0.3em;white-space:normal;}/*!sc*/ @@ -185,19 +185,19 @@ .prism-previewer-angle.prism-previewer-angle circle,.prism-previewer-time.prism-previewer-time circle{stroke:hsl(230,8%,24%);stroke-opacity:1;}/*!sc*/ .prism-previewer-easing.prism-previewer-easing circle,.prism-previewer-easing.prism-previewer-easing path,.prism-previewer-easing.prism-previewer-easing line{stroke:hsl(230,8%,24%);}/*!sc*/ .prism-previewer-easing.prism-previewer-easing circle{fill:transparent;}/*!sc*/ -data-styled.g36[id="sc-global-bIpVyQ1"]{content:"sc-global-bIpVyQ1,"}/*!sc*/ +data-styled.g37[id="sc-global-bIpVyQ1"]{content:"sc-global-bIpVyQ1,"}/*!sc*/ .bUeHPW{position:relative;margin-bottom:112px;}/*!sc*/ @media (max-width:768px){.bUeHPW{padding:0 15px;}}/*!sc*/ -data-styled.g37[id="Body__Wrapper-sc-7hat30-0"]{content:"bUeHPW,"}/*!sc*/ +data-styled.g38[id="Body__Wrapper-sc-7hat30-0"]{content:"bUeHPW,"}/*!sc*/ .becwQW{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;margin-bottom:48px;}/*!sc*/ @media (max-width:768px){.becwQW{margin-bottom:80px;padding:0 12.8px;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}.becwQW > div:first-child{margin-bottom:12.8px;}}/*!sc*/ -data-styled.g38[id="Footer__ArticleButtonContainer-sc-zqxmks-0"]{content:"becwQW,"}/*!sc*/ +data-styled.g39[id="Footer__ArticleButtonContainer-sc-zqxmks-0"]{content:"becwQW,"}/*!sc*/ .gwQEOy{width:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;white-space:nowrap;}/*!sc*/ -data-styled.g39[id="Footer__ArrowFlexWrapper-sc-zqxmks-1"]{content:"gwQEOy,"}/*!sc*/ +data-styled.g40[id="Footer__ArrowFlexWrapper-sc-zqxmks-1"]{content:"gwQEOy,"}/*!sc*/ .jxGLes{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:flex-end;-webkit-box-align:flex-end;-ms-flex-align:flex-end;align-items:flex-end;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;overflow:hidden;}/*!sc*/ -data-styled.g40[id="Footer__ArticleButtonTextWrapper-sc-zqxmks-2"]{content:"jxGLes,"}/*!sc*/ +data-styled.g41[id="Footer__ArticleButtonTextWrapper-sc-zqxmks-2"]{content:"jxGLes,"}/*!sc*/ .bhYcVf{position:relative;left:0;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;font-size:24px;-webkit-flex-basis:24px;-ms-flex-preferred-size:24px;flex-basis:24px;-webkit-transition:left 0.3s;transition:left 0.3s;}/*!sc*/ -data-styled.g41[id="Footer__Arrow-sc-zqxmks-3"]{content:"bhYcVf,"}/*!sc*/ +data-styled.g42[id="Footer__Arrow-sc-zqxmks-3"]{content:"bhYcVf,"}/*!sc*/ .OEEnV{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;padding:20.8px 16px;max-width:250px;-webkit-flex-basis:250px;-ms-flex-preferred-size:250px;flex-basis:250px;font-size:17.6px;border-radius:5px;background-color:rgba(0,0,0,0.06);color:#191919;cursor:pointer;-webkit-transition:background-color 0.3s;transition:background-color 0.3s;}/*!sc*/ .OEEnV:hover{background-color:rgba(0,0,0,0.08);}/*!sc*/ .OEEnV .Footer__ArrowFlexWrapper-sc-zqxmks-1{-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}/*!sc*/ @@ -212,18 +212,18 @@ .cCfvHe .Footer__Arrow-sc-zqxmks-3{margin-left:16px;}/*!sc*/ .cCfvHe:hover .Footer__Arrow-sc-zqxmks-3{left:2px;}/*!sc*/ @media (max-width:768px){.cCfvHe{max-width:inherit;-webkit-flex-basis:inherit;-ms-flex-preferred-size:inherit;flex-basis:inherit;}}/*!sc*/ -data-styled.g42[id="Footer__ArticleButtonWrapper-sc-zqxmks-4"]{content:"OEEnV,cCfvHe,"}/*!sc*/ +data-styled.g43[id="Footer__ArticleButtonWrapper-sc-zqxmks-4"]{content:"OEEnV,cCfvHe,"}/*!sc*/ .hngxZd{margin-bottom:9.6px;font-size:12.8px;}/*!sc*/ -data-styled.g43[id="Footer__ArticleButtonLabel-sc-zqxmks-5"]{content:"hngxZd,"}/*!sc*/ +data-styled.g44[id="Footer__ArticleButtonLabel-sc-zqxmks-5"]{content:"hngxZd,"}/*!sc*/ .brczfR{padding:2px 0;width:100%;text-overflow:ellipsis;overflow:hidden;}/*!sc*/ -data-styled.g44[id="Footer__ArticleButtonTitle-sc-zqxmks-6"]{content:"brczfR,"}/*!sc*/ +data-styled.g45[id="Footer__ArticleButtonTitle-sc-zqxmks-6"]{content:"brczfR,"}/*!sc*/ @media (max-width:768px){.cRSPGb{padding:0 15px;}}/*!sc*/ -data-styled.g45[id="Footer__CommentWrapper-sc-zqxmks-7"]{content:"cRSPGb,"}/*!sc*/ +data-styled.g46[id="Footer__CommentWrapper-sc-zqxmks-7"]{content:"cRSPGb,"}/*!sc*/ .XZnrl{height:200px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}/*!sc*/ -data-styled.g46[id="Footer__SpinnerWrapper-sc-zqxmks-8"]{content:"XZnrl,"}/*!sc*/ +data-styled.g47[id="Footer__SpinnerWrapper-sc-zqxmks-8"]{content:"XZnrl,"}/*!sc*/ .yzdKT{height:0px;overflow:hidden;}/*!sc*/ .ivqWaF{height:auto;overflow:auto;}/*!sc*/ -data-styled.g47[id="Footer__HiddenWrapper-sc-zqxmks-9"]{content:"yzdKT,ivqWaF,"}/*!sc*/ +data-styled.g48[id="Footer__HiddenWrapper-sc-zqxmks-9"]{content:"yzdKT,ivqWaF,"}/*!sc*/ Supporting procedures in computer HW

      Supporting procedures in computer HW

      @MJ · 2 min read
      Created Date · 2024년 08월 07일 12:08
      Last Update · 2024년 10월 12일 20:10

      contents: 0-1. CA Intro

      Procedures

      Functions in a program

      @@ -356,6 +356,6 @@

      Instructions for procedure calls

      - \ No newline at end of file + \ No newline at end of file diff --git a/2-5. MIPS memory allocation & addressing/index.html b/2-5. MIPS memory allocation & addressing/index.html index 2ee5daf..5404db8 100644 --- a/2-5. MIPS memory allocation & addressing/index.html +++ b/2-5. MIPS memory allocation & addressing/index.html @@ -46,34 +46,34 @@ data-styled.g10[id="Footer__FooterWrapper-sc-1qfqdid-0"]{content:"gUOgk,"}/*!sc*/ .juihub{margin-top:0;margin-bottom:48px;border:none;border-bottom:1px solid #e9ecef;}/*!sc*/ .dsTUYW{margin-top:32px;margin-bottom:48px;border:none;border-bottom:1px solid #e9ecef;}/*!sc*/ -data-styled.g12[id="Divider-sc-1jz0jl-0"]{content:"juihub,dsTUYW,"}/*!sc*/ +data-styled.g18[id="Divider-sc-1jz0jl-0"]{content:"juihub,dsTUYW,"}/*!sc*/ .gJiIIX{margin-bottom:10px;word-break:break-all;}/*!sc*/ -data-styled.g13[id="TagList__TagListWrapper-sc-s1uz5f-0"]{content:"gJiIIX,"}/*!sc*/ +data-styled.g19[id="TagList__TagListWrapper-sc-s1uz5f-0"]{content:"gJiIIX,"}/*!sc*/ .OSwVR{display:inline-block;padding:9.6px 11.2px;margin-right:8px;margin-bottom:8px;border-radius:50px;background-color:#f1f3f5;color:#404040;-webkit-text-decoration:none;text-decoration:none;font-size:14.4px;-webkit-transition:all 0.2s;transition:all 0.2s;}/*!sc*/ .OSwVR:hover{background-color:#dee2e6;}/*!sc*/ -data-styled.g14[id="TagList__TagLink-sc-s1uz5f-1"]{content:"OSwVR,"}/*!sc*/ +data-styled.g20[id="TagList__TagLink-sc-s1uz5f-1"]{content:"OSwVR,"}/*!sc*/ .cVaGFY{margin-top:32px;}/*!sc*/ @media (max-width:768px){.cVaGFY{padding:0 15px;}}/*!sc*/ -data-styled.g20[id="Header__Wrapper-sc-1d3p6ct-0"]{content:"cVaGFY,"}/*!sc*/ +data-styled.g21[id="Header__Wrapper-sc-1d3p6ct-0"]{content:"cVaGFY,"}/*!sc*/ .dkDUwb{margin-bottom:25.6px;line-height:1.2;font-size:40px;font-weight:700;color:#191919;}/*!sc*/ -data-styled.g21[id="Header__ArticleTitle-sc-1d3p6ct-1"]{content:"dkDUwb,"}/*!sc*/ +data-styled.g22[id="Header__ArticleTitle-sc-1d3p6ct-1"]{content:"dkDUwb,"}/*!sc*/ .bUGEvg{margin-bottom:32px;font-size:16px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;gap:8px;}/*!sc*/ -data-styled.g22[id="Header__Information-sc-1d3p6ct-2"]{content:"bUGEvg,"}/*!sc*/ +data-styled.g23[id="Header__Information-sc-1d3p6ct-2"]{content:"bUGEvg,"}/*!sc*/ .ceAkMY{padding-bottom:15px;font-weight:700;color:#191919;}/*!sc*/ -data-styled.g23[id="Header__Author-sc-1d3p6ct-3"]{content:"ceAkMY,"}/*!sc*/ +data-styled.g24[id="Header__Author-sc-1d3p6ct-3"]{content:"ceAkMY,"}/*!sc*/ .kmPIwO{font-weight:300;color:#404040;}/*!sc*/ -data-styled.g24[id="Header__Date-sc-1d3p6ct-4"]{content:"kmPIwO,"}/*!sc*/ +data-styled.g25[id="Header__Date-sc-1d3p6ct-4"]{content:"kmPIwO,"}/*!sc*/ .kfiAnU{font-weight:300;color:#404040;}/*!sc*/ -data-styled.g25[id="Header__Property-sc-1d3p6ct-5"]{content:"kfiAnU,"}/*!sc*/ +data-styled.g26[id="Header__Property-sc-1d3p6ct-5"]{content:"kfiAnU,"}/*!sc*/ .jUHwIM{position:relative;opacity:0;-webkit-transition:0.35s all ease;transition:0.35s all ease;opacity:1;}/*!sc*/ -data-styled.g31[id="RevealOnScroll__StyledWrapper-sc-j177rt-0"]{content:"jUHwIM,"}/*!sc*/ +data-styled.g32[id="RevealOnScroll__StyledWrapper-sc-j177rt-0"]{content:"jUHwIM,"}/*!sc*/ .cKsOEP{position:absolute;opacity:1;left:100%;}/*!sc*/ .cKsOEP > div{padding-right:20px;padding-left:16px;margin-left:48px;position:relative;width:240px;max-height:calc(100% - 185px);overflow-y:auto;position:fixed;top:100px;}/*!sc*/ .cKsOEP > div::-webkit-scrollbar{width:3px;}/*!sc*/ .cKsOEP > div::-webkit-scrollbar-track{background:#f1f3f5;}/*!sc*/ .cKsOEP > div::-webkit-scrollbar-thumb{background:#ced4da;}/*!sc*/ @media (max-width:1300px){.cKsOEP{display:None;}}/*!sc*/ -data-styled.g32[id="Toc__TocWrapper-sc-1axrmab-0"]{content:"cKsOEP,"}/*!sc*/ +data-styled.g33[id="Toc__TocWrapper-sc-1axrmab-0"]{content:"cKsOEP,"}/*!sc*/ .erkpHX{font-size:16.7px;color:#191919;line-height:1.73;overflow:hidden;}/*!sc*/ .erkpHX h1:first-child,.erkpHX h2:first-child,.erkpHX h3:first-child,.erkpHX h4:first-child{margin-top:0;}/*!sc*/ .erkpHX > p,.erkpHX > ul,.erkpHX > ol,.erkpHX table,.erkpHX blockquote,.erkpHX pre,.erkpHX img,.erkpHX .katex-display{margin-top:0;margin-bottom:24px;word-break:break-all;}/*!sc*/ @@ -119,7 +119,7 @@ .erkpHX a[data-wiki-link="true"]:hover{-webkit-text-decoration:underline;text-decoration:underline;}/*!sc*/ .erkpHX a{padding:1.6px 0;color:#191919;}/*!sc*/ .erkpHX a:hover{background-color:none;color:#868e96;}/*!sc*/ -data-styled.g34[id="StyledMarkdown-sc-lqtcur-0"]{content:"erkpHX,"}/*!sc*/ +data-styled.g35[id="StyledMarkdown-sc-lqtcur-0"]{content:"erkpHX,"}/*!sc*/ code[class*="language-"],pre[class*="language-"]{margin-bottom:24px;font-size:14.5px;color:#ccc;background:none;font-family:"Bai Jamjuree",monospace;text-align:justify;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none;}/*!sc*/ pre[class*="language-"]{padding:1em;overflow:auto;}/*!sc*/ :not(pre) > code[class*="language-"]{padding:0.1em;border-radius:0.3em;white-space:normal;}/*!sc*/ @@ -185,19 +185,19 @@ .prism-previewer-angle.prism-previewer-angle circle,.prism-previewer-time.prism-previewer-time circle{stroke:hsl(230,8%,24%);stroke-opacity:1;}/*!sc*/ .prism-previewer-easing.prism-previewer-easing circle,.prism-previewer-easing.prism-previewer-easing path,.prism-previewer-easing.prism-previewer-easing line{stroke:hsl(230,8%,24%);}/*!sc*/ .prism-previewer-easing.prism-previewer-easing circle{fill:transparent;}/*!sc*/ -data-styled.g36[id="sc-global-bIpVyQ1"]{content:"sc-global-bIpVyQ1,"}/*!sc*/ +data-styled.g37[id="sc-global-bIpVyQ1"]{content:"sc-global-bIpVyQ1,"}/*!sc*/ .bUeHPW{position:relative;margin-bottom:112px;}/*!sc*/ @media (max-width:768px){.bUeHPW{padding:0 15px;}}/*!sc*/ -data-styled.g37[id="Body__Wrapper-sc-7hat30-0"]{content:"bUeHPW,"}/*!sc*/ +data-styled.g38[id="Body__Wrapper-sc-7hat30-0"]{content:"bUeHPW,"}/*!sc*/ .becwQW{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;margin-bottom:48px;}/*!sc*/ @media (max-width:768px){.becwQW{margin-bottom:80px;padding:0 12.8px;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}.becwQW > div:first-child{margin-bottom:12.8px;}}/*!sc*/ -data-styled.g38[id="Footer__ArticleButtonContainer-sc-zqxmks-0"]{content:"becwQW,"}/*!sc*/ +data-styled.g39[id="Footer__ArticleButtonContainer-sc-zqxmks-0"]{content:"becwQW,"}/*!sc*/ .gwQEOy{width:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;white-space:nowrap;}/*!sc*/ -data-styled.g39[id="Footer__ArrowFlexWrapper-sc-zqxmks-1"]{content:"gwQEOy,"}/*!sc*/ +data-styled.g40[id="Footer__ArrowFlexWrapper-sc-zqxmks-1"]{content:"gwQEOy,"}/*!sc*/ .jxGLes{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:flex-end;-webkit-box-align:flex-end;-ms-flex-align:flex-end;align-items:flex-end;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;overflow:hidden;}/*!sc*/ -data-styled.g40[id="Footer__ArticleButtonTextWrapper-sc-zqxmks-2"]{content:"jxGLes,"}/*!sc*/ +data-styled.g41[id="Footer__ArticleButtonTextWrapper-sc-zqxmks-2"]{content:"jxGLes,"}/*!sc*/ .bhYcVf{position:relative;left:0;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;font-size:24px;-webkit-flex-basis:24px;-ms-flex-preferred-size:24px;flex-basis:24px;-webkit-transition:left 0.3s;transition:left 0.3s;}/*!sc*/ -data-styled.g41[id="Footer__Arrow-sc-zqxmks-3"]{content:"bhYcVf,"}/*!sc*/ +data-styled.g42[id="Footer__Arrow-sc-zqxmks-3"]{content:"bhYcVf,"}/*!sc*/ .OEEnV{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;padding:20.8px 16px;max-width:250px;-webkit-flex-basis:250px;-ms-flex-preferred-size:250px;flex-basis:250px;font-size:17.6px;border-radius:5px;background-color:rgba(0,0,0,0.06);color:#191919;cursor:pointer;-webkit-transition:background-color 0.3s;transition:background-color 0.3s;}/*!sc*/ .OEEnV:hover{background-color:rgba(0,0,0,0.08);}/*!sc*/ .OEEnV .Footer__ArrowFlexWrapper-sc-zqxmks-1{-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}/*!sc*/ @@ -212,18 +212,18 @@ .cCfvHe .Footer__Arrow-sc-zqxmks-3{margin-left:16px;}/*!sc*/ .cCfvHe:hover .Footer__Arrow-sc-zqxmks-3{left:2px;}/*!sc*/ @media (max-width:768px){.cCfvHe{max-width:inherit;-webkit-flex-basis:inherit;-ms-flex-preferred-size:inherit;flex-basis:inherit;}}/*!sc*/ -data-styled.g42[id="Footer__ArticleButtonWrapper-sc-zqxmks-4"]{content:"OEEnV,cCfvHe,"}/*!sc*/ +data-styled.g43[id="Footer__ArticleButtonWrapper-sc-zqxmks-4"]{content:"OEEnV,cCfvHe,"}/*!sc*/ .hngxZd{margin-bottom:9.6px;font-size:12.8px;}/*!sc*/ -data-styled.g43[id="Footer__ArticleButtonLabel-sc-zqxmks-5"]{content:"hngxZd,"}/*!sc*/ +data-styled.g44[id="Footer__ArticleButtonLabel-sc-zqxmks-5"]{content:"hngxZd,"}/*!sc*/ .brczfR{padding:2px 0;width:100%;text-overflow:ellipsis;overflow:hidden;}/*!sc*/ -data-styled.g44[id="Footer__ArticleButtonTitle-sc-zqxmks-6"]{content:"brczfR,"}/*!sc*/ +data-styled.g45[id="Footer__ArticleButtonTitle-sc-zqxmks-6"]{content:"brczfR,"}/*!sc*/ @media (max-width:768px){.cRSPGb{padding:0 15px;}}/*!sc*/ -data-styled.g45[id="Footer__CommentWrapper-sc-zqxmks-7"]{content:"cRSPGb,"}/*!sc*/ +data-styled.g46[id="Footer__CommentWrapper-sc-zqxmks-7"]{content:"cRSPGb,"}/*!sc*/ .XZnrl{height:200px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}/*!sc*/ -data-styled.g46[id="Footer__SpinnerWrapper-sc-zqxmks-8"]{content:"XZnrl,"}/*!sc*/ +data-styled.g47[id="Footer__SpinnerWrapper-sc-zqxmks-8"]{content:"XZnrl,"}/*!sc*/ .yzdKT{height:0px;overflow:hidden;}/*!sc*/ .ivqWaF{height:auto;overflow:auto;}/*!sc*/ -data-styled.g47[id="Footer__HiddenWrapper-sc-zqxmks-9"]{content:"yzdKT,ivqWaF,"}/*!sc*/ +data-styled.g48[id="Footer__HiddenWrapper-sc-zqxmks-9"]{content:"yzdKT,ivqWaF,"}/*!sc*/ MIPS memory allocation & addressing

      MIPS memory allocation & addressing

      @MJ · 4 min read
      Created Date · 2024년 08월 08일 12:08
      Last Update · 2024년 10월 12일 20:10

      contents: 0-1. CA Intro

      MIPS memory allocation

      To avoid the overlap for managing memory, we use stack, heap, and static space.

      @@ -470,6 +470,6 @@

      5. Pseudo-direct addressing (with branch instructions)

      - \ No newline at end of file + \ No newline at end of file diff --git a/3-1. Addition and Subtraction/index.html b/3-1. Addition and Subtraction/index.html index b0dc2f7..98b425a 100644 --- a/3-1. Addition and Subtraction/index.html +++ b/3-1. Addition and Subtraction/index.html @@ -46,34 +46,34 @@ data-styled.g10[id="Footer__FooterWrapper-sc-1qfqdid-0"]{content:"gUOgk,"}/*!sc*/ .juihub{margin-top:0;margin-bottom:48px;border:none;border-bottom:1px solid #e9ecef;}/*!sc*/ .dsTUYW{margin-top:32px;margin-bottom:48px;border:none;border-bottom:1px solid #e9ecef;}/*!sc*/ -data-styled.g12[id="Divider-sc-1jz0jl-0"]{content:"juihub,dsTUYW,"}/*!sc*/ +data-styled.g18[id="Divider-sc-1jz0jl-0"]{content:"juihub,dsTUYW,"}/*!sc*/ .gJiIIX{margin-bottom:10px;word-break:break-all;}/*!sc*/ -data-styled.g13[id="TagList__TagListWrapper-sc-s1uz5f-0"]{content:"gJiIIX,"}/*!sc*/ +data-styled.g19[id="TagList__TagListWrapper-sc-s1uz5f-0"]{content:"gJiIIX,"}/*!sc*/ .OSwVR{display:inline-block;padding:9.6px 11.2px;margin-right:8px;margin-bottom:8px;border-radius:50px;background-color:#f1f3f5;color:#404040;-webkit-text-decoration:none;text-decoration:none;font-size:14.4px;-webkit-transition:all 0.2s;transition:all 0.2s;}/*!sc*/ .OSwVR:hover{background-color:#dee2e6;}/*!sc*/ -data-styled.g14[id="TagList__TagLink-sc-s1uz5f-1"]{content:"OSwVR,"}/*!sc*/ +data-styled.g20[id="TagList__TagLink-sc-s1uz5f-1"]{content:"OSwVR,"}/*!sc*/ .cVaGFY{margin-top:32px;}/*!sc*/ @media (max-width:768px){.cVaGFY{padding:0 15px;}}/*!sc*/ -data-styled.g20[id="Header__Wrapper-sc-1d3p6ct-0"]{content:"cVaGFY,"}/*!sc*/ +data-styled.g21[id="Header__Wrapper-sc-1d3p6ct-0"]{content:"cVaGFY,"}/*!sc*/ .dkDUwb{margin-bottom:25.6px;line-height:1.2;font-size:40px;font-weight:700;color:#191919;}/*!sc*/ -data-styled.g21[id="Header__ArticleTitle-sc-1d3p6ct-1"]{content:"dkDUwb,"}/*!sc*/ +data-styled.g22[id="Header__ArticleTitle-sc-1d3p6ct-1"]{content:"dkDUwb,"}/*!sc*/ .bUGEvg{margin-bottom:32px;font-size:16px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;gap:8px;}/*!sc*/ -data-styled.g22[id="Header__Information-sc-1d3p6ct-2"]{content:"bUGEvg,"}/*!sc*/ +data-styled.g23[id="Header__Information-sc-1d3p6ct-2"]{content:"bUGEvg,"}/*!sc*/ .ceAkMY{padding-bottom:15px;font-weight:700;color:#191919;}/*!sc*/ -data-styled.g23[id="Header__Author-sc-1d3p6ct-3"]{content:"ceAkMY,"}/*!sc*/ +data-styled.g24[id="Header__Author-sc-1d3p6ct-3"]{content:"ceAkMY,"}/*!sc*/ .kmPIwO{font-weight:300;color:#404040;}/*!sc*/ -data-styled.g24[id="Header__Date-sc-1d3p6ct-4"]{content:"kmPIwO,"}/*!sc*/ +data-styled.g25[id="Header__Date-sc-1d3p6ct-4"]{content:"kmPIwO,"}/*!sc*/ .kfiAnU{font-weight:300;color:#404040;}/*!sc*/ -data-styled.g25[id="Header__Property-sc-1d3p6ct-5"]{content:"kfiAnU,"}/*!sc*/ +data-styled.g26[id="Header__Property-sc-1d3p6ct-5"]{content:"kfiAnU,"}/*!sc*/ .jUHwIM{position:relative;opacity:0;-webkit-transition:0.35s all ease;transition:0.35s all ease;opacity:1;}/*!sc*/ -data-styled.g31[id="RevealOnScroll__StyledWrapper-sc-j177rt-0"]{content:"jUHwIM,"}/*!sc*/ +data-styled.g32[id="RevealOnScroll__StyledWrapper-sc-j177rt-0"]{content:"jUHwIM,"}/*!sc*/ .cKsOEP{position:absolute;opacity:1;left:100%;}/*!sc*/ .cKsOEP > div{padding-right:20px;padding-left:16px;margin-left:48px;position:relative;width:240px;max-height:calc(100% - 185px);overflow-y:auto;position:fixed;top:100px;}/*!sc*/ .cKsOEP > div::-webkit-scrollbar{width:3px;}/*!sc*/ .cKsOEP > div::-webkit-scrollbar-track{background:#f1f3f5;}/*!sc*/ .cKsOEP > div::-webkit-scrollbar-thumb{background:#ced4da;}/*!sc*/ @media (max-width:1300px){.cKsOEP{display:None;}}/*!sc*/ -data-styled.g32[id="Toc__TocWrapper-sc-1axrmab-0"]{content:"cKsOEP,"}/*!sc*/ +data-styled.g33[id="Toc__TocWrapper-sc-1axrmab-0"]{content:"cKsOEP,"}/*!sc*/ .erkpHX{font-size:16.7px;color:#191919;line-height:1.73;overflow:hidden;}/*!sc*/ .erkpHX h1:first-child,.erkpHX h2:first-child,.erkpHX h3:first-child,.erkpHX h4:first-child{margin-top:0;}/*!sc*/ .erkpHX > p,.erkpHX > ul,.erkpHX > ol,.erkpHX table,.erkpHX blockquote,.erkpHX pre,.erkpHX img,.erkpHX .katex-display{margin-top:0;margin-bottom:24px;word-break:break-all;}/*!sc*/ @@ -119,7 +119,7 @@ .erkpHX a[data-wiki-link="true"]:hover{-webkit-text-decoration:underline;text-decoration:underline;}/*!sc*/ .erkpHX a{padding:1.6px 0;color:#191919;}/*!sc*/ .erkpHX a:hover{background-color:none;color:#868e96;}/*!sc*/ -data-styled.g34[id="StyledMarkdown-sc-lqtcur-0"]{content:"erkpHX,"}/*!sc*/ +data-styled.g35[id="StyledMarkdown-sc-lqtcur-0"]{content:"erkpHX,"}/*!sc*/ code[class*="language-"],pre[class*="language-"]{margin-bottom:24px;font-size:14.5px;color:#ccc;background:none;font-family:"Bai Jamjuree",monospace;text-align:justify;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none;}/*!sc*/ pre[class*="language-"]{padding:1em;overflow:auto;}/*!sc*/ :not(pre) > code[class*="language-"]{padding:0.1em;border-radius:0.3em;white-space:normal;}/*!sc*/ @@ -185,19 +185,19 @@ .prism-previewer-angle.prism-previewer-angle circle,.prism-previewer-time.prism-previewer-time circle{stroke:hsl(230,8%,24%);stroke-opacity:1;}/*!sc*/ .prism-previewer-easing.prism-previewer-easing circle,.prism-previewer-easing.prism-previewer-easing path,.prism-previewer-easing.prism-previewer-easing line{stroke:hsl(230,8%,24%);}/*!sc*/ .prism-previewer-easing.prism-previewer-easing circle{fill:transparent;}/*!sc*/ -data-styled.g36[id="sc-global-bIpVyQ1"]{content:"sc-global-bIpVyQ1,"}/*!sc*/ +data-styled.g37[id="sc-global-bIpVyQ1"]{content:"sc-global-bIpVyQ1,"}/*!sc*/ .bUeHPW{position:relative;margin-bottom:112px;}/*!sc*/ @media (max-width:768px){.bUeHPW{padding:0 15px;}}/*!sc*/ -data-styled.g37[id="Body__Wrapper-sc-7hat30-0"]{content:"bUeHPW,"}/*!sc*/ +data-styled.g38[id="Body__Wrapper-sc-7hat30-0"]{content:"bUeHPW,"}/*!sc*/ .becwQW{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;margin-bottom:48px;}/*!sc*/ @media (max-width:768px){.becwQW{margin-bottom:80px;padding:0 12.8px;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}.becwQW > div:first-child{margin-bottom:12.8px;}}/*!sc*/ -data-styled.g38[id="Footer__ArticleButtonContainer-sc-zqxmks-0"]{content:"becwQW,"}/*!sc*/ +data-styled.g39[id="Footer__ArticleButtonContainer-sc-zqxmks-0"]{content:"becwQW,"}/*!sc*/ .gwQEOy{width:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;white-space:nowrap;}/*!sc*/ -data-styled.g39[id="Footer__ArrowFlexWrapper-sc-zqxmks-1"]{content:"gwQEOy,"}/*!sc*/ +data-styled.g40[id="Footer__ArrowFlexWrapper-sc-zqxmks-1"]{content:"gwQEOy,"}/*!sc*/ .jxGLes{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:flex-end;-webkit-box-align:flex-end;-ms-flex-align:flex-end;align-items:flex-end;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;overflow:hidden;}/*!sc*/ -data-styled.g40[id="Footer__ArticleButtonTextWrapper-sc-zqxmks-2"]{content:"jxGLes,"}/*!sc*/ +data-styled.g41[id="Footer__ArticleButtonTextWrapper-sc-zqxmks-2"]{content:"jxGLes,"}/*!sc*/ .bhYcVf{position:relative;left:0;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;font-size:24px;-webkit-flex-basis:24px;-ms-flex-preferred-size:24px;flex-basis:24px;-webkit-transition:left 0.3s;transition:left 0.3s;}/*!sc*/ -data-styled.g41[id="Footer__Arrow-sc-zqxmks-3"]{content:"bhYcVf,"}/*!sc*/ +data-styled.g42[id="Footer__Arrow-sc-zqxmks-3"]{content:"bhYcVf,"}/*!sc*/ .OEEnV{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;padding:20.8px 16px;max-width:250px;-webkit-flex-basis:250px;-ms-flex-preferred-size:250px;flex-basis:250px;font-size:17.6px;border-radius:5px;background-color:rgba(0,0,0,0.06);color:#191919;cursor:pointer;-webkit-transition:background-color 0.3s;transition:background-color 0.3s;}/*!sc*/ .OEEnV:hover{background-color:rgba(0,0,0,0.08);}/*!sc*/ .OEEnV .Footer__ArrowFlexWrapper-sc-zqxmks-1{-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}/*!sc*/ @@ -212,18 +212,18 @@ .cCfvHe .Footer__Arrow-sc-zqxmks-3{margin-left:16px;}/*!sc*/ .cCfvHe:hover .Footer__Arrow-sc-zqxmks-3{left:2px;}/*!sc*/ @media (max-width:768px){.cCfvHe{max-width:inherit;-webkit-flex-basis:inherit;-ms-flex-preferred-size:inherit;flex-basis:inherit;}}/*!sc*/ -data-styled.g42[id="Footer__ArticleButtonWrapper-sc-zqxmks-4"]{content:"OEEnV,cCfvHe,"}/*!sc*/ +data-styled.g43[id="Footer__ArticleButtonWrapper-sc-zqxmks-4"]{content:"OEEnV,cCfvHe,"}/*!sc*/ .hngxZd{margin-bottom:9.6px;font-size:12.8px;}/*!sc*/ -data-styled.g43[id="Footer__ArticleButtonLabel-sc-zqxmks-5"]{content:"hngxZd,"}/*!sc*/ +data-styled.g44[id="Footer__ArticleButtonLabel-sc-zqxmks-5"]{content:"hngxZd,"}/*!sc*/ .brczfR{padding:2px 0;width:100%;text-overflow:ellipsis;overflow:hidden;}/*!sc*/ -data-styled.g44[id="Footer__ArticleButtonTitle-sc-zqxmks-6"]{content:"brczfR,"}/*!sc*/ +data-styled.g45[id="Footer__ArticleButtonTitle-sc-zqxmks-6"]{content:"brczfR,"}/*!sc*/ @media (max-width:768px){.cRSPGb{padding:0 15px;}}/*!sc*/ -data-styled.g45[id="Footer__CommentWrapper-sc-zqxmks-7"]{content:"cRSPGb,"}/*!sc*/ +data-styled.g46[id="Footer__CommentWrapper-sc-zqxmks-7"]{content:"cRSPGb,"}/*!sc*/ .XZnrl{height:200px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}/*!sc*/ -data-styled.g46[id="Footer__SpinnerWrapper-sc-zqxmks-8"]{content:"XZnrl,"}/*!sc*/ +data-styled.g47[id="Footer__SpinnerWrapper-sc-zqxmks-8"]{content:"XZnrl,"}/*!sc*/ .yzdKT{height:0px;overflow:hidden;}/*!sc*/ .ivqWaF{height:auto;overflow:auto;}/*!sc*/ -data-styled.g47[id="Footer__HiddenWrapper-sc-zqxmks-9"]{content:"yzdKT,ivqWaF,"}/*!sc*/ +data-styled.g48[id="Footer__HiddenWrapper-sc-zqxmks-9"]{content:"yzdKT,ivqWaF,"}/*!sc*/ Addition and Subtraction

      Addition and Subtraction

      @MJ · 1 min read
      Created Date · 2024년 08월 13일 12:08
      Last Update · 2024년 10월 12일 20:10

      contents: 0-1. CA Intro

      Addition & Subtraction

      Addition: just do the binary addition with given numbers

      @@ -337,6 +337,6 @@

      How to ignore Overflow?

      - \ No newline at end of file + \ No newline at end of file diff --git a/3-2. Multiplication/index.html b/3-2. Multiplication/index.html index 6ac8ce9..a0206f4 100644 --- a/3-2. Multiplication/index.html +++ b/3-2. Multiplication/index.html @@ -46,34 +46,34 @@ data-styled.g10[id="Footer__FooterWrapper-sc-1qfqdid-0"]{content:"gUOgk,"}/*!sc*/ .juihub{margin-top:0;margin-bottom:48px;border:none;border-bottom:1px solid #e9ecef;}/*!sc*/ .dsTUYW{margin-top:32px;margin-bottom:48px;border:none;border-bottom:1px solid #e9ecef;}/*!sc*/ -data-styled.g12[id="Divider-sc-1jz0jl-0"]{content:"juihub,dsTUYW,"}/*!sc*/ +data-styled.g18[id="Divider-sc-1jz0jl-0"]{content:"juihub,dsTUYW,"}/*!sc*/ .gJiIIX{margin-bottom:10px;word-break:break-all;}/*!sc*/ -data-styled.g13[id="TagList__TagListWrapper-sc-s1uz5f-0"]{content:"gJiIIX,"}/*!sc*/ +data-styled.g19[id="TagList__TagListWrapper-sc-s1uz5f-0"]{content:"gJiIIX,"}/*!sc*/ .OSwVR{display:inline-block;padding:9.6px 11.2px;margin-right:8px;margin-bottom:8px;border-radius:50px;background-color:#f1f3f5;color:#404040;-webkit-text-decoration:none;text-decoration:none;font-size:14.4px;-webkit-transition:all 0.2s;transition:all 0.2s;}/*!sc*/ .OSwVR:hover{background-color:#dee2e6;}/*!sc*/ -data-styled.g14[id="TagList__TagLink-sc-s1uz5f-1"]{content:"OSwVR,"}/*!sc*/ +data-styled.g20[id="TagList__TagLink-sc-s1uz5f-1"]{content:"OSwVR,"}/*!sc*/ .cVaGFY{margin-top:32px;}/*!sc*/ @media (max-width:768px){.cVaGFY{padding:0 15px;}}/*!sc*/ -data-styled.g20[id="Header__Wrapper-sc-1d3p6ct-0"]{content:"cVaGFY,"}/*!sc*/ +data-styled.g21[id="Header__Wrapper-sc-1d3p6ct-0"]{content:"cVaGFY,"}/*!sc*/ .dkDUwb{margin-bottom:25.6px;line-height:1.2;font-size:40px;font-weight:700;color:#191919;}/*!sc*/ -data-styled.g21[id="Header__ArticleTitle-sc-1d3p6ct-1"]{content:"dkDUwb,"}/*!sc*/ +data-styled.g22[id="Header__ArticleTitle-sc-1d3p6ct-1"]{content:"dkDUwb,"}/*!sc*/ .bUGEvg{margin-bottom:32px;font-size:16px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;gap:8px;}/*!sc*/ -data-styled.g22[id="Header__Information-sc-1d3p6ct-2"]{content:"bUGEvg,"}/*!sc*/ +data-styled.g23[id="Header__Information-sc-1d3p6ct-2"]{content:"bUGEvg,"}/*!sc*/ .ceAkMY{padding-bottom:15px;font-weight:700;color:#191919;}/*!sc*/ -data-styled.g23[id="Header__Author-sc-1d3p6ct-3"]{content:"ceAkMY,"}/*!sc*/ +data-styled.g24[id="Header__Author-sc-1d3p6ct-3"]{content:"ceAkMY,"}/*!sc*/ .kmPIwO{font-weight:300;color:#404040;}/*!sc*/ -data-styled.g24[id="Header__Date-sc-1d3p6ct-4"]{content:"kmPIwO,"}/*!sc*/ +data-styled.g25[id="Header__Date-sc-1d3p6ct-4"]{content:"kmPIwO,"}/*!sc*/ .kfiAnU{font-weight:300;color:#404040;}/*!sc*/ -data-styled.g25[id="Header__Property-sc-1d3p6ct-5"]{content:"kfiAnU,"}/*!sc*/ +data-styled.g26[id="Header__Property-sc-1d3p6ct-5"]{content:"kfiAnU,"}/*!sc*/ .jUHwIM{position:relative;opacity:0;-webkit-transition:0.35s all ease;transition:0.35s all ease;opacity:1;}/*!sc*/ -data-styled.g31[id="RevealOnScroll__StyledWrapper-sc-j177rt-0"]{content:"jUHwIM,"}/*!sc*/ +data-styled.g32[id="RevealOnScroll__StyledWrapper-sc-j177rt-0"]{content:"jUHwIM,"}/*!sc*/ .cKsOEP{position:absolute;opacity:1;left:100%;}/*!sc*/ .cKsOEP > div{padding-right:20px;padding-left:16px;margin-left:48px;position:relative;width:240px;max-height:calc(100% - 185px);overflow-y:auto;position:fixed;top:100px;}/*!sc*/ .cKsOEP > div::-webkit-scrollbar{width:3px;}/*!sc*/ .cKsOEP > div::-webkit-scrollbar-track{background:#f1f3f5;}/*!sc*/ .cKsOEP > div::-webkit-scrollbar-thumb{background:#ced4da;}/*!sc*/ @media (max-width:1300px){.cKsOEP{display:None;}}/*!sc*/ -data-styled.g32[id="Toc__TocWrapper-sc-1axrmab-0"]{content:"cKsOEP,"}/*!sc*/ +data-styled.g33[id="Toc__TocWrapper-sc-1axrmab-0"]{content:"cKsOEP,"}/*!sc*/ .erkpHX{font-size:16.7px;color:#191919;line-height:1.73;overflow:hidden;}/*!sc*/ .erkpHX h1:first-child,.erkpHX h2:first-child,.erkpHX h3:first-child,.erkpHX h4:first-child{margin-top:0;}/*!sc*/ .erkpHX > p,.erkpHX > ul,.erkpHX > ol,.erkpHX table,.erkpHX blockquote,.erkpHX pre,.erkpHX img,.erkpHX .katex-display{margin-top:0;margin-bottom:24px;word-break:break-all;}/*!sc*/ @@ -119,7 +119,7 @@ .erkpHX a[data-wiki-link="true"]:hover{-webkit-text-decoration:underline;text-decoration:underline;}/*!sc*/ .erkpHX a{padding:1.6px 0;color:#191919;}/*!sc*/ .erkpHX a:hover{background-color:none;color:#868e96;}/*!sc*/ -data-styled.g34[id="StyledMarkdown-sc-lqtcur-0"]{content:"erkpHX,"}/*!sc*/ +data-styled.g35[id="StyledMarkdown-sc-lqtcur-0"]{content:"erkpHX,"}/*!sc*/ code[class*="language-"],pre[class*="language-"]{margin-bottom:24px;font-size:14.5px;color:#ccc;background:none;font-family:"Bai Jamjuree",monospace;text-align:justify;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none;}/*!sc*/ pre[class*="language-"]{padding:1em;overflow:auto;}/*!sc*/ :not(pre) > code[class*="language-"]{padding:0.1em;border-radius:0.3em;white-space:normal;}/*!sc*/ @@ -185,19 +185,19 @@ .prism-previewer-angle.prism-previewer-angle circle,.prism-previewer-time.prism-previewer-time circle{stroke:hsl(230,8%,24%);stroke-opacity:1;}/*!sc*/ .prism-previewer-easing.prism-previewer-easing circle,.prism-previewer-easing.prism-previewer-easing path,.prism-previewer-easing.prism-previewer-easing line{stroke:hsl(230,8%,24%);}/*!sc*/ .prism-previewer-easing.prism-previewer-easing circle{fill:transparent;}/*!sc*/ -data-styled.g36[id="sc-global-bIpVyQ1"]{content:"sc-global-bIpVyQ1,"}/*!sc*/ +data-styled.g37[id="sc-global-bIpVyQ1"]{content:"sc-global-bIpVyQ1,"}/*!sc*/ .bUeHPW{position:relative;margin-bottom:112px;}/*!sc*/ @media (max-width:768px){.bUeHPW{padding:0 15px;}}/*!sc*/ -data-styled.g37[id="Body__Wrapper-sc-7hat30-0"]{content:"bUeHPW,"}/*!sc*/ +data-styled.g38[id="Body__Wrapper-sc-7hat30-0"]{content:"bUeHPW,"}/*!sc*/ .becwQW{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;margin-bottom:48px;}/*!sc*/ @media (max-width:768px){.becwQW{margin-bottom:80px;padding:0 12.8px;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}.becwQW > div:first-child{margin-bottom:12.8px;}}/*!sc*/ -data-styled.g38[id="Footer__ArticleButtonContainer-sc-zqxmks-0"]{content:"becwQW,"}/*!sc*/ +data-styled.g39[id="Footer__ArticleButtonContainer-sc-zqxmks-0"]{content:"becwQW,"}/*!sc*/ .gwQEOy{width:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;white-space:nowrap;}/*!sc*/ -data-styled.g39[id="Footer__ArrowFlexWrapper-sc-zqxmks-1"]{content:"gwQEOy,"}/*!sc*/ +data-styled.g40[id="Footer__ArrowFlexWrapper-sc-zqxmks-1"]{content:"gwQEOy,"}/*!sc*/ .jxGLes{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:flex-end;-webkit-box-align:flex-end;-ms-flex-align:flex-end;align-items:flex-end;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;overflow:hidden;}/*!sc*/ -data-styled.g40[id="Footer__ArticleButtonTextWrapper-sc-zqxmks-2"]{content:"jxGLes,"}/*!sc*/ +data-styled.g41[id="Footer__ArticleButtonTextWrapper-sc-zqxmks-2"]{content:"jxGLes,"}/*!sc*/ .bhYcVf{position:relative;left:0;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;font-size:24px;-webkit-flex-basis:24px;-ms-flex-preferred-size:24px;flex-basis:24px;-webkit-transition:left 0.3s;transition:left 0.3s;}/*!sc*/ -data-styled.g41[id="Footer__Arrow-sc-zqxmks-3"]{content:"bhYcVf,"}/*!sc*/ +data-styled.g42[id="Footer__Arrow-sc-zqxmks-3"]{content:"bhYcVf,"}/*!sc*/ .OEEnV{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;padding:20.8px 16px;max-width:250px;-webkit-flex-basis:250px;-ms-flex-preferred-size:250px;flex-basis:250px;font-size:17.6px;border-radius:5px;background-color:rgba(0,0,0,0.06);color:#191919;cursor:pointer;-webkit-transition:background-color 0.3s;transition:background-color 0.3s;}/*!sc*/ .OEEnV:hover{background-color:rgba(0,0,0,0.08);}/*!sc*/ .OEEnV .Footer__ArrowFlexWrapper-sc-zqxmks-1{-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}/*!sc*/ @@ -212,18 +212,18 @@ .cCfvHe .Footer__Arrow-sc-zqxmks-3{margin-left:16px;}/*!sc*/ .cCfvHe:hover .Footer__Arrow-sc-zqxmks-3{left:2px;}/*!sc*/ @media (max-width:768px){.cCfvHe{max-width:inherit;-webkit-flex-basis:inherit;-ms-flex-preferred-size:inherit;flex-basis:inherit;}}/*!sc*/ -data-styled.g42[id="Footer__ArticleButtonWrapper-sc-zqxmks-4"]{content:"OEEnV,cCfvHe,"}/*!sc*/ +data-styled.g43[id="Footer__ArticleButtonWrapper-sc-zqxmks-4"]{content:"OEEnV,cCfvHe,"}/*!sc*/ .hngxZd{margin-bottom:9.6px;font-size:12.8px;}/*!sc*/ -data-styled.g43[id="Footer__ArticleButtonLabel-sc-zqxmks-5"]{content:"hngxZd,"}/*!sc*/ +data-styled.g44[id="Footer__ArticleButtonLabel-sc-zqxmks-5"]{content:"hngxZd,"}/*!sc*/ .brczfR{padding:2px 0;width:100%;text-overflow:ellipsis;overflow:hidden;}/*!sc*/ -data-styled.g44[id="Footer__ArticleButtonTitle-sc-zqxmks-6"]{content:"brczfR,"}/*!sc*/ +data-styled.g45[id="Footer__ArticleButtonTitle-sc-zqxmks-6"]{content:"brczfR,"}/*!sc*/ @media (max-width:768px){.cRSPGb{padding:0 15px;}}/*!sc*/ -data-styled.g45[id="Footer__CommentWrapper-sc-zqxmks-7"]{content:"cRSPGb,"}/*!sc*/ +data-styled.g46[id="Footer__CommentWrapper-sc-zqxmks-7"]{content:"cRSPGb,"}/*!sc*/ .XZnrl{height:200px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}/*!sc*/ -data-styled.g46[id="Footer__SpinnerWrapper-sc-zqxmks-8"]{content:"XZnrl,"}/*!sc*/ +data-styled.g47[id="Footer__SpinnerWrapper-sc-zqxmks-8"]{content:"XZnrl,"}/*!sc*/ .yzdKT{height:0px;overflow:hidden;}/*!sc*/ .ivqWaF{height:auto;overflow:auto;}/*!sc*/ -data-styled.g47[id="Footer__HiddenWrapper-sc-zqxmks-9"]{content:"yzdKT,ivqWaF,"}/*!sc*/ +data-styled.g48[id="Footer__HiddenWrapper-sc-zqxmks-9"]{content:"yzdKT,ivqWaF,"}/*!sc*/ Multiplication

      Multiplication

      @MJ · 2 min read
      Created Date · 2024년 08월 14일 12:08
      Last Update · 2024년 10월 12일 21:10

      contents: 0-1. CA Intro

      Multiplication

      If a multiplicand and a multiplier have m and n digits, the product has at most m + n digits

      @@ -377,6 +377,6 @@

      Example: mult $t0, $ t1

      - \ No newline at end of file + \ No newline at end of file diff --git a/3-3. Division/index.html b/3-3. Division/index.html index 7f13e00..4cfb201 100644 --- a/3-3. Division/index.html +++ b/3-3. Division/index.html @@ -46,34 +46,34 @@ data-styled.g10[id="Footer__FooterWrapper-sc-1qfqdid-0"]{content:"gUOgk,"}/*!sc*/ .juihub{margin-top:0;margin-bottom:48px;border:none;border-bottom:1px solid #e9ecef;}/*!sc*/ .dsTUYW{margin-top:32px;margin-bottom:48px;border:none;border-bottom:1px solid #e9ecef;}/*!sc*/ -data-styled.g12[id="Divider-sc-1jz0jl-0"]{content:"juihub,dsTUYW,"}/*!sc*/ +data-styled.g18[id="Divider-sc-1jz0jl-0"]{content:"juihub,dsTUYW,"}/*!sc*/ .gJiIIX{margin-bottom:10px;word-break:break-all;}/*!sc*/ -data-styled.g13[id="TagList__TagListWrapper-sc-s1uz5f-0"]{content:"gJiIIX,"}/*!sc*/ +data-styled.g19[id="TagList__TagListWrapper-sc-s1uz5f-0"]{content:"gJiIIX,"}/*!sc*/ .OSwVR{display:inline-block;padding:9.6px 11.2px;margin-right:8px;margin-bottom:8px;border-radius:50px;background-color:#f1f3f5;color:#404040;-webkit-text-decoration:none;text-decoration:none;font-size:14.4px;-webkit-transition:all 0.2s;transition:all 0.2s;}/*!sc*/ .OSwVR:hover{background-color:#dee2e6;}/*!sc*/ -data-styled.g14[id="TagList__TagLink-sc-s1uz5f-1"]{content:"OSwVR,"}/*!sc*/ +data-styled.g20[id="TagList__TagLink-sc-s1uz5f-1"]{content:"OSwVR,"}/*!sc*/ .cVaGFY{margin-top:32px;}/*!sc*/ @media (max-width:768px){.cVaGFY{padding:0 15px;}}/*!sc*/ -data-styled.g20[id="Header__Wrapper-sc-1d3p6ct-0"]{content:"cVaGFY,"}/*!sc*/ +data-styled.g21[id="Header__Wrapper-sc-1d3p6ct-0"]{content:"cVaGFY,"}/*!sc*/ .dkDUwb{margin-bottom:25.6px;line-height:1.2;font-size:40px;font-weight:700;color:#191919;}/*!sc*/ -data-styled.g21[id="Header__ArticleTitle-sc-1d3p6ct-1"]{content:"dkDUwb,"}/*!sc*/ +data-styled.g22[id="Header__ArticleTitle-sc-1d3p6ct-1"]{content:"dkDUwb,"}/*!sc*/ .bUGEvg{margin-bottom:32px;font-size:16px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;gap:8px;}/*!sc*/ -data-styled.g22[id="Header__Information-sc-1d3p6ct-2"]{content:"bUGEvg,"}/*!sc*/ +data-styled.g23[id="Header__Information-sc-1d3p6ct-2"]{content:"bUGEvg,"}/*!sc*/ .ceAkMY{padding-bottom:15px;font-weight:700;color:#191919;}/*!sc*/ -data-styled.g23[id="Header__Author-sc-1d3p6ct-3"]{content:"ceAkMY,"}/*!sc*/ +data-styled.g24[id="Header__Author-sc-1d3p6ct-3"]{content:"ceAkMY,"}/*!sc*/ .kmPIwO{font-weight:300;color:#404040;}/*!sc*/ -data-styled.g24[id="Header__Date-sc-1d3p6ct-4"]{content:"kmPIwO,"}/*!sc*/ +data-styled.g25[id="Header__Date-sc-1d3p6ct-4"]{content:"kmPIwO,"}/*!sc*/ .kfiAnU{font-weight:300;color:#404040;}/*!sc*/ -data-styled.g25[id="Header__Property-sc-1d3p6ct-5"]{content:"kfiAnU,"}/*!sc*/ +data-styled.g26[id="Header__Property-sc-1d3p6ct-5"]{content:"kfiAnU,"}/*!sc*/ .jUHwIM{position:relative;opacity:0;-webkit-transition:0.35s all ease;transition:0.35s all ease;opacity:1;}/*!sc*/ -data-styled.g31[id="RevealOnScroll__StyledWrapper-sc-j177rt-0"]{content:"jUHwIM,"}/*!sc*/ +data-styled.g32[id="RevealOnScroll__StyledWrapper-sc-j177rt-0"]{content:"jUHwIM,"}/*!sc*/ .cKsOEP{position:absolute;opacity:1;left:100%;}/*!sc*/ .cKsOEP > div{padding-right:20px;padding-left:16px;margin-left:48px;position:relative;width:240px;max-height:calc(100% - 185px);overflow-y:auto;position:fixed;top:100px;}/*!sc*/ .cKsOEP > div::-webkit-scrollbar{width:3px;}/*!sc*/ .cKsOEP > div::-webkit-scrollbar-track{background:#f1f3f5;}/*!sc*/ .cKsOEP > div::-webkit-scrollbar-thumb{background:#ced4da;}/*!sc*/ @media (max-width:1300px){.cKsOEP{display:None;}}/*!sc*/ -data-styled.g32[id="Toc__TocWrapper-sc-1axrmab-0"]{content:"cKsOEP,"}/*!sc*/ +data-styled.g33[id="Toc__TocWrapper-sc-1axrmab-0"]{content:"cKsOEP,"}/*!sc*/ .erkpHX{font-size:16.7px;color:#191919;line-height:1.73;overflow:hidden;}/*!sc*/ .erkpHX h1:first-child,.erkpHX h2:first-child,.erkpHX h3:first-child,.erkpHX h4:first-child{margin-top:0;}/*!sc*/ .erkpHX > p,.erkpHX > ul,.erkpHX > ol,.erkpHX table,.erkpHX blockquote,.erkpHX pre,.erkpHX img,.erkpHX .katex-display{margin-top:0;margin-bottom:24px;word-break:break-all;}/*!sc*/ @@ -119,7 +119,7 @@ .erkpHX a[data-wiki-link="true"]:hover{-webkit-text-decoration:underline;text-decoration:underline;}/*!sc*/ .erkpHX a{padding:1.6px 0;color:#191919;}/*!sc*/ .erkpHX a:hover{background-color:none;color:#868e96;}/*!sc*/ -data-styled.g34[id="StyledMarkdown-sc-lqtcur-0"]{content:"erkpHX,"}/*!sc*/ +data-styled.g35[id="StyledMarkdown-sc-lqtcur-0"]{content:"erkpHX,"}/*!sc*/ code[class*="language-"],pre[class*="language-"]{margin-bottom:24px;font-size:14.5px;color:#ccc;background:none;font-family:"Bai Jamjuree",monospace;text-align:justify;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none;}/*!sc*/ pre[class*="language-"]{padding:1em;overflow:auto;}/*!sc*/ :not(pre) > code[class*="language-"]{padding:0.1em;border-radius:0.3em;white-space:normal;}/*!sc*/ @@ -185,19 +185,19 @@ .prism-previewer-angle.prism-previewer-angle circle,.prism-previewer-time.prism-previewer-time circle{stroke:hsl(230,8%,24%);stroke-opacity:1;}/*!sc*/ .prism-previewer-easing.prism-previewer-easing circle,.prism-previewer-easing.prism-previewer-easing path,.prism-previewer-easing.prism-previewer-easing line{stroke:hsl(230,8%,24%);}/*!sc*/ .prism-previewer-easing.prism-previewer-easing circle{fill:transparent;}/*!sc*/ -data-styled.g36[id="sc-global-bIpVyQ1"]{content:"sc-global-bIpVyQ1,"}/*!sc*/ +data-styled.g37[id="sc-global-bIpVyQ1"]{content:"sc-global-bIpVyQ1,"}/*!sc*/ .bUeHPW{position:relative;margin-bottom:112px;}/*!sc*/ @media (max-width:768px){.bUeHPW{padding:0 15px;}}/*!sc*/ -data-styled.g37[id="Body__Wrapper-sc-7hat30-0"]{content:"bUeHPW,"}/*!sc*/ +data-styled.g38[id="Body__Wrapper-sc-7hat30-0"]{content:"bUeHPW,"}/*!sc*/ .becwQW{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;margin-bottom:48px;}/*!sc*/ @media (max-width:768px){.becwQW{margin-bottom:80px;padding:0 12.8px;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}.becwQW > div:first-child{margin-bottom:12.8px;}}/*!sc*/ -data-styled.g38[id="Footer__ArticleButtonContainer-sc-zqxmks-0"]{content:"becwQW,"}/*!sc*/ +data-styled.g39[id="Footer__ArticleButtonContainer-sc-zqxmks-0"]{content:"becwQW,"}/*!sc*/ .gwQEOy{width:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;white-space:nowrap;}/*!sc*/ -data-styled.g39[id="Footer__ArrowFlexWrapper-sc-zqxmks-1"]{content:"gwQEOy,"}/*!sc*/ +data-styled.g40[id="Footer__ArrowFlexWrapper-sc-zqxmks-1"]{content:"gwQEOy,"}/*!sc*/ .jxGLes{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:flex-end;-webkit-box-align:flex-end;-ms-flex-align:flex-end;align-items:flex-end;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;overflow:hidden;}/*!sc*/ -data-styled.g40[id="Footer__ArticleButtonTextWrapper-sc-zqxmks-2"]{content:"jxGLes,"}/*!sc*/ +data-styled.g41[id="Footer__ArticleButtonTextWrapper-sc-zqxmks-2"]{content:"jxGLes,"}/*!sc*/ .bhYcVf{position:relative;left:0;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;font-size:24px;-webkit-flex-basis:24px;-ms-flex-preferred-size:24px;flex-basis:24px;-webkit-transition:left 0.3s;transition:left 0.3s;}/*!sc*/ -data-styled.g41[id="Footer__Arrow-sc-zqxmks-3"]{content:"bhYcVf,"}/*!sc*/ +data-styled.g42[id="Footer__Arrow-sc-zqxmks-3"]{content:"bhYcVf,"}/*!sc*/ .OEEnV{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;padding:20.8px 16px;max-width:250px;-webkit-flex-basis:250px;-ms-flex-preferred-size:250px;flex-basis:250px;font-size:17.6px;border-radius:5px;background-color:rgba(0,0,0,0.06);color:#191919;cursor:pointer;-webkit-transition:background-color 0.3s;transition:background-color 0.3s;}/*!sc*/ .OEEnV:hover{background-color:rgba(0,0,0,0.08);}/*!sc*/ .OEEnV .Footer__ArrowFlexWrapper-sc-zqxmks-1{-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}/*!sc*/ @@ -212,18 +212,18 @@ .cCfvHe .Footer__Arrow-sc-zqxmks-3{margin-left:16px;}/*!sc*/ .cCfvHe:hover .Footer__Arrow-sc-zqxmks-3{left:2px;}/*!sc*/ @media (max-width:768px){.cCfvHe{max-width:inherit;-webkit-flex-basis:inherit;-ms-flex-preferred-size:inherit;flex-basis:inherit;}}/*!sc*/ -data-styled.g42[id="Footer__ArticleButtonWrapper-sc-zqxmks-4"]{content:"OEEnV,cCfvHe,"}/*!sc*/ +data-styled.g43[id="Footer__ArticleButtonWrapper-sc-zqxmks-4"]{content:"OEEnV,cCfvHe,"}/*!sc*/ .hngxZd{margin-bottom:9.6px;font-size:12.8px;}/*!sc*/ -data-styled.g43[id="Footer__ArticleButtonLabel-sc-zqxmks-5"]{content:"hngxZd,"}/*!sc*/ +data-styled.g44[id="Footer__ArticleButtonLabel-sc-zqxmks-5"]{content:"hngxZd,"}/*!sc*/ .brczfR{padding:2px 0;width:100%;text-overflow:ellipsis;overflow:hidden;}/*!sc*/ -data-styled.g44[id="Footer__ArticleButtonTitle-sc-zqxmks-6"]{content:"brczfR,"}/*!sc*/ +data-styled.g45[id="Footer__ArticleButtonTitle-sc-zqxmks-6"]{content:"brczfR,"}/*!sc*/ @media (max-width:768px){.cRSPGb{padding:0 15px;}}/*!sc*/ -data-styled.g45[id="Footer__CommentWrapper-sc-zqxmks-7"]{content:"cRSPGb,"}/*!sc*/ +data-styled.g46[id="Footer__CommentWrapper-sc-zqxmks-7"]{content:"cRSPGb,"}/*!sc*/ .XZnrl{height:200px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}/*!sc*/ -data-styled.g46[id="Footer__SpinnerWrapper-sc-zqxmks-8"]{content:"XZnrl,"}/*!sc*/ +data-styled.g47[id="Footer__SpinnerWrapper-sc-zqxmks-8"]{content:"XZnrl,"}/*!sc*/ .yzdKT{height:0px;overflow:hidden;}/*!sc*/ .ivqWaF{height:auto;overflow:auto;}/*!sc*/ -data-styled.g47[id="Footer__HiddenWrapper-sc-zqxmks-9"]{content:"yzdKT,ivqWaF,"}/*!sc*/ +data-styled.g48[id="Footer__HiddenWrapper-sc-zqxmks-9"]{content:"yzdKT,ivqWaF,"}/*!sc*/ Division

      Division

      @MJ · 2 min read
      Created Date · 2024년 08월 14일 14:08
      Last Update · 2024년 10월 12일 21:10

      contents: 0-1. CA Intro

      Division

      If the length of Dividend and Divisor is M and N,

      @@ -402,6 +402,6 @@

      Multiplication & Division

      - \ No newline at end of file + \ No newline at end of file diff --git a/4-1. Processor Overview/index.html b/4-1. Processor Overview/index.html index 68c98a4..3d0e3c8 100644 --- a/4-1. Processor Overview/index.html +++ b/4-1. Processor Overview/index.html @@ -46,34 +46,34 @@ data-styled.g10[id="Footer__FooterWrapper-sc-1qfqdid-0"]{content:"gUOgk,"}/*!sc*/ .juihub{margin-top:0;margin-bottom:48px;border:none;border-bottom:1px solid #e9ecef;}/*!sc*/ .dsTUYW{margin-top:32px;margin-bottom:48px;border:none;border-bottom:1px solid #e9ecef;}/*!sc*/ -data-styled.g12[id="Divider-sc-1jz0jl-0"]{content:"juihub,dsTUYW,"}/*!sc*/ +data-styled.g18[id="Divider-sc-1jz0jl-0"]{content:"juihub,dsTUYW,"}/*!sc*/ .gJiIIX{margin-bottom:10px;word-break:break-all;}/*!sc*/ -data-styled.g13[id="TagList__TagListWrapper-sc-s1uz5f-0"]{content:"gJiIIX,"}/*!sc*/ +data-styled.g19[id="TagList__TagListWrapper-sc-s1uz5f-0"]{content:"gJiIIX,"}/*!sc*/ .OSwVR{display:inline-block;padding:9.6px 11.2px;margin-right:8px;margin-bottom:8px;border-radius:50px;background-color:#f1f3f5;color:#404040;-webkit-text-decoration:none;text-decoration:none;font-size:14.4px;-webkit-transition:all 0.2s;transition:all 0.2s;}/*!sc*/ .OSwVR:hover{background-color:#dee2e6;}/*!sc*/ -data-styled.g14[id="TagList__TagLink-sc-s1uz5f-1"]{content:"OSwVR,"}/*!sc*/ +data-styled.g20[id="TagList__TagLink-sc-s1uz5f-1"]{content:"OSwVR,"}/*!sc*/ .cVaGFY{margin-top:32px;}/*!sc*/ @media (max-width:768px){.cVaGFY{padding:0 15px;}}/*!sc*/ -data-styled.g20[id="Header__Wrapper-sc-1d3p6ct-0"]{content:"cVaGFY,"}/*!sc*/ +data-styled.g21[id="Header__Wrapper-sc-1d3p6ct-0"]{content:"cVaGFY,"}/*!sc*/ .dkDUwb{margin-bottom:25.6px;line-height:1.2;font-size:40px;font-weight:700;color:#191919;}/*!sc*/ -data-styled.g21[id="Header__ArticleTitle-sc-1d3p6ct-1"]{content:"dkDUwb,"}/*!sc*/ +data-styled.g22[id="Header__ArticleTitle-sc-1d3p6ct-1"]{content:"dkDUwb,"}/*!sc*/ .bUGEvg{margin-bottom:32px;font-size:16px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;gap:8px;}/*!sc*/ -data-styled.g22[id="Header__Information-sc-1d3p6ct-2"]{content:"bUGEvg,"}/*!sc*/ +data-styled.g23[id="Header__Information-sc-1d3p6ct-2"]{content:"bUGEvg,"}/*!sc*/ .ceAkMY{padding-bottom:15px;font-weight:700;color:#191919;}/*!sc*/ -data-styled.g23[id="Header__Author-sc-1d3p6ct-3"]{content:"ceAkMY,"}/*!sc*/ +data-styled.g24[id="Header__Author-sc-1d3p6ct-3"]{content:"ceAkMY,"}/*!sc*/ .kmPIwO{font-weight:300;color:#404040;}/*!sc*/ -data-styled.g24[id="Header__Date-sc-1d3p6ct-4"]{content:"kmPIwO,"}/*!sc*/ +data-styled.g25[id="Header__Date-sc-1d3p6ct-4"]{content:"kmPIwO,"}/*!sc*/ .kfiAnU{font-weight:300;color:#404040;}/*!sc*/ -data-styled.g25[id="Header__Property-sc-1d3p6ct-5"]{content:"kfiAnU,"}/*!sc*/ +data-styled.g26[id="Header__Property-sc-1d3p6ct-5"]{content:"kfiAnU,"}/*!sc*/ .jUHwIM{position:relative;opacity:0;-webkit-transition:0.35s all ease;transition:0.35s all ease;opacity:1;}/*!sc*/ -data-styled.g31[id="RevealOnScroll__StyledWrapper-sc-j177rt-0"]{content:"jUHwIM,"}/*!sc*/ +data-styled.g32[id="RevealOnScroll__StyledWrapper-sc-j177rt-0"]{content:"jUHwIM,"}/*!sc*/ .cKsOEP{position:absolute;opacity:1;left:100%;}/*!sc*/ .cKsOEP > div{padding-right:20px;padding-left:16px;margin-left:48px;position:relative;width:240px;max-height:calc(100% - 185px);overflow-y:auto;position:fixed;top:100px;}/*!sc*/ .cKsOEP > div::-webkit-scrollbar{width:3px;}/*!sc*/ .cKsOEP > div::-webkit-scrollbar-track{background:#f1f3f5;}/*!sc*/ .cKsOEP > div::-webkit-scrollbar-thumb{background:#ced4da;}/*!sc*/ @media (max-width:1300px){.cKsOEP{display:None;}}/*!sc*/ -data-styled.g32[id="Toc__TocWrapper-sc-1axrmab-0"]{content:"cKsOEP,"}/*!sc*/ +data-styled.g33[id="Toc__TocWrapper-sc-1axrmab-0"]{content:"cKsOEP,"}/*!sc*/ .erkpHX{font-size:16.7px;color:#191919;line-height:1.73;overflow:hidden;}/*!sc*/ .erkpHX h1:first-child,.erkpHX h2:first-child,.erkpHX h3:first-child,.erkpHX h4:first-child{margin-top:0;}/*!sc*/ .erkpHX > p,.erkpHX > ul,.erkpHX > ol,.erkpHX table,.erkpHX blockquote,.erkpHX pre,.erkpHX img,.erkpHX .katex-display{margin-top:0;margin-bottom:24px;word-break:break-all;}/*!sc*/ @@ -119,7 +119,7 @@ .erkpHX a[data-wiki-link="true"]:hover{-webkit-text-decoration:underline;text-decoration:underline;}/*!sc*/ .erkpHX a{padding:1.6px 0;color:#191919;}/*!sc*/ .erkpHX a:hover{background-color:none;color:#868e96;}/*!sc*/ -data-styled.g34[id="StyledMarkdown-sc-lqtcur-0"]{content:"erkpHX,"}/*!sc*/ +data-styled.g35[id="StyledMarkdown-sc-lqtcur-0"]{content:"erkpHX,"}/*!sc*/ code[class*="language-"],pre[class*="language-"]{margin-bottom:24px;font-size:14.5px;color:#ccc;background:none;font-family:"Bai Jamjuree",monospace;text-align:justify;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none;}/*!sc*/ pre[class*="language-"]{padding:1em;overflow:auto;}/*!sc*/ :not(pre) > code[class*="language-"]{padding:0.1em;border-radius:0.3em;white-space:normal;}/*!sc*/ @@ -185,19 +185,19 @@ .prism-previewer-angle.prism-previewer-angle circle,.prism-previewer-time.prism-previewer-time circle{stroke:hsl(230,8%,24%);stroke-opacity:1;}/*!sc*/ .prism-previewer-easing.prism-previewer-easing circle,.prism-previewer-easing.prism-previewer-easing path,.prism-previewer-easing.prism-previewer-easing line{stroke:hsl(230,8%,24%);}/*!sc*/ .prism-previewer-easing.prism-previewer-easing circle{fill:transparent;}/*!sc*/ -data-styled.g36[id="sc-global-bIpVyQ1"]{content:"sc-global-bIpVyQ1,"}/*!sc*/ +data-styled.g37[id="sc-global-bIpVyQ1"]{content:"sc-global-bIpVyQ1,"}/*!sc*/ .bUeHPW{position:relative;margin-bottom:112px;}/*!sc*/ @media (max-width:768px){.bUeHPW{padding:0 15px;}}/*!sc*/ -data-styled.g37[id="Body__Wrapper-sc-7hat30-0"]{content:"bUeHPW,"}/*!sc*/ +data-styled.g38[id="Body__Wrapper-sc-7hat30-0"]{content:"bUeHPW,"}/*!sc*/ .becwQW{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;margin-bottom:48px;}/*!sc*/ @media (max-width:768px){.becwQW{margin-bottom:80px;padding:0 12.8px;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}.becwQW > div:first-child{margin-bottom:12.8px;}}/*!sc*/ -data-styled.g38[id="Footer__ArticleButtonContainer-sc-zqxmks-0"]{content:"becwQW,"}/*!sc*/ +data-styled.g39[id="Footer__ArticleButtonContainer-sc-zqxmks-0"]{content:"becwQW,"}/*!sc*/ .gwQEOy{width:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;white-space:nowrap;}/*!sc*/ -data-styled.g39[id="Footer__ArrowFlexWrapper-sc-zqxmks-1"]{content:"gwQEOy,"}/*!sc*/ +data-styled.g40[id="Footer__ArrowFlexWrapper-sc-zqxmks-1"]{content:"gwQEOy,"}/*!sc*/ .jxGLes{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:flex-end;-webkit-box-align:flex-end;-ms-flex-align:flex-end;align-items:flex-end;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;overflow:hidden;}/*!sc*/ -data-styled.g40[id="Footer__ArticleButtonTextWrapper-sc-zqxmks-2"]{content:"jxGLes,"}/*!sc*/ +data-styled.g41[id="Footer__ArticleButtonTextWrapper-sc-zqxmks-2"]{content:"jxGLes,"}/*!sc*/ .bhYcVf{position:relative;left:0;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;font-size:24px;-webkit-flex-basis:24px;-ms-flex-preferred-size:24px;flex-basis:24px;-webkit-transition:left 0.3s;transition:left 0.3s;}/*!sc*/ -data-styled.g41[id="Footer__Arrow-sc-zqxmks-3"]{content:"bhYcVf,"}/*!sc*/ +data-styled.g42[id="Footer__Arrow-sc-zqxmks-3"]{content:"bhYcVf,"}/*!sc*/ .OEEnV{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;padding:20.8px 16px;max-width:250px;-webkit-flex-basis:250px;-ms-flex-preferred-size:250px;flex-basis:250px;font-size:17.6px;border-radius:5px;background-color:rgba(0,0,0,0.06);color:#191919;cursor:pointer;-webkit-transition:background-color 0.3s;transition:background-color 0.3s;}/*!sc*/ .OEEnV:hover{background-color:rgba(0,0,0,0.08);}/*!sc*/ .OEEnV .Footer__ArrowFlexWrapper-sc-zqxmks-1{-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}/*!sc*/ @@ -212,18 +212,18 @@ .cCfvHe .Footer__Arrow-sc-zqxmks-3{margin-left:16px;}/*!sc*/ .cCfvHe:hover .Footer__Arrow-sc-zqxmks-3{left:2px;}/*!sc*/ @media (max-width:768px){.cCfvHe{max-width:inherit;-webkit-flex-basis:inherit;-ms-flex-preferred-size:inherit;flex-basis:inherit;}}/*!sc*/ -data-styled.g42[id="Footer__ArticleButtonWrapper-sc-zqxmks-4"]{content:"OEEnV,cCfvHe,"}/*!sc*/ +data-styled.g43[id="Footer__ArticleButtonWrapper-sc-zqxmks-4"]{content:"OEEnV,cCfvHe,"}/*!sc*/ .hngxZd{margin-bottom:9.6px;font-size:12.8px;}/*!sc*/ -data-styled.g43[id="Footer__ArticleButtonLabel-sc-zqxmks-5"]{content:"hngxZd,"}/*!sc*/ +data-styled.g44[id="Footer__ArticleButtonLabel-sc-zqxmks-5"]{content:"hngxZd,"}/*!sc*/ .brczfR{padding:2px 0;width:100%;text-overflow:ellipsis;overflow:hidden;}/*!sc*/ -data-styled.g44[id="Footer__ArticleButtonTitle-sc-zqxmks-6"]{content:"brczfR,"}/*!sc*/ +data-styled.g45[id="Footer__ArticleButtonTitle-sc-zqxmks-6"]{content:"brczfR,"}/*!sc*/ @media (max-width:768px){.cRSPGb{padding:0 15px;}}/*!sc*/ -data-styled.g45[id="Footer__CommentWrapper-sc-zqxmks-7"]{content:"cRSPGb,"}/*!sc*/ +data-styled.g46[id="Footer__CommentWrapper-sc-zqxmks-7"]{content:"cRSPGb,"}/*!sc*/ .XZnrl{height:200px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}/*!sc*/ -data-styled.g46[id="Footer__SpinnerWrapper-sc-zqxmks-8"]{content:"XZnrl,"}/*!sc*/ +data-styled.g47[id="Footer__SpinnerWrapper-sc-zqxmks-8"]{content:"XZnrl,"}/*!sc*/ .yzdKT{height:0px;overflow:hidden;}/*!sc*/ .ivqWaF{height:auto;overflow:auto;}/*!sc*/ -data-styled.g47[id="Footer__HiddenWrapper-sc-zqxmks-9"]{content:"yzdKT,ivqWaF,"}/*!sc*/ +data-styled.g48[id="Footer__HiddenWrapper-sc-zqxmks-9"]{content:"yzdKT,ivqWaF,"}/*!sc*/ Processor Overview

      Processor Overview

      @MJ · 2 min read
      Created Date · 2024년 08월 15일 12:08
      Last Update · 2024년 10월 12일 21:10

      contents: 0-1. CA Intro

      Case

      I will focus on handling a subset of core MIPS instructions (MIPS subset)

      @@ -335,6 +335,6 @@

      State elements with three inputs

      - \ No newline at end of file + \ No newline at end of file diff --git a/4-2. Controlling a datapath/index.html b/4-2. Controlling a datapath/index.html index dff7673..e0cb91c 100644 --- a/4-2. Controlling a datapath/index.html +++ b/4-2. Controlling a datapath/index.html @@ -48,34 +48,34 @@ data-styled.g10[id="Footer__FooterWrapper-sc-1qfqdid-0"]{content:"gUOgk,"}/*!sc*/ .juihub{margin-top:0;margin-bottom:48px;border:none;border-bottom:1px solid #e9ecef;}/*!sc*/ .dsTUYW{margin-top:32px;margin-bottom:48px;border:none;border-bottom:1px solid #e9ecef;}/*!sc*/ -data-styled.g12[id="Divider-sc-1jz0jl-0"]{content:"juihub,dsTUYW,"}/*!sc*/ +data-styled.g18[id="Divider-sc-1jz0jl-0"]{content:"juihub,dsTUYW,"}/*!sc*/ .gJiIIX{margin-bottom:10px;word-break:break-all;}/*!sc*/ -data-styled.g13[id="TagList__TagListWrapper-sc-s1uz5f-0"]{content:"gJiIIX,"}/*!sc*/ +data-styled.g19[id="TagList__TagListWrapper-sc-s1uz5f-0"]{content:"gJiIIX,"}/*!sc*/ .OSwVR{display:inline-block;padding:9.6px 11.2px;margin-right:8px;margin-bottom:8px;border-radius:50px;background-color:#f1f3f5;color:#404040;-webkit-text-decoration:none;text-decoration:none;font-size:14.4px;-webkit-transition:all 0.2s;transition:all 0.2s;}/*!sc*/ .OSwVR:hover{background-color:#dee2e6;}/*!sc*/ -data-styled.g14[id="TagList__TagLink-sc-s1uz5f-1"]{content:"OSwVR,"}/*!sc*/ +data-styled.g20[id="TagList__TagLink-sc-s1uz5f-1"]{content:"OSwVR,"}/*!sc*/ .cVaGFY{margin-top:32px;}/*!sc*/ @media (max-width:768px){.cVaGFY{padding:0 15px;}}/*!sc*/ -data-styled.g20[id="Header__Wrapper-sc-1d3p6ct-0"]{content:"cVaGFY,"}/*!sc*/ +data-styled.g21[id="Header__Wrapper-sc-1d3p6ct-0"]{content:"cVaGFY,"}/*!sc*/ .dkDUwb{margin-bottom:25.6px;line-height:1.2;font-size:40px;font-weight:700;color:#191919;}/*!sc*/ -data-styled.g21[id="Header__ArticleTitle-sc-1d3p6ct-1"]{content:"dkDUwb,"}/*!sc*/ +data-styled.g22[id="Header__ArticleTitle-sc-1d3p6ct-1"]{content:"dkDUwb,"}/*!sc*/ .bUGEvg{margin-bottom:32px;font-size:16px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;gap:8px;}/*!sc*/ -data-styled.g22[id="Header__Information-sc-1d3p6ct-2"]{content:"bUGEvg,"}/*!sc*/ +data-styled.g23[id="Header__Information-sc-1d3p6ct-2"]{content:"bUGEvg,"}/*!sc*/ .ceAkMY{padding-bottom:15px;font-weight:700;color:#191919;}/*!sc*/ -data-styled.g23[id="Header__Author-sc-1d3p6ct-3"]{content:"ceAkMY,"}/*!sc*/ +data-styled.g24[id="Header__Author-sc-1d3p6ct-3"]{content:"ceAkMY,"}/*!sc*/ .kmPIwO{font-weight:300;color:#404040;}/*!sc*/ -data-styled.g24[id="Header__Date-sc-1d3p6ct-4"]{content:"kmPIwO,"}/*!sc*/ +data-styled.g25[id="Header__Date-sc-1d3p6ct-4"]{content:"kmPIwO,"}/*!sc*/ .kfiAnU{font-weight:300;color:#404040;}/*!sc*/ -data-styled.g25[id="Header__Property-sc-1d3p6ct-5"]{content:"kfiAnU,"}/*!sc*/ +data-styled.g26[id="Header__Property-sc-1d3p6ct-5"]{content:"kfiAnU,"}/*!sc*/ .jUHwIM{position:relative;opacity:0;-webkit-transition:0.35s all ease;transition:0.35s all ease;opacity:1;}/*!sc*/ -data-styled.g31[id="RevealOnScroll__StyledWrapper-sc-j177rt-0"]{content:"jUHwIM,"}/*!sc*/ +data-styled.g32[id="RevealOnScroll__StyledWrapper-sc-j177rt-0"]{content:"jUHwIM,"}/*!sc*/ .cKsOEP{position:absolute;opacity:1;left:100%;}/*!sc*/ .cKsOEP > div{padding-right:20px;padding-left:16px;margin-left:48px;position:relative;width:240px;max-height:calc(100% - 185px);overflow-y:auto;position:fixed;top:100px;}/*!sc*/ .cKsOEP > div::-webkit-scrollbar{width:3px;}/*!sc*/ .cKsOEP > div::-webkit-scrollbar-track{background:#f1f3f5;}/*!sc*/ .cKsOEP > div::-webkit-scrollbar-thumb{background:#ced4da;}/*!sc*/ @media (max-width:1300px){.cKsOEP{display:None;}}/*!sc*/ -data-styled.g32[id="Toc__TocWrapper-sc-1axrmab-0"]{content:"cKsOEP,"}/*!sc*/ +data-styled.g33[id="Toc__TocWrapper-sc-1axrmab-0"]{content:"cKsOEP,"}/*!sc*/ .erkpHX{font-size:16.7px;color:#191919;line-height:1.73;overflow:hidden;}/*!sc*/ .erkpHX h1:first-child,.erkpHX h2:first-child,.erkpHX h3:first-child,.erkpHX h4:first-child{margin-top:0;}/*!sc*/ .erkpHX > p,.erkpHX > ul,.erkpHX > ol,.erkpHX table,.erkpHX blockquote,.erkpHX pre,.erkpHX img,.erkpHX .katex-display{margin-top:0;margin-bottom:24px;word-break:break-all;}/*!sc*/ @@ -121,7 +121,7 @@ .erkpHX a[data-wiki-link="true"]:hover{-webkit-text-decoration:underline;text-decoration:underline;}/*!sc*/ .erkpHX a{padding:1.6px 0;color:#191919;}/*!sc*/ .erkpHX a:hover{background-color:none;color:#868e96;}/*!sc*/ -data-styled.g34[id="StyledMarkdown-sc-lqtcur-0"]{content:"erkpHX,"}/*!sc*/ +data-styled.g35[id="StyledMarkdown-sc-lqtcur-0"]{content:"erkpHX,"}/*!sc*/ code[class*="language-"],pre[class*="language-"]{margin-bottom:24px;font-size:14.5px;color:#ccc;background:none;font-family:"Bai Jamjuree",monospace;text-align:justify;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none;}/*!sc*/ pre[class*="language-"]{padding:1em;overflow:auto;}/*!sc*/ :not(pre) > code[class*="language-"]{padding:0.1em;border-radius:0.3em;white-space:normal;}/*!sc*/ @@ -187,19 +187,19 @@ .prism-previewer-angle.prism-previewer-angle circle,.prism-previewer-time.prism-previewer-time circle{stroke:hsl(230,8%,24%);stroke-opacity:1;}/*!sc*/ .prism-previewer-easing.prism-previewer-easing circle,.prism-previewer-easing.prism-previewer-easing path,.prism-previewer-easing.prism-previewer-easing line{stroke:hsl(230,8%,24%);}/*!sc*/ .prism-previewer-easing.prism-previewer-easing circle{fill:transparent;}/*!sc*/ -data-styled.g36[id="sc-global-bIpVyQ1"]{content:"sc-global-bIpVyQ1,"}/*!sc*/ +data-styled.g37[id="sc-global-bIpVyQ1"]{content:"sc-global-bIpVyQ1,"}/*!sc*/ .bUeHPW{position:relative;margin-bottom:112px;}/*!sc*/ @media (max-width:768px){.bUeHPW{padding:0 15px;}}/*!sc*/ -data-styled.g37[id="Body__Wrapper-sc-7hat30-0"]{content:"bUeHPW,"}/*!sc*/ +data-styled.g38[id="Body__Wrapper-sc-7hat30-0"]{content:"bUeHPW,"}/*!sc*/ .becwQW{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;margin-bottom:48px;}/*!sc*/ @media (max-width:768px){.becwQW{margin-bottom:80px;padding:0 12.8px;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}.becwQW > div:first-child{margin-bottom:12.8px;}}/*!sc*/ -data-styled.g38[id="Footer__ArticleButtonContainer-sc-zqxmks-0"]{content:"becwQW,"}/*!sc*/ +data-styled.g39[id="Footer__ArticleButtonContainer-sc-zqxmks-0"]{content:"becwQW,"}/*!sc*/ .gwQEOy{width:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;white-space:nowrap;}/*!sc*/ -data-styled.g39[id="Footer__ArrowFlexWrapper-sc-zqxmks-1"]{content:"gwQEOy,"}/*!sc*/ +data-styled.g40[id="Footer__ArrowFlexWrapper-sc-zqxmks-1"]{content:"gwQEOy,"}/*!sc*/ .jxGLes{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:flex-end;-webkit-box-align:flex-end;-ms-flex-align:flex-end;align-items:flex-end;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;overflow:hidden;}/*!sc*/ -data-styled.g40[id="Footer__ArticleButtonTextWrapper-sc-zqxmks-2"]{content:"jxGLes,"}/*!sc*/ +data-styled.g41[id="Footer__ArticleButtonTextWrapper-sc-zqxmks-2"]{content:"jxGLes,"}/*!sc*/ .bhYcVf{position:relative;left:0;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;font-size:24px;-webkit-flex-basis:24px;-ms-flex-preferred-size:24px;flex-basis:24px;-webkit-transition:left 0.3s;transition:left 0.3s;}/*!sc*/ -data-styled.g41[id="Footer__Arrow-sc-zqxmks-3"]{content:"bhYcVf,"}/*!sc*/ +data-styled.g42[id="Footer__Arrow-sc-zqxmks-3"]{content:"bhYcVf,"}/*!sc*/ .OEEnV{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;padding:20.8px 16px;max-width:250px;-webkit-flex-basis:250px;-ms-flex-preferred-size:250px;flex-basis:250px;font-size:17.6px;border-radius:5px;background-color:rgba(0,0,0,0.06);color:#191919;cursor:pointer;-webkit-transition:background-color 0.3s;transition:background-color 0.3s;}/*!sc*/ .OEEnV:hover{background-color:rgba(0,0,0,0.08);}/*!sc*/ .OEEnV .Footer__ArrowFlexWrapper-sc-zqxmks-1{-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}/*!sc*/ @@ -214,18 +214,18 @@ .cCfvHe .Footer__Arrow-sc-zqxmks-3{margin-left:16px;}/*!sc*/ .cCfvHe:hover .Footer__Arrow-sc-zqxmks-3{left:2px;}/*!sc*/ @media (max-width:768px){.cCfvHe{max-width:inherit;-webkit-flex-basis:inherit;-ms-flex-preferred-size:inherit;flex-basis:inherit;}}/*!sc*/ -data-styled.g42[id="Footer__ArticleButtonWrapper-sc-zqxmks-4"]{content:"OEEnV,cCfvHe,"}/*!sc*/ +data-styled.g43[id="Footer__ArticleButtonWrapper-sc-zqxmks-4"]{content:"OEEnV,cCfvHe,"}/*!sc*/ .hngxZd{margin-bottom:9.6px;font-size:12.8px;}/*!sc*/ -data-styled.g43[id="Footer__ArticleButtonLabel-sc-zqxmks-5"]{content:"hngxZd,"}/*!sc*/ +data-styled.g44[id="Footer__ArticleButtonLabel-sc-zqxmks-5"]{content:"hngxZd,"}/*!sc*/ .brczfR{padding:2px 0;width:100%;text-overflow:ellipsis;overflow:hidden;}/*!sc*/ -data-styled.g44[id="Footer__ArticleButtonTitle-sc-zqxmks-6"]{content:"brczfR,"}/*!sc*/ +data-styled.g45[id="Footer__ArticleButtonTitle-sc-zqxmks-6"]{content:"brczfR,"}/*!sc*/ @media (max-width:768px){.cRSPGb{padding:0 15px;}}/*!sc*/ -data-styled.g45[id="Footer__CommentWrapper-sc-zqxmks-7"]{content:"cRSPGb,"}/*!sc*/ +data-styled.g46[id="Footer__CommentWrapper-sc-zqxmks-7"]{content:"cRSPGb,"}/*!sc*/ .XZnrl{height:200px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}/*!sc*/ -data-styled.g46[id="Footer__SpinnerWrapper-sc-zqxmks-8"]{content:"XZnrl,"}/*!sc*/ +data-styled.g47[id="Footer__SpinnerWrapper-sc-zqxmks-8"]{content:"XZnrl,"}/*!sc*/ .yzdKT{height:0px;overflow:hidden;}/*!sc*/ .ivqWaF{height:auto;overflow:auto;}/*!sc*/ -data-styled.g47[id="Footer__HiddenWrapper-sc-zqxmks-9"]{content:"yzdKT,ivqWaF,"}/*!sc*/ +data-styled.g48[id="Footer__HiddenWrapper-sc-zqxmks-9"]{content:"yzdKT,ivqWaF,"}/*!sc*/ Controlling a datapath

      Controlling a datapath

      @MJ · 0 min read
      Created Date · 2024년 08월 16일 12:08
      Last Update · 2024년 10월 12일 21:10

      contents: 0-1. CA Intro

      Controlling a datapath

      main control

      @@ -301,6 +301,6 @@

      ALU control

      - \ No newline at end of file + \ No newline at end of file diff --git a/4-3. A single-cycle datapath/index.html b/4-3. A single-cycle datapath/index.html index 0c75459..172af89 100644 --- a/4-3. A single-cycle datapath/index.html +++ b/4-3. A single-cycle datapath/index.html @@ -48,34 +48,34 @@ data-styled.g10[id="Footer__FooterWrapper-sc-1qfqdid-0"]{content:"gUOgk,"}/*!sc*/ .juihub{margin-top:0;margin-bottom:48px;border:none;border-bottom:1px solid #e9ecef;}/*!sc*/ .dsTUYW{margin-top:32px;margin-bottom:48px;border:none;border-bottom:1px solid #e9ecef;}/*!sc*/ -data-styled.g12[id="Divider-sc-1jz0jl-0"]{content:"juihub,dsTUYW,"}/*!sc*/ +data-styled.g18[id="Divider-sc-1jz0jl-0"]{content:"juihub,dsTUYW,"}/*!sc*/ .gJiIIX{margin-bottom:10px;word-break:break-all;}/*!sc*/ -data-styled.g13[id="TagList__TagListWrapper-sc-s1uz5f-0"]{content:"gJiIIX,"}/*!sc*/ +data-styled.g19[id="TagList__TagListWrapper-sc-s1uz5f-0"]{content:"gJiIIX,"}/*!sc*/ .OSwVR{display:inline-block;padding:9.6px 11.2px;margin-right:8px;margin-bottom:8px;border-radius:50px;background-color:#f1f3f5;color:#404040;-webkit-text-decoration:none;text-decoration:none;font-size:14.4px;-webkit-transition:all 0.2s;transition:all 0.2s;}/*!sc*/ .OSwVR:hover{background-color:#dee2e6;}/*!sc*/ -data-styled.g14[id="TagList__TagLink-sc-s1uz5f-1"]{content:"OSwVR,"}/*!sc*/ +data-styled.g20[id="TagList__TagLink-sc-s1uz5f-1"]{content:"OSwVR,"}/*!sc*/ .cVaGFY{margin-top:32px;}/*!sc*/ @media (max-width:768px){.cVaGFY{padding:0 15px;}}/*!sc*/ -data-styled.g20[id="Header__Wrapper-sc-1d3p6ct-0"]{content:"cVaGFY,"}/*!sc*/ +data-styled.g21[id="Header__Wrapper-sc-1d3p6ct-0"]{content:"cVaGFY,"}/*!sc*/ .dkDUwb{margin-bottom:25.6px;line-height:1.2;font-size:40px;font-weight:700;color:#191919;}/*!sc*/ -data-styled.g21[id="Header__ArticleTitle-sc-1d3p6ct-1"]{content:"dkDUwb,"}/*!sc*/ +data-styled.g22[id="Header__ArticleTitle-sc-1d3p6ct-1"]{content:"dkDUwb,"}/*!sc*/ .bUGEvg{margin-bottom:32px;font-size:16px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;gap:8px;}/*!sc*/ -data-styled.g22[id="Header__Information-sc-1d3p6ct-2"]{content:"bUGEvg,"}/*!sc*/ +data-styled.g23[id="Header__Information-sc-1d3p6ct-2"]{content:"bUGEvg,"}/*!sc*/ .ceAkMY{padding-bottom:15px;font-weight:700;color:#191919;}/*!sc*/ -data-styled.g23[id="Header__Author-sc-1d3p6ct-3"]{content:"ceAkMY,"}/*!sc*/ +data-styled.g24[id="Header__Author-sc-1d3p6ct-3"]{content:"ceAkMY,"}/*!sc*/ .kmPIwO{font-weight:300;color:#404040;}/*!sc*/ -data-styled.g24[id="Header__Date-sc-1d3p6ct-4"]{content:"kmPIwO,"}/*!sc*/ +data-styled.g25[id="Header__Date-sc-1d3p6ct-4"]{content:"kmPIwO,"}/*!sc*/ .kfiAnU{font-weight:300;color:#404040;}/*!sc*/ -data-styled.g25[id="Header__Property-sc-1d3p6ct-5"]{content:"kfiAnU,"}/*!sc*/ +data-styled.g26[id="Header__Property-sc-1d3p6ct-5"]{content:"kfiAnU,"}/*!sc*/ .jUHwIM{position:relative;opacity:0;-webkit-transition:0.35s all ease;transition:0.35s all ease;opacity:1;}/*!sc*/ -data-styled.g31[id="RevealOnScroll__StyledWrapper-sc-j177rt-0"]{content:"jUHwIM,"}/*!sc*/ +data-styled.g32[id="RevealOnScroll__StyledWrapper-sc-j177rt-0"]{content:"jUHwIM,"}/*!sc*/ .cKsOEP{position:absolute;opacity:1;left:100%;}/*!sc*/ .cKsOEP > div{padding-right:20px;padding-left:16px;margin-left:48px;position:relative;width:240px;max-height:calc(100% - 185px);overflow-y:auto;position:fixed;top:100px;}/*!sc*/ .cKsOEP > div::-webkit-scrollbar{width:3px;}/*!sc*/ .cKsOEP > div::-webkit-scrollbar-track{background:#f1f3f5;}/*!sc*/ .cKsOEP > div::-webkit-scrollbar-thumb{background:#ced4da;}/*!sc*/ @media (max-width:1300px){.cKsOEP{display:None;}}/*!sc*/ -data-styled.g32[id="Toc__TocWrapper-sc-1axrmab-0"]{content:"cKsOEP,"}/*!sc*/ +data-styled.g33[id="Toc__TocWrapper-sc-1axrmab-0"]{content:"cKsOEP,"}/*!sc*/ .erkpHX{font-size:16.7px;color:#191919;line-height:1.73;overflow:hidden;}/*!sc*/ .erkpHX h1:first-child,.erkpHX h2:first-child,.erkpHX h3:first-child,.erkpHX h4:first-child{margin-top:0;}/*!sc*/ .erkpHX > p,.erkpHX > ul,.erkpHX > ol,.erkpHX table,.erkpHX blockquote,.erkpHX pre,.erkpHX img,.erkpHX .katex-display{margin-top:0;margin-bottom:24px;word-break:break-all;}/*!sc*/ @@ -121,7 +121,7 @@ .erkpHX a[data-wiki-link="true"]:hover{-webkit-text-decoration:underline;text-decoration:underline;}/*!sc*/ .erkpHX a{padding:1.6px 0;color:#191919;}/*!sc*/ .erkpHX a:hover{background-color:none;color:#868e96;}/*!sc*/ -data-styled.g34[id="StyledMarkdown-sc-lqtcur-0"]{content:"erkpHX,"}/*!sc*/ +data-styled.g35[id="StyledMarkdown-sc-lqtcur-0"]{content:"erkpHX,"}/*!sc*/ code[class*="language-"],pre[class*="language-"]{margin-bottom:24px;font-size:14.5px;color:#ccc;background:none;font-family:"Bai Jamjuree",monospace;text-align:justify;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none;}/*!sc*/ pre[class*="language-"]{padding:1em;overflow:auto;}/*!sc*/ :not(pre) > code[class*="language-"]{padding:0.1em;border-radius:0.3em;white-space:normal;}/*!sc*/ @@ -187,19 +187,19 @@ .prism-previewer-angle.prism-previewer-angle circle,.prism-previewer-time.prism-previewer-time circle{stroke:hsl(230,8%,24%);stroke-opacity:1;}/*!sc*/ .prism-previewer-easing.prism-previewer-easing circle,.prism-previewer-easing.prism-previewer-easing path,.prism-previewer-easing.prism-previewer-easing line{stroke:hsl(230,8%,24%);}/*!sc*/ .prism-previewer-easing.prism-previewer-easing circle{fill:transparent;}/*!sc*/ -data-styled.g36[id="sc-global-bIpVyQ1"]{content:"sc-global-bIpVyQ1,"}/*!sc*/ +data-styled.g37[id="sc-global-bIpVyQ1"]{content:"sc-global-bIpVyQ1,"}/*!sc*/ .bUeHPW{position:relative;margin-bottom:112px;}/*!sc*/ @media (max-width:768px){.bUeHPW{padding:0 15px;}}/*!sc*/ -data-styled.g37[id="Body__Wrapper-sc-7hat30-0"]{content:"bUeHPW,"}/*!sc*/ +data-styled.g38[id="Body__Wrapper-sc-7hat30-0"]{content:"bUeHPW,"}/*!sc*/ .becwQW{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;margin-bottom:48px;}/*!sc*/ @media (max-width:768px){.becwQW{margin-bottom:80px;padding:0 12.8px;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}.becwQW > div:first-child{margin-bottom:12.8px;}}/*!sc*/ -data-styled.g38[id="Footer__ArticleButtonContainer-sc-zqxmks-0"]{content:"becwQW,"}/*!sc*/ +data-styled.g39[id="Footer__ArticleButtonContainer-sc-zqxmks-0"]{content:"becwQW,"}/*!sc*/ .gwQEOy{width:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;white-space:nowrap;}/*!sc*/ -data-styled.g39[id="Footer__ArrowFlexWrapper-sc-zqxmks-1"]{content:"gwQEOy,"}/*!sc*/ +data-styled.g40[id="Footer__ArrowFlexWrapper-sc-zqxmks-1"]{content:"gwQEOy,"}/*!sc*/ .jxGLes{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:flex-end;-webkit-box-align:flex-end;-ms-flex-align:flex-end;align-items:flex-end;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;overflow:hidden;}/*!sc*/ -data-styled.g40[id="Footer__ArticleButtonTextWrapper-sc-zqxmks-2"]{content:"jxGLes,"}/*!sc*/ +data-styled.g41[id="Footer__ArticleButtonTextWrapper-sc-zqxmks-2"]{content:"jxGLes,"}/*!sc*/ .bhYcVf{position:relative;left:0;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;font-size:24px;-webkit-flex-basis:24px;-ms-flex-preferred-size:24px;flex-basis:24px;-webkit-transition:left 0.3s;transition:left 0.3s;}/*!sc*/ -data-styled.g41[id="Footer__Arrow-sc-zqxmks-3"]{content:"bhYcVf,"}/*!sc*/ +data-styled.g42[id="Footer__Arrow-sc-zqxmks-3"]{content:"bhYcVf,"}/*!sc*/ .OEEnV{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;padding:20.8px 16px;max-width:250px;-webkit-flex-basis:250px;-ms-flex-preferred-size:250px;flex-basis:250px;font-size:17.6px;border-radius:5px;background-color:rgba(0,0,0,0.06);color:#191919;cursor:pointer;-webkit-transition:background-color 0.3s;transition:background-color 0.3s;}/*!sc*/ .OEEnV:hover{background-color:rgba(0,0,0,0.08);}/*!sc*/ .OEEnV .Footer__ArrowFlexWrapper-sc-zqxmks-1{-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}/*!sc*/ @@ -214,18 +214,18 @@ .cCfvHe .Footer__Arrow-sc-zqxmks-3{margin-left:16px;}/*!sc*/ .cCfvHe:hover .Footer__Arrow-sc-zqxmks-3{left:2px;}/*!sc*/ @media (max-width:768px){.cCfvHe{max-width:inherit;-webkit-flex-basis:inherit;-ms-flex-preferred-size:inherit;flex-basis:inherit;}}/*!sc*/ -data-styled.g42[id="Footer__ArticleButtonWrapper-sc-zqxmks-4"]{content:"OEEnV,cCfvHe,"}/*!sc*/ +data-styled.g43[id="Footer__ArticleButtonWrapper-sc-zqxmks-4"]{content:"OEEnV,cCfvHe,"}/*!sc*/ .hngxZd{margin-bottom:9.6px;font-size:12.8px;}/*!sc*/ -data-styled.g43[id="Footer__ArticleButtonLabel-sc-zqxmks-5"]{content:"hngxZd,"}/*!sc*/ +data-styled.g44[id="Footer__ArticleButtonLabel-sc-zqxmks-5"]{content:"hngxZd,"}/*!sc*/ .brczfR{padding:2px 0;width:100%;text-overflow:ellipsis;overflow:hidden;}/*!sc*/ -data-styled.g44[id="Footer__ArticleButtonTitle-sc-zqxmks-6"]{content:"brczfR,"}/*!sc*/ +data-styled.g45[id="Footer__ArticleButtonTitle-sc-zqxmks-6"]{content:"brczfR,"}/*!sc*/ @media (max-width:768px){.cRSPGb{padding:0 15px;}}/*!sc*/ -data-styled.g45[id="Footer__CommentWrapper-sc-zqxmks-7"]{content:"cRSPGb,"}/*!sc*/ +data-styled.g46[id="Footer__CommentWrapper-sc-zqxmks-7"]{content:"cRSPGb,"}/*!sc*/ .XZnrl{height:200px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}/*!sc*/ -data-styled.g46[id="Footer__SpinnerWrapper-sc-zqxmks-8"]{content:"XZnrl,"}/*!sc*/ +data-styled.g47[id="Footer__SpinnerWrapper-sc-zqxmks-8"]{content:"XZnrl,"}/*!sc*/ .yzdKT{height:0px;overflow:hidden;}/*!sc*/ .ivqWaF{height:auto;overflow:auto;}/*!sc*/ -data-styled.g47[id="Footer__HiddenWrapper-sc-zqxmks-9"]{content:"yzdKT,ivqWaF,"}/*!sc*/ +data-styled.g48[id="Footer__HiddenWrapper-sc-zqxmks-9"]{content:"yzdKT,ivqWaF,"}/*!sc*/ A single-cycle datapath

      A single-cycle datapath

      @MJ · 2 min read
      Created Date · 2024년 08월 17일 12:08
      Last Update · 2024년 10월 12일 21:10

      contents: 0-1. CA Intro

      Single-cyle datapath

      @@ -383,6 +383,6 @@

      More about: jump

      - \ No newline at end of file + \ No newline at end of file diff --git a/4-4. Pipelining overview/index.html b/4-4. Pipelining overview/index.html index 01e90d6..aa7a5a8 100644 --- a/4-4. Pipelining overview/index.html +++ b/4-4. Pipelining overview/index.html @@ -46,34 +46,34 @@ data-styled.g10[id="Footer__FooterWrapper-sc-1qfqdid-0"]{content:"gUOgk,"}/*!sc*/ .juihub{margin-top:0;margin-bottom:48px;border:none;border-bottom:1px solid #e9ecef;}/*!sc*/ .dsTUYW{margin-top:32px;margin-bottom:48px;border:none;border-bottom:1px solid #e9ecef;}/*!sc*/ -data-styled.g12[id="Divider-sc-1jz0jl-0"]{content:"juihub,dsTUYW,"}/*!sc*/ +data-styled.g18[id="Divider-sc-1jz0jl-0"]{content:"juihub,dsTUYW,"}/*!sc*/ .gJiIIX{margin-bottom:10px;word-break:break-all;}/*!sc*/ -data-styled.g13[id="TagList__TagListWrapper-sc-s1uz5f-0"]{content:"gJiIIX,"}/*!sc*/ +data-styled.g19[id="TagList__TagListWrapper-sc-s1uz5f-0"]{content:"gJiIIX,"}/*!sc*/ .OSwVR{display:inline-block;padding:9.6px 11.2px;margin-right:8px;margin-bottom:8px;border-radius:50px;background-color:#f1f3f5;color:#404040;-webkit-text-decoration:none;text-decoration:none;font-size:14.4px;-webkit-transition:all 0.2s;transition:all 0.2s;}/*!sc*/ .OSwVR:hover{background-color:#dee2e6;}/*!sc*/ -data-styled.g14[id="TagList__TagLink-sc-s1uz5f-1"]{content:"OSwVR,"}/*!sc*/ +data-styled.g20[id="TagList__TagLink-sc-s1uz5f-1"]{content:"OSwVR,"}/*!sc*/ .cVaGFY{margin-top:32px;}/*!sc*/ @media (max-width:768px){.cVaGFY{padding:0 15px;}}/*!sc*/ -data-styled.g20[id="Header__Wrapper-sc-1d3p6ct-0"]{content:"cVaGFY,"}/*!sc*/ +data-styled.g21[id="Header__Wrapper-sc-1d3p6ct-0"]{content:"cVaGFY,"}/*!sc*/ .dkDUwb{margin-bottom:25.6px;line-height:1.2;font-size:40px;font-weight:700;color:#191919;}/*!sc*/ -data-styled.g21[id="Header__ArticleTitle-sc-1d3p6ct-1"]{content:"dkDUwb,"}/*!sc*/ +data-styled.g22[id="Header__ArticleTitle-sc-1d3p6ct-1"]{content:"dkDUwb,"}/*!sc*/ .bUGEvg{margin-bottom:32px;font-size:16px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;gap:8px;}/*!sc*/ -data-styled.g22[id="Header__Information-sc-1d3p6ct-2"]{content:"bUGEvg,"}/*!sc*/ +data-styled.g23[id="Header__Information-sc-1d3p6ct-2"]{content:"bUGEvg,"}/*!sc*/ .ceAkMY{padding-bottom:15px;font-weight:700;color:#191919;}/*!sc*/ -data-styled.g23[id="Header__Author-sc-1d3p6ct-3"]{content:"ceAkMY,"}/*!sc*/ +data-styled.g24[id="Header__Author-sc-1d3p6ct-3"]{content:"ceAkMY,"}/*!sc*/ .kmPIwO{font-weight:300;color:#404040;}/*!sc*/ -data-styled.g24[id="Header__Date-sc-1d3p6ct-4"]{content:"kmPIwO,"}/*!sc*/ +data-styled.g25[id="Header__Date-sc-1d3p6ct-4"]{content:"kmPIwO,"}/*!sc*/ .kfiAnU{font-weight:300;color:#404040;}/*!sc*/ -data-styled.g25[id="Header__Property-sc-1d3p6ct-5"]{content:"kfiAnU,"}/*!sc*/ +data-styled.g26[id="Header__Property-sc-1d3p6ct-5"]{content:"kfiAnU,"}/*!sc*/ .jUHwIM{position:relative;opacity:0;-webkit-transition:0.35s all ease;transition:0.35s all ease;opacity:1;}/*!sc*/ -data-styled.g31[id="RevealOnScroll__StyledWrapper-sc-j177rt-0"]{content:"jUHwIM,"}/*!sc*/ +data-styled.g32[id="RevealOnScroll__StyledWrapper-sc-j177rt-0"]{content:"jUHwIM,"}/*!sc*/ .cKsOEP{position:absolute;opacity:1;left:100%;}/*!sc*/ .cKsOEP > div{padding-right:20px;padding-left:16px;margin-left:48px;position:relative;width:240px;max-height:calc(100% - 185px);overflow-y:auto;position:fixed;top:100px;}/*!sc*/ .cKsOEP > div::-webkit-scrollbar{width:3px;}/*!sc*/ .cKsOEP > div::-webkit-scrollbar-track{background:#f1f3f5;}/*!sc*/ .cKsOEP > div::-webkit-scrollbar-thumb{background:#ced4da;}/*!sc*/ @media (max-width:1300px){.cKsOEP{display:None;}}/*!sc*/ -data-styled.g32[id="Toc__TocWrapper-sc-1axrmab-0"]{content:"cKsOEP,"}/*!sc*/ +data-styled.g33[id="Toc__TocWrapper-sc-1axrmab-0"]{content:"cKsOEP,"}/*!sc*/ .erkpHX{font-size:16.7px;color:#191919;line-height:1.73;overflow:hidden;}/*!sc*/ .erkpHX h1:first-child,.erkpHX h2:first-child,.erkpHX h3:first-child,.erkpHX h4:first-child{margin-top:0;}/*!sc*/ .erkpHX > p,.erkpHX > ul,.erkpHX > ol,.erkpHX table,.erkpHX blockquote,.erkpHX pre,.erkpHX img,.erkpHX .katex-display{margin-top:0;margin-bottom:24px;word-break:break-all;}/*!sc*/ @@ -119,7 +119,7 @@ .erkpHX a[data-wiki-link="true"]:hover{-webkit-text-decoration:underline;text-decoration:underline;}/*!sc*/ .erkpHX a{padding:1.6px 0;color:#191919;}/*!sc*/ .erkpHX a:hover{background-color:none;color:#868e96;}/*!sc*/ -data-styled.g34[id="StyledMarkdown-sc-lqtcur-0"]{content:"erkpHX,"}/*!sc*/ +data-styled.g35[id="StyledMarkdown-sc-lqtcur-0"]{content:"erkpHX,"}/*!sc*/ code[class*="language-"],pre[class*="language-"]{margin-bottom:24px;font-size:14.5px;color:#ccc;background:none;font-family:"Bai Jamjuree",monospace;text-align:justify;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none;}/*!sc*/ pre[class*="language-"]{padding:1em;overflow:auto;}/*!sc*/ :not(pre) > code[class*="language-"]{padding:0.1em;border-radius:0.3em;white-space:normal;}/*!sc*/ @@ -185,19 +185,19 @@ .prism-previewer-angle.prism-previewer-angle circle,.prism-previewer-time.prism-previewer-time circle{stroke:hsl(230,8%,24%);stroke-opacity:1;}/*!sc*/ .prism-previewer-easing.prism-previewer-easing circle,.prism-previewer-easing.prism-previewer-easing path,.prism-previewer-easing.prism-previewer-easing line{stroke:hsl(230,8%,24%);}/*!sc*/ .prism-previewer-easing.prism-previewer-easing circle{fill:transparent;}/*!sc*/ -data-styled.g36[id="sc-global-bIpVyQ1"]{content:"sc-global-bIpVyQ1,"}/*!sc*/ +data-styled.g37[id="sc-global-bIpVyQ1"]{content:"sc-global-bIpVyQ1,"}/*!sc*/ .bUeHPW{position:relative;margin-bottom:112px;}/*!sc*/ @media (max-width:768px){.bUeHPW{padding:0 15px;}}/*!sc*/ -data-styled.g37[id="Body__Wrapper-sc-7hat30-0"]{content:"bUeHPW,"}/*!sc*/ +data-styled.g38[id="Body__Wrapper-sc-7hat30-0"]{content:"bUeHPW,"}/*!sc*/ .becwQW{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;margin-bottom:48px;}/*!sc*/ @media (max-width:768px){.becwQW{margin-bottom:80px;padding:0 12.8px;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}.becwQW > div:first-child{margin-bottom:12.8px;}}/*!sc*/ -data-styled.g38[id="Footer__ArticleButtonContainer-sc-zqxmks-0"]{content:"becwQW,"}/*!sc*/ +data-styled.g39[id="Footer__ArticleButtonContainer-sc-zqxmks-0"]{content:"becwQW,"}/*!sc*/ .gwQEOy{width:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;white-space:nowrap;}/*!sc*/ -data-styled.g39[id="Footer__ArrowFlexWrapper-sc-zqxmks-1"]{content:"gwQEOy,"}/*!sc*/ +data-styled.g40[id="Footer__ArrowFlexWrapper-sc-zqxmks-1"]{content:"gwQEOy,"}/*!sc*/ .jxGLes{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:flex-end;-webkit-box-align:flex-end;-ms-flex-align:flex-end;align-items:flex-end;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;overflow:hidden;}/*!sc*/ -data-styled.g40[id="Footer__ArticleButtonTextWrapper-sc-zqxmks-2"]{content:"jxGLes,"}/*!sc*/ +data-styled.g41[id="Footer__ArticleButtonTextWrapper-sc-zqxmks-2"]{content:"jxGLes,"}/*!sc*/ .bhYcVf{position:relative;left:0;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;font-size:24px;-webkit-flex-basis:24px;-ms-flex-preferred-size:24px;flex-basis:24px;-webkit-transition:left 0.3s;transition:left 0.3s;}/*!sc*/ -data-styled.g41[id="Footer__Arrow-sc-zqxmks-3"]{content:"bhYcVf,"}/*!sc*/ +data-styled.g42[id="Footer__Arrow-sc-zqxmks-3"]{content:"bhYcVf,"}/*!sc*/ .OEEnV{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;padding:20.8px 16px;max-width:250px;-webkit-flex-basis:250px;-ms-flex-preferred-size:250px;flex-basis:250px;font-size:17.6px;border-radius:5px;background-color:rgba(0,0,0,0.06);color:#191919;cursor:pointer;-webkit-transition:background-color 0.3s;transition:background-color 0.3s;}/*!sc*/ .OEEnV:hover{background-color:rgba(0,0,0,0.08);}/*!sc*/ .OEEnV .Footer__ArrowFlexWrapper-sc-zqxmks-1{-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}/*!sc*/ @@ -212,18 +212,18 @@ .cCfvHe .Footer__Arrow-sc-zqxmks-3{margin-left:16px;}/*!sc*/ .cCfvHe:hover .Footer__Arrow-sc-zqxmks-3{left:2px;}/*!sc*/ @media (max-width:768px){.cCfvHe{max-width:inherit;-webkit-flex-basis:inherit;-ms-flex-preferred-size:inherit;flex-basis:inherit;}}/*!sc*/ -data-styled.g42[id="Footer__ArticleButtonWrapper-sc-zqxmks-4"]{content:"OEEnV,cCfvHe,"}/*!sc*/ +data-styled.g43[id="Footer__ArticleButtonWrapper-sc-zqxmks-4"]{content:"OEEnV,cCfvHe,"}/*!sc*/ .hngxZd{margin-bottom:9.6px;font-size:12.8px;}/*!sc*/ -data-styled.g43[id="Footer__ArticleButtonLabel-sc-zqxmks-5"]{content:"hngxZd,"}/*!sc*/ +data-styled.g44[id="Footer__ArticleButtonLabel-sc-zqxmks-5"]{content:"hngxZd,"}/*!sc*/ .brczfR{padding:2px 0;width:100%;text-overflow:ellipsis;overflow:hidden;}/*!sc*/ -data-styled.g44[id="Footer__ArticleButtonTitle-sc-zqxmks-6"]{content:"brczfR,"}/*!sc*/ +data-styled.g45[id="Footer__ArticleButtonTitle-sc-zqxmks-6"]{content:"brczfR,"}/*!sc*/ @media (max-width:768px){.cRSPGb{padding:0 15px;}}/*!sc*/ -data-styled.g45[id="Footer__CommentWrapper-sc-zqxmks-7"]{content:"cRSPGb,"}/*!sc*/ +data-styled.g46[id="Footer__CommentWrapper-sc-zqxmks-7"]{content:"cRSPGb,"}/*!sc*/ .XZnrl{height:200px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}/*!sc*/ -data-styled.g46[id="Footer__SpinnerWrapper-sc-zqxmks-8"]{content:"XZnrl,"}/*!sc*/ +data-styled.g47[id="Footer__SpinnerWrapper-sc-zqxmks-8"]{content:"XZnrl,"}/*!sc*/ .yzdKT{height:0px;overflow:hidden;}/*!sc*/ .ivqWaF{height:auto;overflow:auto;}/*!sc*/ -data-styled.g47[id="Footer__HiddenWrapper-sc-zqxmks-9"]{content:"yzdKT,ivqWaF,"}/*!sc*/ +data-styled.g48[id="Footer__HiddenWrapper-sc-zqxmks-9"]{content:"yzdKT,ivqWaF,"}/*!sc*/ Pipelining overview

      Pipelining overview

      @MJ · 3 min read
      Created Date · 2024년 08월 18일 12:08
      Last Update · 2024년 10월 12일 21:10

      contents: 0-1. CA Intro

      Because the longest delay determines clock period, a single-cycle implementation is not used today

      It violates "make the common case fast"

      @@ -486,6 +486,6 @@

      Summary

      - \ No newline at end of file + \ No newline at end of file diff --git a/4-5. Handling hazards/index.html b/4-5. Handling hazards/index.html index 4a4977b..8a2d3cd 100644 --- a/4-5. Handling hazards/index.html +++ b/4-5. Handling hazards/index.html @@ -48,34 +48,34 @@ data-styled.g10[id="Footer__FooterWrapper-sc-1qfqdid-0"]{content:"gUOgk,"}/*!sc*/ .juihub{margin-top:0;margin-bottom:48px;border:none;border-bottom:1px solid #e9ecef;}/*!sc*/ .dsTUYW{margin-top:32px;margin-bottom:48px;border:none;border-bottom:1px solid #e9ecef;}/*!sc*/ -data-styled.g12[id="Divider-sc-1jz0jl-0"]{content:"juihub,dsTUYW,"}/*!sc*/ +data-styled.g18[id="Divider-sc-1jz0jl-0"]{content:"juihub,dsTUYW,"}/*!sc*/ .gJiIIX{margin-bottom:10px;word-break:break-all;}/*!sc*/ -data-styled.g13[id="TagList__TagListWrapper-sc-s1uz5f-0"]{content:"gJiIIX,"}/*!sc*/ +data-styled.g19[id="TagList__TagListWrapper-sc-s1uz5f-0"]{content:"gJiIIX,"}/*!sc*/ .OSwVR{display:inline-block;padding:9.6px 11.2px;margin-right:8px;margin-bottom:8px;border-radius:50px;background-color:#f1f3f5;color:#404040;-webkit-text-decoration:none;text-decoration:none;font-size:14.4px;-webkit-transition:all 0.2s;transition:all 0.2s;}/*!sc*/ .OSwVR:hover{background-color:#dee2e6;}/*!sc*/ -data-styled.g14[id="TagList__TagLink-sc-s1uz5f-1"]{content:"OSwVR,"}/*!sc*/ +data-styled.g20[id="TagList__TagLink-sc-s1uz5f-1"]{content:"OSwVR,"}/*!sc*/ .cVaGFY{margin-top:32px;}/*!sc*/ @media (max-width:768px){.cVaGFY{padding:0 15px;}}/*!sc*/ -data-styled.g20[id="Header__Wrapper-sc-1d3p6ct-0"]{content:"cVaGFY,"}/*!sc*/ +data-styled.g21[id="Header__Wrapper-sc-1d3p6ct-0"]{content:"cVaGFY,"}/*!sc*/ .dkDUwb{margin-bottom:25.6px;line-height:1.2;font-size:40px;font-weight:700;color:#191919;}/*!sc*/ -data-styled.g21[id="Header__ArticleTitle-sc-1d3p6ct-1"]{content:"dkDUwb,"}/*!sc*/ +data-styled.g22[id="Header__ArticleTitle-sc-1d3p6ct-1"]{content:"dkDUwb,"}/*!sc*/ .bUGEvg{margin-bottom:32px;font-size:16px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;gap:8px;}/*!sc*/ -data-styled.g22[id="Header__Information-sc-1d3p6ct-2"]{content:"bUGEvg,"}/*!sc*/ +data-styled.g23[id="Header__Information-sc-1d3p6ct-2"]{content:"bUGEvg,"}/*!sc*/ .ceAkMY{padding-bottom:15px;font-weight:700;color:#191919;}/*!sc*/ -data-styled.g23[id="Header__Author-sc-1d3p6ct-3"]{content:"ceAkMY,"}/*!sc*/ +data-styled.g24[id="Header__Author-sc-1d3p6ct-3"]{content:"ceAkMY,"}/*!sc*/ .kmPIwO{font-weight:300;color:#404040;}/*!sc*/ -data-styled.g24[id="Header__Date-sc-1d3p6ct-4"]{content:"kmPIwO,"}/*!sc*/ +data-styled.g25[id="Header__Date-sc-1d3p6ct-4"]{content:"kmPIwO,"}/*!sc*/ .kfiAnU{font-weight:300;color:#404040;}/*!sc*/ -data-styled.g25[id="Header__Property-sc-1d3p6ct-5"]{content:"kfiAnU,"}/*!sc*/ +data-styled.g26[id="Header__Property-sc-1d3p6ct-5"]{content:"kfiAnU,"}/*!sc*/ .jUHwIM{position:relative;opacity:0;-webkit-transition:0.35s all ease;transition:0.35s all ease;opacity:1;}/*!sc*/ -data-styled.g31[id="RevealOnScroll__StyledWrapper-sc-j177rt-0"]{content:"jUHwIM,"}/*!sc*/ +data-styled.g32[id="RevealOnScroll__StyledWrapper-sc-j177rt-0"]{content:"jUHwIM,"}/*!sc*/ .cKsOEP{position:absolute;opacity:1;left:100%;}/*!sc*/ .cKsOEP > div{padding-right:20px;padding-left:16px;margin-left:48px;position:relative;width:240px;max-height:calc(100% - 185px);overflow-y:auto;position:fixed;top:100px;}/*!sc*/ .cKsOEP > div::-webkit-scrollbar{width:3px;}/*!sc*/ .cKsOEP > div::-webkit-scrollbar-track{background:#f1f3f5;}/*!sc*/ .cKsOEP > div::-webkit-scrollbar-thumb{background:#ced4da;}/*!sc*/ @media (max-width:1300px){.cKsOEP{display:None;}}/*!sc*/ -data-styled.g32[id="Toc__TocWrapper-sc-1axrmab-0"]{content:"cKsOEP,"}/*!sc*/ +data-styled.g33[id="Toc__TocWrapper-sc-1axrmab-0"]{content:"cKsOEP,"}/*!sc*/ .erkpHX{font-size:16.7px;color:#191919;line-height:1.73;overflow:hidden;}/*!sc*/ .erkpHX h1:first-child,.erkpHX h2:first-child,.erkpHX h3:first-child,.erkpHX h4:first-child{margin-top:0;}/*!sc*/ .erkpHX > p,.erkpHX > ul,.erkpHX > ol,.erkpHX table,.erkpHX blockquote,.erkpHX pre,.erkpHX img,.erkpHX .katex-display{margin-top:0;margin-bottom:24px;word-break:break-all;}/*!sc*/ @@ -121,7 +121,7 @@ .erkpHX a[data-wiki-link="true"]:hover{-webkit-text-decoration:underline;text-decoration:underline;}/*!sc*/ .erkpHX a{padding:1.6px 0;color:#191919;}/*!sc*/ .erkpHX a:hover{background-color:none;color:#868e96;}/*!sc*/ -data-styled.g34[id="StyledMarkdown-sc-lqtcur-0"]{content:"erkpHX,"}/*!sc*/ +data-styled.g35[id="StyledMarkdown-sc-lqtcur-0"]{content:"erkpHX,"}/*!sc*/ code[class*="language-"],pre[class*="language-"]{margin-bottom:24px;font-size:14.5px;color:#ccc;background:none;font-family:"Bai Jamjuree",monospace;text-align:justify;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none;}/*!sc*/ pre[class*="language-"]{padding:1em;overflow:auto;}/*!sc*/ :not(pre) > code[class*="language-"]{padding:0.1em;border-radius:0.3em;white-space:normal;}/*!sc*/ @@ -187,19 +187,19 @@ .prism-previewer-angle.prism-previewer-angle circle,.prism-previewer-time.prism-previewer-time circle{stroke:hsl(230,8%,24%);stroke-opacity:1;}/*!sc*/ .prism-previewer-easing.prism-previewer-easing circle,.prism-previewer-easing.prism-previewer-easing path,.prism-previewer-easing.prism-previewer-easing line{stroke:hsl(230,8%,24%);}/*!sc*/ .prism-previewer-easing.prism-previewer-easing circle{fill:transparent;}/*!sc*/ -data-styled.g36[id="sc-global-bIpVyQ1"]{content:"sc-global-bIpVyQ1,"}/*!sc*/ +data-styled.g37[id="sc-global-bIpVyQ1"]{content:"sc-global-bIpVyQ1,"}/*!sc*/ .bUeHPW{position:relative;margin-bottom:112px;}/*!sc*/ @media (max-width:768px){.bUeHPW{padding:0 15px;}}/*!sc*/ -data-styled.g37[id="Body__Wrapper-sc-7hat30-0"]{content:"bUeHPW,"}/*!sc*/ +data-styled.g38[id="Body__Wrapper-sc-7hat30-0"]{content:"bUeHPW,"}/*!sc*/ .becwQW{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;margin-bottom:48px;}/*!sc*/ @media (max-width:768px){.becwQW{margin-bottom:80px;padding:0 12.8px;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}.becwQW > div:first-child{margin-bottom:12.8px;}}/*!sc*/ -data-styled.g38[id="Footer__ArticleButtonContainer-sc-zqxmks-0"]{content:"becwQW,"}/*!sc*/ +data-styled.g39[id="Footer__ArticleButtonContainer-sc-zqxmks-0"]{content:"becwQW,"}/*!sc*/ .gwQEOy{width:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;white-space:nowrap;}/*!sc*/ -data-styled.g39[id="Footer__ArrowFlexWrapper-sc-zqxmks-1"]{content:"gwQEOy,"}/*!sc*/ +data-styled.g40[id="Footer__ArrowFlexWrapper-sc-zqxmks-1"]{content:"gwQEOy,"}/*!sc*/ .jxGLes{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:flex-end;-webkit-box-align:flex-end;-ms-flex-align:flex-end;align-items:flex-end;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;overflow:hidden;}/*!sc*/ -data-styled.g40[id="Footer__ArticleButtonTextWrapper-sc-zqxmks-2"]{content:"jxGLes,"}/*!sc*/ +data-styled.g41[id="Footer__ArticleButtonTextWrapper-sc-zqxmks-2"]{content:"jxGLes,"}/*!sc*/ .bhYcVf{position:relative;left:0;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;font-size:24px;-webkit-flex-basis:24px;-ms-flex-preferred-size:24px;flex-basis:24px;-webkit-transition:left 0.3s;transition:left 0.3s;}/*!sc*/ -data-styled.g41[id="Footer__Arrow-sc-zqxmks-3"]{content:"bhYcVf,"}/*!sc*/ +data-styled.g42[id="Footer__Arrow-sc-zqxmks-3"]{content:"bhYcVf,"}/*!sc*/ .OEEnV{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;padding:20.8px 16px;max-width:250px;-webkit-flex-basis:250px;-ms-flex-preferred-size:250px;flex-basis:250px;font-size:17.6px;border-radius:5px;background-color:rgba(0,0,0,0.06);color:#191919;cursor:pointer;-webkit-transition:background-color 0.3s;transition:background-color 0.3s;}/*!sc*/ .OEEnV:hover{background-color:rgba(0,0,0,0.08);}/*!sc*/ .OEEnV .Footer__ArrowFlexWrapper-sc-zqxmks-1{-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}/*!sc*/ @@ -214,18 +214,18 @@ .cCfvHe .Footer__Arrow-sc-zqxmks-3{margin-left:16px;}/*!sc*/ .cCfvHe:hover .Footer__Arrow-sc-zqxmks-3{left:2px;}/*!sc*/ @media (max-width:768px){.cCfvHe{max-width:inherit;-webkit-flex-basis:inherit;-ms-flex-preferred-size:inherit;flex-basis:inherit;}}/*!sc*/ -data-styled.g42[id="Footer__ArticleButtonWrapper-sc-zqxmks-4"]{content:"OEEnV,cCfvHe,"}/*!sc*/ +data-styled.g43[id="Footer__ArticleButtonWrapper-sc-zqxmks-4"]{content:"OEEnV,cCfvHe,"}/*!sc*/ .hngxZd{margin-bottom:9.6px;font-size:12.8px;}/*!sc*/ -data-styled.g43[id="Footer__ArticleButtonLabel-sc-zqxmks-5"]{content:"hngxZd,"}/*!sc*/ +data-styled.g44[id="Footer__ArticleButtonLabel-sc-zqxmks-5"]{content:"hngxZd,"}/*!sc*/ .brczfR{padding:2px 0;width:100%;text-overflow:ellipsis;overflow:hidden;}/*!sc*/ -data-styled.g44[id="Footer__ArticleButtonTitle-sc-zqxmks-6"]{content:"brczfR,"}/*!sc*/ +data-styled.g45[id="Footer__ArticleButtonTitle-sc-zqxmks-6"]{content:"brczfR,"}/*!sc*/ @media (max-width:768px){.cRSPGb{padding:0 15px;}}/*!sc*/ -data-styled.g45[id="Footer__CommentWrapper-sc-zqxmks-7"]{content:"cRSPGb,"}/*!sc*/ +data-styled.g46[id="Footer__CommentWrapper-sc-zqxmks-7"]{content:"cRSPGb,"}/*!sc*/ .XZnrl{height:200px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}/*!sc*/ -data-styled.g46[id="Footer__SpinnerWrapper-sc-zqxmks-8"]{content:"XZnrl,"}/*!sc*/ +data-styled.g47[id="Footer__SpinnerWrapper-sc-zqxmks-8"]{content:"XZnrl,"}/*!sc*/ .yzdKT{height:0px;overflow:hidden;}/*!sc*/ .ivqWaF{height:auto;overflow:auto;}/*!sc*/ -data-styled.g47[id="Footer__HiddenWrapper-sc-zqxmks-9"]{content:"yzdKT,ivqWaF,"}/*!sc*/ +data-styled.g48[id="Footer__HiddenWrapper-sc-zqxmks-9"]{content:"yzdKT,ivqWaF,"}/*!sc*/ Handling hazards

      Handling hazards

      @MJ · 4 min read
      Created Date · 2024년 08월 19일 12:08
      Last Update · 2024년 10월 12일 21:10

      contents: 0-1. CA Intro

      Pipelined datapath

      We need registers between stages to hold information produced in previous stage and make isolation @@ -482,6 +482,6 @@

      Branch target buffer

      - \ No newline at end of file + \ No newline at end of file diff --git a/4-6. Exceptions/index.html b/4-6. Exceptions/index.html index e799c65..bcd362b 100644 --- a/4-6. Exceptions/index.html +++ b/4-6. Exceptions/index.html @@ -46,34 +46,34 @@ data-styled.g10[id="Footer__FooterWrapper-sc-1qfqdid-0"]{content:"gUOgk,"}/*!sc*/ .juihub{margin-top:0;margin-bottom:48px;border:none;border-bottom:1px solid #e9ecef;}/*!sc*/ .dsTUYW{margin-top:32px;margin-bottom:48px;border:none;border-bottom:1px solid #e9ecef;}/*!sc*/ -data-styled.g12[id="Divider-sc-1jz0jl-0"]{content:"juihub,dsTUYW,"}/*!sc*/ +data-styled.g18[id="Divider-sc-1jz0jl-0"]{content:"juihub,dsTUYW,"}/*!sc*/ .gJiIIX{margin-bottom:10px;word-break:break-all;}/*!sc*/ -data-styled.g13[id="TagList__TagListWrapper-sc-s1uz5f-0"]{content:"gJiIIX,"}/*!sc*/ +data-styled.g19[id="TagList__TagListWrapper-sc-s1uz5f-0"]{content:"gJiIIX,"}/*!sc*/ .OSwVR{display:inline-block;padding:9.6px 11.2px;margin-right:8px;margin-bottom:8px;border-radius:50px;background-color:#f1f3f5;color:#404040;-webkit-text-decoration:none;text-decoration:none;font-size:14.4px;-webkit-transition:all 0.2s;transition:all 0.2s;}/*!sc*/ .OSwVR:hover{background-color:#dee2e6;}/*!sc*/ -data-styled.g14[id="TagList__TagLink-sc-s1uz5f-1"]{content:"OSwVR,"}/*!sc*/ +data-styled.g20[id="TagList__TagLink-sc-s1uz5f-1"]{content:"OSwVR,"}/*!sc*/ .cVaGFY{margin-top:32px;}/*!sc*/ @media (max-width:768px){.cVaGFY{padding:0 15px;}}/*!sc*/ -data-styled.g20[id="Header__Wrapper-sc-1d3p6ct-0"]{content:"cVaGFY,"}/*!sc*/ +data-styled.g21[id="Header__Wrapper-sc-1d3p6ct-0"]{content:"cVaGFY,"}/*!sc*/ .dkDUwb{margin-bottom:25.6px;line-height:1.2;font-size:40px;font-weight:700;color:#191919;}/*!sc*/ -data-styled.g21[id="Header__ArticleTitle-sc-1d3p6ct-1"]{content:"dkDUwb,"}/*!sc*/ +data-styled.g22[id="Header__ArticleTitle-sc-1d3p6ct-1"]{content:"dkDUwb,"}/*!sc*/ .bUGEvg{margin-bottom:32px;font-size:16px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;gap:8px;}/*!sc*/ -data-styled.g22[id="Header__Information-sc-1d3p6ct-2"]{content:"bUGEvg,"}/*!sc*/ +data-styled.g23[id="Header__Information-sc-1d3p6ct-2"]{content:"bUGEvg,"}/*!sc*/ .ceAkMY{padding-bottom:15px;font-weight:700;color:#191919;}/*!sc*/ -data-styled.g23[id="Header__Author-sc-1d3p6ct-3"]{content:"ceAkMY,"}/*!sc*/ +data-styled.g24[id="Header__Author-sc-1d3p6ct-3"]{content:"ceAkMY,"}/*!sc*/ .kmPIwO{font-weight:300;color:#404040;}/*!sc*/ -data-styled.g24[id="Header__Date-sc-1d3p6ct-4"]{content:"kmPIwO,"}/*!sc*/ +data-styled.g25[id="Header__Date-sc-1d3p6ct-4"]{content:"kmPIwO,"}/*!sc*/ .kfiAnU{font-weight:300;color:#404040;}/*!sc*/ -data-styled.g25[id="Header__Property-sc-1d3p6ct-5"]{content:"kfiAnU,"}/*!sc*/ +data-styled.g26[id="Header__Property-sc-1d3p6ct-5"]{content:"kfiAnU,"}/*!sc*/ .jUHwIM{position:relative;opacity:0;-webkit-transition:0.35s all ease;transition:0.35s all ease;opacity:1;}/*!sc*/ -data-styled.g31[id="RevealOnScroll__StyledWrapper-sc-j177rt-0"]{content:"jUHwIM,"}/*!sc*/ +data-styled.g32[id="RevealOnScroll__StyledWrapper-sc-j177rt-0"]{content:"jUHwIM,"}/*!sc*/ .cKsOEP{position:absolute;opacity:1;left:100%;}/*!sc*/ .cKsOEP > div{padding-right:20px;padding-left:16px;margin-left:48px;position:relative;width:240px;max-height:calc(100% - 185px);overflow-y:auto;position:fixed;top:100px;}/*!sc*/ .cKsOEP > div::-webkit-scrollbar{width:3px;}/*!sc*/ .cKsOEP > div::-webkit-scrollbar-track{background:#f1f3f5;}/*!sc*/ .cKsOEP > div::-webkit-scrollbar-thumb{background:#ced4da;}/*!sc*/ @media (max-width:1300px){.cKsOEP{display:None;}}/*!sc*/ -data-styled.g32[id="Toc__TocWrapper-sc-1axrmab-0"]{content:"cKsOEP,"}/*!sc*/ +data-styled.g33[id="Toc__TocWrapper-sc-1axrmab-0"]{content:"cKsOEP,"}/*!sc*/ .erkpHX{font-size:16.7px;color:#191919;line-height:1.73;overflow:hidden;}/*!sc*/ .erkpHX h1:first-child,.erkpHX h2:first-child,.erkpHX h3:first-child,.erkpHX h4:first-child{margin-top:0;}/*!sc*/ .erkpHX > p,.erkpHX > ul,.erkpHX > ol,.erkpHX table,.erkpHX blockquote,.erkpHX pre,.erkpHX img,.erkpHX .katex-display{margin-top:0;margin-bottom:24px;word-break:break-all;}/*!sc*/ @@ -119,7 +119,7 @@ .erkpHX a[data-wiki-link="true"]:hover{-webkit-text-decoration:underline;text-decoration:underline;}/*!sc*/ .erkpHX a{padding:1.6px 0;color:#191919;}/*!sc*/ .erkpHX a:hover{background-color:none;color:#868e96;}/*!sc*/ -data-styled.g34[id="StyledMarkdown-sc-lqtcur-0"]{content:"erkpHX,"}/*!sc*/ +data-styled.g35[id="StyledMarkdown-sc-lqtcur-0"]{content:"erkpHX,"}/*!sc*/ code[class*="language-"],pre[class*="language-"]{margin-bottom:24px;font-size:14.5px;color:#ccc;background:none;font-family:"Bai Jamjuree",monospace;text-align:justify;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none;}/*!sc*/ pre[class*="language-"]{padding:1em;overflow:auto;}/*!sc*/ :not(pre) > code[class*="language-"]{padding:0.1em;border-radius:0.3em;white-space:normal;}/*!sc*/ @@ -185,19 +185,19 @@ .prism-previewer-angle.prism-previewer-angle circle,.prism-previewer-time.prism-previewer-time circle{stroke:hsl(230,8%,24%);stroke-opacity:1;}/*!sc*/ .prism-previewer-easing.prism-previewer-easing circle,.prism-previewer-easing.prism-previewer-easing path,.prism-previewer-easing.prism-previewer-easing line{stroke:hsl(230,8%,24%);}/*!sc*/ .prism-previewer-easing.prism-previewer-easing circle{fill:transparent;}/*!sc*/ -data-styled.g36[id="sc-global-bIpVyQ1"]{content:"sc-global-bIpVyQ1,"}/*!sc*/ +data-styled.g37[id="sc-global-bIpVyQ1"]{content:"sc-global-bIpVyQ1,"}/*!sc*/ .bUeHPW{position:relative;margin-bottom:112px;}/*!sc*/ @media (max-width:768px){.bUeHPW{padding:0 15px;}}/*!sc*/ -data-styled.g37[id="Body__Wrapper-sc-7hat30-0"]{content:"bUeHPW,"}/*!sc*/ +data-styled.g38[id="Body__Wrapper-sc-7hat30-0"]{content:"bUeHPW,"}/*!sc*/ .becwQW{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;margin-bottom:48px;}/*!sc*/ @media (max-width:768px){.becwQW{margin-bottom:80px;padding:0 12.8px;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}.becwQW > div:first-child{margin-bottom:12.8px;}}/*!sc*/ -data-styled.g38[id="Footer__ArticleButtonContainer-sc-zqxmks-0"]{content:"becwQW,"}/*!sc*/ +data-styled.g39[id="Footer__ArticleButtonContainer-sc-zqxmks-0"]{content:"becwQW,"}/*!sc*/ .gwQEOy{width:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;white-space:nowrap;}/*!sc*/ -data-styled.g39[id="Footer__ArrowFlexWrapper-sc-zqxmks-1"]{content:"gwQEOy,"}/*!sc*/ +data-styled.g40[id="Footer__ArrowFlexWrapper-sc-zqxmks-1"]{content:"gwQEOy,"}/*!sc*/ .jxGLes{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:flex-end;-webkit-box-align:flex-end;-ms-flex-align:flex-end;align-items:flex-end;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;overflow:hidden;}/*!sc*/ -data-styled.g40[id="Footer__ArticleButtonTextWrapper-sc-zqxmks-2"]{content:"jxGLes,"}/*!sc*/ +data-styled.g41[id="Footer__ArticleButtonTextWrapper-sc-zqxmks-2"]{content:"jxGLes,"}/*!sc*/ .bhYcVf{position:relative;left:0;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;font-size:24px;-webkit-flex-basis:24px;-ms-flex-preferred-size:24px;flex-basis:24px;-webkit-transition:left 0.3s;transition:left 0.3s;}/*!sc*/ -data-styled.g41[id="Footer__Arrow-sc-zqxmks-3"]{content:"bhYcVf,"}/*!sc*/ +data-styled.g42[id="Footer__Arrow-sc-zqxmks-3"]{content:"bhYcVf,"}/*!sc*/ .OEEnV{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;padding:20.8px 16px;max-width:250px;-webkit-flex-basis:250px;-ms-flex-preferred-size:250px;flex-basis:250px;font-size:17.6px;border-radius:5px;background-color:rgba(0,0,0,0.06);color:#191919;cursor:pointer;-webkit-transition:background-color 0.3s;transition:background-color 0.3s;}/*!sc*/ .OEEnV:hover{background-color:rgba(0,0,0,0.08);}/*!sc*/ .OEEnV .Footer__ArrowFlexWrapper-sc-zqxmks-1{-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}/*!sc*/ @@ -212,18 +212,18 @@ .cCfvHe .Footer__Arrow-sc-zqxmks-3{margin-left:16px;}/*!sc*/ .cCfvHe:hover .Footer__Arrow-sc-zqxmks-3{left:2px;}/*!sc*/ @media (max-width:768px){.cCfvHe{max-width:inherit;-webkit-flex-basis:inherit;-ms-flex-preferred-size:inherit;flex-basis:inherit;}}/*!sc*/ -data-styled.g42[id="Footer__ArticleButtonWrapper-sc-zqxmks-4"]{content:"OEEnV,cCfvHe,"}/*!sc*/ +data-styled.g43[id="Footer__ArticleButtonWrapper-sc-zqxmks-4"]{content:"OEEnV,cCfvHe,"}/*!sc*/ .hngxZd{margin-bottom:9.6px;font-size:12.8px;}/*!sc*/ -data-styled.g43[id="Footer__ArticleButtonLabel-sc-zqxmks-5"]{content:"hngxZd,"}/*!sc*/ +data-styled.g44[id="Footer__ArticleButtonLabel-sc-zqxmks-5"]{content:"hngxZd,"}/*!sc*/ .brczfR{padding:2px 0;width:100%;text-overflow:ellipsis;overflow:hidden;}/*!sc*/ -data-styled.g44[id="Footer__ArticleButtonTitle-sc-zqxmks-6"]{content:"brczfR,"}/*!sc*/ +data-styled.g45[id="Footer__ArticleButtonTitle-sc-zqxmks-6"]{content:"brczfR,"}/*!sc*/ @media (max-width:768px){.cRSPGb{padding:0 15px;}}/*!sc*/ -data-styled.g45[id="Footer__CommentWrapper-sc-zqxmks-7"]{content:"cRSPGb,"}/*!sc*/ +data-styled.g46[id="Footer__CommentWrapper-sc-zqxmks-7"]{content:"cRSPGb,"}/*!sc*/ .XZnrl{height:200px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}/*!sc*/ -data-styled.g46[id="Footer__SpinnerWrapper-sc-zqxmks-8"]{content:"XZnrl,"}/*!sc*/ +data-styled.g47[id="Footer__SpinnerWrapper-sc-zqxmks-8"]{content:"XZnrl,"}/*!sc*/ .yzdKT{height:0px;overflow:hidden;}/*!sc*/ .ivqWaF{height:auto;overflow:auto;}/*!sc*/ -data-styled.g47[id="Footer__HiddenWrapper-sc-zqxmks-9"]{content:"yzdKT,ivqWaF,"}/*!sc*/ +data-styled.g48[id="Footer__HiddenWrapper-sc-zqxmks-9"]{content:"yzdKT,ivqWaF,"}/*!sc*/ Exceptions

      Exceptions

      @MJ · 2 min read
      Created Date · 2024년 08월 20일 12:08
      Last Update · 2024년 10월 12일 21:10

      contents: 0-1. CA Intro

      Code scheduling

      There are three types of critical dependencies

      @@ -358,6 +358,6 @@

      How to prioritize multiple exceptions?

      - \ No newline at end of file + \ No newline at end of file diff --git a/404.html b/404.html index d6efaf5..d8504c6 100644 --- a/404.html +++ b/404.html @@ -53,6 +53,6 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/404/index.html b/404/index.html index 91d40a1..d1adfe9 100644 --- a/404/index.html +++ b/404/index.html @@ -53,6 +53,6 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/5-1. Cache overview/index.html b/5-1. Cache overview/index.html index 58ad349..d611491 100644 --- a/5-1. Cache overview/index.html +++ b/5-1. Cache overview/index.html @@ -46,34 +46,34 @@ data-styled.g10[id="Footer__FooterWrapper-sc-1qfqdid-0"]{content:"gUOgk,"}/*!sc*/ .juihub{margin-top:0;margin-bottom:48px;border:none;border-bottom:1px solid #e9ecef;}/*!sc*/ .dsTUYW{margin-top:32px;margin-bottom:48px;border:none;border-bottom:1px solid #e9ecef;}/*!sc*/ -data-styled.g12[id="Divider-sc-1jz0jl-0"]{content:"juihub,dsTUYW,"}/*!sc*/ +data-styled.g18[id="Divider-sc-1jz0jl-0"]{content:"juihub,dsTUYW,"}/*!sc*/ .gJiIIX{margin-bottom:10px;word-break:break-all;}/*!sc*/ -data-styled.g13[id="TagList__TagListWrapper-sc-s1uz5f-0"]{content:"gJiIIX,"}/*!sc*/ +data-styled.g19[id="TagList__TagListWrapper-sc-s1uz5f-0"]{content:"gJiIIX,"}/*!sc*/ .OSwVR{display:inline-block;padding:9.6px 11.2px;margin-right:8px;margin-bottom:8px;border-radius:50px;background-color:#f1f3f5;color:#404040;-webkit-text-decoration:none;text-decoration:none;font-size:14.4px;-webkit-transition:all 0.2s;transition:all 0.2s;}/*!sc*/ .OSwVR:hover{background-color:#dee2e6;}/*!sc*/ -data-styled.g14[id="TagList__TagLink-sc-s1uz5f-1"]{content:"OSwVR,"}/*!sc*/ +data-styled.g20[id="TagList__TagLink-sc-s1uz5f-1"]{content:"OSwVR,"}/*!sc*/ .cVaGFY{margin-top:32px;}/*!sc*/ @media (max-width:768px){.cVaGFY{padding:0 15px;}}/*!sc*/ -data-styled.g20[id="Header__Wrapper-sc-1d3p6ct-0"]{content:"cVaGFY,"}/*!sc*/ +data-styled.g21[id="Header__Wrapper-sc-1d3p6ct-0"]{content:"cVaGFY,"}/*!sc*/ .dkDUwb{margin-bottom:25.6px;line-height:1.2;font-size:40px;font-weight:700;color:#191919;}/*!sc*/ -data-styled.g21[id="Header__ArticleTitle-sc-1d3p6ct-1"]{content:"dkDUwb,"}/*!sc*/ +data-styled.g22[id="Header__ArticleTitle-sc-1d3p6ct-1"]{content:"dkDUwb,"}/*!sc*/ .bUGEvg{margin-bottom:32px;font-size:16px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;gap:8px;}/*!sc*/ -data-styled.g22[id="Header__Information-sc-1d3p6ct-2"]{content:"bUGEvg,"}/*!sc*/ +data-styled.g23[id="Header__Information-sc-1d3p6ct-2"]{content:"bUGEvg,"}/*!sc*/ .ceAkMY{padding-bottom:15px;font-weight:700;color:#191919;}/*!sc*/ -data-styled.g23[id="Header__Author-sc-1d3p6ct-3"]{content:"ceAkMY,"}/*!sc*/ +data-styled.g24[id="Header__Author-sc-1d3p6ct-3"]{content:"ceAkMY,"}/*!sc*/ .kmPIwO{font-weight:300;color:#404040;}/*!sc*/ -data-styled.g24[id="Header__Date-sc-1d3p6ct-4"]{content:"kmPIwO,"}/*!sc*/ +data-styled.g25[id="Header__Date-sc-1d3p6ct-4"]{content:"kmPIwO,"}/*!sc*/ .kfiAnU{font-weight:300;color:#404040;}/*!sc*/ -data-styled.g25[id="Header__Property-sc-1d3p6ct-5"]{content:"kfiAnU,"}/*!sc*/ +data-styled.g26[id="Header__Property-sc-1d3p6ct-5"]{content:"kfiAnU,"}/*!sc*/ .jUHwIM{position:relative;opacity:0;-webkit-transition:0.35s all ease;transition:0.35s all ease;opacity:1;}/*!sc*/ -data-styled.g31[id="RevealOnScroll__StyledWrapper-sc-j177rt-0"]{content:"jUHwIM,"}/*!sc*/ +data-styled.g32[id="RevealOnScroll__StyledWrapper-sc-j177rt-0"]{content:"jUHwIM,"}/*!sc*/ .cKsOEP{position:absolute;opacity:1;left:100%;}/*!sc*/ .cKsOEP > div{padding-right:20px;padding-left:16px;margin-left:48px;position:relative;width:240px;max-height:calc(100% - 185px);overflow-y:auto;position:fixed;top:100px;}/*!sc*/ .cKsOEP > div::-webkit-scrollbar{width:3px;}/*!sc*/ .cKsOEP > div::-webkit-scrollbar-track{background:#f1f3f5;}/*!sc*/ .cKsOEP > div::-webkit-scrollbar-thumb{background:#ced4da;}/*!sc*/ @media (max-width:1300px){.cKsOEP{display:None;}}/*!sc*/ -data-styled.g32[id="Toc__TocWrapper-sc-1axrmab-0"]{content:"cKsOEP,"}/*!sc*/ +data-styled.g33[id="Toc__TocWrapper-sc-1axrmab-0"]{content:"cKsOEP,"}/*!sc*/ .erkpHX{font-size:16.7px;color:#191919;line-height:1.73;overflow:hidden;}/*!sc*/ .erkpHX h1:first-child,.erkpHX h2:first-child,.erkpHX h3:first-child,.erkpHX h4:first-child{margin-top:0;}/*!sc*/ .erkpHX > p,.erkpHX > ul,.erkpHX > ol,.erkpHX table,.erkpHX blockquote,.erkpHX pre,.erkpHX img,.erkpHX .katex-display{margin-top:0;margin-bottom:24px;word-break:break-all;}/*!sc*/ @@ -119,7 +119,7 @@ .erkpHX a[data-wiki-link="true"]:hover{-webkit-text-decoration:underline;text-decoration:underline;}/*!sc*/ .erkpHX a{padding:1.6px 0;color:#191919;}/*!sc*/ .erkpHX a:hover{background-color:none;color:#868e96;}/*!sc*/ -data-styled.g34[id="StyledMarkdown-sc-lqtcur-0"]{content:"erkpHX,"}/*!sc*/ +data-styled.g35[id="StyledMarkdown-sc-lqtcur-0"]{content:"erkpHX,"}/*!sc*/ code[class*="language-"],pre[class*="language-"]{margin-bottom:24px;font-size:14.5px;color:#ccc;background:none;font-family:"Bai Jamjuree",monospace;text-align:justify;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none;}/*!sc*/ pre[class*="language-"]{padding:1em;overflow:auto;}/*!sc*/ :not(pre) > code[class*="language-"]{padding:0.1em;border-radius:0.3em;white-space:normal;}/*!sc*/ @@ -185,19 +185,19 @@ .prism-previewer-angle.prism-previewer-angle circle,.prism-previewer-time.prism-previewer-time circle{stroke:hsl(230,8%,24%);stroke-opacity:1;}/*!sc*/ .prism-previewer-easing.prism-previewer-easing circle,.prism-previewer-easing.prism-previewer-easing path,.prism-previewer-easing.prism-previewer-easing line{stroke:hsl(230,8%,24%);}/*!sc*/ .prism-previewer-easing.prism-previewer-easing circle{fill:transparent;}/*!sc*/ -data-styled.g36[id="sc-global-bIpVyQ1"]{content:"sc-global-bIpVyQ1,"}/*!sc*/ +data-styled.g37[id="sc-global-bIpVyQ1"]{content:"sc-global-bIpVyQ1,"}/*!sc*/ .bUeHPW{position:relative;margin-bottom:112px;}/*!sc*/ @media (max-width:768px){.bUeHPW{padding:0 15px;}}/*!sc*/ -data-styled.g37[id="Body__Wrapper-sc-7hat30-0"]{content:"bUeHPW,"}/*!sc*/ +data-styled.g38[id="Body__Wrapper-sc-7hat30-0"]{content:"bUeHPW,"}/*!sc*/ .becwQW{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;margin-bottom:48px;}/*!sc*/ @media (max-width:768px){.becwQW{margin-bottom:80px;padding:0 12.8px;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}.becwQW > div:first-child{margin-bottom:12.8px;}}/*!sc*/ -data-styled.g38[id="Footer__ArticleButtonContainer-sc-zqxmks-0"]{content:"becwQW,"}/*!sc*/ +data-styled.g39[id="Footer__ArticleButtonContainer-sc-zqxmks-0"]{content:"becwQW,"}/*!sc*/ .gwQEOy{width:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;white-space:nowrap;}/*!sc*/ -data-styled.g39[id="Footer__ArrowFlexWrapper-sc-zqxmks-1"]{content:"gwQEOy,"}/*!sc*/ +data-styled.g40[id="Footer__ArrowFlexWrapper-sc-zqxmks-1"]{content:"gwQEOy,"}/*!sc*/ .jxGLes{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:flex-end;-webkit-box-align:flex-end;-ms-flex-align:flex-end;align-items:flex-end;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;overflow:hidden;}/*!sc*/ -data-styled.g40[id="Footer__ArticleButtonTextWrapper-sc-zqxmks-2"]{content:"jxGLes,"}/*!sc*/ +data-styled.g41[id="Footer__ArticleButtonTextWrapper-sc-zqxmks-2"]{content:"jxGLes,"}/*!sc*/ .bhYcVf{position:relative;left:0;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;font-size:24px;-webkit-flex-basis:24px;-ms-flex-preferred-size:24px;flex-basis:24px;-webkit-transition:left 0.3s;transition:left 0.3s;}/*!sc*/ -data-styled.g41[id="Footer__Arrow-sc-zqxmks-3"]{content:"bhYcVf,"}/*!sc*/ +data-styled.g42[id="Footer__Arrow-sc-zqxmks-3"]{content:"bhYcVf,"}/*!sc*/ .OEEnV{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;padding:20.8px 16px;max-width:250px;-webkit-flex-basis:250px;-ms-flex-preferred-size:250px;flex-basis:250px;font-size:17.6px;border-radius:5px;background-color:rgba(0,0,0,0.06);color:#191919;cursor:pointer;-webkit-transition:background-color 0.3s;transition:background-color 0.3s;}/*!sc*/ .OEEnV:hover{background-color:rgba(0,0,0,0.08);}/*!sc*/ .OEEnV .Footer__ArrowFlexWrapper-sc-zqxmks-1{-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}/*!sc*/ @@ -212,18 +212,18 @@ .cCfvHe .Footer__Arrow-sc-zqxmks-3{margin-left:16px;}/*!sc*/ .cCfvHe:hover .Footer__Arrow-sc-zqxmks-3{left:2px;}/*!sc*/ @media (max-width:768px){.cCfvHe{max-width:inherit;-webkit-flex-basis:inherit;-ms-flex-preferred-size:inherit;flex-basis:inherit;}}/*!sc*/ -data-styled.g42[id="Footer__ArticleButtonWrapper-sc-zqxmks-4"]{content:"OEEnV,cCfvHe,"}/*!sc*/ +data-styled.g43[id="Footer__ArticleButtonWrapper-sc-zqxmks-4"]{content:"OEEnV,cCfvHe,"}/*!sc*/ .hngxZd{margin-bottom:9.6px;font-size:12.8px;}/*!sc*/ -data-styled.g43[id="Footer__ArticleButtonLabel-sc-zqxmks-5"]{content:"hngxZd,"}/*!sc*/ +data-styled.g44[id="Footer__ArticleButtonLabel-sc-zqxmks-5"]{content:"hngxZd,"}/*!sc*/ .brczfR{padding:2px 0;width:100%;text-overflow:ellipsis;overflow:hidden;}/*!sc*/ -data-styled.g44[id="Footer__ArticleButtonTitle-sc-zqxmks-6"]{content:"brczfR,"}/*!sc*/ +data-styled.g45[id="Footer__ArticleButtonTitle-sc-zqxmks-6"]{content:"brczfR,"}/*!sc*/ @media (max-width:768px){.cRSPGb{padding:0 15px;}}/*!sc*/ -data-styled.g45[id="Footer__CommentWrapper-sc-zqxmks-7"]{content:"cRSPGb,"}/*!sc*/ +data-styled.g46[id="Footer__CommentWrapper-sc-zqxmks-7"]{content:"cRSPGb,"}/*!sc*/ .XZnrl{height:200px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}/*!sc*/ -data-styled.g46[id="Footer__SpinnerWrapper-sc-zqxmks-8"]{content:"XZnrl,"}/*!sc*/ +data-styled.g47[id="Footer__SpinnerWrapper-sc-zqxmks-8"]{content:"XZnrl,"}/*!sc*/ .yzdKT{height:0px;overflow:hidden;}/*!sc*/ .ivqWaF{height:auto;overflow:auto;}/*!sc*/ -data-styled.g47[id="Footer__HiddenWrapper-sc-zqxmks-9"]{content:"yzdKT,ivqWaF,"}/*!sc*/ +data-styled.g48[id="Footer__HiddenWrapper-sc-zqxmks-9"]{content:"yzdKT,ivqWaF,"}/*!sc*/ Cache overview

      Cache overview

      @MJ · 7 min read
      Created Date · 2024년 08월 21일 12:08
      Last Update · 2024년 10월 12일 21:10

      contents: 0-1. CA Intro

      Memory hierarchy

      Locality

      @@ -651,6 +651,6 @@

      Practice 2

      - \ No newline at end of file + \ No newline at end of file diff --git a/5-2. Improving cache performance/index.html b/5-2. Improving cache performance/index.html index f14ba34..ad79620 100644 --- a/5-2. Improving cache performance/index.html +++ b/5-2. Improving cache performance/index.html @@ -48,34 +48,34 @@ data-styled.g10[id="Footer__FooterWrapper-sc-1qfqdid-0"]{content:"gUOgk,"}/*!sc*/ .juihub{margin-top:0;margin-bottom:48px;border:none;border-bottom:1px solid #e9ecef;}/*!sc*/ .dsTUYW{margin-top:32px;margin-bottom:48px;border:none;border-bottom:1px solid #e9ecef;}/*!sc*/ -data-styled.g12[id="Divider-sc-1jz0jl-0"]{content:"juihub,dsTUYW,"}/*!sc*/ +data-styled.g18[id="Divider-sc-1jz0jl-0"]{content:"juihub,dsTUYW,"}/*!sc*/ .gJiIIX{margin-bottom:10px;word-break:break-all;}/*!sc*/ -data-styled.g13[id="TagList__TagListWrapper-sc-s1uz5f-0"]{content:"gJiIIX,"}/*!sc*/ +data-styled.g19[id="TagList__TagListWrapper-sc-s1uz5f-0"]{content:"gJiIIX,"}/*!sc*/ .OSwVR{display:inline-block;padding:9.6px 11.2px;margin-right:8px;margin-bottom:8px;border-radius:50px;background-color:#f1f3f5;color:#404040;-webkit-text-decoration:none;text-decoration:none;font-size:14.4px;-webkit-transition:all 0.2s;transition:all 0.2s;}/*!sc*/ .OSwVR:hover{background-color:#dee2e6;}/*!sc*/ -data-styled.g14[id="TagList__TagLink-sc-s1uz5f-1"]{content:"OSwVR,"}/*!sc*/ +data-styled.g20[id="TagList__TagLink-sc-s1uz5f-1"]{content:"OSwVR,"}/*!sc*/ .cVaGFY{margin-top:32px;}/*!sc*/ @media (max-width:768px){.cVaGFY{padding:0 15px;}}/*!sc*/ -data-styled.g20[id="Header__Wrapper-sc-1d3p6ct-0"]{content:"cVaGFY,"}/*!sc*/ +data-styled.g21[id="Header__Wrapper-sc-1d3p6ct-0"]{content:"cVaGFY,"}/*!sc*/ .dkDUwb{margin-bottom:25.6px;line-height:1.2;font-size:40px;font-weight:700;color:#191919;}/*!sc*/ -data-styled.g21[id="Header__ArticleTitle-sc-1d3p6ct-1"]{content:"dkDUwb,"}/*!sc*/ +data-styled.g22[id="Header__ArticleTitle-sc-1d3p6ct-1"]{content:"dkDUwb,"}/*!sc*/ .bUGEvg{margin-bottom:32px;font-size:16px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;gap:8px;}/*!sc*/ -data-styled.g22[id="Header__Information-sc-1d3p6ct-2"]{content:"bUGEvg,"}/*!sc*/ +data-styled.g23[id="Header__Information-sc-1d3p6ct-2"]{content:"bUGEvg,"}/*!sc*/ .ceAkMY{padding-bottom:15px;font-weight:700;color:#191919;}/*!sc*/ -data-styled.g23[id="Header__Author-sc-1d3p6ct-3"]{content:"ceAkMY,"}/*!sc*/ +data-styled.g24[id="Header__Author-sc-1d3p6ct-3"]{content:"ceAkMY,"}/*!sc*/ .kmPIwO{font-weight:300;color:#404040;}/*!sc*/ -data-styled.g24[id="Header__Date-sc-1d3p6ct-4"]{content:"kmPIwO,"}/*!sc*/ +data-styled.g25[id="Header__Date-sc-1d3p6ct-4"]{content:"kmPIwO,"}/*!sc*/ .kfiAnU{font-weight:300;color:#404040;}/*!sc*/ -data-styled.g25[id="Header__Property-sc-1d3p6ct-5"]{content:"kfiAnU,"}/*!sc*/ +data-styled.g26[id="Header__Property-sc-1d3p6ct-5"]{content:"kfiAnU,"}/*!sc*/ .jUHwIM{position:relative;opacity:0;-webkit-transition:0.35s all ease;transition:0.35s all ease;opacity:1;}/*!sc*/ -data-styled.g31[id="RevealOnScroll__StyledWrapper-sc-j177rt-0"]{content:"jUHwIM,"}/*!sc*/ +data-styled.g32[id="RevealOnScroll__StyledWrapper-sc-j177rt-0"]{content:"jUHwIM,"}/*!sc*/ .cKsOEP{position:absolute;opacity:1;left:100%;}/*!sc*/ .cKsOEP > div{padding-right:20px;padding-left:16px;margin-left:48px;position:relative;width:240px;max-height:calc(100% - 185px);overflow-y:auto;position:fixed;top:100px;}/*!sc*/ .cKsOEP > div::-webkit-scrollbar{width:3px;}/*!sc*/ .cKsOEP > div::-webkit-scrollbar-track{background:#f1f3f5;}/*!sc*/ .cKsOEP > div::-webkit-scrollbar-thumb{background:#ced4da;}/*!sc*/ @media (max-width:1300px){.cKsOEP{display:None;}}/*!sc*/ -data-styled.g32[id="Toc__TocWrapper-sc-1axrmab-0"]{content:"cKsOEP,"}/*!sc*/ +data-styled.g33[id="Toc__TocWrapper-sc-1axrmab-0"]{content:"cKsOEP,"}/*!sc*/ .erkpHX{font-size:16.7px;color:#191919;line-height:1.73;overflow:hidden;}/*!sc*/ .erkpHX h1:first-child,.erkpHX h2:first-child,.erkpHX h3:first-child,.erkpHX h4:first-child{margin-top:0;}/*!sc*/ .erkpHX > p,.erkpHX > ul,.erkpHX > ol,.erkpHX table,.erkpHX blockquote,.erkpHX pre,.erkpHX img,.erkpHX .katex-display{margin-top:0;margin-bottom:24px;word-break:break-all;}/*!sc*/ @@ -121,7 +121,7 @@ .erkpHX a[data-wiki-link="true"]:hover{-webkit-text-decoration:underline;text-decoration:underline;}/*!sc*/ .erkpHX a{padding:1.6px 0;color:#191919;}/*!sc*/ .erkpHX a:hover{background-color:none;color:#868e96;}/*!sc*/ -data-styled.g34[id="StyledMarkdown-sc-lqtcur-0"]{content:"erkpHX,"}/*!sc*/ +data-styled.g35[id="StyledMarkdown-sc-lqtcur-0"]{content:"erkpHX,"}/*!sc*/ code[class*="language-"],pre[class*="language-"]{margin-bottom:24px;font-size:14.5px;color:#ccc;background:none;font-family:"Bai Jamjuree",monospace;text-align:justify;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none;}/*!sc*/ pre[class*="language-"]{padding:1em;overflow:auto;}/*!sc*/ :not(pre) > code[class*="language-"]{padding:0.1em;border-radius:0.3em;white-space:normal;}/*!sc*/ @@ -187,19 +187,19 @@ .prism-previewer-angle.prism-previewer-angle circle,.prism-previewer-time.prism-previewer-time circle{stroke:hsl(230,8%,24%);stroke-opacity:1;}/*!sc*/ .prism-previewer-easing.prism-previewer-easing circle,.prism-previewer-easing.prism-previewer-easing path,.prism-previewer-easing.prism-previewer-easing line{stroke:hsl(230,8%,24%);}/*!sc*/ .prism-previewer-easing.prism-previewer-easing circle{fill:transparent;}/*!sc*/ -data-styled.g36[id="sc-global-bIpVyQ1"]{content:"sc-global-bIpVyQ1,"}/*!sc*/ +data-styled.g37[id="sc-global-bIpVyQ1"]{content:"sc-global-bIpVyQ1,"}/*!sc*/ .bUeHPW{position:relative;margin-bottom:112px;}/*!sc*/ @media (max-width:768px){.bUeHPW{padding:0 15px;}}/*!sc*/ -data-styled.g37[id="Body__Wrapper-sc-7hat30-0"]{content:"bUeHPW,"}/*!sc*/ +data-styled.g38[id="Body__Wrapper-sc-7hat30-0"]{content:"bUeHPW,"}/*!sc*/ .becwQW{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;margin-bottom:48px;}/*!sc*/ @media (max-width:768px){.becwQW{margin-bottom:80px;padding:0 12.8px;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}.becwQW > div:first-child{margin-bottom:12.8px;}}/*!sc*/ -data-styled.g38[id="Footer__ArticleButtonContainer-sc-zqxmks-0"]{content:"becwQW,"}/*!sc*/ +data-styled.g39[id="Footer__ArticleButtonContainer-sc-zqxmks-0"]{content:"becwQW,"}/*!sc*/ .gwQEOy{width:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;white-space:nowrap;}/*!sc*/ -data-styled.g39[id="Footer__ArrowFlexWrapper-sc-zqxmks-1"]{content:"gwQEOy,"}/*!sc*/ +data-styled.g40[id="Footer__ArrowFlexWrapper-sc-zqxmks-1"]{content:"gwQEOy,"}/*!sc*/ .jxGLes{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:flex-end;-webkit-box-align:flex-end;-ms-flex-align:flex-end;align-items:flex-end;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;overflow:hidden;}/*!sc*/ -data-styled.g40[id="Footer__ArticleButtonTextWrapper-sc-zqxmks-2"]{content:"jxGLes,"}/*!sc*/ +data-styled.g41[id="Footer__ArticleButtonTextWrapper-sc-zqxmks-2"]{content:"jxGLes,"}/*!sc*/ .bhYcVf{position:relative;left:0;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;font-size:24px;-webkit-flex-basis:24px;-ms-flex-preferred-size:24px;flex-basis:24px;-webkit-transition:left 0.3s;transition:left 0.3s;}/*!sc*/ -data-styled.g41[id="Footer__Arrow-sc-zqxmks-3"]{content:"bhYcVf,"}/*!sc*/ +data-styled.g42[id="Footer__Arrow-sc-zqxmks-3"]{content:"bhYcVf,"}/*!sc*/ .OEEnV{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;padding:20.8px 16px;max-width:250px;-webkit-flex-basis:250px;-ms-flex-preferred-size:250px;flex-basis:250px;font-size:17.6px;border-radius:5px;background-color:rgba(0,0,0,0.06);color:#191919;cursor:pointer;-webkit-transition:background-color 0.3s;transition:background-color 0.3s;}/*!sc*/ .OEEnV:hover{background-color:rgba(0,0,0,0.08);}/*!sc*/ .OEEnV .Footer__ArrowFlexWrapper-sc-zqxmks-1{-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}/*!sc*/ @@ -214,18 +214,18 @@ .cCfvHe .Footer__Arrow-sc-zqxmks-3{margin-left:16px;}/*!sc*/ .cCfvHe:hover .Footer__Arrow-sc-zqxmks-3{left:2px;}/*!sc*/ @media (max-width:768px){.cCfvHe{max-width:inherit;-webkit-flex-basis:inherit;-ms-flex-preferred-size:inherit;flex-basis:inherit;}}/*!sc*/ -data-styled.g42[id="Footer__ArticleButtonWrapper-sc-zqxmks-4"]{content:"OEEnV,cCfvHe,"}/*!sc*/ +data-styled.g43[id="Footer__ArticleButtonWrapper-sc-zqxmks-4"]{content:"OEEnV,cCfvHe,"}/*!sc*/ .hngxZd{margin-bottom:9.6px;font-size:12.8px;}/*!sc*/ -data-styled.g43[id="Footer__ArticleButtonLabel-sc-zqxmks-5"]{content:"hngxZd,"}/*!sc*/ +data-styled.g44[id="Footer__ArticleButtonLabel-sc-zqxmks-5"]{content:"hngxZd,"}/*!sc*/ .brczfR{padding:2px 0;width:100%;text-overflow:ellipsis;overflow:hidden;}/*!sc*/ -data-styled.g44[id="Footer__ArticleButtonTitle-sc-zqxmks-6"]{content:"brczfR,"}/*!sc*/ +data-styled.g45[id="Footer__ArticleButtonTitle-sc-zqxmks-6"]{content:"brczfR,"}/*!sc*/ @media (max-width:768px){.cRSPGb{padding:0 15px;}}/*!sc*/ -data-styled.g45[id="Footer__CommentWrapper-sc-zqxmks-7"]{content:"cRSPGb,"}/*!sc*/ +data-styled.g46[id="Footer__CommentWrapper-sc-zqxmks-7"]{content:"cRSPGb,"}/*!sc*/ .XZnrl{height:200px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}/*!sc*/ -data-styled.g46[id="Footer__SpinnerWrapper-sc-zqxmks-8"]{content:"XZnrl,"}/*!sc*/ +data-styled.g47[id="Footer__SpinnerWrapper-sc-zqxmks-8"]{content:"XZnrl,"}/*!sc*/ .yzdKT{height:0px;overflow:hidden;}/*!sc*/ .ivqWaF{height:auto;overflow:auto;}/*!sc*/ -data-styled.g47[id="Footer__HiddenWrapper-sc-zqxmks-9"]{content:"yzdKT,ivqWaF,"}/*!sc*/ +data-styled.g48[id="Footer__HiddenWrapper-sc-zqxmks-9"]{content:"yzdKT,ivqWaF,"}/*!sc*/ Improving cache performance

      Improving cache performance

      @MJ · 3 min read
      Created Date · 2024년 08월 22일 12:08
      Last Update · 2024년 10월 12일 21:10

      contents: 0-1. CA Intro

      Associative caches

      Support more flexible placement of blocks @@ -418,6 +418,6 @@

      Therefore, in multilevel caches,

      - \ No newline at end of file + \ No newline at end of file diff --git a/5-3. Virtual memory Part 1/index.html b/5-3. Virtual memory Part 1/index.html index 396847f..58d2b2b 100644 --- a/5-3. Virtual memory Part 1/index.html +++ b/5-3. Virtual memory Part 1/index.html @@ -46,34 +46,34 @@ data-styled.g10[id="Footer__FooterWrapper-sc-1qfqdid-0"]{content:"gUOgk,"}/*!sc*/ .juihub{margin-top:0;margin-bottom:48px;border:none;border-bottom:1px solid #e9ecef;}/*!sc*/ .dsTUYW{margin-top:32px;margin-bottom:48px;border:none;border-bottom:1px solid #e9ecef;}/*!sc*/ -data-styled.g12[id="Divider-sc-1jz0jl-0"]{content:"juihub,dsTUYW,"}/*!sc*/ +data-styled.g18[id="Divider-sc-1jz0jl-0"]{content:"juihub,dsTUYW,"}/*!sc*/ .gJiIIX{margin-bottom:10px;word-break:break-all;}/*!sc*/ -data-styled.g13[id="TagList__TagListWrapper-sc-s1uz5f-0"]{content:"gJiIIX,"}/*!sc*/ +data-styled.g19[id="TagList__TagListWrapper-sc-s1uz5f-0"]{content:"gJiIIX,"}/*!sc*/ .OSwVR{display:inline-block;padding:9.6px 11.2px;margin-right:8px;margin-bottom:8px;border-radius:50px;background-color:#f1f3f5;color:#404040;-webkit-text-decoration:none;text-decoration:none;font-size:14.4px;-webkit-transition:all 0.2s;transition:all 0.2s;}/*!sc*/ .OSwVR:hover{background-color:#dee2e6;}/*!sc*/ -data-styled.g14[id="TagList__TagLink-sc-s1uz5f-1"]{content:"OSwVR,"}/*!sc*/ +data-styled.g20[id="TagList__TagLink-sc-s1uz5f-1"]{content:"OSwVR,"}/*!sc*/ .cVaGFY{margin-top:32px;}/*!sc*/ @media (max-width:768px){.cVaGFY{padding:0 15px;}}/*!sc*/ -data-styled.g20[id="Header__Wrapper-sc-1d3p6ct-0"]{content:"cVaGFY,"}/*!sc*/ +data-styled.g21[id="Header__Wrapper-sc-1d3p6ct-0"]{content:"cVaGFY,"}/*!sc*/ .dkDUwb{margin-bottom:25.6px;line-height:1.2;font-size:40px;font-weight:700;color:#191919;}/*!sc*/ -data-styled.g21[id="Header__ArticleTitle-sc-1d3p6ct-1"]{content:"dkDUwb,"}/*!sc*/ +data-styled.g22[id="Header__ArticleTitle-sc-1d3p6ct-1"]{content:"dkDUwb,"}/*!sc*/ .bUGEvg{margin-bottom:32px;font-size:16px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;gap:8px;}/*!sc*/ -data-styled.g22[id="Header__Information-sc-1d3p6ct-2"]{content:"bUGEvg,"}/*!sc*/ +data-styled.g23[id="Header__Information-sc-1d3p6ct-2"]{content:"bUGEvg,"}/*!sc*/ .ceAkMY{padding-bottom:15px;font-weight:700;color:#191919;}/*!sc*/ -data-styled.g23[id="Header__Author-sc-1d3p6ct-3"]{content:"ceAkMY,"}/*!sc*/ +data-styled.g24[id="Header__Author-sc-1d3p6ct-3"]{content:"ceAkMY,"}/*!sc*/ .kmPIwO{font-weight:300;color:#404040;}/*!sc*/ -data-styled.g24[id="Header__Date-sc-1d3p6ct-4"]{content:"kmPIwO,"}/*!sc*/ +data-styled.g25[id="Header__Date-sc-1d3p6ct-4"]{content:"kmPIwO,"}/*!sc*/ .kfiAnU{font-weight:300;color:#404040;}/*!sc*/ -data-styled.g25[id="Header__Property-sc-1d3p6ct-5"]{content:"kfiAnU,"}/*!sc*/ +data-styled.g26[id="Header__Property-sc-1d3p6ct-5"]{content:"kfiAnU,"}/*!sc*/ .jUHwIM{position:relative;opacity:0;-webkit-transition:0.35s all ease;transition:0.35s all ease;opacity:1;}/*!sc*/ -data-styled.g31[id="RevealOnScroll__StyledWrapper-sc-j177rt-0"]{content:"jUHwIM,"}/*!sc*/ +data-styled.g32[id="RevealOnScroll__StyledWrapper-sc-j177rt-0"]{content:"jUHwIM,"}/*!sc*/ .cKsOEP{position:absolute;opacity:1;left:100%;}/*!sc*/ .cKsOEP > div{padding-right:20px;padding-left:16px;margin-left:48px;position:relative;width:240px;max-height:calc(100% - 185px);overflow-y:auto;position:fixed;top:100px;}/*!sc*/ .cKsOEP > div::-webkit-scrollbar{width:3px;}/*!sc*/ .cKsOEP > div::-webkit-scrollbar-track{background:#f1f3f5;}/*!sc*/ .cKsOEP > div::-webkit-scrollbar-thumb{background:#ced4da;}/*!sc*/ @media (max-width:1300px){.cKsOEP{display:None;}}/*!sc*/ -data-styled.g32[id="Toc__TocWrapper-sc-1axrmab-0"]{content:"cKsOEP,"}/*!sc*/ +data-styled.g33[id="Toc__TocWrapper-sc-1axrmab-0"]{content:"cKsOEP,"}/*!sc*/ .erkpHX{font-size:16.7px;color:#191919;line-height:1.73;overflow:hidden;}/*!sc*/ .erkpHX h1:first-child,.erkpHX h2:first-child,.erkpHX h3:first-child,.erkpHX h4:first-child{margin-top:0;}/*!sc*/ .erkpHX > p,.erkpHX > ul,.erkpHX > ol,.erkpHX table,.erkpHX blockquote,.erkpHX pre,.erkpHX img,.erkpHX .katex-display{margin-top:0;margin-bottom:24px;word-break:break-all;}/*!sc*/ @@ -119,7 +119,7 @@ .erkpHX a[data-wiki-link="true"]:hover{-webkit-text-decoration:underline;text-decoration:underline;}/*!sc*/ .erkpHX a{padding:1.6px 0;color:#191919;}/*!sc*/ .erkpHX a:hover{background-color:none;color:#868e96;}/*!sc*/ -data-styled.g34[id="StyledMarkdown-sc-lqtcur-0"]{content:"erkpHX,"}/*!sc*/ +data-styled.g35[id="StyledMarkdown-sc-lqtcur-0"]{content:"erkpHX,"}/*!sc*/ code[class*="language-"],pre[class*="language-"]{margin-bottom:24px;font-size:14.5px;color:#ccc;background:none;font-family:"Bai Jamjuree",monospace;text-align:justify;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none;}/*!sc*/ pre[class*="language-"]{padding:1em;overflow:auto;}/*!sc*/ :not(pre) > code[class*="language-"]{padding:0.1em;border-radius:0.3em;white-space:normal;}/*!sc*/ @@ -185,19 +185,19 @@ .prism-previewer-angle.prism-previewer-angle circle,.prism-previewer-time.prism-previewer-time circle{stroke:hsl(230,8%,24%);stroke-opacity:1;}/*!sc*/ .prism-previewer-easing.prism-previewer-easing circle,.prism-previewer-easing.prism-previewer-easing path,.prism-previewer-easing.prism-previewer-easing line{stroke:hsl(230,8%,24%);}/*!sc*/ .prism-previewer-easing.prism-previewer-easing circle{fill:transparent;}/*!sc*/ -data-styled.g36[id="sc-global-bIpVyQ1"]{content:"sc-global-bIpVyQ1,"}/*!sc*/ +data-styled.g37[id="sc-global-bIpVyQ1"]{content:"sc-global-bIpVyQ1,"}/*!sc*/ .bUeHPW{position:relative;margin-bottom:112px;}/*!sc*/ @media (max-width:768px){.bUeHPW{padding:0 15px;}}/*!sc*/ -data-styled.g37[id="Body__Wrapper-sc-7hat30-0"]{content:"bUeHPW,"}/*!sc*/ +data-styled.g38[id="Body__Wrapper-sc-7hat30-0"]{content:"bUeHPW,"}/*!sc*/ .becwQW{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;margin-bottom:48px;}/*!sc*/ @media (max-width:768px){.becwQW{margin-bottom:80px;padding:0 12.8px;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}.becwQW > div:first-child{margin-bottom:12.8px;}}/*!sc*/ -data-styled.g38[id="Footer__ArticleButtonContainer-sc-zqxmks-0"]{content:"becwQW,"}/*!sc*/ +data-styled.g39[id="Footer__ArticleButtonContainer-sc-zqxmks-0"]{content:"becwQW,"}/*!sc*/ .gwQEOy{width:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;white-space:nowrap;}/*!sc*/ -data-styled.g39[id="Footer__ArrowFlexWrapper-sc-zqxmks-1"]{content:"gwQEOy,"}/*!sc*/ +data-styled.g40[id="Footer__ArrowFlexWrapper-sc-zqxmks-1"]{content:"gwQEOy,"}/*!sc*/ .jxGLes{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:flex-end;-webkit-box-align:flex-end;-ms-flex-align:flex-end;align-items:flex-end;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;overflow:hidden;}/*!sc*/ -data-styled.g40[id="Footer__ArticleButtonTextWrapper-sc-zqxmks-2"]{content:"jxGLes,"}/*!sc*/ +data-styled.g41[id="Footer__ArticleButtonTextWrapper-sc-zqxmks-2"]{content:"jxGLes,"}/*!sc*/ .bhYcVf{position:relative;left:0;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;font-size:24px;-webkit-flex-basis:24px;-ms-flex-preferred-size:24px;flex-basis:24px;-webkit-transition:left 0.3s;transition:left 0.3s;}/*!sc*/ -data-styled.g41[id="Footer__Arrow-sc-zqxmks-3"]{content:"bhYcVf,"}/*!sc*/ +data-styled.g42[id="Footer__Arrow-sc-zqxmks-3"]{content:"bhYcVf,"}/*!sc*/ .OEEnV{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;padding:20.8px 16px;max-width:250px;-webkit-flex-basis:250px;-ms-flex-preferred-size:250px;flex-basis:250px;font-size:17.6px;border-radius:5px;background-color:rgba(0,0,0,0.06);color:#191919;cursor:pointer;-webkit-transition:background-color 0.3s;transition:background-color 0.3s;}/*!sc*/ .OEEnV:hover{background-color:rgba(0,0,0,0.08);}/*!sc*/ .OEEnV .Footer__ArrowFlexWrapper-sc-zqxmks-1{-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}/*!sc*/ @@ -212,18 +212,18 @@ .cCfvHe .Footer__Arrow-sc-zqxmks-3{margin-left:16px;}/*!sc*/ .cCfvHe:hover .Footer__Arrow-sc-zqxmks-3{left:2px;}/*!sc*/ @media (max-width:768px){.cCfvHe{max-width:inherit;-webkit-flex-basis:inherit;-ms-flex-preferred-size:inherit;flex-basis:inherit;}}/*!sc*/ -data-styled.g42[id="Footer__ArticleButtonWrapper-sc-zqxmks-4"]{content:"OEEnV,cCfvHe,"}/*!sc*/ +data-styled.g43[id="Footer__ArticleButtonWrapper-sc-zqxmks-4"]{content:"OEEnV,cCfvHe,"}/*!sc*/ .hngxZd{margin-bottom:9.6px;font-size:12.8px;}/*!sc*/ -data-styled.g43[id="Footer__ArticleButtonLabel-sc-zqxmks-5"]{content:"hngxZd,"}/*!sc*/ +data-styled.g44[id="Footer__ArticleButtonLabel-sc-zqxmks-5"]{content:"hngxZd,"}/*!sc*/ .brczfR{padding:2px 0;width:100%;text-overflow:ellipsis;overflow:hidden;}/*!sc*/ -data-styled.g44[id="Footer__ArticleButtonTitle-sc-zqxmks-6"]{content:"brczfR,"}/*!sc*/ +data-styled.g45[id="Footer__ArticleButtonTitle-sc-zqxmks-6"]{content:"brczfR,"}/*!sc*/ @media (max-width:768px){.cRSPGb{padding:0 15px;}}/*!sc*/ -data-styled.g45[id="Footer__CommentWrapper-sc-zqxmks-7"]{content:"cRSPGb,"}/*!sc*/ +data-styled.g46[id="Footer__CommentWrapper-sc-zqxmks-7"]{content:"cRSPGb,"}/*!sc*/ .XZnrl{height:200px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}/*!sc*/ -data-styled.g46[id="Footer__SpinnerWrapper-sc-zqxmks-8"]{content:"XZnrl,"}/*!sc*/ +data-styled.g47[id="Footer__SpinnerWrapper-sc-zqxmks-8"]{content:"XZnrl,"}/*!sc*/ .yzdKT{height:0px;overflow:hidden;}/*!sc*/ .ivqWaF{height:auto;overflow:auto;}/*!sc*/ -data-styled.g47[id="Footer__HiddenWrapper-sc-zqxmks-9"]{content:"yzdKT,ivqWaF,"}/*!sc*/ +data-styled.g48[id="Footer__HiddenWrapper-sc-zqxmks-9"]{content:"yzdKT,ivqWaF,"}/*!sc*/ Virtual memory Part 1

      Virtual memory Part 1

      @MJ · 5 min read
      Created Date · 2024년 08월 23일 12:08
      Last Update · 2024년 10월 12일 22:10

      contents: 0-1. CA Intro

      Main challenge in using main memory

      In multi-process environments, multiple processes share main memory at the same time.

      @@ -555,6 +555,6 @@

      Physically-addressed cache VS virtually-addressed cache

      - \ No newline at end of file + \ No newline at end of file diff --git a/5-4. Virtual memory Part 2/index.html b/5-4. Virtual memory Part 2/index.html index 34c2589..10e7147 100644 --- a/5-4. Virtual memory Part 2/index.html +++ b/5-4. Virtual memory Part 2/index.html @@ -46,34 +46,34 @@ data-styled.g10[id="Footer__FooterWrapper-sc-1qfqdid-0"]{content:"gUOgk,"}/*!sc*/ .juihub{margin-top:0;margin-bottom:48px;border:none;border-bottom:1px solid #e9ecef;}/*!sc*/ .dsTUYW{margin-top:32px;margin-bottom:48px;border:none;border-bottom:1px solid #e9ecef;}/*!sc*/ -data-styled.g12[id="Divider-sc-1jz0jl-0"]{content:"juihub,dsTUYW,"}/*!sc*/ +data-styled.g18[id="Divider-sc-1jz0jl-0"]{content:"juihub,dsTUYW,"}/*!sc*/ .gJiIIX{margin-bottom:10px;word-break:break-all;}/*!sc*/ -data-styled.g13[id="TagList__TagListWrapper-sc-s1uz5f-0"]{content:"gJiIIX,"}/*!sc*/ +data-styled.g19[id="TagList__TagListWrapper-sc-s1uz5f-0"]{content:"gJiIIX,"}/*!sc*/ .OSwVR{display:inline-block;padding:9.6px 11.2px;margin-right:8px;margin-bottom:8px;border-radius:50px;background-color:#f1f3f5;color:#404040;-webkit-text-decoration:none;text-decoration:none;font-size:14.4px;-webkit-transition:all 0.2s;transition:all 0.2s;}/*!sc*/ .OSwVR:hover{background-color:#dee2e6;}/*!sc*/ -data-styled.g14[id="TagList__TagLink-sc-s1uz5f-1"]{content:"OSwVR,"}/*!sc*/ +data-styled.g20[id="TagList__TagLink-sc-s1uz5f-1"]{content:"OSwVR,"}/*!sc*/ .cVaGFY{margin-top:32px;}/*!sc*/ @media (max-width:768px){.cVaGFY{padding:0 15px;}}/*!sc*/ -data-styled.g20[id="Header__Wrapper-sc-1d3p6ct-0"]{content:"cVaGFY,"}/*!sc*/ +data-styled.g21[id="Header__Wrapper-sc-1d3p6ct-0"]{content:"cVaGFY,"}/*!sc*/ .dkDUwb{margin-bottom:25.6px;line-height:1.2;font-size:40px;font-weight:700;color:#191919;}/*!sc*/ -data-styled.g21[id="Header__ArticleTitle-sc-1d3p6ct-1"]{content:"dkDUwb,"}/*!sc*/ +data-styled.g22[id="Header__ArticleTitle-sc-1d3p6ct-1"]{content:"dkDUwb,"}/*!sc*/ .bUGEvg{margin-bottom:32px;font-size:16px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;gap:8px;}/*!sc*/ -data-styled.g22[id="Header__Information-sc-1d3p6ct-2"]{content:"bUGEvg,"}/*!sc*/ +data-styled.g23[id="Header__Information-sc-1d3p6ct-2"]{content:"bUGEvg,"}/*!sc*/ .ceAkMY{padding-bottom:15px;font-weight:700;color:#191919;}/*!sc*/ -data-styled.g23[id="Header__Author-sc-1d3p6ct-3"]{content:"ceAkMY,"}/*!sc*/ +data-styled.g24[id="Header__Author-sc-1d3p6ct-3"]{content:"ceAkMY,"}/*!sc*/ .kmPIwO{font-weight:300;color:#404040;}/*!sc*/ -data-styled.g24[id="Header__Date-sc-1d3p6ct-4"]{content:"kmPIwO,"}/*!sc*/ +data-styled.g25[id="Header__Date-sc-1d3p6ct-4"]{content:"kmPIwO,"}/*!sc*/ .kfiAnU{font-weight:300;color:#404040;}/*!sc*/ -data-styled.g25[id="Header__Property-sc-1d3p6ct-5"]{content:"kfiAnU,"}/*!sc*/ +data-styled.g26[id="Header__Property-sc-1d3p6ct-5"]{content:"kfiAnU,"}/*!sc*/ .jUHwIM{position:relative;opacity:0;-webkit-transition:0.35s all ease;transition:0.35s all ease;opacity:1;}/*!sc*/ -data-styled.g31[id="RevealOnScroll__StyledWrapper-sc-j177rt-0"]{content:"jUHwIM,"}/*!sc*/ +data-styled.g32[id="RevealOnScroll__StyledWrapper-sc-j177rt-0"]{content:"jUHwIM,"}/*!sc*/ .cKsOEP{position:absolute;opacity:1;left:100%;}/*!sc*/ .cKsOEP > div{padding-right:20px;padding-left:16px;margin-left:48px;position:relative;width:240px;max-height:calc(100% - 185px);overflow-y:auto;position:fixed;top:100px;}/*!sc*/ .cKsOEP > div::-webkit-scrollbar{width:3px;}/*!sc*/ .cKsOEP > div::-webkit-scrollbar-track{background:#f1f3f5;}/*!sc*/ .cKsOEP > div::-webkit-scrollbar-thumb{background:#ced4da;}/*!sc*/ @media (max-width:1300px){.cKsOEP{display:None;}}/*!sc*/ -data-styled.g32[id="Toc__TocWrapper-sc-1axrmab-0"]{content:"cKsOEP,"}/*!sc*/ +data-styled.g33[id="Toc__TocWrapper-sc-1axrmab-0"]{content:"cKsOEP,"}/*!sc*/ .erkpHX{font-size:16.7px;color:#191919;line-height:1.73;overflow:hidden;}/*!sc*/ .erkpHX h1:first-child,.erkpHX h2:first-child,.erkpHX h3:first-child,.erkpHX h4:first-child{margin-top:0;}/*!sc*/ .erkpHX > p,.erkpHX > ul,.erkpHX > ol,.erkpHX table,.erkpHX blockquote,.erkpHX pre,.erkpHX img,.erkpHX .katex-display{margin-top:0;margin-bottom:24px;word-break:break-all;}/*!sc*/ @@ -119,7 +119,7 @@ .erkpHX a[data-wiki-link="true"]:hover{-webkit-text-decoration:underline;text-decoration:underline;}/*!sc*/ .erkpHX a{padding:1.6px 0;color:#191919;}/*!sc*/ .erkpHX a:hover{background-color:none;color:#868e96;}/*!sc*/ -data-styled.g34[id="StyledMarkdown-sc-lqtcur-0"]{content:"erkpHX,"}/*!sc*/ +data-styled.g35[id="StyledMarkdown-sc-lqtcur-0"]{content:"erkpHX,"}/*!sc*/ code[class*="language-"],pre[class*="language-"]{margin-bottom:24px;font-size:14.5px;color:#ccc;background:none;font-family:"Bai Jamjuree",monospace;text-align:justify;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none;}/*!sc*/ pre[class*="language-"]{padding:1em;overflow:auto;}/*!sc*/ :not(pre) > code[class*="language-"]{padding:0.1em;border-radius:0.3em;white-space:normal;}/*!sc*/ @@ -185,19 +185,19 @@ .prism-previewer-angle.prism-previewer-angle circle,.prism-previewer-time.prism-previewer-time circle{stroke:hsl(230,8%,24%);stroke-opacity:1;}/*!sc*/ .prism-previewer-easing.prism-previewer-easing circle,.prism-previewer-easing.prism-previewer-easing path,.prism-previewer-easing.prism-previewer-easing line{stroke:hsl(230,8%,24%);}/*!sc*/ .prism-previewer-easing.prism-previewer-easing circle{fill:transparent;}/*!sc*/ -data-styled.g36[id="sc-global-bIpVyQ1"]{content:"sc-global-bIpVyQ1,"}/*!sc*/ +data-styled.g37[id="sc-global-bIpVyQ1"]{content:"sc-global-bIpVyQ1,"}/*!sc*/ .bUeHPW{position:relative;margin-bottom:112px;}/*!sc*/ @media (max-width:768px){.bUeHPW{padding:0 15px;}}/*!sc*/ -data-styled.g37[id="Body__Wrapper-sc-7hat30-0"]{content:"bUeHPW,"}/*!sc*/ +data-styled.g38[id="Body__Wrapper-sc-7hat30-0"]{content:"bUeHPW,"}/*!sc*/ .becwQW{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;margin-bottom:48px;}/*!sc*/ @media (max-width:768px){.becwQW{margin-bottom:80px;padding:0 12.8px;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}.becwQW > div:first-child{margin-bottom:12.8px;}}/*!sc*/ -data-styled.g38[id="Footer__ArticleButtonContainer-sc-zqxmks-0"]{content:"becwQW,"}/*!sc*/ +data-styled.g39[id="Footer__ArticleButtonContainer-sc-zqxmks-0"]{content:"becwQW,"}/*!sc*/ .gwQEOy{width:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;white-space:nowrap;}/*!sc*/ -data-styled.g39[id="Footer__ArrowFlexWrapper-sc-zqxmks-1"]{content:"gwQEOy,"}/*!sc*/ +data-styled.g40[id="Footer__ArrowFlexWrapper-sc-zqxmks-1"]{content:"gwQEOy,"}/*!sc*/ .jxGLes{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:flex-end;-webkit-box-align:flex-end;-ms-flex-align:flex-end;align-items:flex-end;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;overflow:hidden;}/*!sc*/ -data-styled.g40[id="Footer__ArticleButtonTextWrapper-sc-zqxmks-2"]{content:"jxGLes,"}/*!sc*/ +data-styled.g41[id="Footer__ArticleButtonTextWrapper-sc-zqxmks-2"]{content:"jxGLes,"}/*!sc*/ .bhYcVf{position:relative;left:0;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;font-size:24px;-webkit-flex-basis:24px;-ms-flex-preferred-size:24px;flex-basis:24px;-webkit-transition:left 0.3s;transition:left 0.3s;}/*!sc*/ -data-styled.g41[id="Footer__Arrow-sc-zqxmks-3"]{content:"bhYcVf,"}/*!sc*/ +data-styled.g42[id="Footer__Arrow-sc-zqxmks-3"]{content:"bhYcVf,"}/*!sc*/ .OEEnV{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;padding:20.8px 16px;max-width:250px;-webkit-flex-basis:250px;-ms-flex-preferred-size:250px;flex-basis:250px;font-size:17.6px;border-radius:5px;background-color:rgba(0,0,0,0.06);color:#191919;cursor:pointer;-webkit-transition:background-color 0.3s;transition:background-color 0.3s;}/*!sc*/ .OEEnV:hover{background-color:rgba(0,0,0,0.08);}/*!sc*/ .OEEnV .Footer__ArrowFlexWrapper-sc-zqxmks-1{-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}/*!sc*/ @@ -212,18 +212,18 @@ .cCfvHe .Footer__Arrow-sc-zqxmks-3{margin-left:16px;}/*!sc*/ .cCfvHe:hover .Footer__Arrow-sc-zqxmks-3{left:2px;}/*!sc*/ @media (max-width:768px){.cCfvHe{max-width:inherit;-webkit-flex-basis:inherit;-ms-flex-preferred-size:inherit;flex-basis:inherit;}}/*!sc*/ -data-styled.g42[id="Footer__ArticleButtonWrapper-sc-zqxmks-4"]{content:"OEEnV,cCfvHe,"}/*!sc*/ +data-styled.g43[id="Footer__ArticleButtonWrapper-sc-zqxmks-4"]{content:"OEEnV,cCfvHe,"}/*!sc*/ .hngxZd{margin-bottom:9.6px;font-size:12.8px;}/*!sc*/ -data-styled.g43[id="Footer__ArticleButtonLabel-sc-zqxmks-5"]{content:"hngxZd,"}/*!sc*/ +data-styled.g44[id="Footer__ArticleButtonLabel-sc-zqxmks-5"]{content:"hngxZd,"}/*!sc*/ .brczfR{padding:2px 0;width:100%;text-overflow:ellipsis;overflow:hidden;}/*!sc*/ -data-styled.g44[id="Footer__ArticleButtonTitle-sc-zqxmks-6"]{content:"brczfR,"}/*!sc*/ +data-styled.g45[id="Footer__ArticleButtonTitle-sc-zqxmks-6"]{content:"brczfR,"}/*!sc*/ @media (max-width:768px){.cRSPGb{padding:0 15px;}}/*!sc*/ -data-styled.g45[id="Footer__CommentWrapper-sc-zqxmks-7"]{content:"cRSPGb,"}/*!sc*/ +data-styled.g46[id="Footer__CommentWrapper-sc-zqxmks-7"]{content:"cRSPGb,"}/*!sc*/ .XZnrl{height:200px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}/*!sc*/ -data-styled.g46[id="Footer__SpinnerWrapper-sc-zqxmks-8"]{content:"XZnrl,"}/*!sc*/ +data-styled.g47[id="Footer__SpinnerWrapper-sc-zqxmks-8"]{content:"XZnrl,"}/*!sc*/ .yzdKT{height:0px;overflow:hidden;}/*!sc*/ .ivqWaF{height:auto;overflow:auto;}/*!sc*/ -data-styled.g47[id="Footer__HiddenWrapper-sc-zqxmks-9"]{content:"yzdKT,ivqWaF,"}/*!sc*/ +data-styled.g48[id="Footer__HiddenWrapper-sc-zqxmks-9"]{content:"yzdKT,ivqWaF,"}/*!sc*/ Virtual memory Part 2

      Virtual memory Part 2

      @MJ · 1 min read
      Created Date · 2024년 08월 24일 12:08
      Last Update · 2024년 10월 12일 22:10

      contents: 0-1. CA Intro

      Integrating TLB, Cache, Memory

      Aliasing in virtually addressed cache

      @@ -324,6 +324,6 @@

      Typical multi-level cache setup with TLB

      - \ No newline at end of file + \ No newline at end of file diff --git a/98746260b83f1504b91525807bb027b2132b1e06-2952f59d70525a6adf5b.js b/98746260b83f1504b91525807bb027b2132b1e06-2952f59d70525a6adf5b.js new file mode 100644 index 0000000..c8deb84 --- /dev/null +++ b/98746260b83f1504b91525807bb027b2132b1e06-2952f59d70525a6adf5b.js @@ -0,0 +1,26 @@ +/*! For license information please see 98746260b83f1504b91525807bb027b2132b1e06-2952f59d70525a6adf5b.js.LICENSE.txt */ +(self.webpackChunkgatsby_starter_hoodie=self.webpackChunkgatsby_starter_hoodie||[]).push([[554],{6050:function(e,t){"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=window,o=n.ShadowRoot&&(void 0===n.ShadyCSS||n.ShadyCSS.nativeShadow)&&"adoptedStyleSheets"in Document.prototype&&"replace"in CSSStyleSheet.prototype,r=Symbol(),i=new WeakMap;let a=class{constructor(e,t,n){if(this._$cssResult$=!0,n!==r)throw Error("CSSResult is not constructable. Use `unsafeCSS` or `css` instead.");this.cssText=e,this.t=t}get styleSheet(){let e=this.o;const t=this.t;if(o&&void 0===e){const n=void 0!==t&&1===t.length;n&&(e=i.get(t)),void 0===e&&((this.o=e=new CSSStyleSheet).replaceSync(this.cssText),n&&i.set(t,e))}return e}toString(){return this.cssText}};const s=o?e=>e:e=>e instanceof CSSStyleSheet?(e=>{let t="";for(const n of e.cssRules)t+=n.cssText;return(e=>new a("string"==typeof e?e:e+"",void 0,r))(t)})(e):e;var l;const c=window,u=c.trustedTypes,d=u?u.emptyScript:"",p=c.reactiveElementPolyfillSupport,h={toAttribute(e,t){switch(t){case Boolean:e=e?d:null;break;case Object:case Array:e=null==e?e:JSON.stringify(e)}return e},fromAttribute(e,t){let n=e;switch(t){case Boolean:n=null!==e;break;case Number:n=null===e?null:Number(e);break;case Object:case Array:try{n=JSON.parse(e)}catch{n=null}}return n}},f=(e,t)=>t!==e&&(t==t||e==e),m={attribute:!0,type:String,converter:h,reflect:!1,hasChanged:f},g="finalized";let v=class extends HTMLElement{constructor(){super(),this._$Ei=new Map,this.isUpdatePending=!1,this.hasUpdated=!1,this._$El=null,this.u()}static addInitializer(e){var t;this.finalize(),(null!==(t=this.h)&&void 0!==t?t:this.h=[]).push(e)}static get observedAttributes(){this.finalize();const e=[];return this.elementProperties.forEach(((t,n)=>{const o=this._$Ep(n,t);void 0!==o&&(this._$Ev.set(o,n),e.push(o))})),e}static createProperty(e,t=m){if(t.state&&(t.attribute=!1),this.finalize(),this.elementProperties.set(e,t),!t.noAccessor&&!this.prototype.hasOwnProperty(e)){const n="symbol"==typeof e?Symbol():"__"+e,o=this.getPropertyDescriptor(e,n,t);void 0!==o&&Object.defineProperty(this.prototype,e,o)}}static getPropertyDescriptor(e,t,n){return{get(){return this[t]},set(o){const r=this[e];this[t]=o,this.requestUpdate(e,r,n)},configurable:!0,enumerable:!0}}static getPropertyOptions(e){return this.elementProperties.get(e)||m}static finalize(){if(this.hasOwnProperty(g))return!1;this[g]=!0;const e=Object.getPrototypeOf(this);if(e.finalize(),void 0!==e.h&&(this.h=[...e.h]),this.elementProperties=new Map(e.elementProperties),this._$Ev=new Map,this.hasOwnProperty("properties")){const e=this.properties,t=[...Object.getOwnPropertyNames(e),...Object.getOwnPropertySymbols(e)];for(const n of t)this.createProperty(n,e[n])}return this.elementStyles=this.finalizeStyles(this.styles),!0}static finalizeStyles(e){const t=[];if(Array.isArray(e)){const n=new Set(e.flat(1/0).reverse());for(const e of n)t.unshift(s(e))}else void 0!==e&&t.push(s(e));return t}static _$Ep(e,t){const n=t.attribute;return!1===n?void 0:"string"==typeof n?n:"string"==typeof e?e.toLowerCase():void 0}u(){var e;this._$E_=new Promise((e=>this.enableUpdating=e)),this._$AL=new Map,this._$Eg(),this.requestUpdate(),null===(e=this.constructor.h)||void 0===e||e.forEach((e=>e(this)))}addController(e){var t,n;(null!==(t=this._$ES)&&void 0!==t?t:this._$ES=[]).push(e),void 0!==this.renderRoot&&this.isConnected&&(null===(n=e.hostConnected)||void 0===n||n.call(e))}removeController(e){var t;null===(t=this._$ES)||void 0===t||t.splice(this._$ES.indexOf(e)>>>0,1)}_$Eg(){this.constructor.elementProperties.forEach(((e,t)=>{this.hasOwnProperty(t)&&(this._$Ei.set(t,this[t]),delete this[t])}))}createRenderRoot(){var e;const t=null!==(e=this.shadowRoot)&&void 0!==e?e:this.attachShadow(this.constructor.shadowRootOptions);return((e,t)=>{o?e.adoptedStyleSheets=t.map((e=>e instanceof CSSStyleSheet?e:e.styleSheet)):t.forEach((t=>{const o=document.createElement("style"),r=n.litNonce;void 0!==r&&o.setAttribute("nonce",r),o.textContent=t.cssText,e.appendChild(o)}))})(t,this.constructor.elementStyles),t}connectedCallback(){var e;void 0===this.renderRoot&&(this.renderRoot=this.createRenderRoot()),this.enableUpdating(!0),null===(e=this._$ES)||void 0===e||e.forEach((e=>{var t;return null===(t=e.hostConnected)||void 0===t?void 0:t.call(e)}))}enableUpdating(e){}disconnectedCallback(){var e;null===(e=this._$ES)||void 0===e||e.forEach((e=>{var t;return null===(t=e.hostDisconnected)||void 0===t?void 0:t.call(e)}))}attributeChangedCallback(e,t,n){this._$AK(e,n)}_$EO(e,t,n=m){var o;const r=this.constructor._$Ep(e,n);if(void 0!==r&&!0===n.reflect){const i=(void 0!==(null===(o=n.converter)||void 0===o?void 0:o.toAttribute)?n.converter:h).toAttribute(t,n.type);this._$El=e,null==i?this.removeAttribute(r):this.setAttribute(r,i),this._$El=null}}_$AK(e,t){var n;const o=this.constructor,r=o._$Ev.get(e);if(void 0!==r&&this._$El!==r){const e=o.getPropertyOptions(r),i="function"==typeof e.converter?{fromAttribute:e.converter}:void 0!==(null===(n=e.converter)||void 0===n?void 0:n.fromAttribute)?e.converter:h;this._$El=r,this[r]=i.fromAttribute(t,e.type),this._$El=null}}requestUpdate(e,t,n){let o=!0;void 0!==e&&(((n=n||this.constructor.getPropertyOptions(e)).hasChanged||f)(this[e],t)?(this._$AL.has(e)||this._$AL.set(e,t),!0===n.reflect&&this._$El!==e&&(void 0===this._$EC&&(this._$EC=new Map),this._$EC.set(e,n))):o=!1),!this.isUpdatePending&&o&&(this._$E_=this._$Ej())}async _$Ej(){this.isUpdatePending=!0;try{await this._$E_}catch(t){Promise.reject(t)}const e=this.scheduleUpdate();return null!=e&&await e,!this.isUpdatePending}scheduleUpdate(){return this.performUpdate()}performUpdate(){var e;if(!this.isUpdatePending)return;this.hasUpdated,this._$Ei&&(this._$Ei.forEach(((e,t)=>this[t]=e)),this._$Ei=void 0);let t=!1;const n=this._$AL;try{t=this.shouldUpdate(n),t?(this.willUpdate(n),null===(e=this._$ES)||void 0===e||e.forEach((e=>{var t;return null===(t=e.hostUpdate)||void 0===t?void 0:t.call(e)})),this.update(n)):this._$Ek()}catch(o){throw t=!1,this._$Ek(),o}t&&this._$AE(n)}willUpdate(e){}_$AE(e){var t;null===(t=this._$ES)||void 0===t||t.forEach((e=>{var t;return null===(t=e.hostUpdated)||void 0===t?void 0:t.call(e)})),this.hasUpdated||(this.hasUpdated=!0,this.firstUpdated(e)),this.updated(e)}_$Ek(){this._$AL=new Map,this.isUpdatePending=!1}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._$E_}shouldUpdate(e){return!0}update(e){void 0!==this._$EC&&(this._$EC.forEach(((e,t)=>this._$EO(t,this[t],e))),this._$EC=void 0),this._$Ek()}updated(e){}firstUpdated(e){}};var b;v[g]=!0,v.elementProperties=new Map,v.elementStyles=[],v.shadowRootOptions={mode:"open"},null==p||p({ReactiveElement:v}),(null!==(l=c.reactiveElementVersions)&&void 0!==l?l:c.reactiveElementVersions=[]).push("1.6.2");const y=window,k=y.trustedTypes,_=k?k.createPolicy("lit-html",{createHTML:e=>e}):void 0,w="$lit$",E=`lit$${(Math.random()+"").slice(9)}$`,x="?"+E,C=`<${x}>`,S=document,A=()=>S.createComment(""),$=e=>null===e||"object"!=typeof e&&"function"!=typeof e,O=Array.isArray,T="[ \t\n\f\r]",P=/<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g,I=/-->/g,N=/>/g,j=RegExp(`>|${T}(?:([^\\s"'>=/]+)(${T}*=${T}*(?:[^ \t\n\f\r"'\`<>=]|("|')|))|$)`,"g"),M=/'/g,H=/"/g,z=/^(?:script|style|textarea|title)$/i,L=(D=1,(e,...t)=>({_$litType$:D,strings:e,values:t})),R=Symbol.for("lit-noChange"),U=Symbol.for("lit-nothing"),B=new WeakMap,W=S.createTreeWalker(S,129,null,!1);var D;class F{constructor({strings:e,_$litType$:t},n){let o;this.parts=[];let r=0,i=0;const a=e.length-1,s=this.parts,[l,c]=((e,t)=>{const n=e.length-1,o=[];let r,i=2===t?"":"",a=P;for(let l=0;l"===s[0]?(a=r??P,c=-1):void 0===s[1]?c=-2:(c=a.lastIndex-s[2].length,n=s[1],a=void 0===s[3]?j:'"'===s[3]?H:M):a===H||a===M?a=j:a===I||a===N?a=P:(a=j,r=void 0);const d=a===j&&e[l+1].startsWith("/>")?" ":"";i+=a===P?t+C:c>=0?(o.push(n),t.slice(0,c)+w+t.slice(c)+E+d):t+E+(-2===c?(o.push(void 0),l):d)}const s=i+(e[n]||"")+(2===t?"":"");if(!Array.isArray(e)||!e.hasOwnProperty("raw"))throw Error("invalid template strings array");return[void 0!==_?_.createHTML(s):s,o]})(e,t);if(this.el=F.createElement(l,n),W.currentNode=this.el.content,2===t){const e=this.el.content,t=e.firstChild;t.remove(),e.append(...t.childNodes)}for(;null!==(o=W.nextNode())&&s.length0){o.textContent=k?k.emptyScript:"";for(let n=0;nO(e)||"function"==typeof(null==e?void 0:e[Symbol.iterator]))(e)?this.T(e):this._(e)}k(e){return this._$AA.parentNode.insertBefore(e,this._$AB)}$(e){this._$AH!==e&&(this._$AR(),this._$AH=this.k(e))}_(e){this._$AH!==U&&$(this._$AH)?this._$AA.nextSibling.data=e:this.$(S.createTextNode(e)),this._$AH=e}g(e){var t;const{values:n,_$litType$:o}=e,r="number"==typeof o?this._$AC(e):(void 0===o.el&&(o.el=F.createElement(o.h,this.options)),o);if((null===(t=this._$AH)||void 0===t?void 0:t._$AD)===r)this._$AH.v(n);else{const e=new q(r,this),t=e.u(this.options);e.v(n),this.$(t),this._$AH=e}}_$AC(e){let t=B.get(e.strings);return void 0===t&&B.set(e.strings,t=new F(e)),t}T(e){O(this._$AH)||(this._$AH=[],this._$AR());const t=this._$AH;let n,o=0;for(const r of e)o===t.length?t.push(n=new Y(this.k(A()),this.k(A()),this,this.options)):n=t[o],n._$AI(r),o++;o2||""!==n[0]||""!==n[1]?(this._$AH=Array(n.length-1).fill(new String),this.strings=n):this._$AH=U}get tagName(){return this.element.tagName}get _$AU(){return this._$AM._$AU}_$AI(e,t=this,n,o){const r=this.strings;let i=!1;if(void 0===r)e=G(this,e,t,0),i=!$(e)||e!==this._$AH&&e!==R,i&&(this._$AH=e);else{const o=e;let a,s;for(e=r[0],a=0;a{var o,r;const i=null!==(o=null==n?void 0:n.renderBefore)&&void 0!==o?o:t;let a=i._$litPart$;if(void 0===a){const e=null!==(r=null==n?void 0:n.renderBefore)&&void 0!==r?r:null;i._$litPart$=a=new Y(t.insertBefore(A(),e),e,void 0,n??{})}return a._$AI(e),a})(t,this.renderRoot,this.renderOptions)}connectedCallback(){var e;super.connectedCallback(),null===(e=this._$Do)||void 0===e||e.setConnected(!0)}disconnectedCallback(){var e;super.disconnectedCallback(),null===(e=this._$Do)||void 0===e||e.setConnected(!1)}render(){return R}};oe.finalized=!0,oe._$litElement$=!0,null===(te=globalThis.litElementHydrateSupport)||void 0===te||te.call(globalThis,{LitElement:oe});const re=globalThis.litElementPolyfillSupport;null==re||re({LitElement:oe}),(null!==(ne=globalThis.litElementVersions)&&void 0!==ne?ne:globalThis.litElementVersions=[]).push("3.3.2");const ie=(e,t)=>"method"===t.kind&&t.descriptor&&!("value"in t.descriptor)?{...t,finisher(n){n.createProperty(t.key,e)}}:{kind:"field",key:Symbol(),placement:"own",descriptor:{},originalKey:t.key,initializer(){"function"==typeof t.initializer&&(this[t.key]=t.initializer.call(this))},finisher(n){n.createProperty(t.key,e)}};function ae(e){return(t,n)=>void 0!==n?((e,t,n)=>{t.constructor.createProperty(n,e)})(e,t,n):ie(e,t)}var se;null===(se=window.HTMLSlotElement)||void 0===se||se.prototype.assignedElements;const le=2;let ce=class{constructor(e){}get _$AU(){return this._$AM._$AU}_$AT(e,t,n){this._$Ct=e,this._$AM=t,this._$Ci=n}_$AS(e,t){return this.update(e,t)}update(e,t){return this.render(...t)}};const ue=(e,t)=>{var n,o;const r=e._$AN;if(void 0===r)return!1;for(const i of r)null===(o=(n=i)._$AO)||void 0===o||o.call(n,t,!1),ue(i,t);return!0},de=e=>{let t,n;do{if(void 0===(t=e._$AM))break;n=t._$AN,n.delete(e),e=t}while(0===(null==n?void 0:n.size))},pe=e=>{for(let t;t=e._$AM;e=t){let n=t._$AN;if(void 0===n)t._$AN=n=new Set;else if(n.has(e))break;n.add(e),me(t)}};function he(e){void 0!==this._$AN?(de(this),this._$AM=e,pe(this)):this._$AM=e}function fe(e,t=!1,n=0){const o=this._$AH,r=this._$AN;if(void 0!==r&&0!==r.size)if(t)if(Array.isArray(o))for(let i=n;i{var t,n,o,r;e.type==le&&(null!==(t=(o=e)._$AP)&&void 0!==t||(o._$AP=fe),null!==(n=(r=e)._$AQ)&&void 0!==n||(r._$AQ=he))};class ge extends ce{constructor(){super(...arguments),this._$AN=void 0}_$AT(e,t,n){super._$AT(e,t,n),pe(this),this.isConnected=e._$AU}_$AO(e,t=!0){var n,o;e!==this.isConnected&&(this.isConnected=e,e?null===(n=this.reconnected)||void 0===n||n.call(this):null===(o=this.disconnected)||void 0===o||o.call(this)),t&&(ue(this,e),de(this))}setValue(e){if((e=>void 0===e.strings)(this._$Ct))this._$Ct._$AI(e,this);else{const t=[...this._$Ct._$AH];t[this._$Ci]=e,this._$Ct._$AI(t,this,0)}}disconnected(){}reconnected(){}}class ve{}const be=new WeakMap,ye=(e=>(...t)=>({_$litDirective$:e,values:t}))(class extends ge{render(e){return U}update(e,[t]){var n;const o=t!==this.G;return o&&void 0!==this.G&&this.ot(void 0),(o||this.rt!==this.lt)&&(this.G=t,this.ct=null===(n=e.options)||void 0===n?void 0:n.host,this.ot(this.lt=e.element)),U}ot(e){var t;if("function"==typeof this.G){const n=null!==(t=this.ct)&&void 0!==t?t:globalThis;let o=be.get(n);void 0===o&&(o=new WeakMap,be.set(n,o)),void 0!==o.get(this.G)&&this.G.call(this.ct,void 0),o.set(this.G,e),void 0!==e&&this.G.call(this.ct,e)}else this.G.value=e}get rt(){var e,t,n;return"function"==typeof this.G?null===(t=be.get(null!==(e=this.ct)&&void 0!==e?e:globalThis))||void 0===t?void 0:t.get(this.G):null===(n=this.G)||void 0===n?void 0:n.value}disconnected(){this.rt===this.lt&&this.ot(void 0)}reconnected(){this.ot(this.lt)}});var ke=Object.defineProperty,_e=Object.getOwnPropertyDescriptor,we=(e,t,n,o)=>{for(var r,i=o>1?void 0:o?_e(t,n):t,a=e.length-1;a>=0;a--)(r=e[a])&&(i=(o?r(t,n,i):r(i))||i);return o&&i&&ke(t,n,i),i};t.GiscusWidget=class extends oe{constructor(){super(),this.GISCUS_SESSION_KEY="giscus-session",this.GISCUS_DEFAULT_HOST="https://giscus.app",this.ERROR_SUGGESTION="Please consider reporting this error at https://github.com/giscus/giscus/issues/new.",this.__session="",this._iframeRef=new ve,this.messageEventHandler=this.handleMessageEvent.bind(this),this.hasLoaded=!1,this.host=this.GISCUS_DEFAULT_HOST,this.strict="0",this.reactionsEnabled="1",this.emitMetadata="0",this.inputPosition="bottom",this.theme="light",this.lang="en",this.loading="eager",this.setupSession(),window.addEventListener("message",this.messageEventHandler)}get iframeRef(){var e;return null==(e=this._iframeRef)?void 0:e.value}get _host(){try{return new URL(this.host),this.host}catch{return this.GISCUS_DEFAULT_HOST}}disconnectedCallback(){super.disconnectedCallback(),window.removeEventListener("message",this.messageEventHandler)}_formatError(e){return`[giscus] An error occurred. Error message: "${e}".`}setupSession(){const e=location.href,t=new URL(e),n=localStorage.getItem(this.GISCUS_SESSION_KEY),o=t.searchParams.get("giscus")||"";if(this.__session="",o)return localStorage.setItem(this.GISCUS_SESSION_KEY,JSON.stringify(o)),this.__session=o,t.searchParams.delete("giscus"),t.hash="",void history.replaceState(void 0,document.title,t.toString());if(n)try{this.__session=JSON.parse(n)}catch(r){localStorage.removeItem(this.GISCUS_SESSION_KEY),console.warn(`${this._formatError(null==r?void 0:r.message)} Session has been cleared.`)}}signOut(){localStorage.removeItem(this.GISCUS_SESSION_KEY),this.__session="",this.update(new Map)}handleMessageEvent(e){if(e.origin!==this._host)return;const{data:t}=e;if("object"!=typeof t||!t.giscus)return;if(this.iframeRef&&t.giscus.resizeHeight&&(this.iframeRef.style.height=`${t.giscus.resizeHeight}px`),t.giscus.signOut)return console.log("[giscus] User has logged out. Session has been cleared."),void this.signOut();if(!t.giscus.error)return;const n=t.giscus.error;if(n.includes("Bad credentials")||n.includes("Invalid state value")||n.includes("State has expired")){if(null!==localStorage.getItem(this.GISCUS_SESSION_KEY))return console.warn(`${this._formatError(n)} Session has been cleared.`),void this.signOut();console.error(`${this._formatError(n)} No session is stored initially. ${this.ERROR_SUGGESTION}`)}n.includes("Discussion not found")?console.warn(`[giscus] ${n}. A new discussion will be created if a comment/reaction is submitted.`):console.error(`${this._formatError(n)} ${this.ERROR_SUGGESTION}`)}sendMessage(e){!this.iframeRef||!this.iframeRef.contentWindow||!this.hasLoaded||(console.log({host:this.host,_host:this._host}),this.iframeRef.contentWindow.postMessage({giscus:e},this._host))}updateConfig(){const e={setConfig:{repo:this.repo,repoId:this.repoId,category:this.category,categoryId:this.categoryId,term:this.getTerm(),number:+this.getNumber(),strict:"1"===this.strict,reactionsEnabled:"1"===this.reactionsEnabled,emitMetadata:"1"===this.emitMetadata,inputPosition:this.inputPosition,theme:this.theme,lang:this.lang}};this.sendMessage(e)}firstUpdated(){var e;null==(e=this.iframeRef)||e.addEventListener("load",(()=>{var e;null==(e=this.iframeRef)||e.classList.remove("loading"),this.hasLoaded=!0,this.updateConfig()}))}requestUpdate(e,t,n){this.hasUpdated&&"host"!==e?this.updateConfig():super.requestUpdate(e,t,n)}getMetaContent(e,t=!1){const n=t?`meta[property='og:${e}'],`:"",o=document.querySelector(n+`meta[name='${e}']`);return o?o.content:""}_getCleanedUrl(){const e=new URL(location.href);return e.searchParams.delete("giscus"),e.hash="",e}getTerm(){switch(this.mapping){case"url":return`${this._getCleanedUrl()}`;case"title":return document.title;case"og:title":return this.getMetaContent("title",!0);case"specific":return this.term||"";case"number":return"";default:return location.pathname.length<2?"index":location.pathname.substring(1).replace(/\.\w+$/,"")}}getNumber(){return"number"===this.mapping&&this.term||""}getIframeSrc(){const e=this._getCleanedUrl().toString(),t=`${e}${this.id?"#"+this.id:""}`,n=this.getMetaContent("description",!0),o=this.getMetaContent("giscus:backlink")||e,r={origin:t,session:this.__session,repo:this.repo,repoId:this.repoId||"",category:this.category||"",categoryId:this.categoryId||"",term:this.getTerm(),number:this.getNumber(),strict:this.strict,reactionsEnabled:this.reactionsEnabled,emitMetadata:this.emitMetadata,inputPosition:this.inputPosition,theme:this.theme,description:n,backLink:o};return`${this._host}${this.lang?`/${this.lang}`:""}/widget?${new URLSearchParams(r)}`}render(){return L` + + `}},t.GiscusWidget.styles=((e,...t)=>{const n=1===e.length?e[0]:t.reduce(((t,n,o)=>t+(e=>{if(!0===e._$cssResult$)return e.cssText;if("number"==typeof e)return e;throw Error("Value passed to 'css' function must be a 'css' function result: "+e+". Use 'unsafeCSS' to pass non-literal values, but take care to ensure page security.")})(n)+e[o+1]),e[0]);return new a(n,e,r)})` + :host, + iframe { + width: 100%; + border: none; + min-height: 150px; + color-scheme: light dark; + } + + iframe.loading { + opacity: 0; + } + `,we([ae({reflect:!0})],t.GiscusWidget.prototype,"host",2),we([ae({reflect:!0})],t.GiscusWidget.prototype,"repo",2),we([ae({reflect:!0})],t.GiscusWidget.prototype,"repoId",2),we([ae({reflect:!0})],t.GiscusWidget.prototype,"category",2),we([ae({reflect:!0})],t.GiscusWidget.prototype,"categoryId",2),we([ae({reflect:!0})],t.GiscusWidget.prototype,"mapping",2),we([ae({reflect:!0})],t.GiscusWidget.prototype,"term",2),we([ae({reflect:!0})],t.GiscusWidget.prototype,"strict",2),we([ae({reflect:!0})],t.GiscusWidget.prototype,"reactionsEnabled",2),we([ae({reflect:!0})],t.GiscusWidget.prototype,"emitMetadata",2),we([ae({reflect:!0})],t.GiscusWidget.prototype,"inputPosition",2),we([ae({reflect:!0})],t.GiscusWidget.prototype,"theme",2),we([ae({reflect:!0})],t.GiscusWidget.prototype,"lang",2),we([ae({reflect:!0})],t.GiscusWidget.prototype,"loading",2),t.GiscusWidget=we([function(e){return customElements.get(e)?e=>e:(e=>t=>{return"function"==typeof t?(n=e,o=t,customElements.define(n,o),o):((e,t)=>{const{kind:n,elements:o}=t;return{kind:n,elements:o,finisher(t){customElements.define(e,t)}}})(e,t);var n,o})(e)}("giscus-widget")],t.GiscusWidget)},8071:function(e,t,n){"use strict";const o=n(5893),r=n(7294);e.exports=function({id:e,host:t,repo:i,repoId:a,category:s,categoryId:l,mapping:c,term:u,strict:d,reactionsEnabled:p,emitMetadata:h,inputPosition:f,theme:m,lang:g,loading:v}){const[b,y]=r.useState(!1);return r.useEffect((()=>{b||(Promise.resolve().then((()=>n(6050))),y(!0))}),[]),b?o.jsx("giscus-widget",{id:e,host:t,repo:i,repoid:a,category:s,categoryid:l,mapping:c,term:u,strict:d,reactionsenabled:p,emitmetadata:h,inputposition:f,theme:m,lang:g,loading:v}):null}},6007:function(e,t,n){"use strict";n.d(t,{Z:function(){return Se}});var o=n(2788),r=n(7294),i=n(9349),a=n(729),s=n(184);n(1309);const l=o.default.div.withConfig({displayName:"Header__Wrapper",componentId:"sc-1d3p6ct-0"})(["margin-top:32px;@media (max-width:768px){padding:0 15px;}"]),c=o.default.h1.withConfig({displayName:"Header__ArticleTitle",componentId:"sc-1d3p6ct-1"})(["margin-bottom:25.6px;line-height:1.2;font-size:40px;font-weight:700;color:",";"],(e=>e.theme.colors.text)),u=o.default.div.withConfig({displayName:"Header__Information",componentId:"sc-1d3p6ct-2"})(["margin-bottom:32px;font-size:16px;display:flex;flex-direction:column;gap:8px;"]),d=o.default.span.withConfig({displayName:"Header__Author",componentId:"sc-1d3p6ct-3"})(["padding-bottom:15px;font-weight:700;color:",";"],(e=>e.theme.colors.text)),p=o.default.span.withConfig({displayName:"Header__Date",componentId:"sc-1d3p6ct-4"})(["font-weight:300;color:",";"],(e=>e.theme.colors.secondaryText)),h=o.default.strong.withConfig({displayName:"Header__Property",componentId:"sc-1d3p6ct-5"})(["font-weight:300;color:",""],(e=>e.theme.colors.secondaryText));var f=e=>{let{title:t,date:n,tags:o,minToRead:f,updated:m}=e;return r.createElement(l,null,r.createElement(c,null," ",t," "),r.createElement(u,null,r.createElement("div",null,r.createElement(d,null," @",i.author," "),r.createElement(p,null,"· ",f," min read ")),r.createElement("div",null,r.createElement(h,null,"Created Date "),r.createElement(p,null,"· ",n," ")),r.createElement("div",null,r.createElement(h,null,"Last Update "),r.createElement(p,null,"· ",m," "))),o&&r.createElement(s.Z,{tagList:o}),r.createElement(a.Z,{mt:"0"}))},m=n(3880),g=n.n(m),v=n(998),b=n.n(v),y=n(1883),k=n(8193);const _=o.default.div.withConfig({displayName:"Series__SeriesWrapper",componentId:"sc-ifd2zz-0"})(["margin-bottom:32px;padding:16px;background-color:",";"],(e=>e.theme.colors.seriesBackground)),w=o.default.h2.withConfig({displayName:"Series__SeriesHeader",componentId:"sc-ifd2zz-1"})(["margin-bottom:16px;font-size:16px;font-weight:bold;color:",";& > span{font-weight:normal;color:",";}& > a{color:inherit;text-decoration:none;}& > a:hover{text-decoration:underline;}"],(e=>e.theme.colors.text),(e=>e.theme.colors.tertiaryText)),E=o.default.ul.withConfig({displayName:"Series__PostWrapper",componentId:"sc-ifd2zz-2"})([""]),x=o.default.li.withConfig({displayName:"Series__Post",componentId:"sc-ifd2zz-3"})(["position:relative;font-size:12.8px;color:",";&:not(:last-child){margin-bottom:9.6px;}& > a{text-decoration:none;color:inherit;transition:color 0.3s;}& > a:hover{color:",";}& > svg{position:absolute;margin-left:5px;}"],(e=>e.currentPost?e.theme.colors.text:e.theme.colors.tertiaryText),(e=>e.theme.colors.text)),C=o.default.div.withConfig({displayName:"Series__ViewMore",componentId:"sc-ifd2zz-4"})(["margin-top:15px;font-size:14.4px;text-align:center;color:",";cursor:pointer;transition:color 0.3s;&:hover{color:",";}"],(e=>e.theme.colors.tertiaryText),(e=>e.theme.colors.text));var S=e=>{let{header:t,series:n}=e;const{0:o,1:i}=(0,r.useState)(!0),a=(0,r.useMemo)((()=>{if(n.length<5)return n;if(!o)return n;const e=b()(n,{currentPost:!0});return e<2?n.slice(0,5):n.length-e-1<2?n.slice(n.length-5,n.length):n.slice(e-2,e+3)}),[n,o]),s=(0,r.useMemo)((()=>n.length>5),[n]);return r.createElement(_,null,r.createElement(w,null,r.createElement(y.Link,{to:"/series/"+g()(t,/\s/g,"-")},"SERIES: ",t)," ",r.createElement("span",null,"(",n.length,")")),r.createElement(E,null,a.map(((e,t)=>r.createElement(x,{key:t,currentPost:e.currentPost},r.createElement(y.Link,{to:e.fields.slug},e.frontmatter.title)," ",e.currentPost&&r.createElement(k.kyg,null)," ")))),s&&r.createElement(C,{onClick:()=>{i(!o)}},o?"View More (+"+(n.length-a.length)+")":"View Less"))};var A=()=>{const e=(0,r.useRef)();let t=0;return e.current&&(t=e.current.getBoundingClientRect().top+document.documentElement.scrollTop),[e,t]},$=n(5785),O=n(6261);var T=()=>{const{0:e,1:t}=(0,r.useState)({x:0,y:0}),n=()=>{t({y:window.scrollY,x:window.scrollX})};return(0,r.useEffect)((()=>(window.addEventListener("scroll",n),()=>window.removeEventListener("scroll",n))),[]),e};var P=e=>{const t=e.getBoundingClientRect(),n=window.pageXOffset||document.documentElement.scrollLeft,o=window.pageYOffset||document.documentElement.scrollTop;return{top:t.top+o,left:t.left+n}};const I=o.default.div.withConfig({displayName:"RevealOnScroll__StyledWrapper",componentId:"sc-j177rt-0"})(["position:relative;opacity:0;transition:0.35s all ease;",""],(e=>e.visible&&(0,o.css)(["opacity:1;"])));var N=e=>{let{revealAt:t,reverse:n,children:o}=e;const{y:i}=T();let a=null;return a=n?it,r.createElement(I,{visible:a},o)};const j=o.default.div.withConfig({displayName:"Toc__TocWrapper",componentId:"sc-1axrmab-0"})(["position:absolute;opacity:1;left:100%;& > div{padding-right:20px;padding-left:16px;margin-left:48px;position:relative;width:240px;max-height:calc(100% - 185px);overflow-y:auto;::-webkit-scrollbar{width:3px;}::-webkit-scrollbar-track{background:",";}::-webkit-scrollbar-thumb{background:",";}","}@media (max-width:1300px){display:None;}"],(e=>e.theme.colors.scrollTrack),(e=>e.theme.colors.scrollHandle),(e=>e.stick&&(0,o.css)(["position:fixed;top:","px;"],100))),M=o.default.div.withConfig({displayName:"Toc__ParagraphTitle",componentId:"sc-1axrmab-1"})(["margin-bottom:8px;padding-left:","px;font-size:14.4px;color:",";line-height:1.3;transition:all 0.2s;"," &:hover{color:",";cursor:pointer;}"],(e=>e.subtitle?19.2:0),(e=>e.theme.colors.mutedText),(e=>e.active&&(0,o.css)(["transform:translate(-11.2px,0);color:",";"],(e=>e.theme.colors.accentText))),(e=>e.theme.colors.secondAccentText));var H=e=>{let{items:t,articleOffset:n}=e;const{y:o}=T(),{0:i,1:a}=(0,r.useState)(4e3),{0:s,1:l}=(0,r.useState)([]),{0:c,1:u}=(0,r.useState)(0);(0,r.useEffect)((()=>{l((0,$.Z)(document.querySelectorAll("#article-body > h2, #article-body > h3")).map((e=>P(e).top)))}),[]),(0,r.useEffect)((()=>{s.forEach(((e,t)=>{e-300n-100},r.createElement("div",null,t.map(((e,t)=>r.createElement(M,{key:t,subtitle:"H3"===e.tagName,active:t===c,onClick:()=>{return e=t,void O.NY.scrollTo(s[e]-100);var e}},e.innerText))))))};var z=o.default.div.withConfig({displayName:"StyledMarkdown",componentId:"sc-lqtcur-0"})(["&{font-size:16.7px;color:",";line-height:1.73;overflow:hidden;}& h1:first-child,& h2:first-child,& h3:first-child,& h4:first-child{margin-top:0;}& > p,& > ul,& > ol,& table,& blockquote,& pre,& img,& .katex-display{margin-top:0;margin-bottom:24px;word-break:break-all;}& p{overflow-x:scroll;word-break:break-all;::-webkit-scrollbar{display:none;}}& h2,& h3,& h4,& h5,& h6{margin:11.2px 0 4.8px 0;font-weight:700;}& h2{margin-top:75px;margin-bottom:16px;font-size:24px;}& h3{margin-top:50px;margin-bottom:14px;font-size:22.4px;}& h4{margin-top:40px;margin-bottom:12px;font-size:17.6px;}& h5{font-size:16px;}& h6{font-size:14.4px;}& strong{font-weight:700;}& em{font-style:italic;}& blockquote{padding:18px 24px;border-left:4px solid ",";background-color:",";& *:last-child{margin-bottom:0;}}& blockquote blockquote{margin-top:24px;}& blockquote > p > code.language-text{background-color:",";}& table{border-collapse:collapse;}& th{border-bottom:2px solid ",";font-weight:700;}& td{border-top:1px solid ",";border-bottom:1px solid ",";}& td,th{padding:8px;}& tr:first-child td{border-top:none;}& tr:nth-child(even){background-color:",";}& tr:last-child td{border-bottom:none;}& *:not(pre) > code.language-text,& table code.language-text{position:relative;top:-1px;margin-right:3px;padding:3px 5px 3px 5px;font-size:13px;background-color:",";font-weight:bold;color:",";}& h2 > code.language-text,& h3 > code.language-text,& h4 > code.language-text{font-size:inherit;}& tr:nth-child(even) code.language-text{background-color:",";}& ul,& ol{padding-left:25px;}& ol{list-style:decimal;}& ul{list-style:disc;}& ul ul{list-style:circle;}& ul ul ul{list-style:square;}& li{margin-bottom:15px;}& li p{margin:8px 0;}& pre{::-webkit-scrollbar{height:10px;}::-webkit-scrollbar-track{background:",";}::-webkit-scrollbar-thumb{background:",';}}& code[class*="language-"],& pre[class*="language-"]{font-size:15px;}& img{display:block;margin-left:auto;margin-right:auto;max-width:100%;}& figcaption{margin-top:5px;text-align:center;color:#868e96;font-size:12px;font-style:italic;}& hr{border:none;border-bottom:1px solid ',';}& a[data-wiki-link="true"]{color:',';background-color:none;text-decoration:none;}& a[data-wiki-link="true"]:hover{color:',";text-decoration:underline;}& a{padding:1.6px 0;color:",";}& a:hover{background-color:none;color:",";}"],(e=>e.theme.colors.text),(e=>e.theme.colors.blockQuoteBorder),(e=>e.theme.colors.blockQuoteBackground),(e=>e.theme.colors.inlineCodeBackgroundDarker),(e=>e.theme.colors.border),(e=>e.theme.colors.border),(e=>e.theme.colors.border),(e=>e.theme.colors.tableBackground),(e=>e.theme.colors.inlineCodeBackground),(e=>e.theme.colors.text),(e=>e.theme.colors.inlineCodeBackgroundDarker),(e=>e.theme.colors.scrollTrack),(e=>e.theme.colors.scrollHandle),(e=>e.theme.colors.border),(e=>e.theme.colors.flipAccentText),(e=>e.theme.colors.flipAccentOppositeText),(e=>e.theme.colors.text),(e=>e.theme.colors.hoveredLinkText)),L=n(6113);var R=(0,o.css)(['code[class*="language-"],pre[class*="language-"]{margin-bottom:24px;font-size:14.5px;color:#ccc;background:none;font-family:"Bai Jamjuree",monospace;text-align:justify;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none;}pre[class*="language-"]{padding:1em;overflow:auto;}:not(pre) > code[class*="language-"]{padding:0.1em;border-radius:0.3em;white-space:normal;}.token.important,.token.bold{font-weight:bold;}.token.italic{font-style:italic;}.token.entity{cursor:help;}']);const U=(0,o.css)(['& code[class*="language-"],& pre[class*="language-"]{background-color:#222222;}.token.comment,.token.block-comment,.token.prolog,.token.doctype,.token.cdata{color:#999;}.token.punctuation{color:#ccc;}.token.tag,.token.attr-name,.token.namespace,.token.deleted{color:#e2777a;}.token.function-name{color:#6196cc;}.token.boolean,.token.number,.token.function{color:#f08d49;}.token.property,.token.class-name,.token.constant,.token.symbol{color:#f8c555;}.token.selector,.token.important,.token.atrule,.token.keyword,.token.builtin{color:#cc99cd;}.token.string,.token.char,.token.attr-value,.token.regex,.token.variable{color:#7ec699;}.token.operator,.token.entity,.token.url{color:#67cdcc;}.token.important,.token.bold{font-weight:bold;}.token.italic{font-style:italic;}.token.entity{cursor:help;}.token.inserted{color:green;}']);var B=(0,o.createGlobalStyle)([""," ",""],R,U);const W=(0,o.css)(['code[class*="language-"],pre[class*="language-"]{background-color:#f7f6f3;color:hsl(230,8%,24%);}code[class*="language-"]::-moz-selection,code[class*="language-"] *::-moz-selection,pre[class*="language-"] *::-moz-selection{background:hsl(230,1%,90%);color:inherit;}code[class*="language-"]::selection,code[class*="language-"] *::selection,pre[class*="language-"] *::selection{background:hsl(230,1%,90%);color:inherit;}.token.comment,.token.prolog,.token.cdata{color:hsl(230,4%,64%);}.token.doctype,.token.punctuation,.token.entity{color:hsl(230,8%,24%);}.token.attr-name,.token.class-name,.token.boolean,.token.constant,.token.number,.token.atrule{color:hsl(35,99%,36%);}.token.keyword{color:hsl(301,63%,40%);}.token.property,.token.tag,.token.symbol,.token.deleted,.token.important{color:hsl(5,74%,59%);}.token.selector,.token.string,.token.char,.token.builtin,.token.inserted,.token.regex,.token.attr-value,.token.attr-value > .token.punctuation{color:hsl(119,34%,47%);}.token.variable,.token.operator,.token.function{color:hsl(221,87%,60%);}.token.url{color:hsl(198,99%,37%);}.token.attr-value > .token.punctuation.attr-equals,.token.special-attr > .token.attr-value > .token.value.css{color:hsl(230,8%,24%);}.language-css .token.selector{color:hsl(5,74%,59%);}.language-css .token.property{color:hsl(230,8%,24%);}.language-css .token.function,.language-css .token.url > .token.function{color:hsl(198,99%,37%);}.language-css .token.url > .token.string.url{color:hsl(119,34%,47%);}.language-css .token.important,.language-css .token.atrule .token.rule{color:hsl(301,63%,40%);}.language-javascript .token.operator{color:hsl(301,63%,40%);}.language-javascript .token.template-string > .token.interpolation > .token.interpolation-punctuation.punctuation{color:hsl(344,84%,43%);}.language-json .token.operator{color:hsl(230,8%,24%);}.language-json .token.null.keyword{color:hsl(35,99%,36%);}.language-markdown .token.url,.language-markdown .token.url > .token.operator,.language-markdown .token.url-reference.url > .token.string{color:hsl(230,8%,24%);}.language-markdown .token.url > .token.content{color:hsl(221,87%,60%);}.language-markdown .token.url > .token.url,.language-markdown .token.url-reference.url{color:hsl(198,99%,37%);}.language-markdown .token.blockquote.punctuation,.language-markdown .token.hr.punctuation{color:hsl(230,4%,64%);font-style:italic;}.language-markdown .token.code-snippet{color:hsl(119,34%,47%);}.language-markdown .token.bold .token.content{color:hsl(35,99%,36%);}.language-markdown .token.italic .token.content{color:hsl(301,63%,40%);}.language-markdown .token.strike .token.content,.language-markdown .token.strike .token.punctuation,.language-markdown .token.list.punctuation,.language-markdown .token.title.important > .token.punctuation{color:hsl(5,74%,59%);}.token.bold{font-weight:bold;}.token.comment,.token.italic{font-style:italic;}.token.entity{cursor:help;}.token.namespace{opacity:0.8;}.token.token.tab:not(:empty):before,.token.token.cr:before,.token.token.lf:before,.token.token.space:before{color:hsla(230,8%,24%,0.2);}div.code-toolbar > .toolbar.toolbar > .toolbar-item > button,div.code-toolbar > .toolbar.toolbar > .toolbar-item > a,div.code-toolbar > .toolbar.toolbar > .toolbar-item > span{background:hsl(230,1%,90%);color:hsl(230,6%,44%);padding:0.1em 0.4em;border-radius:0.3em;}div.code-toolbar > .toolbar.toolbar > .toolbar-item > button:hover,div.code-toolbar > .toolbar.toolbar > .toolbar-item > button:focus,div.code-toolbar > .toolbar.toolbar > .toolbar-item > a:hover,div.code-toolbar > .toolbar.toolbar > .toolbar-item > a:focus,div.code-toolbar > .toolbar.toolbar > .toolbar-item > span:hover,div.code-toolbar > .toolbar.toolbar > .toolbar-item > span:focus{background:hsl(230,1%,78%);color:hsl(230,8%,24%);}.line-highlight.line-highlight{background:hsla(230,8%,24%,0.05);}.line-highlight.line-highlight:before,.line-highlight.line-highlight[data-end]:after{background:hsl(230,1%,90%);color:hsl(230,8%,24%);padding:0.1em 0.6em;border-radius:0.3em;box-shadow:0 2px 0 0 rgba(0,0,0,0.2);}pre[id].linkable-line-numbers.linkable-line-numbers span.line-numbers-rows > span:hover:before{background-color:hsla(230,8%,24%,0.05);}.line-numbers.line-numbers .line-numbers-rows,.command-line .command-line-prompt{border-right-color:hsla(230,8%,24%,0.2);}.line-numbers .line-numbers-rows > span:before,.command-line .command-line-prompt > span:before{color:hsl(230,1%,62%);}.rainbow-braces .token.token.punctuation.brace-level-1,.rainbow-braces .token.token.punctuation.brace-level-5,.rainbow-braces .token.token.punctuation.brace-level-9{color:hsl(5,74%,59%);}.rainbow-braces .token.token.punctuation.brace-level-2,.rainbow-braces .token.token.punctuation.brace-level-6,.rainbow-braces .token.token.punctuation.brace-level-10{color:hsl(119,34%,47%);}.rainbow-braces .token.token.punctuation.brace-level-3,.rainbow-braces .token.token.punctuation.brace-level-7,.rainbow-braces .token.token.punctuation.brace-level-11{color:hsl(221,87%,60%);}.rainbow-braces .token.token.punctuation.brace-level-4,.rainbow-braces .token.token.punctuation.brace-level-8,.rainbow-braces .token.token.punctuation.brace-level-12{color:hsl(301,63%,40%);}pre.diff-highlight > code .token.token.deleted:not(.prefix),pre > code.diff-highlight .token.token.deleted:not(.prefix){background-color:hsla(353,100%,66%,0.15);}pre.diff-highlight > code .token.token.deleted:not(.prefix)::-moz-selection,pre.diff-highlight > code .token.token.deleted:not(.prefix) *::-moz-selection,pre > code.diff-highlight .token.token.deleted:not(.prefix)::-moz-selection,pre > code.diff-highlight .token.token.deleted:not(.prefix) *::-moz-selection{background-color:hsla(353,95%,66%,0.25);}pre.diff-highlight > code .token.token.deleted:not(.prefix)::selection,pre.diff-highlight > code .token.token.deleted:not(.prefix) *::selection,pre > code.diff-highlight .token.token.deleted:not(.prefix)::selection,pre > code.diff-highlight .token.token.deleted:not(.prefix) *::selection{background-color:hsla(353,95%,66%,0.25);}pre.diff-highlight > code .token.token.inserted:not(.prefix),pre > code.diff-highlight .token.token.inserted:not(.prefix){background-color:hsla(137,100%,55%,0.15);}pre.diff-highlight > code .token.token.inserted:not(.prefix)::-moz-selection,pre.diff-highlight > code .token.token.inserted:not(.prefix) *::-moz-selection,pre > code.diff-highlight .token.token.inserted:not(.prefix)::-moz-selection,pre > code.diff-highlight .token.token.inserted:not(.prefix) *::-moz-selection{background-color:hsla(135,73%,55%,0.25);}pre.diff-highlight > code .token.token.inserted:not(.prefix)::selection,pre.diff-highlight > code .token.token.inserted:not(.prefix) *::selection,pre > code.diff-highlight .token.token.inserted:not(.prefix)::selection,pre > code.diff-highlight .token.token.inserted:not(.prefix) *::selection{background-color:hsla(135,73%,55%,0.25);}.prism-previewer.prism-previewer:before,.prism-previewer-gradient.prism-previewer-gradient div{border-color:hsl(0,0,95%);}.prism-previewer-color.prism-previewer-color:before,.prism-previewer-gradient.prism-previewer-gradient div,.prism-previewer-easing.prism-previewer-easing:before{border-radius:0.3em;}.prism-previewer.prism-previewer:after{border-top-color:hsl(0,0,95%);}.prism-previewer-flipped.prism-previewer-flipped.after{border-bottom-color:hsl(0,0,95%);}.prism-previewer-angle.prism-previewer-angle:before,.prism-previewer-time.prism-previewer-time:before,.prism-previewer-easing.prism-previewer-easing{background:hsl(0,0%,100%);}.prism-previewer-angle.prism-previewer-angle circle,.prism-previewer-time.prism-previewer-time circle{stroke:hsl(230,8%,24%);stroke-opacity:1;}.prism-previewer-easing.prism-previewer-easing circle,.prism-previewer-easing.prism-previewer-easing path,.prism-previewer-easing.prism-previewer-easing line{stroke:hsl(230,8%,24%);}.prism-previewer-easing.prism-previewer-easing circle{fill:transparent;}']);var D=(0,o.createGlobalStyle)([""," ",""],R,W);var F=()=>{const{theme:e}=(0,L.useSelector)((e=>e.theme));return r.createElement(r.Fragment,null,"light"===e?r.createElement(D,null):r.createElement(B,null))};const G=o.default.div.withConfig({displayName:"Body__Wrapper",componentId:"sc-7hat30-0"})(["position:relative;margin-bottom:112px;@media (max-width:768px){padding:0 15px;}"]);var q=e=>{let{html:t}=e;const{0:n,1:o}=(0,r.useState)([]),[i,a]=A();return(0,r.useEffect)((()=>{o(Array.from(document.querySelectorAll("#article-body > h2, #article-body > h3")))}),[]),r.createElement(G,null,r.createElement(H,{items:n,articleOffset:a}),r.createElement(F,null),r.createElement(z,{id:"article-body",dangerouslySetInnerHTML:{__html:t},itemProp:"articleBody",ref:i}))},Y=n(7516),V=n(673);function Z(e,t){for(var n=0;n=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}function ne(e,t){return!t||"object"!=typeof t&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}var oe="react-md-spinner",re="__react-md-spinner-animation__",ie=new(n.n(V)())({global:!1,cascade:!0,keyframe:!0,prefix:!0,compress:!1}),ae={ROOT_ROTATE:"".concat(re,"root-rotate"),FILL_UNFILL_ROTATE:"".concat(re,"fill-unfill-rotate"),LAYER_1_FADE_IN_OUT:"".concat(re,"layer-1-fade-in-out"),LAYER_2_FADE_IN_OUT:"".concat(re,"layer-2-fade-in-out"),LAYER_3_FADE_IN_OUT:"".concat(re,"layer-3-fade-in-out"),LAYER_4_FADE_IN_OUT:"".concat(re,"layer-4-fade-in-out"),LEFT_SPIN:"".concat(re,"left-spin"),RIGHT_SPIN:"".concat(re,"right-spin")},se=ie("","\n@keyframes ".concat(ae.ROOT_ROTATE," {\n to { transform: rotate(360deg); }\n}\n\n@keyframes ").concat(ae.FILL_UNFILL_ROTATE," {\n 12.5% { transform: rotate(135deg) }\n 25% { transform: rotate(270deg) }\n 37.5% { transform: rotate(405deg) }\n 50% { transform: rotate(540deg) }\n 62.5% { transform: rotate(675deg) }\n 75% { transform: rotate(810deg) }\n 87.5% { transform: rotate(945deg) }\n 100% { transform: rotate(1080deg) }\n}\n\n@keyframes ").concat(ae.LAYER_1_FADE_IN_OUT," {\n 0% { opacity: 1 }\n 25% { opacity: 1 }\n 26% { opacity: 0 }\n 89% { opacity: 0 }\n 90% { opacity: 1 }\n 100% { opacity: 1 }\n}\n\n@keyframes ").concat(ae.LAYER_2_FADE_IN_OUT," {\n 0% { opacity: 0 }\n 15% { opacity: 0 }\n 25% { opacity: 1 }\n 50% { opacity: 1 }\n 51% { opacity: 0 }\n 100% { opacity: 0 }\n}\n\n@keyframes ").concat(ae.LAYER_3_FADE_IN_OUT," {\n 0% { opacity: 0 }\n 40% { opacity: 0 }\n 50% { opacity: 1 }\n 75% { opacity: 1 }\n 76% { opacity: 0 }\n 100% { opacity: 0 }\n}\n\n@keyframes ").concat(ae.LAYER_4_FADE_IN_OUT," {\n 0% { opacity: 0 }\n 65% { opacity: 0 }\n 75% { opacity: 1 }\n 90% { opacity: 1 }\n 100% { opacity: 0 }\n}\n\n@keyframes ").concat(ae.LEFT_SPIN," {\n 0% { transform: rotate(130deg) }\n 50% { transform: rotate(-5deg) }\n 100% { transform: rotate(130deg) }\n}\n\n@keyframes ").concat(ae.RIGHT_SPIN," {\n 0% { transform: rotate(-130deg) }\n 50% { transform: rotate(5deg) }\n 100% { transform: rotate(-130deg) }\n}\n")),le=function(e){function t(){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),ne(this,J(t).apply(this,arguments))}var n,o,i;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&ee(e,t)}(t,e),n=t,(o=[{key:"componentDidMount",value:function(){var e,n,o;t.mountedInstanceCount<1&&(e=oe,n=se,(o=document.createElement("style")).type="text/css",o.setAttribute("data-".concat(e),""),o.innerHTML=n,document.head.appendChild(o)),t.mountedInstanceCount++}},{key:"componentWillUnmount",value:function(){var e,n;t.mountedInstanceCount=Math.max(0,t.mountedInstanceCount-1),t.mountedInstanceCount<1&&(e=oe,null!=(n=document.querySelector("[data-".concat(e,"]")))&&null!=n.parentNode&&n.parentNode.removeChild(n))}},{key:"render",value:function(){for(var e=this.props,t=(e.singleColor,e.size,e.borderSize,e.duration,e.color1,e.color2,e.color3,e.color4,te(e,["singleColor","size","borderSize","duration","color1","color2","color3","color4"])),n=function(e){var t=e.size,n=e.duration,o=e.borderSize||Math.max(1,Math.round(.107142*t)),r=function(e){var t=e.singleColor,n=e.color1,o=e.color2,r=e.color3,i=e.color4;return t?[t,t,t,t]:[n,o,r,i]}(e),i=360*n/306,a={display:"inline-block",position:"relative",width:t,height:t,verticalAlign:"middle",fontSize:"0",animation:"".concat(ae.ROOT_ROTATE," ").concat(i,"ms linear infinite"),WebkitAnimation:"".concat(ae.ROOT_ROTATE," ").concat(i,"ms linear infinite")},s=r.map((function(e,t){return{boxSizing:"border-box",display:"block",position:"absolute",width:"100%",height:"100%",borderColor:e,whiteSpace:"nowrap",opacity:1,animationName:"".concat(ae.FILL_UNFILL_ROTATE,", ").concat(ae["LAYER_".concat(t+1,"_FADE_IN_OUT")]),WebkitAnimationName:"".concat(ae.FILL_UNFILL_ROTATE,", ").concat(ae["LAYER_".concat(t+1,"_FADE_IN_OUT")]),animationDuration:"".concat(n*r.length,"ms"),WebkitAnimationDuration:"".concat(n*r.length,"ms"),animationTimingFunction:"cubic-bezier(.4, 0, .2, 1)",WebkitAnimationTimingFunction:"cubic-bezier(.4, 0, .2, 1)",animationIterationCount:"infinite",WebkitAnimationIterationCount:"infinite"}})),l={display:"inline-block",boxSizing:"border-box",position:"absolute",top:0,borderRadius:"50%"},c=K({},l,{left:"45%",width:"10%",borderWidth:o,borderColor:"inherit",borderTopStyle:"solid"}),u=K({},l,{bottom:0,width:"200%",borderWidth:o,borderStyle:"solid",animationDuration:"".concat(n,"ms"),WebkitAnimationDuration:"".concat(n,"ms"),animationTimingFunction:"cubic-bezier(.4, 0, .2, 1)",WebkitAnimationTimingFunction:"cubic-bezier(.4, 0, .2, 1)",animationIterationCount:"infinite",WebkitAnimationIterationCount:"infinite"}),d=K({},u,{left:0,transform:"rotate(129deg)",WebkitTransform:"rotate(129deg)",animationName:ae.LEFT_SPIN,WebkitAnimationName:ae.LEFT_SPIN}),p=r.map((function(e){return K({},d,{borderColor:"".concat(e," transparent transparent ").concat(e)})})),h=K({},u,{left:"-100%",transform:"rotate(-129deg)",WebkitTransform:"rotate(-129deg)",animationName:ae.RIGHT_SPIN,WebkitAnimationName:ae.RIGHT_SPIN});return{rootStyle:a,layerStyles:s,layerAfterStyle:c,clipStyle:{display:"inline-block",boxSizing:"border-box",position:"relative",width:"50%",height:"100%",overflow:"hidden",borderColor:"inherit"},clip1AfterStyles:p,clip2AfterStyles:r.map((function(e){return K({},h,{borderColor:"".concat(e," ").concat(e," transparent transparent")})}))}}(this.props),o=n.rootStyle,i=n.layerStyles,a=n.layerAfterStyle,s=n.clipStyle,l=n.clip1AfterStyles,c=n.clip2AfterStyles,u=[],d=0;d<4;d++)u.push(r.createElement("span",{key:d,style:i[d]},r.createElement("span",{style:s},r.createElement("span",{style:l[d]})),r.createElement("span",{style:s},r.createElement("span",{style:c[d]})),r.createElement("span",{style:a})));return r.createElement("span",X({},t,{style:K({},o,null!=t.style?t.style:{})}),u)}}])&&Z(n.prototype,o),i&&Z(n,i),t}(r.PureComponent);Q(le,"defaultProps",{size:28,duration:1333,color1:"rgb(66, 165, 245)",color2:"rgb(239, 83, 80)",color3:"rgb(253, 216, 53)",color4:"rgb(76, 175, 80)"}),Q(le,"mountedInstanceCount",0);var ce=le,ue=n(9861);const de=o.default.div.withConfig({displayName:"Footer__ArticleButtonContainer",componentId:"sc-zqxmks-0"})(["display:flex;justify-content:space-between;margin-bottom:48px;@media (max-width:768px){margin-bottom:80px;padding:0 12.8px;flex-direction:column;& > div:first-child{margin-bottom:12.8px;}}"]),pe=o.default.div.withConfig({displayName:"Footer__ArrowFlexWrapper",componentId:"sc-zqxmks-1"})(["width:100%;display:flex;align-items:center;white-space:nowrap;"]),he=o.default.div.withConfig({displayName:"Footer__ArticleButtonTextWrapper",componentId:"sc-zqxmks-2"})(["display:flex;align-items:flex-end;flex-direction:column;overflow:hidden;"]),fe=o.default.div.withConfig({displayName:"Footer__Arrow",componentId:"sc-zqxmks-3"})(["position:relative;left:0;display:flex;align-items:center;font-size:24px;flex-basis:24px;transition:left 0.3s;"]),me=o.default.div.withConfig({displayName:"Footer__ArticleButtonWrapper",componentId:"sc-zqxmks-4"})(["display:flex;flex-direction:column;align-items:",";padding:20.8px 16px;max-width:250px;flex-basis:250px;font-size:17.6px;border-radius:5px;background-color:",";color:",";cursor:pointer;transition:background-color 0.3s;&:hover{background-color:",";}& ","{flex-direction:",";}& ","{align-items:",";}& ","{",";}&:hover ","{left:","px;}@media (max-width:768px){max-width:inherit;flex-basis:inherit;}"],(e=>e.right?"flex-end":"flex-start"),(e=>e.theme.colors.nextPostButtonBackground),(e=>e.theme.colors.text),(e=>e.theme.colors.hoveredNextPostButtonBackground),pe,(e=>e.right?"row-reverse":"row"),he,(e=>e.right?"flex-end":"flex-start"),fe,(e=>e.right?"margin-left: 16px":"margin-right: 16px"),fe,(e=>e.right?2:-2)),ge=o.default.div.withConfig({displayName:"Footer__ArticleButtonLabel",componentId:"sc-zqxmks-5"})(["margin-bottom:9.6px;font-size:12.8px;"]),ve=o.default.div.withConfig({displayName:"Footer__ArticleButtonTitle",componentId:"sc-zqxmks-6"})(["padding:2px 0;width:100%;text-overflow:ellipsis;overflow:hidden;"]),be=o.default.div.withConfig({displayName:"Footer__CommentWrapper",componentId:"sc-zqxmks-7"})(["@media (max-width:768px){padding:0 15px;}"]),ye=o.default.div.withConfig({displayName:"Footer__SpinnerWrapper",componentId:"sc-zqxmks-8"})(["height:200px;display:flex;justify-content:center;align-items:center;"]),ke=o.default.div.withConfig({displayName:"Footer__HiddenWrapper",componentId:"sc-zqxmks-9"})(["height:",";overflow:",";"],(e=>e.isHidden?"0px":"auto"),(e=>e.isHidden?"hidden":"auto")),_e=e=>{let{right:t,children:n,onClick:o}=e;return r.createElement(me,{right:t,onClick:o},r.createElement(pe,null,r.createElement(fe,null,t?r.createElement(Y.OEZ,null):r.createElement(Y.u_m,null)),r.createElement(he,null,r.createElement(ge,null,t?r.createElement(r.Fragment,null,"Next Post"):r.createElement(r.Fragment,null,"Previous Post")),r.createElement(ve,null,n))))},we=()=>{const e=(0,o.useTheme)();return r.createElement(ye,null,r.createElement(ce,{singleColor:e.colors.spinner}))},Ee=e=>{let{title:t}=e;const{theme:n}=(0,L.useSelector)((e=>e.theme)),{0:o,1:i}=(0,r.useState)(!0);return(0,r.useEffect)((()=>{setTimeout((()=>{i(!1)}),1500)}),[]),r.createElement(r.Fragment,null,o&&r.createElement(we,null),r.createElement(ke,{isHidden:o},r.createElement(ke,{isHidden:"light"===n},r.createElement(ue.Z,{id:"comments",repo:"theminjunchoi/theminjunchoi.github.io",repoId:"R_kgDOLCr2fA",category:"Comments",categoryId:"DIC_kwDOLCr2fM4Ci46V",mapping:"pathname",term:t,reactionsEnabled:"1",emitMetadata:"0",lang:"ko",theme:"dark"})),r.createElement(ke,{isHidden:"dark"===n},r.createElement(ue.Z,{id:"comments",repo:"theminjunchoi/theminjunchoi.github.io",repoId:"R_kgDOLCr2fA",category:"Comments",categoryId:"DIC_kwDOLCr2fM4Ci46V",mapping:"pathname",term:t,reactionsEnabled:"1",emitMetadata:"0",lang:"ko",theme:"light"}))))};var xe=e=>{var t,n;let{previous:o,next:i,title:s}=e;return r.createElement(r.Fragment,null,r.createElement(de,null,o?r.createElement(_e,{onClick:()=>{var e;return(0,y.navigate)(null==o||null===(e=o.fields)||void 0===e?void 0:e.slug)}},null==o||null===(t=o.frontmatter)||void 0===t?void 0:t.title):r.createElement("div",null),i&&r.createElement(_e,{right:!0,onClick:()=>{var e;return(0,y.navigate)(null==i||null===(e=i.fields)||void 0===e?void 0:e.slug)}},null==i||null===(n=i.frontmatter)||void 0===n?void 0:n.title)),r.createElement(be,null,r.createElement(a.Z,{mt:"32px"}),r.createElement(Ee,{title:s})))};const Ce=o.default.article.withConfig({displayName:"Article",componentId:"sc-1tzp0ke-0"})([""]);Ce.Header=f,Ce.Series=S,Ce.Body=q,Ce.Footer=xe;var Se=Ce},1309:function(e,t,n){"use strict";var o=n(7294),r=n(2788),i=n(9583),a=n(231),s=n(9349);const l=r.default.div.withConfig({displayName:"Bio__BioWrapper",componentId:"sc-5v8ml6-0"})(["display:flex;align-items:center;@media (max-width:768px){padding:0 15px;}"]),c="undefined"!=typeof window&&"localhost:8000"===window.location.host?"http://localhost:8000":s.siteUrl,u=r.default.div.withConfig({displayName:"Bio__Profile",componentId:"sc-5v8ml6-1"})(["flex:0 0 auto;margin-right:16px;width:128px;height:128px;border-radius:999px;background-image:url(","/",".png);background-size:cover;background-position:center;"],c,(e=>e.theme.colors.profile)),d=r.default.div.withConfig({displayName:"Bio__Author",componentId:"sc-5v8ml6-2"})(["margin-bottom:8px;font-size:24px;font-weight:700;color:",";"],(e=>e.theme.colors.text)),p=r.default.div.withConfig({displayName:"Bio__Description",componentId:"sc-5v8ml6-3"})(["margin-bottom:11.2px;line-height:1.5;font-size:16px;color:",";"],(e=>e.theme.colors.secondaryText)),h=r.default.div.withConfig({displayName:"Bio__LinksWrapper",componentId:"sc-5v8ml6-4"})(["& a{margin-right:9.6px;}& svg{width:25.6px;height:25.6px;cursor:pointer;}& svg path{fill:",";transition:fill 0.3s;}& a:hover svg path{fill:",";}"],(e=>e.theme.colors.icon),(e=>e.theme.colors.text)),f=e=>{let{link:t,children:n}=e;return t?o.createElement("a",{href:t,target:"_blank",rel:"noreferrer"},n):null};t.Z=()=>{const{github:e,kaggle:t,instagram:n,facebook:r,twitter:c,x:m,blogger:g,medium:v,linkedIn:b,email:y,resume:k,link:_}=s.links;return o.createElement(l,{id:"bio"},o.createElement(u,null),o.createElement("div",null,o.createElement(d,null,"@",s.author),o.createElement(p,null,s.description),o.createElement(h,null,o.createElement(f,{link:e},o.createElement(i.hJX,null)),o.createElement(f,{link:t},o.createElement(i.jnu,null)),o.createElement(f,{link:n},o.createElement(i.Zf_,null)),o.createElement(f,{link:r},o.createElement(i.Am9,null)),o.createElement(f,{link:c},o.createElement(i.fWC,null)),o.createElement(f,{link:m},o.createElement(a.LCd,null)),o.createElement(f,{link:v},o.createElement(a.Vlo,null)),o.createElement(f,{link:g},o.createElement(a.emo,null)),o.createElement(f,{link:b},o.createElement(i.ltd,null)),o.createElement(f,{link:y},o.createElement(a.uWG,null)),o.createElement(f,{link:k},o.createElement(a.lp$,null)),o.createElement(f,{link:_},o.createElement(a.gjK,null)))))}},184:function(e,t,n){"use strict";var o=n(7294),r=n(2788),i=n(1883);const a=r.default.div.withConfig({displayName:"TagList__TagListWrapper",componentId:"sc-s1uz5f-0"})(["margin-bottom:10px;word-break:break-all;"]),s=r.default.div.withConfig({displayName:"TagList__TagLink",componentId:"sc-s1uz5f-1"})(["display:inline-block;padding:9.6px 11.2px;margin-right:8px;margin-bottom:8px;border-radius:50px;background-color:",";color:",";text-decoration:none;font-size:14.4px;transition:all 0.2s;&:hover{background-color:",";}"],(e=>e.selected?e.theme.colors.selectedTagBackground:e.theme.colors.tagBackground),(e=>e.selected?e.theme.colors.selectedTagText:e.theme.colors.tagText),(e=>e.selected?e.theme.colors.hoveredSelectedTagBackground:e.theme.colors.hoveredTagBackground)),l=e=>e.replace(/\s+/g,"-");t.Z=e=>{let{tagList:t,count:n,selected:r}=e;return t?n?o.createElement(a,null,t.map(((e,t)=>o.createElement(i.Link,{key:JSON.stringify({tag:e,i:t}),to:r===e.fieldValue?"/tags":"/tags?q="+encodeURIComponent(e.fieldValue)},o.createElement(s,{selected:e.fieldValue===r},l(e.fieldValue)," (",e.totalCount,")"))))):o.createElement(a,null,t.map(((e,t)=>o.createElement(i.Link,{key:JSON.stringify({tag:e,i:t}),to:"/tags?q="+e},o.createElement(s,null,l(e)))))):null}},3096:function(e,t,n){var o="Expected a function",r=NaN,i="[object Symbol]",a=/^\s+|\s+$/g,s=/^[-+]0x[0-9a-f]+$/i,l=/^0b[01]+$/i,c=/^0o[0-7]+$/i,u=parseInt,d="object"==typeof n.g&&n.g&&n.g.Object===Object&&n.g,p="object"==typeof self&&self&&self.Object===Object&&self,h=d||p||Function("return this")(),f=Object.prototype.toString,m=Math.max,g=Math.min,v=function(){return h.Date.now()};function b(e,t,n){var r,i,a,s,l,c,u=0,d=!1,p=!1,h=!0;if("function"!=typeof e)throw new TypeError(o);function f(t){var n=r,o=i;return r=i=void 0,u=t,s=e.apply(o,n)}function b(e){var n=e-c;return void 0===c||n>=t||n<0||p&&e-u>=a}function _(){var e=v();if(b(e))return w(e);l=setTimeout(_,function(e){var n=t-(e-c);return p?g(n,a-(e-u)):n}(e))}function w(e){return l=void 0,h&&r?f(e):(r=i=void 0,s)}function E(){var e=v(),n=b(e);if(r=arguments,i=this,c=e,n){if(void 0===l)return function(e){return u=e,l=setTimeout(_,t),d?f(e):s}(c);if(p)return l=setTimeout(_,t),f(c)}return void 0===l&&(l=setTimeout(_,t)),s}return t=k(t)||0,y(n)&&(d=!!n.leading,a=(p="maxWait"in n)?m(k(n.maxWait)||0,t):a,h="trailing"in n?!!n.trailing:h),E.cancel=function(){void 0!==l&&clearTimeout(l),u=0,r=c=i=l=void 0},E.flush=function(){return void 0===l?s:w(v())},E}function y(e){var t=typeof e;return!!e&&("object"==t||"function"==t)}function k(e){if("number"==typeof e)return e;if(function(e){return"symbol"==typeof e||function(e){return!!e&&"object"==typeof e}(e)&&f.call(e)==i}(e))return r;if(y(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=y(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=e.replace(a,"");var n=l.test(e);return n||c.test(e)?u(e.slice(2),n?2:8):s.test(e)?r:+e}e.exports=function(e,t,n){var r=!0,i=!0;if("function"!=typeof e)throw new TypeError(o);return y(n)&&(r="leading"in n?!!n.leading:r,i="trailing"in n?!!n.trailing:i),b(e,t,{leading:r,maxWait:t,trailing:i})}},1848:function(e){e.exports=function(e,t,n,o){for(var r=e.length,i=n+(o?1:-1);o?i--:++i=Math.floor(a)&&d=Math.floor(s),m=n.getActiveLink();return f?(r===m&&n.setActiveLink(void 0),e.props.hashSpy&&p.getHash()===r&&p.changeHash(),e.props.spy&&e.state.active&&(e.setState({active:!1}),e.props.onSetInactive&&e.props.onSetInactive()),c.updateStates()):h&&m!==r?(n.setActiveLink(r),e.props.hashSpy&&p.changeHash(r),e.props.spy&&(e.setState({active:!0}),e.props.onSetActive&&e.props.onSetActive(r)),c.updateStates()):void 0}}};return d.propTypes=h,d.defaultProps={offset:0},d},Element:function(e){console.warn("Helpers.Element is deprecated since v1.7.0");var t=function(t){function n(e){i(this,n);var t=a(this,(n.__proto__||Object.getPrototypeOf(n)).call(this,e));return t.childBindings={domNode:null},t}return s(n,t),r(n,[{key:"componentDidMount",value:function(){if("undefined"==typeof window)return!1;this.registerElems(this.props.name)}},{key:"componentDidUpdate",value:function(e){this.props.name!==e.name&&this.registerElems(this.props.name)}},{key:"componentWillUnmount",value:function(){if("undefined"==typeof window)return!1;u.unregister(this.props.name)}},{key:"registerElems",value:function(e){u.register(e,this.childBindings.domNode)}},{key:"render",value:function(){return l.createElement(e,o({},this.props,{parentBindings:this.childBindings}))}}]),n}(l.Component);return t.propTypes={name:d.string,id:d.string},t}};e.exports=f},3200:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var o=Object.assign||function(e){for(var t=1;t=r.duration?1:t(r.progress/r.duration),r.currentPosition=r.startPosition+Math.ceil(r.delta*r.percent),r.containerElement&&r.containerElement!==document&&r.containerElement!==document.body?n.horizontal?r.containerElement.scrollLeft=r.currentPosition:r.containerElement.scrollTop=r.currentPosition:n.horizontal?window.scrollTo(r.currentPosition,0):window.scrollTo(0,r.currentPosition),r.percent<1){var i=e.bind(null,t,n);c.call(window,i)}else a.default.registered.end&&a.default.registered.end(r.to,r.target,r.currentPosition);else a.default.registered.end&&a.default.registered.end(r.to,r.target,r.currentPositionY)},h=function(e){e.data.containerElement=e?e.containerId?document.getElementById(e.containerId):e.container&&e.container.nodeType?e.container:document:null},f=function(e,t,n,o){if(t.data=t.data||{currentPosition:0,startPosition:0,targetPosition:0,progress:0,duration:0,cancel:!1,target:null,containerElement:null,to:null,start:null,delta:null,percent:null,delayTimeout:null},window.clearTimeout(t.data.delayTimeout),i.default.subscribe((function(){t.data.cancel=!0})),h(t),t.data.start=null,t.data.cancel=!1,t.data.startPosition=t.horizontal?u(t):d(t),t.data.targetPosition=t.absolute?e:e+t.data.startPosition,t.data.startPosition!==t.data.targetPosition){var r;t.data.delta=Math.round(t.data.targetPosition-t.data.startPosition),t.data.duration=("function"==typeof(r=t.duration)?r:function(){return r})(t.data.delta),t.data.duration=isNaN(parseFloat(t.data.duration))?1e3:parseFloat(t.data.duration),t.data.to=n,t.data.target=o;var s=l(t),f=p.bind(null,s,t);t&&t.delay>0?t.data.delayTimeout=window.setTimeout((function(){a.default.registered.begin&&a.default.registered.begin(t.data.to,t.data.target),c.call(window,f)}),t.delay):(a.default.registered.begin&&a.default.registered.begin(t.data.to,t.data.target),c.call(window,f))}else a.default.registered.end&&a.default.registered.end(t.data.to,t.data.target,t.data.currentPosition)},m=function(e){return(e=o({},e)).data=e.data||{currentPosition:0,startPosition:0,targetPosition:0,progress:0,duration:0,cancel:!1,target:null,containerElement:null,to:null,start:null,delta:null,percent:null,delayTimeout:null},e.absolute=!0,e};t.default={animateTopScroll:f,getAnimationType:l,scrollToTop:function(e){f(0,m(e))},scrollToBottom:function(e){e=m(e),h(e),f(e.horizontal?function(e){var t=e.data.containerElement;if(t&&t!==document&&t!==document.body)return t.scrollWidth-t.offsetWidth;var n=document.body,o=document.documentElement;return Math.max(n.scrollWidth,n.offsetWidth,o.clientWidth,o.scrollWidth,o.offsetWidth)}(e):function(e){var t=e.data.containerElement;if(t&&t!==document&&t!==document.body)return t.scrollHeight-t.offsetHeight;var n=document.body,o=document.documentElement;return Math.max(n.scrollHeight,n.offsetHeight,o.clientHeight,o.scrollHeight,o.offsetHeight)}(e),e)},scrollTo:function(e,t){f(e,m(t))},scrollMore:function(e,t){t=m(t),h(t);var n=t.horizontal?u(t):d(t);f(e+n,t)}}},140:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var o=n(5236),r=["mousedown","mousewheel","touchmove","keydown"];t.default={subscribe:function(e){return"undefined"!=typeof document&&r.forEach((function(t){return(0,o.addPassiveEventListener)(document,t,e)}))}}},5236:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.addPassiveEventListener=function(e,t,n){var o=function(){var e=!1;try{var t=Object.defineProperty({},"passive",{get:function(){e=!0}});window.addEventListener("test",null,t)}catch(n){}return e}();e.addEventListener(t,n,!!o&&{passive:!0})},t.removePassiveEventListener=function(e,t,n){e.removeEventListener(t,n)}},8e3:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var o=Object.assign||function(e){for(var t=1;t=Math.floor(d)&&m=Math.floor(p)}else{var g=0,v=0,b=0;if(r.getBoundingClientRect)b=r.getBoundingClientRect().top;if(!s||e.props.isDynamic){if(!(s=n.get(a)))return;var y=s.getBoundingClientRect();v=(g=y.top-b+o)+y.height}var k=o-e.props.offset;l=k>=Math.floor(g)&&k=Math.floor(v)}var _=n.getActiveLink();if(u){if(a===_&&n.setActiveLink(void 0),e.props.hashSpy&&c.default.getHash()===a){var w=e.props.saveHashHistory,E=void 0!==w&&w;c.default.changeHash("",E)}e.props.spy&&e.state.active&&(e.setState({active:!1}),e.props.onSetInactive&&e.props.onSetInactive(a,s))}if(l&&(_!==a||!1===e.state.active)){n.setActiveLink(a);var x=e.props.saveHashHistory,C=void 0!==x&&x;e.props.hashSpy&&c.default.changeHash(a,C),e.props.spy&&(e.setState({active:!0}),e.props.onSetActive&&e.props.onSetActive(a,s))}}}};return l.propTypes=d,l.defaultProps={offset:0},l}},7606:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var o,r=n(3096),i=(o=r)&&o.__esModule?o:{default:o},a=n(5236);var s={spyCallbacks:[],spySetState:[],scrollSpyContainers:[],mount:function(e,t){if(e){var n=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:66;return(0,i.default)(e,t)}((function(t){s.scrollHandler(e)}),t);s.scrollSpyContainers.push(e),(0,a.addPassiveEventListener)(e,"scroll",n)}},isMounted:function(e){return-1!==s.scrollSpyContainers.indexOf(e)},currentPositionX:function(e){if(e===document){var t=void 0!==window.pageYOffset,n="CSS1Compat"===(document.compatMode||"");return t?window.pageXOffset:n?document.documentElement.scrollLeft:document.body.scrollLeft}return e.scrollLeft},currentPositionY:function(e){if(e===document){var t=void 0!==window.pageXOffset,n="CSS1Compat"===(document.compatMode||"");return t?window.pageYOffset:n?document.documentElement.scrollTop:document.body.scrollTop}return e.scrollTop},scrollHandler:function(e){(s.scrollSpyContainers[s.scrollSpyContainers.indexOf(e)].spyCallbacks||[]).forEach((function(t){return t(s.currentPositionX(e),s.currentPositionY(e))}))},addStateHandler:function(e){s.spySetState.push(e)},addSpyHandler:function(e,t){var n=s.scrollSpyContainers[s.scrollSpyContainers.indexOf(t)];n.spyCallbacks||(n.spyCallbacks=[]),n.spyCallbacks.push(e),e(s.currentPositionX(t),s.currentPositionY(t))},updateStates:function(){s.spySetState.forEach((function(e){return e()}))},unmount:function(e,t){s.scrollSpyContainers.forEach((function(e){return e.spyCallbacks&&e.spyCallbacks.length&&e.spyCallbacks.indexOf(t)>-1&&e.spyCallbacks.splice(e.spyCallbacks.indexOf(t),1)})),s.spySetState&&s.spySetState.length&&s.spySetState.indexOf(e)>-1&&s.spySetState.splice(s.spySetState.indexOf(e),1),document.removeEventListener("scroll",s.scrollHandler)},update:function(){return s.scrollSpyContainers.forEach((function(e){return s.scrollHandler(e)}))}};t.default=s},2628:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var o=Object.assign||function(e){for(var t=1;t])/g,b=/([[}=:>])\s+/g,y=/(\{[^{]+?);(?=\})/g,k=/\s{2,}/g,_=/([^\(])(:+) */g,w=/[svh]\w+-[tblr]{2}/,E=/\(\s*(.*)\s*\)/g,x=/([\s\S]*?);/g,C=/-self|flex-/g,S=/[^]*?(:[rp][el]a[\w-]+)[^]*/,A=/stretch|:\s*\w+\-(?:conte|avail)/,$=/([^-])(image-set\()/,O="-webkit-",T="-moz-",P="-ms-",I=59,N=125,j=123,M=40,H=41,z=91,L=93,R=10,U=13,B=9,W=64,D=32,F=38,G=45,q=95,Y=42,V=44,Z=58,Q=39,X=34,K=47,J=62,ee=43,te=126,ne=0,oe=12,re=11,ie=107,ae=109,se=115,le=112,ce=111,ue=105,de=99,pe=100,he=112,fe=1,me=1,ge=0,ve=1,be=1,ye=1,ke=0,_e=0,we=0,Ee=[],xe=[],Ce=0,Se=null,Ae=-2,$e=-1,Oe=0,Te=1,Pe=2,Ie=3,Ne=0,je=1,Me="",He="",ze="";function Le(e,t,r,i,a){for(var s,l,c=0,u=0,d=0,p=0,h=0,v=0,b=0,y=0,k=0,_=0,w=0,x=0,C=0,S=0,A=0,$=0,q=0,ye=0,ke=0,xe=r.length,Se=xe-1,Ae="",$e="",Ue="",Fe="",Ve="",Ze="";A0&&($e=$e.replace(o,"")),$e.trim().length>0)){switch(b){case D:case B:case I:case U:case R:break;default:$e+=r.charAt(A)}b=I}if(1===q)switch(b){case j:case N:case I:case X:case Q:case M:case H:case V:q=0;case B:case U:case R:case D:break;default:for(q=0,ke=A,h=b,A--,b=I;ke0&&(++A,b=h);case j:ke=xe}}switch(b){case j:for(h=($e=$e.trim()).charCodeAt(0),w=1,ke=++A;A0&&($e=$e.replace(o,"")),v=$e.charCodeAt(1)){case pe:case ae:case se:case G:s=t;break;default:s=Ee}if(ke=(Ue=Le(t,s,Ue,v,a+1)).length,we>0&&0===ke&&(ke=$e.length),Ce>0&&(s=Re(Ee,$e,ye),l=qe(Ie,Ue,s,t,me,fe,ke,v,a,i),$e=s.join(""),void 0!==l&&0===(ke=(Ue=l.trim()).length)&&(v=0,Ue="")),ke>0)switch(v){case se:$e=$e.replace(E,De);case pe:case ae:case G:Ue=$e+"{"+Ue+"}";break;case ie:Ue=($e=$e.replace(f,"$1 $2"+(je>0?Me:"")))+"{"+Ue+"}",Ue=1===be||2===be&&We("@"+Ue,3)?"@"+O+Ue+"@"+Ue:"@"+Ue;break;default:Ue=$e+Ue,i===he&&(Fe+=Ue,Ue="")}else Ue=""}else Ue=Le(t,Re(t,$e,ye),Ue,i,a+1);Ve+=Ue,x=0,q=0,S=0,$=0,ye=0,C=0,$e="",Ue="",b=r.charCodeAt(++A);break;case N:case I:if((ke=($e=($>0?$e.replace(o,""):$e).trim()).length)>1)switch(0===S&&((h=$e.charCodeAt(0))===G||h>96&&h<123)&&(ke=($e=$e.replace(" ",":")).length),Ce>0&&void 0!==(l=qe(Te,$e,t,e,me,fe,Fe.length,i,a,i))&&0===(ke=($e=l.trim()).length)&&($e="\0\0"),h=$e.charCodeAt(0),v=$e.charCodeAt(1),h){case ne:break;case W:if(v===ue||v===de){Ze+=$e+r.charAt(A);break}default:if($e.charCodeAt(ke-1)===Z)break;Fe+=Be($e,h,v,$e.charCodeAt(2))}x=0,q=0,S=0,$=0,ye=0,$e="",b=r.charCodeAt(++A)}}switch(b){case U:case R:if(u+p+d+c+_e===0)switch(_){case H:case Q:case X:case W:case te:case J:case Y:case ee:case K:case G:case Z:case V:case I:case j:case N:break;default:S>0&&(q=1)}u===K?u=0:ve+x===0&&i!==ie&&$e.length>0&&($=1,$e+="\0"),Ce*Ne>0&&qe(Oe,$e,t,e,me,fe,Fe.length,i,a,i),fe=1,me++;break;case I:case N:if(u+p+d+c===0){fe++;break}default:switch(fe++,Ae=r.charAt(A),b){case B:case D:if(p+c+u===0)switch(y){case V:case Z:case B:case D:Ae="";break;default:b!==D&&(Ae=" ")}break;case ne:Ae="\\0";break;case oe:Ae="\\f";break;case re:Ae="\\v";break;case F:p+u+c===0&&ve>0&&(ye=1,$=1,Ae="\f"+Ae);break;case 108:if(p+u+c+ge===0&&S>0)switch(A-S){case 2:y===le&&r.charCodeAt(A-3)===Z&&(ge=y);case 8:k===ce&&(ge=k)}break;case Z:p+u+c===0&&(S=A);break;case V:u+d+p+c===0&&($=1,Ae+="\r");break;case X:case Q:0===u&&(p=p===b?0:0===p?b:p);break;case z:p+u+d===0&&c++;break;case L:p+u+d===0&&c--;break;case H:p+u+c===0&&d--;break;case M:p+u+c===0&&(0===x&&(2*y+3*k==533||(w=0,x=1)),d++);break;case W:u+d+p+c+S+C===0&&(C=1);break;case Y:case K:if(p+c+d>0)break;switch(u){case 0:switch(2*b+3*r.charCodeAt(A+1)){case 235:u=K;break;case 220:ke=A,u=Y}break;case Y:b===K&&y===Y&&ke+2!==A&&(33===r.charCodeAt(ke+2)&&(Fe+=r.substring(ke,A+1)),Ae="",u=0)}}if(0===u){if(ve+p+c+C===0&&i!==ie&&b!==I)switch(b){case V:case te:case J:case ee:case H:case M:if(0===x){switch(y){case B:case D:case R:case U:Ae+="\0";break;default:Ae="\0"+Ae+(b===V?"":"\0")}$=1}else switch(b){case M:S+7===A&&108===y&&(S=0),x=++w;break;case H:0==(x=--w)&&($=1,Ae+="\0")}break;case B:case D:switch(y){case ne:case j:case N:case I:case V:case oe:case B:case D:case R:case U:break;default:0===x&&($=1,Ae+="\0")}}$e+=Ae,b!==D&&b!==B&&(_=b)}}k=y,y=b,A++}if(ke=Fe.length,we>0&&0===ke&&0===Ve.length&&0===t[0].length==0&&(i!==ae||1===t.length&&(ve>0?He:ze)===t[0])&&(ke=t.join(",").length+2),ke>0){if(s=0===ve&&i!==ie?Ge(t):t,Ce>0&&void 0!==(l=qe(Pe,Fe,s,e,me,fe,ke,i,a,i))&&0===(Fe=l).length)return Ze+Fe+Ve;if(Fe=s.join(",")+"{"+Fe+"}",be*ge!=0){switch(2!==be||We(Fe,2)||(ge=0),ge){case ce:Fe=Fe.replace(g,":"+T+"$1")+Fe;break;case le:Fe=Fe.replace(m,"::"+O+"input-$1")+Fe.replace(m,"::"+T+"$1")+Fe.replace(m,":"+P+"input-$1")+Fe}ge=0}}return Ze+Fe+Ve}function Re(e,t,n){var o=t.trim().split(u),r=o,i=o.length,a=e.length;switch(a){case 0:case 1:for(var s=0,l=0===a?"":e[0]+" ";s0&&ve>0)return r.replace(p,"$1").replace(d,"$1"+ze);default:if(n*ve>0&&r.indexOf("\f")>0)return r.replace(d,(e.charCodeAt(0)===Z?"":"$1")+e.trim())}return e+r}function Be(e,t,n,o){var s,l=0,c=e+";",u=2*t+3*n+4*o;if(944===u)return Fe(c);if(0===be||2===be&&!We(c,1))return c;switch(u){case 1015:return 97===c.charCodeAt(10)?O+c+c:c;case 951:return 116===c.charCodeAt(3)?O+c+c:c;case 963:return 110===c.charCodeAt(5)?O+c+c:c;case 1009:if(100!==c.charCodeAt(4))break;case 969:case 942:return O+c+c;case 978:return O+c+T+c+c;case 1019:case 983:return O+c+T+c+P+c+c;case 883:return c.charCodeAt(8)===G?O+c+c:c.indexOf("image-set(",11)>0?c.replace($,"$1"+O+"$2")+c:c;case 932:if(c.charCodeAt(4)===G)switch(c.charCodeAt(5)){case 103:return O+"box-"+c.replace("-grow","")+O+c+P+c.replace("grow","positive")+c;case 115:return O+c+P+c.replace("shrink","negative")+c;case 98:return O+c+P+c.replace("basis","preferred-size")+c}return O+c+P+c+c;case 964:return O+c+P+"flex-"+c+c;case 1023:if(99!==c.charCodeAt(8))break;return s=c.substring(c.indexOf(":",15)).replace("flex-","").replace("space-between","justify"),O+"box-pack"+s+O+c+P+"flex-pack"+s+c;case 1005:return i.test(c)?c.replace(r,":"+O)+c.replace(r,":"+T)+c:c;case 1e3:switch(l=(s=c.substring(13).trim()).indexOf("-")+1,s.charCodeAt(0)+s.charCodeAt(l)){case 226:s=c.replace(w,"tb");break;case 232:s=c.replace(w,"tb-rl");break;case 220:s=c.replace(w,"lr");break;default:return c}return O+c+P+s+c;case 1017:if(-1===c.indexOf("sticky",9))return c;case 975:switch(l=(c=e).length-10,u=(s=(33===c.charCodeAt(l)?c.substring(0,l):c).substring(e.indexOf(":",7)+1).trim()).charCodeAt(0)+(0|s.charCodeAt(7))){case 203:if(s.charCodeAt(8)<111)break;case 115:c=c.replace(s,O+s)+";"+c;break;case 207:case 102:c=c.replace(s,O+(u>102?"inline-":"")+"box")+";"+c.replace(s,O+s)+";"+c.replace(s,P+s+"box")+";"+c}return c+";";case 938:if(c.charCodeAt(5)===G)switch(c.charCodeAt(6)){case 105:return s=c.replace("-items",""),O+c+O+"box-"+s+P+"flex-"+s+c;case 115:return O+c+P+"flex-item-"+c.replace(C,"")+c;default:return O+c+P+"flex-line-pack"+c.replace("align-content","").replace(C,"")+c}break;case 973:case 989:if(c.charCodeAt(3)!==G||122===c.charCodeAt(4))break;case 931:case 953:if(!0===A.test(e))return 115===(s=e.substring(e.indexOf(":")+1)).charCodeAt(0)?Be(e.replace("stretch","fill-available"),t,n,o).replace(":fill-available",":stretch"):c.replace(s,O+s)+c.replace(s,T+s.replace("fill-",""))+c;break;case 962:if(c=O+c+(102===c.charCodeAt(5)?P+c:"")+c,n+o===211&&105===c.charCodeAt(13)&&c.indexOf("transform",10)>0)return c.substring(0,c.indexOf(";",27)+1).replace(a,"$1"+O+"$2")+c}return c}function We(e,t){var n=e.indexOf(1===t?":":"{"),o=e.substring(0,3!==t?n:10),r=e.substring(n+1,e.length-1);return Se(2!==t?o:o.replace(S,"$1"),r,t)}function De(e,t){var n=Be(t,t.charCodeAt(0),t.charCodeAt(1),t.charCodeAt(2));return n!==t+";"?n.replace(x," or ($1)").substring(4):"("+t+")"}function Fe(e){var t=e.length,n=e.indexOf(":",9)+1,o=e.substring(0,n).trim(),r=e.substring(n,t-1).trim();switch(e.charCodeAt(9)*je){case 0:break;case G:if(110!==e.charCodeAt(10))break;default:var i=r.split((r="",s)),a=0;for(n=0,t=i.length;aW&&d<90||d>96&&d<123||d===q||d===G&&c.charCodeAt(1)!==G)&&isNaN(parseFloat(c))+(-1!==c.indexOf("("))===1)switch(c){case"infinite":case"alternate":case"backwards":case"running":case"normal":case"forwards":case"both":case"none":case"linear":case"ease":case"ease-in":case"ease-out":case"ease-in-out":case"paused":case"reverse":case"alternate-reverse":case"inherit":case"initial":case"unset":case"step-start":case"step-end":break;default:c+=Me}u[n++]=c}r+=(0===a?"":",")+u.join(" ")}}return r=o+r+";",1===be||2===be&&We(r,1)?O+r+r:r}function Ge(e){for(var t,n,r=0,i=e.length,a=Array(i);r1)){if(p=l.charCodeAt(l.length-1),h=n.charCodeAt(0),t="",0!==u)switch(p){case Y:case te:case J:case ee:case D:case M:break;default:t=" "}switch(h){case F:n=t+He;case te:case J:case ee:case D:case H:case M:break;case z:n=t+n+He;break;case Z:switch(2*n.charCodeAt(1)+3*n.charCodeAt(2)){case 530:if(ye>0){n=t+n.substring(8,d-1);break}default:(u<1||s[u-1].length<1)&&(n=t+He+n)}break;case V:t="";default:n=d>1&&n.indexOf(":")>0?t+n.replace(_,"$1"+He+"$2"):t+n+He}l+=n}a[r]=l.replace(o,"").trim()}return a}function qe(e,t,n,o,r,i,a,s,l,c){for(var u,d=0,p=t;d0&&(Me=o.replace(h,r===z?"":"-")),r=1,1===ve?ze=o:He=o;var i,a=[ze];Ce>0&&void 0!==(i=qe($e,n,a,a,me,fe,0,0,0,0))&&"string"==typeof i&&(n=i);var s=Le(Ee,a,n,0,0);return Ce>0&&void 0!==(i=qe(Ae,s,a,a,me,fe,s.length,0,0,0))&&"string"!=typeof(s=i)&&(r=0),Me="",ze="",He="",ge=0,me=1,fe=1,ke*r==0?s:Ve(s)}return Xe.use=Ze,Xe.set=Qe,void 0!==t&&Qe(t),Xe}(null)},9861:function(e,t,n){"use strict";var o=n(8071);t.Z=o}}]); +//# sourceMappingURL=98746260b83f1504b91525807bb027b2132b1e06-2952f59d70525a6adf5b.js.map \ No newline at end of file diff --git a/98746260b83f1504b91525807bb027b2132b1e06-2952f59d70525a6adf5b.js.LICENSE.txt b/98746260b83f1504b91525807bb027b2132b1e06-2952f59d70525a6adf5b.js.LICENSE.txt new file mode 100644 index 0000000..46689c4 --- /dev/null +++ b/98746260b83f1504b91525807bb027b2132b1e06-2952f59d70525a6adf5b.js.LICENSE.txt @@ -0,0 +1,36 @@ +/* + * __ ___ + * _____/ /___ __/ (_)____ + * / ___/ __/ / / / / / ___/ + * (__ ) /_/ /_/ / / (__ ) + * /____/\__/\__, /_/_/____/ + * /____/ + * + * light - weight css preprocessor @licence MIT + */ + +/*! @preserve react-md-spinner v1.0.0 - tsuyoshiwada | MIT license. */ + +/** + * @license + * Copyright 2017 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + */ + +/** + * @license + * Copyright 2019 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + */ + +/** + * @license + * Copyright 2020 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + */ + +/** + * @license + * Copyright 2021 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + */ diff --git a/98746260b83f1504b91525807bb027b2132b1e06-2952f59d70525a6adf5b.js.map b/98746260b83f1504b91525807bb027b2132b1e06-2952f59d70525a6adf5b.js.map new file mode 100644 index 0000000..071b369 --- /dev/null +++ b/98746260b83f1504b91525807bb027b2132b1e06-2952f59d70525a6adf5b.js.map @@ -0,0 +1 @@ +{"version":3,"file":"98746260b83f1504b91525807bb027b2132b1e06-2952f59d70525a6adf5b.js","mappings":"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","sources":["webpack://gatsby-starter-hoodie/./node_modules/@giscus/react/dist/giscus-1126a0a1.js","webpack://gatsby-starter-hoodie/./node_modules/@giscus/react/dist/index.js","webpack://gatsby-starter-hoodie/./src/components/Article/Header/index.jsx","webpack://gatsby-starter-hoodie/./src/components/Article/Series/index.jsx","webpack://gatsby-starter-hoodie/./src/hooks/useOffsetTop.jsx","webpack://gatsby-starter-hoodie/./src/hooks/useScroll.jsx","webpack://gatsby-starter-hoodie/./src/utils/getElmentOffset.js","webpack://gatsby-starter-hoodie/./src/components/RevealOnScroll/index.jsx","webpack://gatsby-starter-hoodie/./src/components/Article/Body/Toc/index.jsx","webpack://gatsby-starter-hoodie/./src/components/Article/Body/StyledMarkdown/index.jsx","webpack://gatsby-starter-hoodie/./src/components/Article/Body/PrismTheme/CommonStyle.jsx","webpack://gatsby-starter-hoodie/./src/components/Article/Body/PrismTheme/DarkMode.jsx","webpack://gatsby-starter-hoodie/./src/components/Article/Body/PrismTheme/LightMode.jsx","webpack://gatsby-starter-hoodie/./src/components/Article/Body/PrismTheme/index.jsx","webpack://gatsby-starter-hoodie/./src/components/Article/Body/index.jsx","webpack://gatsby-starter-hoodie/./node_modules/react-md-spinner/dist/react-md-spinner.esm.js","webpack://gatsby-starter-hoodie/./src/components/Article/Footer/index.jsx","webpack://gatsby-starter-hoodie/./src/components/Article/index.jsx","webpack://gatsby-starter-hoodie/./src/components/Bio/index.jsx","webpack://gatsby-starter-hoodie/./src/components/TagList/index.jsx","webpack://gatsby-starter-hoodie/./node_modules/lodash.throttle/index.js","webpack://gatsby-starter-hoodie/./node_modules/lodash/_baseFindIndex.js","webpack://gatsby-starter-hoodie/./node_modules/lodash/findIndex.js","webpack://gatsby-starter-hoodie/./node_modules/lodash/replace.js","webpack://gatsby-starter-hoodie/./node_modules/lodash/toFinite.js","webpack://gatsby-starter-hoodie/./node_modules/lodash/toInteger.js","webpack://gatsby-starter-hoodie/./node_modules/react-scroll/modules/components/Button.js","webpack://gatsby-starter-hoodie/./node_modules/react-scroll/modules/components/Element.js","webpack://gatsby-starter-hoodie/./node_modules/react-scroll/modules/components/Link.js","webpack://gatsby-starter-hoodie/./node_modules/react-scroll/modules/index.js","webpack://gatsby-starter-hoodie/./node_modules/react-scroll/modules/mixins/Helpers.js","webpack://gatsby-starter-hoodie/./node_modules/react-scroll/modules/mixins/animate-scroll.js","webpack://gatsby-starter-hoodie/./node_modules/react-scroll/modules/mixins/cancel-events.js","webpack://gatsby-starter-hoodie/./node_modules/react-scroll/modules/mixins/passive-event-listeners.js","webpack://gatsby-starter-hoodie/./node_modules/react-scroll/modules/mixins/scroll-element.js","webpack://gatsby-starter-hoodie/./node_modules/react-scroll/modules/mixins/scroll-events.js","webpack://gatsby-starter-hoodie/./node_modules/react-scroll/modules/mixins/scroll-hash.js","webpack://gatsby-starter-hoodie/./node_modules/react-scroll/modules/mixins/scroll-link.js","webpack://gatsby-starter-hoodie/./node_modules/react-scroll/modules/mixins/scroll-spy.js","webpack://gatsby-starter-hoodie/./node_modules/react-scroll/modules/mixins/scroller.js","webpack://gatsby-starter-hoodie/./node_modules/react-scroll/modules/mixins/smooth.js","webpack://gatsby-starter-hoodie/./node_modules/react-scroll/modules/mixins/utils.js","webpack://gatsby-starter-hoodie/./node_modules/stylis/stylis.js","webpack://gatsby-starter-hoodie/./node_modules/@giscus/react/dist/wrapper.mjs"],"sourcesContent":["\"use strict\";Object.defineProperty(exports,Symbol.toStringTag,{value:\"Module\"});/**\n * @license\n * Copyright 2019 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const M=window,F=M.ShadowRoot&&(M.ShadyCSS===void 0||M.ShadyCSS.nativeShadow)&&\"adoptedStyleSheets\"in Document.prototype&&\"replace\"in CSSStyleSheet.prototype,Q=Symbol(),Z=new WeakMap;let ct=class{constructor(t,e,s){if(this._$cssResult$=!0,s!==Q)throw Error(\"CSSResult is not constructable. Use `unsafeCSS` or `css` instead.\");this.cssText=t,this.t=e}get styleSheet(){let t=this.o;const e=this.t;if(F&&t===void 0){const s=e!==void 0&&e.length===1;s&&(t=Z.get(e)),t===void 0&&((this.o=t=new CSSStyleSheet).replaceSync(this.cssText),s&&Z.set(e,t))}return t}toString(){return this.cssText}};const _t=i=>new ct(typeof i==\"string\"?i:i+\"\",void 0,Q),vt=(i,...t)=>{const e=i.length===1?i[0]:t.reduce((s,n,r)=>s+(o=>{if(o._$cssResult$===!0)return o.cssText;if(typeof o==\"number\")return o;throw Error(\"Value passed to 'css' function must be a 'css' function result: \"+o+\". Use 'unsafeCSS' to pass non-literal values, but take care to ensure page security.\")})(n)+i[r+1],i[0]);return new ct(e,i,Q)},ft=(i,t)=>{F?i.adoptedStyleSheets=t.map(e=>e instanceof CSSStyleSheet?e:e.styleSheet):t.forEach(e=>{const s=document.createElement(\"style\"),n=M.litNonce;n!==void 0&&s.setAttribute(\"nonce\",n),s.textContent=e.cssText,i.appendChild(s)})},X=F?i=>i:i=>i instanceof CSSStyleSheet?(t=>{let e=\"\";for(const s of t.cssRules)e+=s.cssText;return _t(e)})(i):i;/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */var L;const H=window,tt=H.trustedTypes,mt=tt?tt.emptyScript:\"\",et=H.reactiveElementPolyfillSupport,Y={toAttribute(i,t){switch(t){case Boolean:i=i?mt:null;break;case Object:case Array:i=i==null?i:JSON.stringify(i)}return i},fromAttribute(i,t){let e=i;switch(t){case Boolean:e=i!==null;break;case Number:e=i===null?null:Number(i);break;case Object:case Array:try{e=JSON.parse(i)}catch{e=null}}return e}},dt=(i,t)=>t!==i&&(t==t||i==i),W={attribute:!0,type:String,converter:Y,reflect:!1,hasChanged:dt},q=\"finalized\";let y=class extends HTMLElement{constructor(){super(),this._$Ei=new Map,this.isUpdatePending=!1,this.hasUpdated=!1,this._$El=null,this.u()}static addInitializer(t){var e;this.finalize(),((e=this.h)!==null&&e!==void 0?e:this.h=[]).push(t)}static get observedAttributes(){this.finalize();const t=[];return this.elementProperties.forEach((e,s)=>{const n=this._$Ep(s,e);n!==void 0&&(this._$Ev.set(n,s),t.push(n))}),t}static createProperty(t,e=W){if(e.state&&(e.attribute=!1),this.finalize(),this.elementProperties.set(t,e),!e.noAccessor&&!this.prototype.hasOwnProperty(t)){const s=typeof t==\"symbol\"?Symbol():\"__\"+t,n=this.getPropertyDescriptor(t,s,e);n!==void 0&&Object.defineProperty(this.prototype,t,n)}}static getPropertyDescriptor(t,e,s){return{get(){return this[e]},set(n){const r=this[t];this[e]=n,this.requestUpdate(t,r,s)},configurable:!0,enumerable:!0}}static getPropertyOptions(t){return this.elementProperties.get(t)||W}static finalize(){if(this.hasOwnProperty(q))return!1;this[q]=!0;const t=Object.getPrototypeOf(this);if(t.finalize(),t.h!==void 0&&(this.h=[...t.h]),this.elementProperties=new Map(t.elementProperties),this._$Ev=new Map,this.hasOwnProperty(\"properties\")){const e=this.properties,s=[...Object.getOwnPropertyNames(e),...Object.getOwnPropertySymbols(e)];for(const n of s)this.createProperty(n,e[n])}return this.elementStyles=this.finalizeStyles(this.styles),!0}static finalizeStyles(t){const e=[];if(Array.isArray(t)){const s=new Set(t.flat(1/0).reverse());for(const n of s)e.unshift(X(n))}else t!==void 0&&e.push(X(t));return e}static _$Ep(t,e){const s=e.attribute;return s===!1?void 0:typeof s==\"string\"?s:typeof t==\"string\"?t.toLowerCase():void 0}u(){var t;this._$E_=new Promise(e=>this.enableUpdating=e),this._$AL=new Map,this._$Eg(),this.requestUpdate(),(t=this.constructor.h)===null||t===void 0||t.forEach(e=>e(this))}addController(t){var e,s;((e=this._$ES)!==null&&e!==void 0?e:this._$ES=[]).push(t),this.renderRoot!==void 0&&this.isConnected&&((s=t.hostConnected)===null||s===void 0||s.call(t))}removeController(t){var e;(e=this._$ES)===null||e===void 0||e.splice(this._$ES.indexOf(t)>>>0,1)}_$Eg(){this.constructor.elementProperties.forEach((t,e)=>{this.hasOwnProperty(e)&&(this._$Ei.set(e,this[e]),delete this[e])})}createRenderRoot(){var t;const e=(t=this.shadowRoot)!==null&&t!==void 0?t:this.attachShadow(this.constructor.shadowRootOptions);return ft(e,this.constructor.elementStyles),e}connectedCallback(){var t;this.renderRoot===void 0&&(this.renderRoot=this.createRenderRoot()),this.enableUpdating(!0),(t=this._$ES)===null||t===void 0||t.forEach(e=>{var s;return(s=e.hostConnected)===null||s===void 0?void 0:s.call(e)})}enableUpdating(t){}disconnectedCallback(){var t;(t=this._$ES)===null||t===void 0||t.forEach(e=>{var s;return(s=e.hostDisconnected)===null||s===void 0?void 0:s.call(e)})}attributeChangedCallback(t,e,s){this._$AK(t,s)}_$EO(t,e,s=W){var n;const r=this.constructor._$Ep(t,s);if(r!==void 0&&s.reflect===!0){const o=(((n=s.converter)===null||n===void 0?void 0:n.toAttribute)!==void 0?s.converter:Y).toAttribute(e,s.type);this._$El=t,o==null?this.removeAttribute(r):this.setAttribute(r,o),this._$El=null}}_$AK(t,e){var s;const n=this.constructor,r=n._$Ev.get(t);if(r!==void 0&&this._$El!==r){const o=n.getPropertyOptions(r),c=typeof o.converter==\"function\"?{fromAttribute:o.converter}:((s=o.converter)===null||s===void 0?void 0:s.fromAttribute)!==void 0?o.converter:Y;this._$El=r,this[r]=c.fromAttribute(e,o.type),this._$El=null}}requestUpdate(t,e,s){let n=!0;t!==void 0&&(((s=s||this.constructor.getPropertyOptions(t)).hasChanged||dt)(this[t],e)?(this._$AL.has(t)||this._$AL.set(t,e),s.reflect===!0&&this._$El!==t&&(this._$EC===void 0&&(this._$EC=new Map),this._$EC.set(t,s))):n=!1),!this.isUpdatePending&&n&&(this._$E_=this._$Ej())}async _$Ej(){this.isUpdatePending=!0;try{await this._$E_}catch(e){Promise.reject(e)}const t=this.scheduleUpdate();return t!=null&&await t,!this.isUpdatePending}scheduleUpdate(){return this.performUpdate()}performUpdate(){var t;if(!this.isUpdatePending)return;this.hasUpdated,this._$Ei&&(this._$Ei.forEach((n,r)=>this[r]=n),this._$Ei=void 0);let e=!1;const s=this._$AL;try{e=this.shouldUpdate(s),e?(this.willUpdate(s),(t=this._$ES)===null||t===void 0||t.forEach(n=>{var r;return(r=n.hostUpdate)===null||r===void 0?void 0:r.call(n)}),this.update(s)):this._$Ek()}catch(n){throw e=!1,this._$Ek(),n}e&&this._$AE(s)}willUpdate(t){}_$AE(t){var e;(e=this._$ES)===null||e===void 0||e.forEach(s=>{var n;return(n=s.hostUpdated)===null||n===void 0?void 0:n.call(s)}),this.hasUpdated||(this.hasUpdated=!0,this.firstUpdated(t)),this.updated(t)}_$Ek(){this._$AL=new Map,this.isUpdatePending=!1}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._$E_}shouldUpdate(t){return!0}update(t){this._$EC!==void 0&&(this._$EC.forEach((e,s)=>this._$EO(s,this[s],e)),this._$EC=void 0),this._$Ek()}updated(t){}firstUpdated(t){}};y[q]=!0,y.elementProperties=new Map,y.elementStyles=[],y.shadowRootOptions={mode:\"open\"},et==null||et({ReactiveElement:y}),((L=H.reactiveElementVersions)!==null&&L!==void 0?L:H.reactiveElementVersions=[]).push(\"1.6.2\");/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */var D;const x=window,S=x.trustedTypes,st=S?S.createPolicy(\"lit-html\",{createHTML:i=>i}):void 0,J=\"$lit$\",v=`lit$${(Math.random()+\"\").slice(9)}$`,ut=\"?\"+v,At=`<${ut}>`,A=document,N=()=>A.createComment(\"\"),O=i=>i===null||typeof i!=\"object\"&&typeof i!=\"function\",pt=Array.isArray,yt=i=>pt(i)||typeof(i==null?void 0:i[Symbol.iterator])==\"function\",z=`[ \t\n\\f\\r]`,C=/<(?:(!--|\\/[^a-zA-Z])|(\\/?[a-zA-Z][^>\\s]*)|(\\/?$))/g,it=/-->/g,nt=/>/g,f=RegExp(`>|${z}(?:([^\\\\s\"'>=/]+)(${z}*=${z}*(?:[^ \t\n\\f\\r\"'\\`<>=]|(\"|')|))|$)`,\"g\"),rt=/'/g,ot=/\"/g,$t=/^(?:script|style|textarea|title)$/i,St=i=>(t,...e)=>({_$litType$:i,strings:t,values:e}),Et=St(1),E=Symbol.for(\"lit-noChange\"),u=Symbol.for(\"lit-nothing\"),lt=new WeakMap,m=A.createTreeWalker(A,129,null,!1),bt=(i,t)=>{const e=i.length-1,s=[];let n,r=t===2?\"\":\"\",o=C;for(let l=0;l\"?(o=n??C,d=-1):a[1]===void 0?d=-2:(d=o.lastIndex-a[2].length,_=a[1],o=a[3]===void 0?f:a[3]==='\"'?ot:rt):o===ot||o===rt?o=f:o===it||o===nt?o=C:(o=f,n=void 0);const R=o===f&&i[l+1].startsWith(\"/>\")?\" \":\"\";r+=o===C?h+At:d>=0?(s.push(_),h.slice(0,d)+J+h.slice(d)+v+R):h+v+(d===-2?(s.push(void 0),l):R)}const c=r+(i[e]||\"\")+(t===2?\"\":\"\");if(!Array.isArray(i)||!i.hasOwnProperty(\"raw\"))throw Error(\"invalid template strings array\");return[st!==void 0?st.createHTML(c):c,s]};class P{constructor({strings:t,_$litType$:e},s){let n;this.parts=[];let r=0,o=0;const c=t.length-1,l=this.parts,[h,_]=bt(t,e);if(this.el=P.createElement(h,s),m.currentNode=this.el.content,e===2){const a=this.el.content,d=a.firstChild;d.remove(),a.append(...d.childNodes)}for(;(n=m.nextNode())!==null&&l.length0){n.textContent=S?S.emptyScript:\"\";for(let g=0;g2||s[0]!==\"\"||s[1]!==\"\"?(this._$AH=Array(s.length-1).fill(new String),this.strings=s):this._$AH=u}get tagName(){return this.element.tagName}get _$AU(){return this._$AM._$AU}_$AI(t,e=this,s,n){const r=this.strings;let o=!1;if(r===void 0)t=b(this,t,e,0),o=!O(t)||t!==this._$AH&&t!==E,o&&(this._$AH=t);else{const c=t;let l,h;for(t=r[0],l=0;l{var s,n;const r=(s=e==null?void 0:e.renderBefore)!==null&&s!==void 0?s:t;let o=r._$litPart$;if(o===void 0){const c=(n=e==null?void 0:e.renderBefore)!==null&&n!==void 0?n:null;r._$litPart$=o=new T(t.insertBefore(N(),c),c,void 0,e??{})}return o._$AI(i),o};/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */var j,B;let w=class extends y{constructor(){super(...arguments),this.renderOptions={host:this},this._$Do=void 0}createRenderRoot(){var t,e;const s=super.createRenderRoot();return(t=(e=this.renderOptions).renderBefore)!==null&&t!==void 0||(e.renderBefore=s.firstChild),s}update(t){const e=this.render();this.hasUpdated||(this.renderOptions.isConnected=this.isConnected),super.update(t),this._$Do=Tt(e,this.renderRoot,this.renderOptions)}connectedCallback(){var t;super.connectedCallback(),(t=this._$Do)===null||t===void 0||t.setConnected(!0)}disconnectedCallback(){var t;super.disconnectedCallback(),(t=this._$Do)===null||t===void 0||t.setConnected(!1)}render(){return E}};w.finalized=!0,w._$litElement$=!0,(j=globalThis.litElementHydrateSupport)===null||j===void 0||j.call(globalThis,{LitElement:w});const at=globalThis.litElementPolyfillSupport;at==null||at({LitElement:w});((B=globalThis.litElementVersions)!==null&&B!==void 0?B:globalThis.litElementVersions=[]).push(\"3.3.2\");/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const Rt=i=>t=>typeof t==\"function\"?((e,s)=>(customElements.define(e,s),s))(i,t):((e,s)=>{const{kind:n,elements:r}=s;return{kind:n,elements:r,finisher(o){customElements.define(e,o)}}})(i,t);/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const It=(i,t)=>t.kind===\"method\"&&t.descriptor&&!(\"value\"in t.descriptor)?{...t,finisher(e){e.createProperty(t.key,i)}}:{kind:\"field\",key:Symbol(),placement:\"own\",descriptor:{},originalKey:t.key,initializer(){typeof t.initializer==\"function\"&&(this[t.key]=t.initializer.call(this))},finisher(e){e.createProperty(t.key,i)}},Mt=(i,t,e)=>{t.constructor.createProperty(e,i)};function $(i){return(t,e)=>e!==void 0?Mt(i,t,e):It(i,t)}/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */var V;((V=window.HTMLSlotElement)===null||V===void 0?void 0:V.prototype.assignedElements)!=null;/**\n * @license\n * Copyright 2020 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const Ht=i=>i.strings===void 0;/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const xt={ATTRIBUTE:1,CHILD:2,PROPERTY:3,BOOLEAN_ATTRIBUTE:4,EVENT:5,ELEMENT:6},Gt=i=>(...t)=>({_$litDirective$:i,values:t});let kt=class{constructor(t){}get _$AU(){return this._$AM._$AU}_$AT(t,e,s){this._$Ct=t,this._$AM=e,this._$Ci=s}_$AS(t,e){return this.update(t,e)}update(t,e){return this.render(...e)}};/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const U=(i,t)=>{var e,s;const n=i._$AN;if(n===void 0)return!1;for(const r of n)(s=(e=r)._$AO)===null||s===void 0||s.call(e,t,!1),U(r,t);return!0},G=i=>{let t,e;do{if((t=i._$AM)===void 0)break;e=t._$AN,e.delete(i),i=t}while((e==null?void 0:e.size)===0)},gt=i=>{for(let t;t=i._$AM;i=t){let e=t._$AN;if(e===void 0)t._$AN=e=new Set;else if(e.has(i))break;e.add(i),Dt(t)}};function Lt(i){this._$AN!==void 0?(G(this),this._$AM=i,gt(this)):this._$AM=i}function Wt(i,t=!1,e=0){const s=this._$AH,n=this._$AN;if(n!==void 0&&n.size!==0)if(t)if(Array.isArray(s))for(let r=e;r{var t,e,s,n;i.type==xt.CHILD&&((t=(s=i)._$AP)!==null&&t!==void 0||(s._$AP=Wt),(e=(n=i)._$AQ)!==null&&e!==void 0||(n._$AQ=Lt))};class zt extends kt{constructor(){super(...arguments),this._$AN=void 0}_$AT(t,e,s){super._$AT(t,e,s),gt(this),this.isConnected=t._$AU}_$AO(t,e=!0){var s,n;t!==this.isConnected&&(this.isConnected=t,t?(s=this.reconnected)===null||s===void 0||s.call(this):(n=this.disconnected)===null||n===void 0||n.call(this)),e&&(U(this,t),G(this))}setValue(t){if(Ht(this._$Ct))this._$Ct._$AI(t,this);else{const e=[...this._$Ct._$AH];e[this._$Ci]=t,this._$Ct._$AI(e,this,0)}}disconnected(){}reconnected(){}}/**\n * @license\n * Copyright 2020 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const jt=()=>new Bt;class Bt{}const K=new WeakMap,Vt=Gt(class extends zt{render(i){return u}update(i,[t]){var e;const s=t!==this.G;return s&&this.G!==void 0&&this.ot(void 0),(s||this.rt!==this.lt)&&(this.G=t,this.ct=(e=i.options)===null||e===void 0?void 0:e.host,this.ot(this.lt=i.element)),u}ot(i){var t;if(typeof this.G==\"function\"){const e=(t=this.ct)!==null&&t!==void 0?t:globalThis;let s=K.get(e);s===void 0&&(s=new WeakMap,K.set(e,s)),s.get(this.G)!==void 0&&this.G.call(this.ct,void 0),s.set(this.G,i),i!==void 0&&this.G.call(this.ct,i)}else this.G.value=i}get rt(){var i,t,e;return typeof this.G==\"function\"?(t=K.get((i=this.ct)!==null&&i!==void 0?i:globalThis))===null||t===void 0?void 0:t.get(this.G):(e=this.G)===null||e===void 0?void 0:e.value}disconnected(){this.rt===this.lt&&this.ot(void 0)}reconnected(){this.ot(this.lt)}});var Kt=Object.defineProperty,Yt=Object.getOwnPropertyDescriptor,p=(i,t,e,s)=>{for(var n=s>1?void 0:s?Yt(t,e):t,r=i.length-1,o;r>=0;r--)(o=i[r])&&(n=(s?o(t,e,n):o(n))||n);return s&&n&&Kt(t,e,n),n};function qt(i){return customElements.get(i)?t=>t:Rt(i)}exports.GiscusWidget=class extends w{constructor(){super(),this.GISCUS_SESSION_KEY=\"giscus-session\",this.GISCUS_DEFAULT_HOST=\"https://giscus.app\",this.ERROR_SUGGESTION=\"Please consider reporting this error at https://github.com/giscus/giscus/issues/new.\",this.__session=\"\",this._iframeRef=jt(),this.messageEventHandler=this.handleMessageEvent.bind(this),this.hasLoaded=!1,this.host=this.GISCUS_DEFAULT_HOST,this.strict=\"0\",this.reactionsEnabled=\"1\",this.emitMetadata=\"0\",this.inputPosition=\"bottom\",this.theme=\"light\",this.lang=\"en\",this.loading=\"eager\",this.setupSession(),window.addEventListener(\"message\",this.messageEventHandler)}get iframeRef(){var t;return(t=this._iframeRef)==null?void 0:t.value}get _host(){try{return new URL(this.host),this.host}catch{return this.GISCUS_DEFAULT_HOST}}disconnectedCallback(){super.disconnectedCallback(),window.removeEventListener(\"message\",this.messageEventHandler)}_formatError(t){return`[giscus] An error occurred. Error message: \"${t}\".`}setupSession(){const t=location.href,e=new URL(t),s=localStorage.getItem(this.GISCUS_SESSION_KEY),n=e.searchParams.get(\"giscus\")||\"\";if(this.__session=\"\",n){localStorage.setItem(this.GISCUS_SESSION_KEY,JSON.stringify(n)),this.__session=n,e.searchParams.delete(\"giscus\"),e.hash=\"\",history.replaceState(void 0,document.title,e.toString());return}if(s)try{this.__session=JSON.parse(s)}catch(r){localStorage.removeItem(this.GISCUS_SESSION_KEY),console.warn(`${this._formatError(r==null?void 0:r.message)} Session has been cleared.`)}}signOut(){localStorage.removeItem(this.GISCUS_SESSION_KEY),this.__session=\"\",this.update(new Map)}handleMessageEvent(t){if(t.origin!==this._host)return;const{data:e}=t;if(!(typeof e==\"object\"&&e.giscus))return;if(this.iframeRef&&e.giscus.resizeHeight&&(this.iframeRef.style.height=`${e.giscus.resizeHeight}px`),e.giscus.signOut){console.log(\"[giscus] User has logged out. Session has been cleared.\"),this.signOut();return}if(!e.giscus.error)return;const s=e.giscus.error;if(s.includes(\"Bad credentials\")||s.includes(\"Invalid state value\")||s.includes(\"State has expired\")){if(localStorage.getItem(this.GISCUS_SESSION_KEY)!==null){console.warn(`${this._formatError(s)} Session has been cleared.`),this.signOut();return}console.error(`${this._formatError(s)} No session is stored initially. ${this.ERROR_SUGGESTION}`)}if(s.includes(\"Discussion not found\")){console.warn(`[giscus] ${s}. A new discussion will be created if a comment/reaction is submitted.`);return}console.error(`${this._formatError(s)} ${this.ERROR_SUGGESTION}`)}sendMessage(t){!this.iframeRef||!this.iframeRef.contentWindow||!this.hasLoaded||(console.log({host:this.host,_host:this._host}),this.iframeRef.contentWindow.postMessage({giscus:t},this._host))}updateConfig(){const t={setConfig:{repo:this.repo,repoId:this.repoId,category:this.category,categoryId:this.categoryId,term:this.getTerm(),number:+this.getNumber(),strict:this.strict===\"1\",reactionsEnabled:this.reactionsEnabled===\"1\",emitMetadata:this.emitMetadata===\"1\",inputPosition:this.inputPosition,theme:this.theme,lang:this.lang}};this.sendMessage(t)}firstUpdated(){var t;(t=this.iframeRef)==null||t.addEventListener(\"load\",()=>{var e;(e=this.iframeRef)==null||e.classList.remove(\"loading\"),this.hasLoaded=!0,this.updateConfig()})}requestUpdate(t,e,s){if(!this.hasUpdated||t===\"host\"){super.requestUpdate(t,e,s);return}this.updateConfig()}getMetaContent(t,e=!1){const s=e?`meta[property='og:${t}'],`:\"\",n=document.querySelector(s+`meta[name='${t}']`);return n?n.content:\"\"}_getCleanedUrl(){const t=new URL(location.href);return t.searchParams.delete(\"giscus\"),t.hash=\"\",t}getTerm(){switch(this.mapping){case\"url\":return`${this._getCleanedUrl()}`;case\"title\":return document.title;case\"og:title\":return this.getMetaContent(\"title\",!0);case\"specific\":return this.term||\"\";case\"number\":return\"\";case\"pathname\":default:return location.pathname.length<2?\"index\":location.pathname.substring(1).replace(/\\.\\w+$/,\"\")}}getNumber(){return this.mapping===\"number\"&&this.term||\"\"}getIframeSrc(){const t=this._getCleanedUrl().toString(),e=`${t}${this.id?\"#\"+this.id:\"\"}`,s=this.getMetaContent(\"description\",!0),n=this.getMetaContent(\"giscus:backlink\")||t,r={origin:e,session:this.__session,repo:this.repo,repoId:this.repoId||\"\",category:this.category||\"\",categoryId:this.categoryId||\"\",term:this.getTerm(),number:this.getNumber(),strict:this.strict,reactionsEnabled:this.reactionsEnabled,emitMetadata:this.emitMetadata,inputPosition:this.inputPosition,theme:this.theme,description:s,backLink:n},o=this._host,c=this.lang?`/${this.lang}`:\"\",l=new URLSearchParams(r);return`${o}${c}/widget?${l}`}render(){return Et`\n \n `}};exports.GiscusWidget.styles=vt`\n :host,\n iframe {\n width: 100%;\n border: none;\n min-height: 150px;\n color-scheme: light dark;\n }\n\n iframe.loading {\n opacity: 0;\n }\n `;p([$({reflect:!0})],exports.GiscusWidget.prototype,\"host\",2);p([$({reflect:!0})],exports.GiscusWidget.prototype,\"repo\",2);p([$({reflect:!0})],exports.GiscusWidget.prototype,\"repoId\",2);p([$({reflect:!0})],exports.GiscusWidget.prototype,\"category\",2);p([$({reflect:!0})],exports.GiscusWidget.prototype,\"categoryId\",2);p([$({reflect:!0})],exports.GiscusWidget.prototype,\"mapping\",2);p([$({reflect:!0})],exports.GiscusWidget.prototype,\"term\",2);p([$({reflect:!0})],exports.GiscusWidget.prototype,\"strict\",2);p([$({reflect:!0})],exports.GiscusWidget.prototype,\"reactionsEnabled\",2);p([$({reflect:!0})],exports.GiscusWidget.prototype,\"emitMetadata\",2);p([$({reflect:!0})],exports.GiscusWidget.prototype,\"inputPosition\",2);p([$({reflect:!0})],exports.GiscusWidget.prototype,\"theme\",2);p([$({reflect:!0})],exports.GiscusWidget.prototype,\"lang\",2);p([$({reflect:!0})],exports.GiscusWidget.prototype,\"loading\",2);exports.GiscusWidget=p([qt(\"giscus-widget\")],exports.GiscusWidget);\n","\"use strict\";const j=require(\"react/jsx-runtime\"),t=require(\"react\");function b({id:r,host:s,repo:i,repoId:u,category:n,categoryId:o,mapping:c,term:a,strict:d,reactionsEnabled:f,emitMetadata:l,inputPosition:m,theme:p,lang:g,loading:q}){const[e,x]=t.useState(!1);return t.useEffect(()=>{e||(Promise.resolve().then(()=>require(\"./giscus-1126a0a1.js\")),x(!0))},[]),e?j.jsx(\"giscus-widget\",{id:r,host:s,repo:i,repoid:u,category:n,categoryid:o,mapping:c,term:a,strict:d,reactionsenabled:f,emitmetadata:l,inputposition:m,theme:p,lang:g,loading:q}):null}module.exports=b;\n","import React from \"react\"\nimport styled from \"styled-components\"\n\nimport { author } from \"../../../../blog-config\"\n\nimport Divider from \"components/Divider\"\nimport TagList from \"components/TagList\"\nimport Bio from \"components/Bio\"\n\nconst Wrapper = styled.div`\n margin-top: 32px;\n @media (max-width: 768px) {\n padding: 0 15px;\n }\n`\n\nconst ArticleTitle = styled.h1`\n margin-bottom: 25.6px;\n line-height: 1.2;\n font-size: 40px;\n font-weight: 700;\n color: ${props => props.theme.colors.text};\n`\n\nconst Information = styled.div`\n margin-bottom: 32px;\n font-size: 16px;\n display: flex;\n flex-direction: column;\n gap: 8px;\n`\n\nconst Author = styled.span`\n padding-bottom: 15px;\n font-weight: 700;\n color: ${props => props.theme.colors.text};\n`\n\nconst Date = styled.span`\n font-weight: 300;\n color: ${props => props.theme.colors.secondaryText};\n`\n\nconst Property = styled.strong`\n font-weight: 300;\n color: ${props => props.theme.colors.secondaryText}\n`\n\nconst Header = ({ title, date, tags, minToRead, updated }) => {\n return (\n \n {title} \n \n
      \n @{author} \n · {minToRead} min read \n
      \n \n\n
      \n Created Date · {date} \n \n
      \n
      \n Last Update · {updated} \n
      \n
      \n {tags && }\n \n
      \n )\n}\n\nexport default Header","import React, { useState, useMemo } from \"react\"\nimport _ from \"lodash\"\nimport styled from \"styled-components\"\nimport { Link } from \"gatsby\"\n\nimport { AiOutlineArrowLeft } from \"react-icons/ai\"\n\nconst SeriesWrapper = styled.div`\n margin-bottom: 32px;\n padding: 16px;\n background-color: ${props => props.theme.colors.seriesBackground};\n`\n\nconst SeriesHeader = styled.h2`\n margin-bottom: 16px;\n font-size: 16px;\n font-weight: bold;\n color: ${props => props.theme.colors.text};\n\n & > span {\n font-weight: normal;\n color: ${props => props.theme.colors.tertiaryText};\n }\n\n & > a {\n color: inherit;\n text-decoration: none;\n }\n\n & > a:hover {\n text-decoration: underline;\n }\n`\n\nconst PostWrapper = styled.ul``\n\nconst Post = styled.li`\n position: relative;\n font-size: 12.8px;\n color: ${props =>\n props.currentPost\n ? props.theme.colors.text\n : props.theme.colors.tertiaryText};\n\n &:not(:last-child) {\n margin-bottom: 9.6px;\n }\n\n & > a {\n text-decoration: none;\n color: inherit;\n transition: color 0.3s;\n }\n\n & > a:hover {\n color: ${props => props.theme.colors.text};\n }\n\n & > svg {\n position: absolute;\n margin-left: 5px;\n }\n`\n\nconst ViewMore = styled.div`\n margin-top: 15px;\n font-size: 14.4px;\n text-align: center;\n color: ${props => props.theme.colors.tertiaryText};\n cursor: pointer;\n transition: color 0.3s;\n\n &:hover {\n color: ${props => props.theme.colors.text};\n }\n`\n\nconst Series = ({ header, series }) => {\n const [fold, setFold] = useState(true)\n\n const filteredPosts = useMemo(() => {\n if (series.length < 5) return series\n if (!fold) return series\n\n const currentPostIdx = _.findIndex(series, { currentPost: true })\n\n if (currentPostIdx < 2) return series.slice(0, 5)\n if (series.length - currentPostIdx - 1 < 2)\n return series.slice(series.length - 5, series.length)\n\n return series.slice(currentPostIdx - 2, currentPostIdx + 3)\n }, [series, fold])\n\n const showViewButton = useMemo(() => {\n return series.length > 5\n }, [series])\n\n return (\n \n \n \n SERIES: {header}\n {\" \"}\n ({series.length})\n \n \n {filteredPosts.map((post, i) => (\n \n {post.frontmatter.title}{\" \"}\n {post.currentPost && }{\" \"}\n \n ))}\n \n {showViewButton && (\n {\n setFold(!fold)\n }}\n >\n {fold\n ? `View More (+${series.length - filteredPosts.length})`\n : \"View Less\"}\n \n )}\n \n )\n}\n\nexport default Series\n","import { useRef } from \"react\"\n\nconst useOffsetTop = () => {\n const ref = useRef()\n\n let offsetTop = 0\n if (ref.current)\n offsetTop =\n ref.current.getBoundingClientRect().top +\n document.documentElement.scrollTop\n\n return [ref, offsetTop]\n}\n\nexport default useOffsetTop\n","import { useEffect, useState } from \"react\"\n\nconst useScroll = () => {\n const [scroll, setScroll] = useState({\n x: 0,\n y: 0,\n })\n\n const onScroll = () => {\n setScroll({ y: window.scrollY, x: window.scrollX })\n }\n\n useEffect(() => {\n window.addEventListener(\"scroll\", onScroll)\n return () => window.removeEventListener(\"scroll\", onScroll)\n }, [])\n\n return scroll\n}\n\nexport default useScroll\n","const offset = element => {\n const rect = element.getBoundingClientRect(),\n scrollLeft = window.pageXOffset || document.documentElement.scrollLeft,\n scrollTop = window.pageYOffset || document.documentElement.scrollTop\n return { top: rect.top + scrollTop, left: rect.left + scrollLeft }\n}\n\nexport default offset","import React from \"react\"\nimport styled, { css } from \"styled-components\"\n\nimport useScroll from \"hooks/useScroll\"\n\nconst StyledWrapper = styled.div`\n position: relative;\n opacity: 0;\n transition: 0.35s all ease;\n ${props =>\n props.visible &&\n css`\n opacity: 1;\n `}\n`\n\nconst RevealOnScroll = ({ revealAt, reverse, children }) => {\n const { y } = useScroll()\n\n let reveal = null\n if (!reverse) reveal = y > revealAt\n else reveal = y < revealAt\n\n return {children}\n}\n\nexport default RevealOnScroll\n","import React, { useState, useEffect } from \"react\"\nimport styled, { css } from \"styled-components\"\n\nimport { animateScroll } from \"react-scroll\"\n\nimport useScroll from \"hooks/useScroll\"\n\nimport getElementOffset from \"utils/getElmentOffset\"\n\nimport RevealOnScroll from \"components/RevealOnScroll\"\n\nconst STICK_OFFSET = 100\n\nconst TocWrapper = styled.div`\n position: absolute;\n opacity: 1;\n left: 100%;\n\n & > div {\n padding-right: 20px;\n padding-left: 16px;\n margin-left: 48px;\n position: relative;\n width: 240px;\n max-height: calc(100% - 185px);\n overflow-y: auto;\n\n ::-webkit-scrollbar {\n width: 3px;\n }\n ::-webkit-scrollbar-track {\n background: ${props => props.theme.colors.scrollTrack};\n }\n\n ::-webkit-scrollbar-thumb {\n background: ${props => props.theme.colors.scrollHandle};\n }\n\n ${props =>\n props.stick &&\n css`\n position: fixed;\n top: ${STICK_OFFSET}px;\n `}\n }\n\n @media (max-width: 1300px) {\n display: None;\n }\n`\n\nconst ParagraphTitle = styled.div`\n margin-bottom: 8px;\n padding-left: ${props => (props.subtitle ? 19.2 : 0)}px;\n font-size: 14.4px;\n color: ${props => props.theme.colors.mutedText};\n line-height: 1.3;\n transition: all 0.2s;\n\n ${props =>\n props.active &&\n css`\n transform: translate(-11.2px, 0);\n color: ${props => props.theme.colors.accentText};\n `}\n\n &:hover {\n color: ${props => props.theme.colors.secondAccentText};\n cursor: pointer;\n }\n`\n\nconst Toc = ({ items, articleOffset }) => {\n const { y } = useScroll()\n\n const [revealAt, setRevealAt] = useState(4000)\n const [headers, setHeaders] = useState([])\n const [active, setActive] = useState(0)\n\n useEffect(() => {\n setHeaders(\n [\n ...document.querySelectorAll(\"#article-body > h2, #article-body > h3\"),\n ].map(element => getElementOffset(element).top)\n )\n }, [])\n\n useEffect(() => {\n headers.forEach((header, i) => {\n if (header - 300 < y) {\n setActive(i)\n return\n }\n })\n }, [y])\n\n const handleClickTitle = index => {\n animateScroll.scrollTo(headers[index] - 100)\n }\n\n return (\n \n articleOffset - STICK_OFFSET}>\n
      \n {items.map((item, i) => (\n handleClickTitle(i)}\n >\n {item.innerText}\n \n ))}\n
      \n
      \n
      \n )\n}\n\nexport default Toc","import styled from \"styled-components\"\n\nconst StyledMarkdown = styled.div`\n & {\n font-size: 16.7px;\n color: ${props => props.theme.colors.text};\n line-height: 1.73;\n overflow: hidden;\n }\n\n & h1:first-child,\n & h2:first-child,\n & h3:first-child,\n & h4:first-child {\n margin-top: 0;\n }\n\n & > p,\n & > ul,\n & > ol,\n & table,\n & blockquote,\n & pre,\n & img,\n & .katex-display {\n margin-top: 0;\n margin-bottom: 24px;\n word-break: break-all;\n }\n\n & p {\n overflow-x: scroll;\n word-break: break-all;\n\n ::-webkit-scrollbar {\n display: none;\n }\n }\n\n & h2,\n & h3,\n & h4,\n & h5,\n & h6 {\n margin: 11.2px 0 4.8px 0;\n font-weight: 700;\n }\n\n & h2 {\n margin-top: 75px;\n margin-bottom: 16px;\n font-size: 24px;\n }\n\n & h3 {\n margin-top: 50px;\n margin-bottom: 14px;\n font-size: 22.4px;\n }\n\n & h4 {\n margin-top: 40px;\n margin-bottom: 12px;\n font-size: 17.6px;\n }\n\n & h5 {\n font-size: 16px;\n }\n\n & h6 {\n font-size: 14.4px;\n }\n\n & strong {\n font-weight: 700;\n }\n\n & em {\n font-style: italic;\n }\n\n & blockquote {\n padding: 18px 24px;\n border-left: 4px solid ${props => props.theme.colors.blockQuoteBorder};\n background-color: ${props => props.theme.colors.blockQuoteBackground};\n\n & *:last-child {\n margin-bottom: 0;\n }\n }\n\n & blockquote blockquote {\n margin-top: 24px;\n }\n\n & blockquote > p > code.language-text {\n background-color: ${props => props.theme.colors.inlineCodeBackgroundDarker};\n }\n\n & table {\n border-collapse: collapse;\n }\n\n & th {\n border-bottom: 2px solid ${props => props.theme.colors.border};\n font-weight: 700;\n }\n\n & td {\n border-top: 1px solid ${props => props.theme.colors.border};\n border-bottom: 1px solid ${props => props.theme.colors.border};\n }\n\n & td,\n th {\n padding: 8px;\n }\n\n & tr:first-child td {\n border-top: none;\n }\n\n & tr:nth-child(even) {\n background-color: ${props => props.theme.colors.tableBackground};\n }\n\n & tr:last-child td {\n border-bottom: none;\n }\n\n & *:not(pre) > code.language-text,\n & table code.language-text {\n position: relative;\n top: -1px;\n margin-right: 3px;\n padding: 3px 5px 3px 5px;\n font-size: 13px;\n background-color: ${props => props.theme.colors.inlineCodeBackground};\n font-weight: bold;\n color: ${props => props.theme.colors.text};\n }\n\n & h2 > code.language-text,\n & h3 > code.language-text,\n & h4 > code.language-text {\n font-size: inherit;\n }\n\n & tr:nth-child(even) code.language-text {\n background-color: ${props => props.theme.colors.inlineCodeBackgroundDarker};\n }\n\n & ul,\n & ol {\n padding-left: 25px;\n }\n\n & ol {\n list-style: decimal;\n }\n\n & ul {\n list-style: disc;\n }\n\n & ul ul {\n list-style: circle;\n }\n\n & ul ul ul {\n list-style: square;\n }\n\n & li {\n margin-bottom: 15px;\n }\n\n & li p {\n margin: 8px 0;\n }\n\n & pre {\n ::-webkit-scrollbar {\n height: 10px;\n }\n ::-webkit-scrollbar-track {\n background: ${props => props.theme.colors.scrollTrack};\n }\n\n ::-webkit-scrollbar-thumb {\n background: ${props => props.theme.colors.scrollHandle};\n }\n }\n\n & code[class*=\"language-\"],\n & pre[class*=\"language-\"] {\n font-size: 15px;\n }\n\n & img {\n display: block;\n margin-left: auto;\n margin-right: auto;\n max-width: 100%;\n }\n\n & figcaption {\n margin-top: 5px;\n text-align: center;\n color: #868e96;\n font-size: 12px;\n font-style: italic;\n }\n\n & hr {\n border: none;\n border-bottom: 1px solid ${props => props.theme.colors.border};\n }\n\n & a[data-wiki-link=\"true\"] {\n color: ${props => props.theme.colors.flipAccentText};\n background-color: none;\n text-decoration: none;\n }\n\n & a[data-wiki-link=\"true\"]:hover {\n color: ${props => props.theme.colors.flipAccentOppositeText};\n text-decoration: underline;\n }\n\n & a {\n padding: 1.6px 0;\n color: ${props => props.theme.colors.text};\n }\n\n & a:hover {\n background-color: none;\n color: ${props => props.theme.colors.hoveredLinkText};\n }\n`\n\nexport default StyledMarkdown\n","import { css } from \"styled-components\"\n\nconst CommonStyle = css`\n code[class*=\"language-\"],\n pre[class*=\"language-\"] {\n margin-bottom: 24px;\n font-size: 14.5px;\n color: #ccc;\n background: none;\n font-family: \"Bai Jamjuree\", monospace;\n text-align: justify;\n white-space: pre;\n word-spacing: normal;\n word-break: normal;\n word-wrap: normal;\n line-height: 1.5;\n\n -moz-tab-size: 4;\n -o-tab-size: 4;\n tab-size: 4;\n\n -webkit-hyphens: none;\n -moz-hyphens: none;\n -ms-hyphens: none;\n hyphens: none;\n }\n\n /* Code blocks */\n pre[class*=\"language-\"] {\n padding: 1em;\n overflow: auto;\n }\n\n /* Inline code */\n :not(pre) > code[class*=\"language-\"] {\n padding: 0.1em;\n border-radius: 0.3em;\n white-space: normal;\n }\n\n .token.important,\n .token.bold {\n font-weight: bold;\n }\n .token.italic {\n font-style: italic;\n }\n\n .token.entity {\n cursor: help;\n }\n`\n\nexport default CommonStyle\n","import { createGlobalStyle, css } from \"styled-components\"\nimport CommonStyle from \"./CommonStyle\"\n\nconst Theme = css`\n /**\n * prism.js tomorrow night eighties for JavaScript, CoffeeScript, CSS and HTML\n * Based on https://github.com/chriskempson/tomorrow-theme\n * @author Rose Pritchard\n */\n & code[class*=\"language-\"],\n & pre[class*=\"language-\"] {\n background-color: #222222;\n }\n\n .token.comment,\n .token.block-comment,\n .token.prolog,\n .token.doctype,\n .token.cdata {\n color: #999;\n }\n\n .token.punctuation {\n color: #ccc;\n }\n\n .token.tag,\n .token.attr-name,\n .token.namespace,\n .token.deleted {\n color: #e2777a;\n }\n\n .token.function-name {\n color: #6196cc;\n }\n\n .token.boolean,\n .token.number,\n .token.function {\n color: #f08d49;\n }\n\n .token.property,\n .token.class-name,\n .token.constant,\n .token.symbol {\n color: #f8c555;\n }\n\n .token.selector,\n .token.important,\n .token.atrule,\n .token.keyword,\n .token.builtin {\n color: #cc99cd;\n }\n\n .token.string,\n .token.char,\n .token.attr-value,\n .token.regex,\n .token.variable {\n color: #7ec699;\n }\n\n .token.operator,\n .token.entity,\n .token.url {\n color: #67cdcc;\n }\n\n .token.important,\n .token.bold {\n font-weight: bold;\n }\n .token.italic {\n font-style: italic;\n }\n\n .token.entity {\n cursor: help;\n }\n\n .token.inserted {\n color: green;\n }\n`\n\nconst DarkMode = createGlobalStyle`\n ${CommonStyle}\n ${Theme}\n`\n\nexport default DarkMode\n","import { createGlobalStyle, css } from \"styled-components\"\nimport CommonStyle from \"./CommonStyle\"\n\nconst Theme = css`\n /**\n * One Light theme for prism.js\n * Based on Atom's One Light theme: https://github.com/atom/atom/tree/master/packages/one-light-syntax\n */\n\n /**\n * One Light colours (accurate as of commit eb064bf on 19 Feb 2021)\n * From colors.less\n * --mono-1: hsl(230, 8%, 24%);\n * --mono-2: hsl(230, 6%, 44%);\n * --mono-3: hsl(230, 4%, 64%)\n * --hue-1: hsl(198, 99%, 37%);\n * --hue-2: hsl(221, 87%, 60%);\n * --hue-3: hsl(301, 63%, 40%);\n * --hue-4: hsl(119, 34%, 47%);\n * --hue-5: hsl(5, 74%, 59%);\n * --hue-5-2: hsl(344, 84%, 43%);\n * --hue-6: hsl(35, 99%, 36%);\n * --hue-6-2: hsl(35, 99%, 40%);\n * --syntax-fg: hsl(230, 8%, 24%);\n * --syntax-bg: hsl(230, 1%, 98%);\n * --syntax-gutter: hsl(230, 1%, 62%);\n * --syntax-guide: hsla(230, 8%, 24%, 0.2);\n * --syntax-accent: hsl(230, 100%, 66%);\n * From syntax-variables.less\n * --syntax-selection-color: hsl(230, 1%, 90%);\n * --syntax-gutter-background-color-selected: hsl(230, 1%, 90%);\n * --syntax-cursor-line: hsla(230, 8%, 24%, 0.05);\n */\n\n code[class*=\"language-\"],\n pre[class*=\"language-\"] {\n background-color: #f7f6f3;\n color: hsl(230, 8%, 24%);\n }\n\n /* Selection */\n code[class*=\"language-\"]::-moz-selection,\n code[class*=\"language-\"] *::-moz-selection,\n pre[class*=\"language-\"] *::-moz-selection {\n background: hsl(230, 1%, 90%);\n color: inherit;\n }\n\n code[class*=\"language-\"]::selection,\n code[class*=\"language-\"] *::selection,\n pre[class*=\"language-\"] *::selection {\n background: hsl(230, 1%, 90%);\n color: inherit;\n }\n\n .token.comment,\n .token.prolog,\n .token.cdata {\n color: hsl(230, 4%, 64%);\n }\n\n .token.doctype,\n .token.punctuation,\n .token.entity {\n color: hsl(230, 8%, 24%);\n }\n\n .token.attr-name,\n .token.class-name,\n .token.boolean,\n .token.constant,\n .token.number,\n .token.atrule {\n color: hsl(35, 99%, 36%);\n }\n\n .token.keyword {\n color: hsl(301, 63%, 40%);\n }\n\n .token.property,\n .token.tag,\n .token.symbol,\n .token.deleted,\n .token.important {\n color: hsl(5, 74%, 59%);\n }\n\n .token.selector,\n .token.string,\n .token.char,\n .token.builtin,\n .token.inserted,\n .token.regex,\n .token.attr-value,\n .token.attr-value > .token.punctuation {\n color: hsl(119, 34%, 47%);\n }\n\n .token.variable,\n .token.operator,\n .token.function {\n color: hsl(221, 87%, 60%);\n }\n\n .token.url {\n color: hsl(198, 99%, 37%);\n }\n\n /* HTML overrides */\n .token.attr-value > .token.punctuation.attr-equals,\n .token.special-attr > .token.attr-value > .token.value.css {\n color: hsl(230, 8%, 24%);\n }\n\n /* CSS overrides */\n .language-css .token.selector {\n color: hsl(5, 74%, 59%);\n }\n\n .language-css .token.property {\n color: hsl(230, 8%, 24%);\n }\n\n .language-css .token.function,\n .language-css .token.url > .token.function {\n color: hsl(198, 99%, 37%);\n }\n\n .language-css .token.url > .token.string.url {\n color: hsl(119, 34%, 47%);\n }\n\n .language-css .token.important,\n .language-css .token.atrule .token.rule {\n color: hsl(301, 63%, 40%);\n }\n\n /* JS overrides */\n .language-javascript .token.operator {\n color: hsl(301, 63%, 40%);\n }\n\n .language-javascript\n .token.template-string\n > .token.interpolation\n > .token.interpolation-punctuation.punctuation {\n color: hsl(344, 84%, 43%);\n }\n\n /* JSON overrides */\n .language-json .token.operator {\n color: hsl(230, 8%, 24%);\n }\n\n .language-json .token.null.keyword {\n color: hsl(35, 99%, 36%);\n }\n\n /* MD overrides */\n .language-markdown .token.url,\n .language-markdown .token.url > .token.operator,\n .language-markdown .token.url-reference.url > .token.string {\n color: hsl(230, 8%, 24%);\n }\n\n .language-markdown .token.url > .token.content {\n color: hsl(221, 87%, 60%);\n }\n\n .language-markdown .token.url > .token.url,\n .language-markdown .token.url-reference.url {\n color: hsl(198, 99%, 37%);\n }\n\n .language-markdown .token.blockquote.punctuation,\n .language-markdown .token.hr.punctuation {\n color: hsl(230, 4%, 64%);\n font-style: italic;\n }\n\n .language-markdown .token.code-snippet {\n color: hsl(119, 34%, 47%);\n }\n\n .language-markdown .token.bold .token.content {\n color: hsl(35, 99%, 36%);\n }\n\n .language-markdown .token.italic .token.content {\n color: hsl(301, 63%, 40%);\n }\n\n .language-markdown .token.strike .token.content,\n .language-markdown .token.strike .token.punctuation,\n .language-markdown .token.list.punctuation,\n .language-markdown .token.title.important > .token.punctuation {\n color: hsl(5, 74%, 59%);\n }\n\n /* General */\n .token.bold {\n font-weight: bold;\n }\n\n .token.comment,\n .token.italic {\n font-style: italic;\n }\n\n .token.entity {\n cursor: help;\n }\n\n .token.namespace {\n opacity: 0.8;\n }\n\n /* Plugin overrides */\n /* Selectors should have higher specificity than those in the plugins' default stylesheets */\n\n /* Show Invisibles plugin overrides */\n .token.token.tab:not(:empty):before,\n .token.token.cr:before,\n .token.token.lf:before,\n .token.token.space:before {\n color: hsla(230, 8%, 24%, 0.2);\n }\n\n /* Styling the buttons */\n div.code-toolbar > .toolbar.toolbar > .toolbar-item > button,\n div.code-toolbar > .toolbar.toolbar > .toolbar-item > a,\n div.code-toolbar > .toolbar.toolbar > .toolbar-item > span {\n background: hsl(230, 1%, 90%);\n color: hsl(230, 6%, 44%);\n padding: 0.1em 0.4em;\n border-radius: 0.3em;\n }\n\n div.code-toolbar > .toolbar.toolbar > .toolbar-item > button:hover,\n div.code-toolbar > .toolbar.toolbar > .toolbar-item > button:focus,\n div.code-toolbar > .toolbar.toolbar > .toolbar-item > a:hover,\n div.code-toolbar > .toolbar.toolbar > .toolbar-item > a:focus,\n div.code-toolbar > .toolbar.toolbar > .toolbar-item > span:hover,\n div.code-toolbar > .toolbar.toolbar > .toolbar-item > span:focus {\n background: hsl(230, 1%, 78%); /* custom: darken(--syntax-bg, 20%) */\n color: hsl(230, 8%, 24%);\n }\n\n /* Line Highlight plugin overrides */\n /* The highlighted line itself */\n .line-highlight.line-highlight {\n background: hsla(230, 8%, 24%, 0.05);\n }\n\n /* Default line numbers in Line Highlight plugin */\n .line-highlight.line-highlight:before,\n .line-highlight.line-highlight[data-end]:after {\n background: hsl(230, 1%, 90%);\n color: hsl(230, 8%, 24%);\n padding: 0.1em 0.6em;\n border-radius: 0.3em;\n box-shadow: 0 2px 0 0 rgba(0, 0, 0, 0.2); /* same as Toolbar plugin default */\n }\n\n /* Hovering over a linkable line number (in the gutter area) */\n /* Requires Line Numbers plugin as well */\n pre[id].linkable-line-numbers.linkable-line-numbers\n span.line-numbers-rows\n > span:hover:before {\n background-color: hsla(230, 8%, 24%, 0.05);\n }\n\n /* Line Numbers and Command Line plugins overrides */\n /* Line separating gutter from coding area */\n .line-numbers.line-numbers .line-numbers-rows,\n .command-line .command-line-prompt {\n border-right-color: hsla(230, 8%, 24%, 0.2);\n }\n\n /* Stuff in the gutter */\n .line-numbers .line-numbers-rows > span:before,\n .command-line .command-line-prompt > span:before {\n color: hsl(230, 1%, 62%);\n }\n\n /* Match Braces plugin overrides */\n /* Note: Outline colour is inherited from the braces */\n .rainbow-braces .token.token.punctuation.brace-level-1,\n .rainbow-braces .token.token.punctuation.brace-level-5,\n .rainbow-braces .token.token.punctuation.brace-level-9 {\n color: hsl(5, 74%, 59%);\n }\n\n .rainbow-braces .token.token.punctuation.brace-level-2,\n .rainbow-braces .token.token.punctuation.brace-level-6,\n .rainbow-braces .token.token.punctuation.brace-level-10 {\n color: hsl(119, 34%, 47%);\n }\n\n .rainbow-braces .token.token.punctuation.brace-level-3,\n .rainbow-braces .token.token.punctuation.brace-level-7,\n .rainbow-braces .token.token.punctuation.brace-level-11 {\n color: hsl(221, 87%, 60%);\n }\n\n .rainbow-braces .token.token.punctuation.brace-level-4,\n .rainbow-braces .token.token.punctuation.brace-level-8,\n .rainbow-braces .token.token.punctuation.brace-level-12 {\n color: hsl(301, 63%, 40%);\n }\n\n /* Diff Highlight plugin overrides */\n /* Taken from https://github.com/atom/github/blob/master/styles/variables.less */\n pre.diff-highlight > code .token.token.deleted:not(.prefix),\n pre > code.diff-highlight .token.token.deleted:not(.prefix) {\n background-color: hsla(353, 100%, 66%, 0.15);\n }\n\n pre.diff-highlight > code .token.token.deleted:not(.prefix)::-moz-selection,\n pre.diff-highlight > code .token.token.deleted:not(.prefix) *::-moz-selection,\n pre > code.diff-highlight .token.token.deleted:not(.prefix)::-moz-selection,\n pre\n > code.diff-highlight\n .token.token.deleted:not(.prefix)\n *::-moz-selection {\n background-color: hsla(353, 95%, 66%, 0.25);\n }\n\n pre.diff-highlight > code .token.token.deleted:not(.prefix)::selection,\n pre.diff-highlight > code .token.token.deleted:not(.prefix) *::selection,\n pre > code.diff-highlight .token.token.deleted:not(.prefix)::selection,\n pre > code.diff-highlight .token.token.deleted:not(.prefix) *::selection {\n background-color: hsla(353, 95%, 66%, 0.25);\n }\n\n pre.diff-highlight > code .token.token.inserted:not(.prefix),\n pre > code.diff-highlight .token.token.inserted:not(.prefix) {\n background-color: hsla(137, 100%, 55%, 0.15);\n }\n\n pre.diff-highlight > code .token.token.inserted:not(.prefix)::-moz-selection,\n pre.diff-highlight\n > code\n .token.token.inserted:not(.prefix)\n *::-moz-selection,\n pre > code.diff-highlight .token.token.inserted:not(.prefix)::-moz-selection,\n pre\n > code.diff-highlight\n .token.token.inserted:not(.prefix)\n *::-moz-selection {\n background-color: hsla(135, 73%, 55%, 0.25);\n }\n\n pre.diff-highlight > code .token.token.inserted:not(.prefix)::selection,\n pre.diff-highlight > code .token.token.inserted:not(.prefix) *::selection,\n pre > code.diff-highlight .token.token.inserted:not(.prefix)::selection,\n pre > code.diff-highlight .token.token.inserted:not(.prefix) *::selection {\n background-color: hsla(135, 73%, 55%, 0.25);\n }\n\n /* Previewers plugin overrides */\n /* Based on https://github.com/atom-community/atom-ide-datatip/blob/master/styles/atom-ide-datatips.less and https://github.com/atom/atom/blob/master/packages/one-light-ui */\n /* Border around popup */\n .prism-previewer.prism-previewer:before,\n .prism-previewer-gradient.prism-previewer-gradient div {\n border-color: hsl(0, 0, 95%);\n }\n\n /* Angle and time should remain as circles and are hence not included */\n .prism-previewer-color.prism-previewer-color:before,\n .prism-previewer-gradient.prism-previewer-gradient div,\n .prism-previewer-easing.prism-previewer-easing:before {\n border-radius: 0.3em;\n }\n\n /* Triangles pointing to the code */\n .prism-previewer.prism-previewer:after {\n border-top-color: hsl(0, 0, 95%);\n }\n\n .prism-previewer-flipped.prism-previewer-flipped.after {\n border-bottom-color: hsl(0, 0, 95%);\n }\n\n /* Background colour within the popup */\n .prism-previewer-angle.prism-previewer-angle:before,\n .prism-previewer-time.prism-previewer-time:before,\n .prism-previewer-easing.prism-previewer-easing {\n background: hsl(0, 0%, 100%);\n }\n\n /* For angle, this is the positive area (eg. 90deg will display one quadrant in this colour) */\n /* For time, this is the alternate colour */\n .prism-previewer-angle.prism-previewer-angle circle,\n .prism-previewer-time.prism-previewer-time circle {\n stroke: hsl(230, 8%, 24%);\n stroke-opacity: 1;\n }\n\n /* Stroke colours of the handle, direction point, and vector itself */\n .prism-previewer-easing.prism-previewer-easing circle,\n .prism-previewer-easing.prism-previewer-easing path,\n .prism-previewer-easing.prism-previewer-easing line {\n stroke: hsl(230, 8%, 24%);\n }\n\n /* Fill colour of the handle */\n .prism-previewer-easing.prism-previewer-easing circle {\n fill: transparent;\n }\n`\n\nconst LightMode = createGlobalStyle`\n ${CommonStyle}\n ${Theme}\n`\n\nexport default LightMode\n","import React from \"react\"\nimport { useSelector } from \"react-redux\"\nimport DarkMode from \"./DarkMode\"\nimport LightMode from \"./LightMode\"\n\nconst PrismTheme = () => {\n const { theme } = useSelector(state => state.theme)\n\n return <>{theme === \"light\" ? : }\n}\n\nexport default PrismTheme\n","import React, { useState, useEffect } from \"react\"\nimport styled from \"styled-components\"\n\nimport useOffsetTop from \"hooks/useOffsetTop\"\n\nimport Toc from \"./Toc\"\nimport StyledMarkdown from \"./StyledMarkdown\"\nimport PrismTheme from \"./PrismTheme\"\n\nconst Wrapper = styled.div`\n position: relative;\n margin-bottom: 112px;\n\n @media (max-width: 768px) {\n padding: 0 15px;\n }\n`\n\nconst Body = ({ html }) => {\n const [toc, setToc] = useState([])\n\n const [ref, offsetTop] = useOffsetTop()\n\n useEffect(() => {\n setToc(\n Array.from(\n document.querySelectorAll(\"#article-body > h2, #article-body > h3\")\n )\n )\n }, [])\n\n return (\n \n \n\n \n\n \n \n )\n}\n\nexport default Body","/*! @preserve react-md-spinner v1.0.0 - tsuyoshiwada | MIT license. */\nimport React from 'react';\nimport Stylis from 'stylis';\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(source);\n\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n\n ownKeys.forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n }\n\n return target;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (typeof call === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nvar STYLE_DATA_NAME = \"react-md-spinner\";\n\nvar KEYFRAME_PREFIX = \"__react-md-spinner-animation__\";\nvar stylis = new Stylis({\n global: false,\n cascade: true,\n keyframe: true,\n prefix: true,\n compress: false\n});\nvar Keyframe = {\n ROOT_ROTATE: \"\".concat(KEYFRAME_PREFIX, \"root-rotate\"),\n FILL_UNFILL_ROTATE: \"\".concat(KEYFRAME_PREFIX, \"fill-unfill-rotate\"),\n LAYER_1_FADE_IN_OUT: \"\".concat(KEYFRAME_PREFIX, \"layer-1-fade-in-out\"),\n LAYER_2_FADE_IN_OUT: \"\".concat(KEYFRAME_PREFIX, \"layer-2-fade-in-out\"),\n LAYER_3_FADE_IN_OUT: \"\".concat(KEYFRAME_PREFIX, \"layer-3-fade-in-out\"),\n LAYER_4_FADE_IN_OUT: \"\".concat(KEYFRAME_PREFIX, \"layer-4-fade-in-out\"),\n LEFT_SPIN: \"\".concat(KEYFRAME_PREFIX, \"left-spin\"),\n RIGHT_SPIN: \"\".concat(KEYFRAME_PREFIX, \"right-spin\")\n};\nvar keyframes = stylis(\"\", \"\\n@keyframes \".concat(Keyframe.ROOT_ROTATE, \" {\\n to { transform: rotate(360deg); }\\n}\\n\\n@keyframes \").concat(Keyframe.FILL_UNFILL_ROTATE, \" {\\n 12.5% { transform: rotate(135deg) }\\n 25% { transform: rotate(270deg) }\\n 37.5% { transform: rotate(405deg) }\\n 50% { transform: rotate(540deg) }\\n 62.5% { transform: rotate(675deg) }\\n 75% { transform: rotate(810deg) }\\n 87.5% { transform: rotate(945deg) }\\n 100% { transform: rotate(1080deg) }\\n}\\n\\n@keyframes \").concat(Keyframe.LAYER_1_FADE_IN_OUT, \" {\\n 0% { opacity: 1 }\\n 25% { opacity: 1 }\\n 26% { opacity: 0 }\\n 89% { opacity: 0 }\\n 90% { opacity: 1 }\\n 100% { opacity: 1 }\\n}\\n\\n@keyframes \").concat(Keyframe.LAYER_2_FADE_IN_OUT, \" {\\n 0% { opacity: 0 }\\n 15% { opacity: 0 }\\n 25% { opacity: 1 }\\n 50% { opacity: 1 }\\n 51% { opacity: 0 }\\n 100% { opacity: 0 }\\n}\\n\\n@keyframes \").concat(Keyframe.LAYER_3_FADE_IN_OUT, \" {\\n 0% { opacity: 0 }\\n 40% { opacity: 0 }\\n 50% { opacity: 1 }\\n 75% { opacity: 1 }\\n 76% { opacity: 0 }\\n 100% { opacity: 0 }\\n}\\n\\n@keyframes \").concat(Keyframe.LAYER_4_FADE_IN_OUT, \" {\\n 0% { opacity: 0 }\\n 65% { opacity: 0 }\\n 75% { opacity: 1 }\\n 90% { opacity: 1 }\\n 100% { opacity: 0 }\\n}\\n\\n@keyframes \").concat(Keyframe.LEFT_SPIN, \" {\\n 0% { transform: rotate(130deg) }\\n 50% { transform: rotate(-5deg) }\\n 100% { transform: rotate(130deg) }\\n}\\n\\n@keyframes \").concat(Keyframe.RIGHT_SPIN, \" {\\n 0% { transform: rotate(-130deg) }\\n 50% { transform: rotate(5deg) }\\n 100% { transform: rotate(-130deg) }\\n}\\n\"));\n\nvar getStylesheetString = function getStylesheetString() {\n return \"\");\n};\nvar getStylesheetComponent = function getStylesheetComponent() {\n var _React$createElement;\n\n return React.createElement(\"style\", (_React$createElement = {\n type: \"text/css\"\n }, _defineProperty(_React$createElement, \"data-\".concat(STYLE_DATA_NAME), \"\"), _defineProperty(_React$createElement, \"dangerouslySetInnerHTML\", {\n __html: keyframes\n }), _React$createElement));\n};\n\nvar ssrBehavior = /*#__PURE__*/Object.freeze({\n getStylesheetString: getStylesheetString,\n getStylesheetComponent: getStylesheetComponent\n});\n\nvar getColors = function getColors(props) {\n var singleColor = props.singleColor,\n color1 = props.color1,\n color2 = props.color2,\n color3 = props.color3,\n color4 = props.color4;\n return singleColor ? [singleColor, singleColor, singleColor, singleColor] : [color1, color2, color3, color4];\n};\n\nvar getStyles = function getStyles(props) {\n var size = props.size;\n var duration = props.duration;\n var borderSize = props.borderSize;\n var borderWidth = borderSize || Math.max(1, Math.round(size * 0.107142));\n var colors = getColors(props);\n var arcSize = 270;\n var arcStartRotate = 216;\n var rootDuration = 360 * duration / (arcStartRotate + (360 - arcSize));\n var rootStyle = {\n display: \"inline-block\",\n position: \"relative\",\n width: size,\n height: size,\n verticalAlign: \"middle\",\n fontSize: \"0\",\n animation: \"\".concat(Keyframe.ROOT_ROTATE, \" \").concat(rootDuration, \"ms linear infinite\"),\n WebkitAnimation: \"\".concat(Keyframe.ROOT_ROTATE, \" \").concat(rootDuration, \"ms linear infinite\")\n };\n var layerStyles = colors.map(function (color, i) {\n return {\n boxSizing: \"border-box\",\n display: \"block\",\n position: \"absolute\",\n width: \"100%\",\n height: \"100%\",\n borderColor: color,\n whiteSpace: \"nowrap\",\n opacity: 1,\n animationName: \"\".concat(Keyframe.FILL_UNFILL_ROTATE, \", \").concat(Keyframe[\"LAYER_\".concat(i + 1, \"_FADE_IN_OUT\")]),\n WebkitAnimationName: \"\".concat(Keyframe.FILL_UNFILL_ROTATE, \", \").concat(Keyframe[\"LAYER_\".concat(i + 1, \"_FADE_IN_OUT\")]),\n animationDuration: \"\".concat(duration * colors.length, \"ms\"),\n WebkitAnimationDuration: \"\".concat(duration * colors.length, \"ms\"),\n animationTimingFunction: \"cubic-bezier(.4, 0, .2, 1)\",\n WebkitAnimationTimingFunction: \"cubic-bezier(.4, 0, .2, 1)\",\n animationIterationCount: \"infinite\",\n WebkitAnimationIterationCount: \"infinite\"\n };\n });\n var clipStyle = {\n display: \"inline-block\",\n boxSizing: \"border-box\",\n position: \"relative\",\n width: \"50%\",\n height: \"100%\",\n overflow: \"hidden\",\n borderColor: \"inherit\"\n };\n var layerClipAfterStyle = {\n display: \"inline-block\",\n boxSizing: \"border-box\",\n position: \"absolute\",\n top: 0,\n borderRadius: \"50%\"\n };\n\n var layerAfterStyle = _objectSpread({}, layerClipAfterStyle, {\n left: \"45%\",\n width: \"10%\",\n borderWidth: borderWidth,\n borderColor: \"inherit\",\n borderTopStyle: \"solid\"\n });\n\n var clipAfterStyle = _objectSpread({}, layerClipAfterStyle, {\n bottom: 0,\n width: \"200%\",\n borderWidth: borderWidth,\n borderStyle: \"solid\",\n animationDuration: \"\".concat(duration, \"ms\"),\n WebkitAnimationDuration: \"\".concat(duration, \"ms\"),\n animationTimingFunction: \"cubic-bezier(.4, 0, .2, 1)\",\n WebkitAnimationTimingFunction: \"cubic-bezier(.4, 0, .2, 1)\",\n animationIterationCount: \"infinite\",\n WebkitAnimationIterationCount: \"infinite\"\n });\n\n var clip1AfterStyle = _objectSpread({}, clipAfterStyle, {\n left: 0,\n transform: \"rotate(129deg)\",\n WebkitTransform: \"rotate(129deg)\",\n animationName: Keyframe.LEFT_SPIN,\n WebkitAnimationName: Keyframe.LEFT_SPIN\n });\n\n var clip1AfterStyles = colors.map(function (color) {\n return _objectSpread({}, clip1AfterStyle, {\n borderColor: \"\".concat(color, \" transparent transparent \").concat(color)\n });\n });\n\n var clip2AfterStyle = _objectSpread({}, clipAfterStyle, {\n left: \"-100%\",\n transform: \"rotate(-129deg)\",\n WebkitTransform: \"rotate(-129deg)\",\n animationName: Keyframe.RIGHT_SPIN,\n WebkitAnimationName: Keyframe.RIGHT_SPIN\n });\n\n var clip2AfterStyles = colors.map(function (color) {\n return _objectSpread({}, clip2AfterStyle, {\n borderColor: \"\".concat(color, \" \").concat(color, \" transparent transparent\")\n });\n });\n return {\n rootStyle: rootStyle,\n layerStyles: layerStyles,\n layerAfterStyle: layerAfterStyle,\n clipStyle: clipStyle,\n clip1AfterStyles: clip1AfterStyles,\n clip2AfterStyles: clip2AfterStyles\n };\n};\n\nvar injectStyles = function injectStyles(name, rules) {\n var el = document.createElement(\"style\");\n el.type = \"text/css\";\n el.setAttribute(\"data-\".concat(name), \"\");\n el.innerHTML = rules;\n document.head.appendChild(el);\n};\nvar uninjectStyles = function uninjectStyles(name) {\n var el = document.querySelector(\"[data-\".concat(name, \"]\"));\n\n if (el != null && el.parentNode != null) {\n el.parentNode.removeChild(el);\n }\n};\n\nvar MDSpinner =\n/*#__PURE__*/\nfunction (_React$PureComponent) {\n _inherits(MDSpinner, _React$PureComponent);\n\n function MDSpinner() {\n _classCallCheck(this, MDSpinner);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(MDSpinner).apply(this, arguments));\n }\n\n _createClass(MDSpinner, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n if (MDSpinner.mountedInstanceCount < 1) {\n injectStyles(STYLE_DATA_NAME, keyframes);\n }\n\n MDSpinner.mountedInstanceCount++;\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n MDSpinner.mountedInstanceCount = Math.max(0, MDSpinner.mountedInstanceCount - 1);\n\n if (MDSpinner.mountedInstanceCount < 1) {\n uninjectStyles(STYLE_DATA_NAME);\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n _singleColor = _this$props.singleColor,\n _size = _this$props.size,\n _borderSize = _this$props.borderSize,\n _duration = _this$props.duration,\n _color1 = _this$props.color1,\n _color2 = _this$props.color2,\n _color3 = _this$props.color3,\n _color4 = _this$props.color4,\n rest = _objectWithoutProperties(_this$props, [\"singleColor\", \"size\", \"borderSize\", \"duration\", \"color1\", \"color2\", \"color3\", \"color4\"]);\n\n var _getStyles = getStyles(this.props),\n rootStyle = _getStyles.rootStyle,\n layerStyles = _getStyles.layerStyles,\n layerAfterStyle = _getStyles.layerAfterStyle,\n clipStyle = _getStyles.clipStyle,\n clip1AfterStyles = _getStyles.clip1AfterStyles,\n clip2AfterStyles = _getStyles.clip2AfterStyles;\n\n var layers = [];\n\n for (var i = 0; i < 4; i++) {\n layers.push(React.createElement(\"span\", {\n key: i,\n style: layerStyles[i]\n }, React.createElement(\"span\", {\n style: clipStyle\n }, React.createElement(\"span\", {\n style: clip1AfterStyles[i]\n })), React.createElement(\"span\", {\n style: clipStyle\n }, React.createElement(\"span\", {\n style: clip2AfterStyles[i]\n })), React.createElement(\"span\", {\n style: layerAfterStyle\n })));\n }\n\n return React.createElement(\"span\", _extends({}, rest, {\n style: _objectSpread({}, rootStyle, rest.style != null ? rest.style : {})\n }), layers);\n }\n }]);\n\n return MDSpinner;\n}(React.PureComponent);\n\n_defineProperty(MDSpinner, \"defaultProps\", {\n size: 28,\n duration: 1333,\n color1: \"rgb(66, 165, 245)\",\n color2: \"rgb(239, 83, 80)\",\n color3: \"rgb(253, 216, 53)\",\n color4: \"rgb(76, 175, 80)\"\n});\n\n_defineProperty(MDSpinner, \"mountedInstanceCount\", 0);\n\nexport default MDSpinner;\nexport { ssrBehavior };\n","import React, { useEffect, useState } from \"react\"\nimport { navigate } from \"gatsby\"\nimport { useSelector } from \"react-redux\"\nimport styled, { useTheme } from \"styled-components\"\nimport { BiLeftArrowAlt, BiRightArrowAlt } from \"react-icons/bi\"\nimport MDSpinner from \"react-md-spinner\"\nimport Divider from \"components/Divider\"\nimport Giscus from \"@giscus/react\"\n\nconst ArticleButtonContainer = styled.div`\n display: flex;\n justify-content: space-between;\n margin-bottom: 48px;\n\n @media (max-width: 768px) {\n margin-bottom: 80px;\n padding: 0 12.8px;\n flex-direction: column;\n\n & > div:first-child {\n margin-bottom: 12.8px;\n }\n }\n`\n\nconst ArrowFlexWrapper = styled.div`\n width: 100%;\n display: flex;\n align-items: center;\n white-space: nowrap;\n`\n\nconst ArticleButtonTextWrapper = styled.div`\n display: flex;\n align-items: flex-end;\n flex-direction: column;\n overflow: hidden;\n`\n\nconst Arrow = styled.div`\n position: relative;\n left: 0;\n display: flex;\n align-items: center;\n font-size: 24px;\n flex-basis: 24px;\n transition: left 0.3s;\n`\n\nconst ArticleButtonWrapper = styled.div`\n display: flex;\n flex-direction: column;\n align-items: ${props => (props.right ? \"flex-end\" : \"flex-start\")};\n padding: 20.8px 16px;\n max-width: 250px;\n flex-basis: 250px;\n font-size: 17.6px;\n border-radius: 5px;\n background-color: ${props => props.theme.colors.nextPostButtonBackground};\n color: ${props => props.theme.colors.text};\n cursor: pointer;\n transition: background-color 0.3s;\n\n &:hover {\n background-color: ${props =>\n props.theme.colors.hoveredNextPostButtonBackground};\n }\n\n & ${ArrowFlexWrapper} {\n flex-direction: ${props => (props.right ? \"row-reverse\" : \"row\")};\n }\n\n & ${ArticleButtonTextWrapper} {\n align-items: ${props => (props.right ? \"flex-end\" : \"flex-start\")};\n }\n\n & ${Arrow} {\n ${props => (props.right ? \"margin-left: 16px\" : \"margin-right: 16px\")};\n }\n\n &:hover ${Arrow} {\n left: ${props => (props.right ? 2 : -2)}px;\n }\n\n @media (max-width: 768px) {\n max-width: inherit;\n flex-basis: inherit;\n }\n`\n\nconst ArticleButtonLabel = styled.div`\n margin-bottom: 9.6px;\n font-size: 12.8px;\n`\n\nconst ArticleButtonTitle = styled.div`\n padding: 2px 0;\n width: 100%;\n text-overflow: ellipsis;\n overflow: hidden;\n`\n\nconst CommentWrapper = styled.div`\n @media (max-width: 768px) {\n padding: 0 15px;\n }\n`\n\nconst SpinnerWrapper = styled.div`\n height: 200px;\n display: flex;\n justify-content: center;\n align-items: center;\n`\n\nconst HiddenWrapper = styled.div`\n height: ${props => (props.isHidden ? \"0px\" : \"auto\")};\n overflow: ${props => (props.isHidden ? \"hidden\" : \"auto\")};\n`\n\nconst ArticleButton = ({ right, children, onClick }) => {\n return (\n \n \n {right ? : }\n \n \n {right ? <>Next Post : <>Previous Post}\n \n {children}\n \n \n \n )\n}\n\nconst Spinner = () => {\n const theme = useTheme()\n return (\n \n \n \n )\n}\n\nconst Comment = ({title}) => {\n const { theme } = useSelector(state => state.theme)\n const [spinner, setSpinner] = useState(true)\n\n useEffect(() => {\n setTimeout(() => {\n setSpinner(false)\n }, 1500)\n }, [])\n\n return (\n <>\n {spinner && }\n\n \n \n \n \n \n \n \n \n \n \n )\n}\n\nconst Footer = ({ previous, next, title }) => {\n return (\n <>\n \n {previous ? (\n navigate(previous?.fields?.slug)}>\n {previous?.frontmatter?.title}\n \n ) : (\n
      \n )}\n {next && (\n navigate(next?.fields?.slug)}>\n {next?.frontmatter?.title}\n \n )}\n
      \n \n \n \n \n \n )\n}\n\nexport default Footer\n","import styled from \"styled-components\"\n\nimport Header from \"./Header\"\nimport Series from \"./Series\"\nimport Body from \"./Body\"\nimport Footer from \"./Footer\"\n\nconst Article = styled.article``\n\nArticle.Header = Header\nArticle.Series = Series\nArticle.Body = Body\nArticle.Footer = Footer\n\nexport default Article\n","import React from \"react\"\nimport styled from \"styled-components\"\n\nimport {\n FaGithub,\n FaKaggle,\n FaFacebook,\n FaTwitter,\n FaLinkedin,\n FaInstagram,\n} from \"react-icons/fa\"\n\nimport {\n FaXTwitter,\n FaRegEnvelope,\n FaMedium,\n FaBlogger,\n FaRegFileLines,\n FaLink,\n} from \"react-icons/fa6\"\n\nimport { siteUrl, description, author, links } from \"../../../blog-config\"\n\n\nconst BioWrapper = styled.div`\n display: flex;\n align-items: center;\n\n @media (max-width: 768px) {\n padding: 0 15px;\n }\n`\n\nconst profileImageRoot =\n typeof window !== \"undefined\" && window.location.host === \"localhost:8000\"\n ? \"http://localhost:8000\"\n : siteUrl\n\nconst Profile = styled.div`\n flex: 0 0 auto;\n margin-right: 16px;\n width: 128px;\n height: 128px;\n border-radius: 999px;\n background-image: url(${profileImageRoot}/${props => props.theme.colors.profile}.png);\n background-size: cover;\n background-position: center;\n`\n\nconst Author = styled.div`\n margin-bottom: 8px;\n font-size: 24px;\n font-weight: 700;\n color: ${props => props.theme.colors.text};\n`\n\nconst Description = styled.div`\n margin-bottom: 11.2px;\n line-height: 1.5;\n font-size: 16px;\n color: ${props => props.theme.colors.secondaryText};\n`\n\nconst LinksWrapper = styled.div`\n & a {\n margin-right: 9.6px;\n }\n\n & svg {\n width: 25.6px;\n height: 25.6px;\n cursor: pointer;\n }\n\n & svg path {\n fill: ${props => props.theme.colors.icon};\n transition: fill 0.3s;\n }\n\n & a:hover svg path {\n fill: ${props => props.theme.colors.text};\n }\n`\n\nconst Link = ({ link, children }) => {\n if (!link) return null\n return (\n \n {children}\n \n )\n}\n\nconst Bio = () => {\n const {\n github,\n kaggle,\n instagram,\n facebook,\n twitter,\n x,\n blogger,\n medium,\n linkedIn,\n email,\n resume,\n link,\n } = links\n\n return (\n \n \n
      \n @{author}\n {description}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
      \n
      \n )\n}\n\nexport default Bio\n","import React from \"react\"\nimport styled from \"styled-components\"\nimport { Link } from \"gatsby\"\n\nconst TagListWrapper = styled.div`\n margin-bottom: 10px;\n word-break: break-all;\n`\n\nconst TagLink = styled.div`\n display: inline-block;\n padding: 9.6px 11.2px;\n margin-right: 8px;\n margin-bottom: 8px;\n border-radius: 50px;\n background-color: ${props =>\n props.selected\n ? props.theme.colors.selectedTagBackground\n : props.theme.colors.tagBackground};\n color: ${props =>\n props.selected\n ? props.theme.colors.selectedTagText\n : props.theme.colors.tagText};\n text-decoration: none;\n font-size: 14.4px;\n transition: all 0.2s;\n\n &:hover {\n background-color: ${props =>\n props.selected\n ? props.theme.colors.hoveredSelectedTagBackground\n : props.theme.colors.hoveredTagBackground};\n }\n`\n\nconst spaceToDash = text => {\n return text.replace(/\\s+/g, \"-\")\n}\n\nconst TagList = ({ tagList, count, selected }) => {\n if (!tagList) return null\n\n if (!count) {\n return (\n \n {tagList.map((tag, i) => (\n \n {spaceToDash(tag)}\n \n ))}\n \n )\n }\n\n return (\n \n {tagList.map((tag, i) => (\n \n \n {spaceToDash(tag.fieldValue)} ({tag.totalCount})\n \n \n ))}\n \n )\n}\n\nexport default TagList\n","/**\n * lodash (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the `TypeError` message for \"Functions\" methods. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/** Used to match leading and trailing whitespace. */\nvar reTrim = /^\\s+|\\s+$/g;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n result = wait - timeSinceLastCall;\n\n return maxing ? nativeMin(result, maxWait - timeSinceLastInvoke) : result;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\n/**\n * Creates a throttled function that only invokes `func` at most once per\n * every `wait` milliseconds. The throttled function comes with a `cancel`\n * method to cancel delayed `func` invocations and a `flush` method to\n * immediately invoke them. Provide `options` to indicate whether `func`\n * should be invoked on the leading and/or trailing edge of the `wait`\n * timeout. The `func` is invoked with the last arguments provided to the\n * throttled function. Subsequent calls to the throttled function return the\n * result of the last `func` invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the throttled function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.throttle` and `_.debounce`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to throttle.\n * @param {number} [wait=0] The number of milliseconds to throttle invocations to.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=true]\n * Specify invoking on the leading edge of the timeout.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new throttled function.\n * @example\n *\n * // Avoid excessively updating the position while scrolling.\n * jQuery(window).on('scroll', _.throttle(updatePosition, 100));\n *\n * // Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes.\n * var throttled = _.throttle(renewToken, 300000, { 'trailing': false });\n * jQuery(element).on('click', throttled);\n *\n * // Cancel the trailing throttled invocation.\n * jQuery(window).on('popstate', throttled.cancel);\n */\nfunction throttle(func, wait, options) {\n var leading = true,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n if (isObject(options)) {\n leading = 'leading' in options ? !!options.leading : leading;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n return debounce(func, wait, {\n 'leading': leading,\n 'maxWait': wait,\n 'trailing': trailing\n });\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && objectToString.call(value) == symbolTag);\n}\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = value.replace(reTrim, '');\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = throttle;\n","/**\n * The base implementation of `_.findIndex` and `_.findLastIndex` without\n * support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} predicate The function invoked per iteration.\n * @param {number} fromIndex The index to search from.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction baseFindIndex(array, predicate, fromIndex, fromRight) {\n var length = array.length,\n index = fromIndex + (fromRight ? 1 : -1);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (predicate(array[index], index, array)) {\n return index;\n }\n }\n return -1;\n}\n\nmodule.exports = baseFindIndex;\n","var baseFindIndex = require('./_baseFindIndex'),\n baseIteratee = require('./_baseIteratee'),\n toInteger = require('./toInteger');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * This method is like `_.find` except that it returns the index of the first\n * element `predicate` returns truthy for instead of the element itself.\n *\n * @static\n * @memberOf _\n * @since 1.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param {number} [fromIndex=0] The index to search from.\n * @returns {number} Returns the index of the found element, else `-1`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': false },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': true }\n * ];\n *\n * _.findIndex(users, function(o) { return o.user == 'barney'; });\n * // => 0\n *\n * // The `_.matches` iteratee shorthand.\n * _.findIndex(users, { 'user': 'fred', 'active': false });\n * // => 1\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.findIndex(users, ['active', false]);\n * // => 0\n *\n * // The `_.property` iteratee shorthand.\n * _.findIndex(users, 'active');\n * // => 2\n */\nfunction findIndex(array, predicate, fromIndex) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return -1;\n }\n var index = fromIndex == null ? 0 : toInteger(fromIndex);\n if (index < 0) {\n index = nativeMax(length + index, 0);\n }\n return baseFindIndex(array, baseIteratee(predicate, 3), index);\n}\n\nmodule.exports = findIndex;\n","var toString = require('./toString');\n\n/**\n * Replaces matches for `pattern` in `string` with `replacement`.\n *\n * **Note:** This method is based on\n * [`String#replace`](https://mdn.io/String/replace).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to modify.\n * @param {RegExp|string} pattern The pattern to replace.\n * @param {Function|string} replacement The match replacement.\n * @returns {string} Returns the modified string.\n * @example\n *\n * _.replace('Hi Fred', 'Fred', 'Barney');\n * // => 'Hi Barney'\n */\nfunction replace() {\n var args = arguments,\n string = toString(args[0]);\n\n return args.length < 3 ? string : string.replace(args[1], args[2]);\n}\n\nmodule.exports = replace;\n","var toNumber = require('./toNumber');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0,\n MAX_INTEGER = 1.7976931348623157e+308;\n\n/**\n * Converts `value` to a finite number.\n *\n * @static\n * @memberOf _\n * @since 4.12.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted number.\n * @example\n *\n * _.toFinite(3.2);\n * // => 3.2\n *\n * _.toFinite(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toFinite(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toFinite('3.2');\n * // => 3.2\n */\nfunction toFinite(value) {\n if (!value) {\n return value === 0 ? value : 0;\n }\n value = toNumber(value);\n if (value === INFINITY || value === -INFINITY) {\n var sign = (value < 0 ? -1 : 1);\n return sign * MAX_INTEGER;\n }\n return value === value ? value : 0;\n}\n\nmodule.exports = toFinite;\n","var toFinite = require('./toFinite');\n\n/**\n * Converts `value` to an integer.\n *\n * **Note:** This method is loosely based on\n * [`ToInteger`](http://www.ecma-international.org/ecma-262/7.0/#sec-tointeger).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.toInteger(3.2);\n * // => 3\n *\n * _.toInteger(Number.MIN_VALUE);\n * // => 0\n *\n * _.toInteger(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toInteger('3.2');\n * // => 3\n */\nfunction toInteger(value) {\n var result = toFinite(value),\n remainder = result % 1;\n\n return result === result ? (remainder ? result - remainder : result) : 0;\n}\n\nmodule.exports = toInteger;\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _scrollLink = require('../mixins/scroll-link');\n\nvar _scrollLink2 = _interopRequireDefault(_scrollLink);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar ButtonElement = function (_React$Component) {\n _inherits(ButtonElement, _React$Component);\n\n function ButtonElement() {\n _classCallCheck(this, ButtonElement);\n\n return _possibleConstructorReturn(this, (ButtonElement.__proto__ || Object.getPrototypeOf(ButtonElement)).apply(this, arguments));\n }\n\n _createClass(ButtonElement, [{\n key: 'render',\n value: function render() {\n return _react2.default.createElement(\n 'input',\n this.props,\n this.props.children\n );\n }\n }]);\n\n return ButtonElement;\n}(_react2.default.Component);\n\n;\n\nexports.default = (0, _scrollLink2.default)(ButtonElement);","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _scrollElement = require('../mixins/scroll-element');\n\nvar _scrollElement2 = _interopRequireDefault(_scrollElement);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar ElementWrapper = function (_React$Component) {\n _inherits(ElementWrapper, _React$Component);\n\n function ElementWrapper() {\n _classCallCheck(this, ElementWrapper);\n\n return _possibleConstructorReturn(this, (ElementWrapper.__proto__ || Object.getPrototypeOf(ElementWrapper)).apply(this, arguments));\n }\n\n _createClass(ElementWrapper, [{\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n // Remove `parentBindings` from props\n var newProps = _extends({}, this.props);\n if (newProps.parentBindings) {\n delete newProps.parentBindings;\n }\n\n return _react2.default.createElement(\n 'div',\n _extends({}, newProps, { ref: function ref(el) {\n _this2.props.parentBindings.domNode = el;\n } }),\n this.props.children\n );\n }\n }]);\n\n return ElementWrapper;\n}(_react2.default.Component);\n\n;\n\nElementWrapper.propTypes = {\n name: _propTypes2.default.string,\n id: _propTypes2.default.string\n};\n\nexports.default = (0, _scrollElement2.default)(ElementWrapper);","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _scrollLink = require('../mixins/scroll-link');\n\nvar _scrollLink2 = _interopRequireDefault(_scrollLink);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar LinkElement = function (_React$Component) {\n _inherits(LinkElement, _React$Component);\n\n function LinkElement() {\n var _ref;\n\n var _temp, _this, _ret;\n\n _classCallCheck(this, LinkElement);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = LinkElement.__proto__ || Object.getPrototypeOf(LinkElement)).call.apply(_ref, [this].concat(args))), _this), _this.render = function () {\n return _react2.default.createElement(\n 'a',\n _this.props,\n _this.props.children\n );\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n return LinkElement;\n}(_react2.default.Component);\n\n;\n\nexports.default = (0, _scrollLink2.default)(LinkElement);","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Helpers = exports.ScrollElement = exports.ScrollLink = exports.animateScroll = exports.scrollSpy = exports.Events = exports.scroller = exports.Element = exports.Button = exports.Link = undefined;\n\nvar _Link = require('./components/Link.js');\n\nvar _Link2 = _interopRequireDefault(_Link);\n\nvar _Button = require('./components/Button.js');\n\nvar _Button2 = _interopRequireDefault(_Button);\n\nvar _Element = require('./components/Element.js');\n\nvar _Element2 = _interopRequireDefault(_Element);\n\nvar _scroller = require('./mixins/scroller.js');\n\nvar _scroller2 = _interopRequireDefault(_scroller);\n\nvar _scrollEvents = require('./mixins/scroll-events.js');\n\nvar _scrollEvents2 = _interopRequireDefault(_scrollEvents);\n\nvar _scrollSpy = require('./mixins/scroll-spy.js');\n\nvar _scrollSpy2 = _interopRequireDefault(_scrollSpy);\n\nvar _animateScroll = require('./mixins/animate-scroll.js');\n\nvar _animateScroll2 = _interopRequireDefault(_animateScroll);\n\nvar _scrollLink = require('./mixins/scroll-link.js');\n\nvar _scrollLink2 = _interopRequireDefault(_scrollLink);\n\nvar _scrollElement = require('./mixins/scroll-element.js');\n\nvar _scrollElement2 = _interopRequireDefault(_scrollElement);\n\nvar _Helpers = require('./mixins/Helpers.js');\n\nvar _Helpers2 = _interopRequireDefault(_Helpers);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.Link = _Link2.default;\nexports.Button = _Button2.default;\nexports.Element = _Element2.default;\nexports.scroller = _scroller2.default;\nexports.Events = _scrollEvents2.default;\nexports.scrollSpy = _scrollSpy2.default;\nexports.animateScroll = _animateScroll2.default;\nexports.ScrollLink = _scrollLink2.default;\nexports.ScrollElement = _scrollElement2.default;\nexports.Helpers = _Helpers2.default;\nexports.default = { Link: _Link2.default, Button: _Button2.default, Element: _Element2.default, scroller: _scroller2.default, Events: _scrollEvents2.default, scrollSpy: _scrollSpy2.default, animateScroll: _animateScroll2.default, ScrollLink: _scrollLink2.default, ScrollElement: _scrollElement2.default, Helpers: _Helpers2.default };","\"use strict\";\n\n/* DEPRECATED */\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar React = require('react');\nvar ReactDOM = require('react-dom');\n\nvar utils = require('./utils');\nvar scrollSpy = require('./scroll-spy');\nvar defaultScroller = require('./scroller');\nvar PropTypes = require('prop-types');\nvar scrollHash = require('./scroll-hash');\n\nvar protoTypes = {\n to: PropTypes.string.isRequired,\n containerId: PropTypes.string,\n container: PropTypes.object,\n activeClass: PropTypes.string,\n spy: PropTypes.bool,\n smooth: PropTypes.oneOfType([PropTypes.bool, PropTypes.string]),\n offset: PropTypes.number,\n delay: PropTypes.number,\n isDynamic: PropTypes.bool,\n onClick: PropTypes.func,\n duration: PropTypes.oneOfType([PropTypes.number, PropTypes.func]),\n absolute: PropTypes.bool,\n onSetActive: PropTypes.func,\n onSetInactive: PropTypes.func,\n ignoreCancelEvents: PropTypes.bool,\n hashSpy: PropTypes.bool,\n spyThrottle: PropTypes.number\n};\n\nvar Helpers = {\n Scroll: function Scroll(Component, customScroller) {\n\n console.warn(\"Helpers.Scroll is deprecated since v1.7.0\");\n\n var scroller = customScroller || defaultScroller;\n\n var Scroll = function (_React$Component) {\n _inherits(Scroll, _React$Component);\n\n function Scroll(props) {\n _classCallCheck(this, Scroll);\n\n var _this = _possibleConstructorReturn(this, (Scroll.__proto__ || Object.getPrototypeOf(Scroll)).call(this, props));\n\n _initialiseProps.call(_this);\n\n _this.state = {\n active: false\n };\n return _this;\n }\n\n _createClass(Scroll, [{\n key: 'getScrollSpyContainer',\n value: function getScrollSpyContainer() {\n var containerId = this.props.containerId;\n var container = this.props.container;\n\n if (containerId) {\n return document.getElementById(containerId);\n }\n\n if (container && container.nodeType) {\n return container;\n }\n\n return document;\n }\n }, {\n key: 'componentDidMount',\n value: function componentDidMount() {\n if (this.props.spy || this.props.hashSpy) {\n var scrollSpyContainer = this.getScrollSpyContainer();\n\n if (!scrollSpy.isMounted(scrollSpyContainer)) {\n scrollSpy.mount(scrollSpyContainer, this.props.spyThrottle);\n }\n\n if (this.props.hashSpy) {\n if (!scrollHash.isMounted()) {\n scrollHash.mount(scroller);\n }\n scrollHash.mapContainer(this.props.to, scrollSpyContainer);\n }\n\n if (this.props.spy) {\n scrollSpy.addStateHandler(this.stateHandler);\n }\n\n scrollSpy.addSpyHandler(this.spyHandler, scrollSpyContainer);\n\n this.setState({\n container: scrollSpyContainer\n });\n }\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n scrollSpy.unmount(this.stateHandler, this.spyHandler);\n }\n }, {\n key: 'render',\n value: function render() {\n var className = \"\";\n\n if (this.state && this.state.active) {\n className = ((this.props.className || \"\") + \" \" + (this.props.activeClass || \"active\")).trim();\n } else {\n className = this.props.className;\n }\n\n var props = _extends({}, this.props);\n\n for (var prop in protoTypes) {\n if (props.hasOwnProperty(prop)) {\n delete props[prop];\n }\n }\n\n props.className = className;\n props.onClick = this.handleClick;\n\n return React.createElement(Component, props);\n }\n }]);\n\n return Scroll;\n }(React.Component);\n\n var _initialiseProps = function _initialiseProps() {\n var _this2 = this;\n\n this.scrollTo = function (to, props) {\n scroller.scrollTo(to, _extends({}, _this2.state, props));\n };\n\n this.handleClick = function (event) {\n\n /*\r\n * give the posibility to override onClick\r\n */\n\n if (_this2.props.onClick) {\n _this2.props.onClick(event);\n }\n\n /*\r\n * dont bubble the navigation\r\n */\n\n if (event.stopPropagation) event.stopPropagation();\n if (event.preventDefault) event.preventDefault();\n\n /*\r\n * do the magic!\r\n */\n _this2.scrollTo(_this2.props.to, _this2.props);\n };\n\n this.stateHandler = function () {\n if (scroller.getActiveLink() !== _this2.props.to) {\n if (_this2.state !== null && _this2.state.active && _this2.props.onSetInactive) {\n _this2.props.onSetInactive();\n }\n _this2.setState({ active: false });\n }\n };\n\n this.spyHandler = function (y) {\n\n var scrollSpyContainer = _this2.getScrollSpyContainer();\n\n if (scrollHash.isMounted() && !scrollHash.isInitialized()) {\n return;\n }\n\n var to = _this2.props.to;\n var element = null;\n var elemTopBound = 0;\n var elemBottomBound = 0;\n var containerTop = 0;\n\n if (scrollSpyContainer.getBoundingClientRect) {\n var containerCords = scrollSpyContainer.getBoundingClientRect();\n containerTop = containerCords.top;\n }\n\n if (!element || _this2.props.isDynamic) {\n element = scroller.get(to);\n if (!element) {\n return;\n }\n\n var cords = element.getBoundingClientRect();\n elemTopBound = cords.top - containerTop + y;\n elemBottomBound = elemTopBound + cords.height;\n }\n\n var offsetY = y - _this2.props.offset;\n var isInside = offsetY >= Math.floor(elemTopBound) && offsetY < Math.floor(elemBottomBound);\n var isOutside = offsetY < Math.floor(elemTopBound) || offsetY >= Math.floor(elemBottomBound);\n var activeLink = scroller.getActiveLink();\n\n if (isOutside) {\n if (to === activeLink) {\n scroller.setActiveLink(void 0);\n }\n\n if (_this2.props.hashSpy && scrollHash.getHash() === to) {\n scrollHash.changeHash();\n }\n\n if (_this2.props.spy && _this2.state.active) {\n _this2.setState({ active: false });\n _this2.props.onSetInactive && _this2.props.onSetInactive();\n }\n\n return scrollSpy.updateStates();\n }\n\n if (isInside && activeLink !== to) {\n scroller.setActiveLink(to);\n\n _this2.props.hashSpy && scrollHash.changeHash(to);\n\n if (_this2.props.spy) {\n _this2.setState({ active: true });\n _this2.props.onSetActive && _this2.props.onSetActive(to);\n }\n return scrollSpy.updateStates();\n }\n };\n };\n\n ;\n\n Scroll.propTypes = protoTypes;\n\n Scroll.defaultProps = { offset: 0 };\n\n return Scroll;\n },\n Element: function Element(Component) {\n\n console.warn(\"Helpers.Element is deprecated since v1.7.0\");\n\n var Element = function (_React$Component2) {\n _inherits(Element, _React$Component2);\n\n function Element(props) {\n _classCallCheck(this, Element);\n\n var _this3 = _possibleConstructorReturn(this, (Element.__proto__ || Object.getPrototypeOf(Element)).call(this, props));\n\n _this3.childBindings = {\n domNode: null\n };\n return _this3;\n }\n\n _createClass(Element, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n if (typeof window === 'undefined') {\n return false;\n }\n this.registerElems(this.props.name);\n }\n }, {\n key: 'componentDidUpdate',\n value: function componentDidUpdate(prevProps) {\n if (this.props.name !== prevProps.name) {\n this.registerElems(this.props.name);\n }\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n if (typeof window === 'undefined') {\n return false;\n }\n defaultScroller.unregister(this.props.name);\n }\n }, {\n key: 'registerElems',\n value: function registerElems(name) {\n defaultScroller.register(name, this.childBindings.domNode);\n }\n }, {\n key: 'render',\n value: function render() {\n return React.createElement(Component, _extends({}, this.props, { parentBindings: this.childBindings }));\n }\n }]);\n\n return Element;\n }(React.Component);\n\n ;\n\n Element.propTypes = {\n name: PropTypes.string,\n id: PropTypes.string\n };\n\n return Element;\n }\n};\n\nmodule.exports = Helpers;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _utils = require('./utils');\n\nvar _utils2 = _interopRequireDefault(_utils);\n\nvar _smooth = require('./smooth');\n\nvar _smooth2 = _interopRequireDefault(_smooth);\n\nvar _cancelEvents = require('./cancel-events');\n\nvar _cancelEvents2 = _interopRequireDefault(_cancelEvents);\n\nvar _scrollEvents = require('./scroll-events');\n\nvar _scrollEvents2 = _interopRequireDefault(_scrollEvents);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/*\r\n * Gets the easing type from the smooth prop within options.\r\n */\nvar getAnimationType = function getAnimationType(options) {\n return _smooth2.default[options.smooth] || _smooth2.default.defaultEasing;\n};\n/*\r\n * Function helper\r\n */\nvar functionWrapper = function functionWrapper(value) {\n return typeof value === 'function' ? value : function () {\n return value;\n };\n};\n/*\r\n * Wraps window properties to allow server side rendering\r\n */\nvar currentWindowProperties = function currentWindowProperties() {\n if (typeof window !== 'undefined') {\n return window.requestAnimationFrame || window.webkitRequestAnimationFrame;\n }\n};\n\n/*\r\n * Helper function to never extend 60fps on the webpage.\r\n */\nvar requestAnimationFrameHelper = function () {\n return currentWindowProperties() || function (callback, element, delay) {\n window.setTimeout(callback, delay || 1000 / 60, new Date().getTime());\n };\n}();\n\nvar makeData = function makeData() {\n return {\n currentPosition: 0,\n startPosition: 0,\n targetPosition: 0,\n progress: 0,\n duration: 0,\n cancel: false,\n\n target: null,\n containerElement: null,\n to: null,\n start: null,\n delta: null,\n percent: null,\n delayTimeout: null\n };\n};\n\nvar currentPositionX = function currentPositionX(options) {\n var containerElement = options.data.containerElement;\n if (containerElement && containerElement !== document && containerElement !== document.body) {\n return containerElement.scrollLeft;\n } else {\n var supportPageOffset = window.pageXOffset !== undefined;\n var isCSS1Compat = (document.compatMode || \"\") === \"CSS1Compat\";\n return supportPageOffset ? window.pageXOffset : isCSS1Compat ? document.documentElement.scrollLeft : document.body.scrollLeft;\n }\n};\n\nvar currentPositionY = function currentPositionY(options) {\n var containerElement = options.data.containerElement;\n if (containerElement && containerElement !== document && containerElement !== document.body) {\n return containerElement.scrollTop;\n } else {\n var supportPageOffset = window.pageXOffset !== undefined;\n var isCSS1Compat = (document.compatMode || \"\") === \"CSS1Compat\";\n return supportPageOffset ? window.pageYOffset : isCSS1Compat ? document.documentElement.scrollTop : document.body.scrollTop;\n }\n};\n\nvar scrollContainerWidth = function scrollContainerWidth(options) {\n var containerElement = options.data.containerElement;\n if (containerElement && containerElement !== document && containerElement !== document.body) {\n return containerElement.scrollWidth - containerElement.offsetWidth;\n } else {\n var body = document.body;\n var html = document.documentElement;\n\n return Math.max(body.scrollWidth, body.offsetWidth, html.clientWidth, html.scrollWidth, html.offsetWidth);\n }\n};\n\nvar scrollContainerHeight = function scrollContainerHeight(options) {\n var containerElement = options.data.containerElement;\n if (containerElement && containerElement !== document && containerElement !== document.body) {\n return containerElement.scrollHeight - containerElement.offsetHeight;\n } else {\n var body = document.body;\n var html = document.documentElement;\n\n return Math.max(body.scrollHeight, body.offsetHeight, html.clientHeight, html.scrollHeight, html.offsetHeight);\n }\n};\n\nvar animateScroll = function animateScroll(easing, options, timestamp) {\n var data = options.data;\n\n // Cancel on specific events\n if (!options.ignoreCancelEvents && data.cancel) {\n if (_scrollEvents2.default.registered['end']) {\n _scrollEvents2.default.registered['end'](data.to, data.target, data.currentPositionY);\n }\n return;\n };\n\n data.delta = Math.round(data.targetPosition - data.startPosition);\n\n if (data.start === null) {\n data.start = timestamp;\n }\n\n data.progress = timestamp - data.start;\n\n data.percent = data.progress >= data.duration ? 1 : easing(data.progress / data.duration);\n\n data.currentPosition = data.startPosition + Math.ceil(data.delta * data.percent);\n\n if (data.containerElement && data.containerElement !== document && data.containerElement !== document.body) {\n if (options.horizontal) {\n data.containerElement.scrollLeft = data.currentPosition;\n } else {\n data.containerElement.scrollTop = data.currentPosition;\n }\n } else {\n if (options.horizontal) {\n window.scrollTo(data.currentPosition, 0);\n } else {\n window.scrollTo(0, data.currentPosition);\n }\n }\n\n if (data.percent < 1) {\n var easedAnimate = animateScroll.bind(null, easing, options);\n requestAnimationFrameHelper.call(window, easedAnimate);\n return;\n }\n\n if (_scrollEvents2.default.registered['end']) {\n _scrollEvents2.default.registered['end'](data.to, data.target, data.currentPosition);\n }\n};\n\nvar setContainer = function setContainer(options) {\n options.data.containerElement = !options ? null : options.containerId ? document.getElementById(options.containerId) : options.container && options.container.nodeType ? options.container : document;\n};\n\nvar animateTopScroll = function animateTopScroll(scrollOffset, options, to, target) {\n options.data = options.data || makeData();\n\n window.clearTimeout(options.data.delayTimeout);\n\n _cancelEvents2.default.subscribe(function () {\n options.data.cancel = true;\n });\n\n setContainer(options);\n\n options.data.start = null;\n options.data.cancel = false;\n options.data.startPosition = options.horizontal ? currentPositionX(options) : currentPositionY(options);\n options.data.targetPosition = options.absolute ? scrollOffset : scrollOffset + options.data.startPosition;\n\n if (options.data.startPosition === options.data.targetPosition) {\n if (_scrollEvents2.default.registered['end']) {\n _scrollEvents2.default.registered['end'](options.data.to, options.data.target, options.data.currentPosition);\n }\n return;\n }\n\n options.data.delta = Math.round(options.data.targetPosition - options.data.startPosition);\n\n options.data.duration = functionWrapper(options.duration)(options.data.delta);\n options.data.duration = isNaN(parseFloat(options.data.duration)) ? 1000 : parseFloat(options.data.duration);\n options.data.to = to;\n options.data.target = target;\n\n var easing = getAnimationType(options);\n var easedAnimate = animateScroll.bind(null, easing, options);\n\n if (options && options.delay > 0) {\n options.data.delayTimeout = window.setTimeout(function () {\n if (_scrollEvents2.default.registered['begin']) {\n _scrollEvents2.default.registered['begin'](options.data.to, options.data.target);\n }\n requestAnimationFrameHelper.call(window, easedAnimate);\n }, options.delay);\n return;\n }\n\n if (_scrollEvents2.default.registered['begin']) {\n _scrollEvents2.default.registered['begin'](options.data.to, options.data.target);\n }\n requestAnimationFrameHelper.call(window, easedAnimate);\n};\n\nvar proceedOptions = function proceedOptions(options) {\n options = _extends({}, options);\n options.data = options.data || makeData();\n options.absolute = true;\n return options;\n};\n\nvar scrollToTop = function scrollToTop(options) {\n animateTopScroll(0, proceedOptions(options));\n};\n\nvar scrollTo = function scrollTo(toPosition, options) {\n animateTopScroll(toPosition, proceedOptions(options));\n};\n\nvar scrollToBottom = function scrollToBottom(options) {\n options = proceedOptions(options);\n setContainer(options);\n animateTopScroll(options.horizontal ? scrollContainerWidth(options) : scrollContainerHeight(options), options);\n};\n\nvar scrollMore = function scrollMore(toPosition, options) {\n options = proceedOptions(options);\n setContainer(options);\n var currentPosition = options.horizontal ? currentPositionX(options) : currentPositionY(options);\n animateTopScroll(toPosition + currentPosition, options);\n};\n\nexports.default = {\n animateTopScroll: animateTopScroll,\n getAnimationType: getAnimationType,\n scrollToTop: scrollToTop,\n scrollToBottom: scrollToBottom,\n scrollTo: scrollTo,\n scrollMore: scrollMore\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _passiveEventListeners = require('./passive-event-listeners');\n\nvar events = ['mousedown', 'mousewheel', 'touchmove', 'keydown'];\n\nexports.default = {\n subscribe: function subscribe(cancelEvent) {\n return typeof document !== 'undefined' && events.forEach(function (event) {\n return (0, _passiveEventListeners.addPassiveEventListener)(document, event, cancelEvent);\n });\n }\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n/*\r\n * Tell the browser that the event listener won't prevent a scroll.\r\n * Allowing the browser to continue scrolling without having to\r\n * to wait for the listener to return.\r\n */\nvar addPassiveEventListener = exports.addPassiveEventListener = function addPassiveEventListener(target, eventName, listener) {\n var supportsPassiveOption = function () {\n var supportsPassiveOption = false;\n try {\n var opts = Object.defineProperty({}, 'passive', {\n get: function get() {\n supportsPassiveOption = true;\n }\n });\n window.addEventListener('test', null, opts);\n } catch (e) {}\n return supportsPassiveOption;\n }();\n target.addEventListener(eventName, listener, supportsPassiveOption ? { passive: true } : false);\n};\n\nvar removePassiveEventListener = exports.removePassiveEventListener = function removePassiveEventListener(target, eventName, listener) {\n target.removeEventListener(eventName, listener);\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactDom = require('react-dom');\n\nvar _reactDom2 = _interopRequireDefault(_reactDom);\n\nvar _scroller = require('./scroller');\n\nvar _scroller2 = _interopRequireDefault(_scroller);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nexports.default = function (Component) {\n var Element = function (_React$Component) {\n _inherits(Element, _React$Component);\n\n function Element(props) {\n _classCallCheck(this, Element);\n\n var _this = _possibleConstructorReturn(this, (Element.__proto__ || Object.getPrototypeOf(Element)).call(this, props));\n\n _this.childBindings = {\n domNode: null\n };\n return _this;\n }\n\n _createClass(Element, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n if (typeof window === 'undefined') {\n return false;\n }\n this.registerElems(this.props.name);\n }\n }, {\n key: 'componentDidUpdate',\n value: function componentDidUpdate(prevProps) {\n if (this.props.name !== prevProps.name) {\n this.registerElems(this.props.name);\n }\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n if (typeof window === 'undefined') {\n return false;\n }\n _scroller2.default.unregister(this.props.name);\n }\n }, {\n key: 'registerElems',\n value: function registerElems(name) {\n _scroller2.default.register(name, this.childBindings.domNode);\n }\n }, {\n key: 'render',\n value: function render() {\n return _react2.default.createElement(Component, _extends({}, this.props, { parentBindings: this.childBindings }));\n }\n }]);\n\n return Element;\n }(_react2.default.Component);\n\n ;\n\n Element.propTypes = {\n name: _propTypes2.default.string,\n id: _propTypes2.default.string\n };\n\n return Element;\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar Events = {\n\tregistered: {},\n\tscrollEvent: {\n\t\tregister: function register(evtName, callback) {\n\t\t\tEvents.registered[evtName] = callback;\n\t\t},\n\t\tremove: function remove(evtName) {\n\t\t\tEvents.registered[evtName] = null;\n\t\t}\n\t}\n};\n\nexports.default = Events;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _passiveEventListeners = require('./passive-event-listeners');\n\nvar _utils = require('./utils');\n\nvar _utils2 = _interopRequireDefault(_utils);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar scrollHash = {\n mountFlag: false,\n initialized: false,\n scroller: null,\n containers: {},\n\n mount: function mount(scroller) {\n this.scroller = scroller;\n\n this.handleHashChange = this.handleHashChange.bind(this);\n window.addEventListener('hashchange', this.handleHashChange);\n\n this.initStateFromHash();\n this.mountFlag = true;\n },\n mapContainer: function mapContainer(to, container) {\n this.containers[to] = container;\n },\n isMounted: function isMounted() {\n return this.mountFlag;\n },\n isInitialized: function isInitialized() {\n return this.initialized;\n },\n initStateFromHash: function initStateFromHash() {\n var _this = this;\n\n var hash = this.getHash();\n if (hash) {\n window.setTimeout(function () {\n _this.scrollTo(hash, true);\n _this.initialized = true;\n }, 10);\n } else {\n this.initialized = true;\n }\n },\n scrollTo: function scrollTo(to, isInit) {\n var scroller = this.scroller;\n var element = scroller.get(to);\n if (element && (isInit || to !== scroller.getActiveLink())) {\n var container = this.containers[to] || document;\n scroller.scrollTo(to, { container: container });\n }\n },\n getHash: function getHash() {\n return _utils2.default.getHash();\n },\n changeHash: function changeHash(to, saveHashHistory) {\n if (this.isInitialized() && _utils2.default.getHash() !== to) {\n _utils2.default.updateHash(to, saveHashHistory);\n }\n },\n handleHashChange: function handleHashChange() {\n this.scrollTo(this.getHash());\n },\n unmount: function unmount() {\n this.scroller = null;\n this.containers = null;\n window.removeEventListener('hashchange', this.handleHashChange);\n }\n};\n\nexports.default = scrollHash;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _scrollSpy = require('./scroll-spy');\n\nvar _scrollSpy2 = _interopRequireDefault(_scrollSpy);\n\nvar _scroller = require('./scroller');\n\nvar _scroller2 = _interopRequireDefault(_scroller);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _scrollHash = require('./scroll-hash');\n\nvar _scrollHash2 = _interopRequireDefault(_scrollHash);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar protoTypes = {\n to: _propTypes2.default.string.isRequired,\n containerId: _propTypes2.default.string,\n container: _propTypes2.default.object,\n activeClass: _propTypes2.default.string,\n activeStyle: _propTypes2.default.object,\n spy: _propTypes2.default.bool,\n horizontal: _propTypes2.default.bool,\n smooth: _propTypes2.default.oneOfType([_propTypes2.default.bool, _propTypes2.default.string]),\n offset: _propTypes2.default.number,\n delay: _propTypes2.default.number,\n isDynamic: _propTypes2.default.bool,\n onClick: _propTypes2.default.func,\n duration: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.func]),\n absolute: _propTypes2.default.bool,\n onSetActive: _propTypes2.default.func,\n onSetInactive: _propTypes2.default.func,\n ignoreCancelEvents: _propTypes2.default.bool,\n hashSpy: _propTypes2.default.bool,\n saveHashHistory: _propTypes2.default.bool,\n spyThrottle: _propTypes2.default.number\n};\n\nexports.default = function (Component, customScroller) {\n\n var scroller = customScroller || _scroller2.default;\n\n var Link = function (_React$PureComponent) {\n _inherits(Link, _React$PureComponent);\n\n function Link(props) {\n _classCallCheck(this, Link);\n\n var _this = _possibleConstructorReturn(this, (Link.__proto__ || Object.getPrototypeOf(Link)).call(this, props));\n\n _initialiseProps.call(_this);\n\n _this.state = {\n active: false\n };\n return _this;\n }\n\n _createClass(Link, [{\n key: 'getScrollSpyContainer',\n value: function getScrollSpyContainer() {\n var containerId = this.props.containerId;\n var container = this.props.container;\n\n if (containerId && !container) {\n return document.getElementById(containerId);\n }\n\n if (container && container.nodeType) {\n return container;\n }\n\n return document;\n }\n }, {\n key: 'componentDidMount',\n value: function componentDidMount() {\n if (this.props.spy || this.props.hashSpy) {\n var scrollSpyContainer = this.getScrollSpyContainer();\n\n if (!_scrollSpy2.default.isMounted(scrollSpyContainer)) {\n _scrollSpy2.default.mount(scrollSpyContainer, this.props.spyThrottle);\n }\n\n if (this.props.hashSpy) {\n if (!_scrollHash2.default.isMounted()) {\n _scrollHash2.default.mount(scroller);\n }\n _scrollHash2.default.mapContainer(this.props.to, scrollSpyContainer);\n }\n\n _scrollSpy2.default.addSpyHandler(this.spyHandler, scrollSpyContainer);\n\n this.setState({\n container: scrollSpyContainer\n });\n }\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n _scrollSpy2.default.unmount(this.stateHandler, this.spyHandler);\n }\n }, {\n key: 'render',\n value: function render() {\n var className = \"\";\n\n if (this.state && this.state.active) {\n className = ((this.props.className || \"\") + \" \" + (this.props.activeClass || \"active\")).trim();\n } else {\n className = this.props.className;\n }\n\n var style = {};\n\n if (this.state && this.state.active) {\n style = _extends({}, this.props.style, this.props.activeStyle);\n } else {\n style = _extends({}, this.props.style);\n }\n\n var props = _extends({}, this.props);\n\n for (var prop in protoTypes) {\n if (props.hasOwnProperty(prop)) {\n delete props[prop];\n }\n }\n\n props.className = className;\n props.style = style;\n props.onClick = this.handleClick;\n\n return _react2.default.createElement(Component, props);\n }\n }]);\n\n return Link;\n }(_react2.default.PureComponent);\n\n var _initialiseProps = function _initialiseProps() {\n var _this2 = this;\n\n this.scrollTo = function (to, props) {\n scroller.scrollTo(to, _extends({}, _this2.state, props));\n };\n\n this.handleClick = function (event) {\n\n /*\r\n * give the posibility to override onClick\r\n */\n\n if (_this2.props.onClick) {\n _this2.props.onClick(event);\n }\n\n /*\r\n * dont bubble the navigation\r\n */\n\n if (event.stopPropagation) event.stopPropagation();\n if (event.preventDefault) event.preventDefault();\n\n /*\r\n * do the magic!\r\n */\n _this2.scrollTo(_this2.props.to, _this2.props);\n };\n\n this.spyHandler = function (x, y) {\n var scrollSpyContainer = _this2.getScrollSpyContainer();\n\n if (_scrollHash2.default.isMounted() && !_scrollHash2.default.isInitialized()) {\n return;\n }\n\n var horizontal = _this2.props.horizontal;\n\n var to = _this2.props.to;\n var element = null;\n var isInside = void 0;\n var isOutside = void 0;\n\n if (horizontal) {\n var elemLeftBound = 0;\n var elemRightBound = 0;\n var containerLeft = 0;\n\n if (scrollSpyContainer.getBoundingClientRect) {\n var containerCords = scrollSpyContainer.getBoundingClientRect();\n containerLeft = containerCords.left;\n }\n\n if (!element || _this2.props.isDynamic) {\n element = scroller.get(to);\n if (!element) {\n return;\n }\n\n var cords = element.getBoundingClientRect();\n elemLeftBound = cords.left - containerLeft + x;\n elemRightBound = elemLeftBound + cords.width;\n }\n\n var offsetX = x - _this2.props.offset;\n isInside = offsetX >= Math.floor(elemLeftBound) && offsetX < Math.floor(elemRightBound);\n isOutside = offsetX < Math.floor(elemLeftBound) || offsetX >= Math.floor(elemRightBound);\n } else {\n var elemTopBound = 0;\n var elemBottomBound = 0;\n var containerTop = 0;\n\n if (scrollSpyContainer.getBoundingClientRect) {\n var _containerCords = scrollSpyContainer.getBoundingClientRect();\n containerTop = _containerCords.top;\n }\n\n if (!element || _this2.props.isDynamic) {\n element = scroller.get(to);\n if (!element) {\n return;\n }\n\n var _cords = element.getBoundingClientRect();\n elemTopBound = _cords.top - containerTop + y;\n elemBottomBound = elemTopBound + _cords.height;\n }\n\n var offsetY = y - _this2.props.offset;\n isInside = offsetY >= Math.floor(elemTopBound) && offsetY < Math.floor(elemBottomBound);\n isOutside = offsetY < Math.floor(elemTopBound) || offsetY >= Math.floor(elemBottomBound);\n }\n\n var activeLink = scroller.getActiveLink();\n\n if (isOutside) {\n if (to === activeLink) {\n scroller.setActiveLink(void 0);\n }\n\n if (_this2.props.hashSpy && _scrollHash2.default.getHash() === to) {\n var _props$saveHashHistor = _this2.props.saveHashHistory,\n saveHashHistory = _props$saveHashHistor === undefined ? false : _props$saveHashHistor;\n\n _scrollHash2.default.changeHash(\"\", saveHashHistory);\n }\n\n if (_this2.props.spy && _this2.state.active) {\n _this2.setState({ active: false });\n _this2.props.onSetInactive && _this2.props.onSetInactive(to, element);\n }\n }\n\n if (isInside && (activeLink !== to || _this2.state.active === false)) {\n scroller.setActiveLink(to);\n\n var _props$saveHashHistor2 = _this2.props.saveHashHistory,\n _saveHashHistory = _props$saveHashHistor2 === undefined ? false : _props$saveHashHistor2;\n\n _this2.props.hashSpy && _scrollHash2.default.changeHash(to, _saveHashHistory);\n\n if (_this2.props.spy) {\n _this2.setState({ active: true });\n _this2.props.onSetActive && _this2.props.onSetActive(to, element);\n }\n }\n };\n };\n\n ;\n\n Link.propTypes = protoTypes;\n\n Link.defaultProps = { offset: 0 };\n\n return Link;\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _lodash = require('lodash.throttle');\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nvar _passiveEventListeners = require('./passive-event-listeners');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// The eventHandler will execute at a rate of 15fps by default\nvar eventThrottler = function eventThrottler(eventHandler) {\n var throttleAmount = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 66;\n return (0, _lodash2.default)(eventHandler, throttleAmount);\n};\n\nvar scrollSpy = {\n\n spyCallbacks: [],\n spySetState: [],\n scrollSpyContainers: [],\n\n mount: function mount(scrollSpyContainer, throttle) {\n if (scrollSpyContainer) {\n var eventHandler = eventThrottler(function (event) {\n scrollSpy.scrollHandler(scrollSpyContainer);\n }, throttle);\n scrollSpy.scrollSpyContainers.push(scrollSpyContainer);\n (0, _passiveEventListeners.addPassiveEventListener)(scrollSpyContainer, 'scroll', eventHandler);\n }\n },\n isMounted: function isMounted(scrollSpyContainer) {\n return scrollSpy.scrollSpyContainers.indexOf(scrollSpyContainer) !== -1;\n },\n currentPositionX: function currentPositionX(scrollSpyContainer) {\n if (scrollSpyContainer === document) {\n var supportPageOffset = window.pageYOffset !== undefined;\n var isCSS1Compat = (document.compatMode || \"\") === \"CSS1Compat\";\n return supportPageOffset ? window.pageXOffset : isCSS1Compat ? document.documentElement.scrollLeft : document.body.scrollLeft;\n } else {\n return scrollSpyContainer.scrollLeft;\n }\n },\n currentPositionY: function currentPositionY(scrollSpyContainer) {\n if (scrollSpyContainer === document) {\n var supportPageOffset = window.pageXOffset !== undefined;\n var isCSS1Compat = (document.compatMode || \"\") === \"CSS1Compat\";\n return supportPageOffset ? window.pageYOffset : isCSS1Compat ? document.documentElement.scrollTop : document.body.scrollTop;\n } else {\n return scrollSpyContainer.scrollTop;\n }\n },\n scrollHandler: function scrollHandler(scrollSpyContainer) {\n var callbacks = scrollSpy.scrollSpyContainers[scrollSpy.scrollSpyContainers.indexOf(scrollSpyContainer)].spyCallbacks || [];\n callbacks.forEach(function (c) {\n return c(scrollSpy.currentPositionX(scrollSpyContainer), scrollSpy.currentPositionY(scrollSpyContainer));\n });\n },\n addStateHandler: function addStateHandler(handler) {\n scrollSpy.spySetState.push(handler);\n },\n addSpyHandler: function addSpyHandler(handler, scrollSpyContainer) {\n var container = scrollSpy.scrollSpyContainers[scrollSpy.scrollSpyContainers.indexOf(scrollSpyContainer)];\n\n if (!container.spyCallbacks) {\n container.spyCallbacks = [];\n }\n\n container.spyCallbacks.push(handler);\n\n handler(scrollSpy.currentPositionX(scrollSpyContainer), scrollSpy.currentPositionY(scrollSpyContainer));\n },\n updateStates: function updateStates() {\n scrollSpy.spySetState.forEach(function (s) {\n return s();\n });\n },\n unmount: function unmount(stateHandler, spyHandler) {\n scrollSpy.scrollSpyContainers.forEach(function (c) {\n return c.spyCallbacks && c.spyCallbacks.length && c.spyCallbacks.indexOf(spyHandler) > -1 && c.spyCallbacks.splice(c.spyCallbacks.indexOf(spyHandler), 1);\n });\n\n if (scrollSpy.spySetState && scrollSpy.spySetState.length && scrollSpy.spySetState.indexOf(stateHandler) > -1) {\n scrollSpy.spySetState.splice(scrollSpy.spySetState.indexOf(stateHandler), 1);\n }\n\n document.removeEventListener('scroll', scrollSpy.scrollHandler);\n },\n\n\n update: function update() {\n return scrollSpy.scrollSpyContainers.forEach(function (c) {\n return scrollSpy.scrollHandler(c);\n });\n }\n};\n\nexports.default = scrollSpy;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _utils = require('./utils');\n\nvar _utils2 = _interopRequireDefault(_utils);\n\nvar _animateScroll = require('./animate-scroll');\n\nvar _animateScroll2 = _interopRequireDefault(_animateScroll);\n\nvar _scrollEvents = require('./scroll-events');\n\nvar _scrollEvents2 = _interopRequireDefault(_scrollEvents);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar __mapped = {};\nvar __activeLink = void 0;\n\nexports.default = {\n\n unmount: function unmount() {\n __mapped = {};\n },\n\n register: function register(name, element) {\n __mapped[name] = element;\n },\n\n unregister: function unregister(name) {\n delete __mapped[name];\n },\n\n get: function get(name) {\n return __mapped[name] || document.getElementById(name) || document.getElementsByName(name)[0] || document.getElementsByClassName(name)[0];\n },\n\n setActiveLink: function setActiveLink(link) {\n return __activeLink = link;\n },\n\n getActiveLink: function getActiveLink() {\n return __activeLink;\n },\n\n scrollTo: function scrollTo(to, props) {\n\n var target = this.get(to);\n\n if (!target) {\n console.warn(\"target Element not found\");\n return;\n }\n\n props = _extends({}, props, { absolute: false });\n\n var containerId = props.containerId;\n var container = props.container;\n\n var containerElement = void 0;\n if (containerId) {\n containerElement = document.getElementById(containerId);\n } else if (container && container.nodeType) {\n containerElement = container;\n } else {\n containerElement = document;\n }\n\n props.absolute = true;\n\n var horizontal = props.horizontal;\n var scrollOffset = _utils2.default.scrollOffset(containerElement, target, horizontal) + (props.offset || 0);\n\n /*\r\n * if animate is not provided just scroll into the view\r\n */\n if (!props.smooth) {\n if (_scrollEvents2.default.registered['begin']) {\n _scrollEvents2.default.registered['begin'](to, target);\n }\n\n if (containerElement === document) {\n if (props.horizontal) {\n window.scrollTo(scrollOffset, 0);\n } else {\n window.scrollTo(0, scrollOffset);\n }\n } else {\n containerElement.scrollTop = scrollOffset;\n }\n\n if (_scrollEvents2.default.registered['end']) {\n _scrollEvents2.default.registered['end'](to, target);\n }\n\n return;\n }\n\n /*\r\n * Animate scrolling\r\n */\n\n _animateScroll2.default.animateTopScroll(scrollOffset, props, to, target);\n }\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = {\n /*\r\n * https://github.com/oblador/angular-scroll (duScrollDefaultEasing)\r\n */\n defaultEasing: function defaultEasing(x) {\n if (x < 0.5) {\n return Math.pow(x * 2, 2) / 2;\n }\n return 1 - Math.pow((1 - x) * 2, 2) / 2;\n },\n /*\r\n * https://gist.github.com/gre/1650294\r\n */\n // no easing, no acceleration\n linear: function linear(x) {\n return x;\n },\n // accelerating from zero velocity\n easeInQuad: function easeInQuad(x) {\n return x * x;\n },\n // decelerating to zero velocity\n easeOutQuad: function easeOutQuad(x) {\n return x * (2 - x);\n },\n // acceleration until halfway, then deceleration\n easeInOutQuad: function easeInOutQuad(x) {\n return x < .5 ? 2 * x * x : -1 + (4 - 2 * x) * x;\n },\n // accelerating from zero velocity \n easeInCubic: function easeInCubic(x) {\n return x * x * x;\n },\n // decelerating to zero velocity π\n easeOutCubic: function easeOutCubic(x) {\n return --x * x * x + 1;\n },\n // acceleration until halfway, then deceleration \n easeInOutCubic: function easeInOutCubic(x) {\n return x < .5 ? 4 * x * x * x : (x - 1) * (2 * x - 2) * (2 * x - 2) + 1;\n },\n // accelerating from zero velocity \n easeInQuart: function easeInQuart(x) {\n return x * x * x * x;\n },\n // decelerating to zero velocity \n easeOutQuart: function easeOutQuart(x) {\n return 1 - --x * x * x * x;\n },\n // acceleration until halfway, then deceleration\n easeInOutQuart: function easeInOutQuart(x) {\n return x < .5 ? 8 * x * x * x * x : 1 - 8 * --x * x * x * x;\n },\n // accelerating from zero velocity\n easeInQuint: function easeInQuint(x) {\n return x * x * x * x * x;\n },\n // decelerating to zero velocity\n easeOutQuint: function easeOutQuint(x) {\n return 1 + --x * x * x * x * x;\n },\n // acceleration until halfway, then deceleration \n easeInOutQuint: function easeInOutQuint(x) {\n return x < .5 ? 16 * x * x * x * x * x : 1 + 16 * --x * x * x * x * x;\n }\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar updateHash = function updateHash(hash, historyUpdate) {\n var hashVal = hash.indexOf(\"#\") === 0 ? hash.substring(1) : hash;\n var hashToUpdate = hashVal ? \"#\" + hashVal : \"\";\n var curLoc = window && window.location;\n var urlToPush = hashToUpdate ? curLoc.pathname + curLoc.search + hashToUpdate : curLoc.pathname + curLoc.search;\n historyUpdate ? history.pushState(history.state, \"\", urlToPush) : history.replaceState(history.state, \"\", urlToPush);\n};\n\nvar getHash = function getHash() {\n return window.location.hash.replace(/^#/, \"\");\n};\n\nvar filterElementInContainer = function filterElementInContainer(container) {\n return function (element) {\n return container.contains ? container != element && container.contains(element) : !!(container.compareDocumentPosition(element) & 16);\n };\n};\n\nvar isPositioned = function isPositioned(element) {\n return getComputedStyle(element).position !== \"static\";\n};\n\nvar getElementOffsetInfoUntil = function getElementOffsetInfoUntil(element, predicate) {\n var offsetTop = element.offsetTop;\n var currentOffsetParent = element.offsetParent;\n\n while (currentOffsetParent && !predicate(currentOffsetParent)) {\n offsetTop += currentOffsetParent.offsetTop;\n currentOffsetParent = currentOffsetParent.offsetParent;\n }\n\n return { offsetTop: offsetTop, offsetParent: currentOffsetParent };\n};\n\nvar scrollOffset = function scrollOffset(c, t, horizontal) {\n if (horizontal) {\n return c === document ? t.getBoundingClientRect().left + (window.scrollX || window.pageXOffset) : getComputedStyle(c).position !== \"static\" ? t.offsetLeft : t.offsetLeft - c.offsetLeft;\n } else {\n if (c === document) {\n return t.getBoundingClientRect().top + (window.scrollY || window.pageYOffset);\n }\n\n // The offsetParent of an element, according to MDN, is its nearest positioned\n // (an element whose position is anything other than static) ancestor. The offsetTop\n // of an element is taken with respect to its offsetParent which may not neccessarily\n // be its parentElement except the parent itself is positioned.\n\n // So if containerElement is positioned, then it must be an offsetParent somewhere\n // If it happens that targetElement is a descendant of the containerElement, and there\n // is not intermediate positioned element between the two of them, i.e.\n // targetElement\"s offsetParent is the same as the containerElement, then the\n // distance between the two will be the offsetTop of the targetElement.\n // If, on the other hand, there are intermediate positioned elements between the\n // two entities, the distance between the targetElement and the containerElement\n // will be the accumulation of the offsetTop of the element and that of its\n // subsequent offsetParent until the containerElement is reached, since it\n // will also be an offsetParent at some point due to the fact that it is positioned.\n\n // If the containerElement is not positioned, then it can\"t be an offsetParent,\n // which means that the offsetTop of the targetElement would not be with respect to it.\n // However, if the two of them happen to have the same offsetParent, then\n // the distance between them will be the difference between their offsetTop\n // since they are both taken with respect to the same entity.\n // The last resort would be to accumulate their offsetTop until a common\n // offsetParent is reached (usually the document) and taking the difference\n // between the accumulated offsetTops\n\n if (isPositioned(c)) {\n if (t.offsetParent !== c) {\n var isContainerElementOrDocument = function isContainerElementOrDocument(e) {\n return e === c || e === document;\n };\n\n var _getElementOffsetInfo = getElementOffsetInfoUntil(t, isContainerElementOrDocument),\n offsetTop = _getElementOffsetInfo.offsetTop,\n offsetParent = _getElementOffsetInfo.offsetParent;\n\n if (offsetParent !== c) {\n throw new Error(\"Seems containerElement is not an ancestor of the Element\");\n }\n\n return offsetTop;\n }\n\n return t.offsetTop;\n }\n\n if (t.offsetParent === c.offsetParent) {\n return t.offsetTop - c.offsetTop;\n }\n\n var isDocument = function isDocument(e) {\n return e === document;\n };\n return getElementOffsetInfoUntil(t, isDocument).offsetTop - getElementOffsetInfoUntil(c, isDocument).offsetTop;\n }\n};\n\nexports.default = {\n updateHash: updateHash,\n getHash: getHash,\n filterElementInContainer: filterElementInContainer,\n scrollOffset: scrollOffset\n};","/*\n * __ ___\n * _____/ /___ __/ (_)____\n * / ___/ __/ / / / / / ___/\n * (__ ) /_/ /_/ / / (__ )\n * /____/\\__/\\__, /_/_/____/\n * /____/\n *\n * light - weight css preprocessor @licence MIT\n */\n(function (factory) {/* eslint-disable */\n\ttypeof exports === 'object' && typeof module !== 'undefined' ? (module['exports'] = factory(null)) :\n\t\ttypeof define === 'function' && define['amd'] ? define(factory(null)) :\n\t\t\t(window['stylis'] = factory(null))\n}(/** @param {*=} options */function factory (options) {/* eslint-disable */\n\n\t'use strict'\n\n\t/**\n\t * Notes\n\t *\n\t * The [''] pattern is used to support closure compiler\n\t * the jsdoc signatures are also used to the same effect\n\t *\n\t * ----\n\t *\n\t * int + int + int === n4 [faster]\n\t *\n\t * vs\n\t *\n\t * int === n1 && int === n2 && int === n3\n\t *\n\t * ----\n\t *\n\t * switch (int) { case ints...} [faster]\n\t *\n\t * vs\n\t *\n\t * if (int == 1 && int === 2 ...)\n\t *\n\t * ----\n\t *\n\t * The (first*n1 + second*n2 + third*n3) format used in the property parser\n\t * is a simple way to hash the sequence of characters\n\t * taking into account the index they occur in\n\t * since any number of 3 character sequences could produce duplicates.\n\t *\n\t * On the other hand sequences that are directly tied to the index of the character\n\t * resolve a far more accurate measure, it's also faster\n\t * to evaluate one condition in a switch statement\n\t * than three in an if statement regardless of the added math.\n\t *\n\t * This allows the vendor prefixer to be both small and fast.\n\t */\n\n\tvar nullptn = /^\\0+/g /* matches leading null characters */\n\tvar formatptn = /[\\0\\r\\f]/g /* matches new line, null and formfeed characters */\n\tvar colonptn = /: */g /* splits animation rules */\n\tvar cursorptn = /zoo|gra/ /* assert cursor varient */\n\tvar transformptn = /([,: ])(transform)/g /* vendor prefix transform, older webkit */\n\tvar animationptn = /,+\\s*(?![^(]*[)])/g /* splits multiple shorthand notation animations */\n\tvar propertiesptn = / +\\s*(?![^(]*[)])/g /* animation properties */\n\tvar elementptn = / *[\\0] */g /* selector elements */\n\tvar selectorptn = /,\\r+?/g /* splits selectors */\n\tvar andptn = /([\\t\\r\\n ])*\\f?&/g /* match & */\n\tvar escapeptn = /:global\\(((?:[^\\(\\)\\[\\]]*|\\[.*\\]|\\([^\\(\\)]*\\))*)\\)/g /* matches :global(.*) */\n\tvar invalidptn = /\\W+/g /* removes invalid characters from keyframes */\n\tvar keyframeptn = /@(k\\w+)\\s*(\\S*)\\s*/ /* matches @keyframes $1 */\n\tvar plcholdrptn = /::(place)/g /* match ::placeholder varient */\n\tvar readonlyptn = /:(read-only)/g /* match :read-only varient */\n\tvar beforeptn = /\\s+(?=[{\\];=:>])/g /* matches \\s before ] ; = : */\n\tvar afterptn = /([[}=:>])\\s+/g /* matches \\s after characters [ } = : */\n\tvar tailptn = /(\\{[^{]+?);(?=\\})/g /* matches tail semi-colons ;} */\n\tvar whiteptn = /\\s{2,}/g /* matches repeating whitespace */\n\tvar pseudoptn = /([^\\(])(:+) */g /* pseudo element */\n\tvar writingptn = /[svh]\\w+-[tblr]{2}/ /* match writing mode property values */\n\tvar gradientptn = /([\\w-]+t\\()/g /* match *gradient property */\n\tvar supportsptn = /\\(\\s*(.*)\\s*\\)/g /* match supports (groups) */\n\tvar propertyptn = /([\\s\\S]*?);/g /* match properties leading semicolon */\n\tvar selfptn = /-self|flex-/g /* match flex- and -self in align-self: flex-*; */\n\tvar pseudofmt = /[^]*?(:[rp][el]a[\\w-]+)[^]*/ /* extrats :readonly or :placholder from selector */\n\tvar trimptn = /[ \\t]+$/ /* match tail whitspace */\n\tvar dimensionptn = /stretch|:\\s*\\w+\\-(?:conte|avail)/ /* match max/min/fit-content, fill-available */\n\tvar imgsrcptn = /([^-])(image-set\\()/\n\n\t/* vendors */\n\tvar webkit = '-webkit-'\n\tvar moz = '-moz-'\n\tvar ms = '-ms-'\n\n\t/* character codes */\n\tvar SEMICOLON = 59 /* ; */\n\tvar CLOSEBRACES = 125 /* } */\n\tvar OPENBRACES = 123 /* { */\n\tvar OPENPARENTHESES = 40 /* ( */\n\tvar CLOSEPARENTHESES = 41 /* ) */\n\tvar OPENBRACKET = 91 /* [ */\n\tvar CLOSEBRACKET = 93 /* ] */\n\tvar NEWLINE = 10 /* \\n */\n\tvar CARRIAGE = 13 /* \\r */\n\tvar TAB = 9 /* \\t */\n\tvar AT = 64 /* @ */\n\tvar SPACE = 32 /* */\n\tvar AND = 38 /* & */\n\tvar DASH = 45 /* - */\n\tvar UNDERSCORE = 95 /* _ */\n\tvar STAR = 42 /* * */\n\tvar COMMA = 44 /* , */\n\tvar COLON = 58 /* : */\n\tvar SINGLEQUOTE = 39 /* ' */\n\tvar DOUBLEQUOTE = 34 /* \" */\n\tvar FOWARDSLASH = 47 /* / */\n\tvar GREATERTHAN = 62 /* > */\n\tvar PLUS = 43 /* + */\n\tvar TILDE = 126 /* ~ */\n\tvar NULL = 0 /* \\0 */\n\tvar FORMFEED = 12 /* \\f */\n\tvar VERTICALTAB = 11 /* \\v */\n\n\t/* special identifiers */\n\tvar KEYFRAME = 107 /* k */\n\tvar MEDIA = 109 /* m */\n\tvar SUPPORTS = 115 /* s */\n\tvar PLACEHOLDER = 112 /* p */\n\tvar READONLY = 111 /* o */\n\tvar IMPORT = 105 /* i */\n\tvar CHARSET = 99 /* c */\n\tvar DOCUMENT = 100 /* d */\n\tvar PAGE = 112 /* p */\n\n\tvar column = 1 /* current column */\n\tvar line = 1 /* current line numebr */\n\tvar pattern = 0 /* :pattern */\n\n\tvar cascade = 1 /* #id h1 h2 vs h1#id h2#id */\n\tvar prefix = 1 /* vendor prefix */\n\tvar escape = 1 /* escape :global() pattern */\n\tvar compress = 0 /* compress output */\n\tvar semicolon = 0 /* no/semicolon option */\n\tvar preserve = 0 /* preserve empty selectors */\n\n\t/* empty reference */\n\tvar array = []\n\n\t/* plugins */\n\tvar plugins = []\n\tvar plugged = 0\n\tvar should = null\n\n\t/* plugin context */\n\tvar POSTS = -2\n\tvar PREPS = -1\n\tvar UNKWN = 0\n\tvar PROPS = 1\n\tvar BLCKS = 2\n\tvar ATRUL = 3\n\n\t/* plugin newline context */\n\tvar unkwn = 0\n\n\t/* keyframe animation */\n\tvar keyed = 1\n\tvar key = ''\n\n\t/* selector namespace */\n\tvar nscopealt = ''\n\tvar nscope = ''\n\n\t/**\n\t * Compile\n\t *\n\t * @param {Array} parent\n\t * @param {Array} current\n\t * @param {string} body\n\t * @param {number} id\n\t * @param {number} depth\n\t * @return {string}\n\t */\n\tfunction compile (parent, current, body, id, depth) {\n\t\tvar bracket = 0 /* brackets [] */\n\t\tvar comment = 0 /* comments /* // or /* */\n\t\tvar parentheses = 0 /* functions () */\n\t\tvar quote = 0 /* quotes '', \"\" */\n\n\t\tvar first = 0 /* first character code */\n\t\tvar second = 0 /* second character code */\n\t\tvar code = 0 /* current character code */\n\t\tvar tail = 0 /* previous character code */\n\t\tvar trail = 0 /* character before previous code */\n\t\tvar peak = 0 /* previous non-whitespace code */\n\n\t\tvar counter = 0 /* count sequence termination */\n\t\tvar context = 0 /* track current context */\n\t\tvar atrule = 0 /* track @at-rule context */\n\t\tvar pseudo = 0 /* track pseudo token index */\n\t\tvar caret = 0 /* current character index */\n\t\tvar format = 0 /* control character formating context */\n\t\tvar insert = 0 /* auto semicolon insertion */\n\t\tvar invert = 0 /* inverted selector pattern */\n\t\tvar length = 0 /* generic length address */\n\t\tvar eof = body.length /* end of file(length) */\n\t\tvar eol = eof - 1 /* end of file(characters) */\n\n\t\tvar char = '' /* current character */\n\t\tvar chars = '' /* current buffer of characters */\n\t\tvar child = '' /* next buffer of characters */\n\t\tvar out = '' /* compiled body */\n\t\tvar children = '' /* compiled children */\n\t\tvar flat = '' /* compiled leafs */\n\t\tvar selector /* generic selector address */\n\t\tvar result /* generic address */\n\n\t\t// ...build body\n\t\twhile (caret < eof) {\n\t\t\tcode = body.charCodeAt(caret)\n\n\t\t\t// eof varient\n\t\t\tif (caret === eol) {\n\t\t\t\t// last character + noop context, add synthetic padding for noop context to terminate\n\t\t\t\tif (comment + quote + parentheses + bracket !== 0) {\n\t\t\t\t\tif (comment !== 0) {\n\t\t\t\t\t\tcode = comment === FOWARDSLASH ? NEWLINE : FOWARDSLASH\n\t\t\t\t\t}\n\n\t\t\t\t\tquote = parentheses = bracket = 0\n\t\t\t\t\teof++\n\t\t\t\t\teol++\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (comment + quote + parentheses + bracket === 0) {\n\t\t\t\t// eof varient\n\t\t\t\tif (caret === eol) {\n\t\t\t\t\tif (format > 0) {\n\t\t\t\t\t\tchars = chars.replace(formatptn, '')\n\t\t\t\t\t}\n\n\t\t\t\t\tif (chars.trim().length > 0) {\n\t\t\t\t\t\tswitch (code) {\n\t\t\t\t\t\t\tcase SPACE:\n\t\t\t\t\t\t\tcase TAB:\n\t\t\t\t\t\t\tcase SEMICOLON:\n\t\t\t\t\t\t\tcase CARRIAGE:\n\t\t\t\t\t\t\tcase NEWLINE: {\n\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdefault: {\n\t\t\t\t\t\t\t\tchars += body.charAt(caret)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tcode = SEMICOLON\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// auto semicolon insertion\n\t\t\t\tif (insert === 1) {\n\t\t\t\t\tswitch (code) {\n\t\t\t\t\t\t// false flags\n\t\t\t\t\t\tcase OPENBRACES:\n\t\t\t\t\t\tcase CLOSEBRACES:\n\t\t\t\t\t\tcase SEMICOLON:\n\t\t\t\t\t\tcase DOUBLEQUOTE:\n\t\t\t\t\t\tcase SINGLEQUOTE:\n\t\t\t\t\t\tcase OPENPARENTHESES:\n\t\t\t\t\t\tcase CLOSEPARENTHESES:\n\t\t\t\t\t\tcase COMMA: {\n\t\t\t\t\t\t\tinsert = 0\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// ignore\n\t\t\t\t\t\tcase TAB:\n\t\t\t\t\t\tcase CARRIAGE:\n\t\t\t\t\t\tcase NEWLINE:\n\t\t\t\t\t\tcase SPACE: {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// valid\n\t\t\t\t\t\tdefault: {\n\t\t\t\t\t\t\tinsert = 0\n\t\t\t\t\t\t\tlength = caret\n\t\t\t\t\t\t\tfirst = code\n\t\t\t\t\t\t\tcaret--\n\t\t\t\t\t\t\tcode = SEMICOLON\n\n\t\t\t\t\t\t\twhile (length < eof) {\n\t\t\t\t\t\t\t\tswitch (body.charCodeAt(length++)) {\n\t\t\t\t\t\t\t\t\tcase NEWLINE:\n\t\t\t\t\t\t\t\t\tcase CARRIAGE:\n\t\t\t\t\t\t\t\t\tcase SEMICOLON: {\n\t\t\t\t\t\t\t\t\t\t++caret\n\t\t\t\t\t\t\t\t\t\tcode = first\n\t\t\t\t\t\t\t\t\t\tlength = eof\n\t\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tcase COLON: {\n\t\t\t\t\t\t\t\t\t\tif (format > 0) {\n\t\t\t\t\t\t\t\t\t\t\t++caret\n\t\t\t\t\t\t\t\t\t\t\tcode = first\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tcase OPENBRACES: {\n\t\t\t\t\t\t\t\t\t\tlength = eof\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// token varient\n\t\t\t\tswitch (code) {\n\t\t\t\t\tcase OPENBRACES: {\n\t\t\t\t\t\tchars = chars.trim()\n\t\t\t\t\t\tfirst = chars.charCodeAt(0)\n\t\t\t\t\t\tcounter = 1\n\t\t\t\t\t\tlength = ++caret\n\n\t\t\t\t\t\twhile (caret < eof) {\n\t\t\t\t\t\t\tswitch (code = body.charCodeAt(caret)) {\n\t\t\t\t\t\t\t\tcase OPENBRACES: {\n\t\t\t\t\t\t\t\t\tcounter++\n\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tcase CLOSEBRACES: {\n\t\t\t\t\t\t\t\t\tcounter--\n\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tcase FOWARDSLASH: {\n\t\t\t\t\t\t\t\t\tswitch (second = body.charCodeAt(caret + 1)) {\n\t\t\t\t\t\t\t\t\t\t// /*, //\n\t\t\t\t\t\t\t\t\t\tcase STAR:\n\t\t\t\t\t\t\t\t\t\tcase FOWARDSLASH: {\n\t\t\t\t\t\t\t\t\t\t\tcaret = delimited(second, caret, eol, body)\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// given \"[\" === 91 & \"]\" === 93 hence forth 91 + 1 + 1 === 93\n\t\t\t\t\t\t\t\tcase OPENBRACKET: {\n\t\t\t\t\t\t\t\t\tcode++\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// given \"(\" === 40 & \")\" === 41 hence forth 40 + 1 === 41\n\t\t\t\t\t\t\t\tcase OPENPARENTHESES: {\n\t\t\t\t\t\t\t\t\tcode++\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// quote tail delimiter is identical to the head delimiter hence noop,\n\t\t\t\t\t\t\t\t// fallthrough clauses have been shifted to the correct tail delimiter\n\t\t\t\t\t\t\t\tcase DOUBLEQUOTE:\n\t\t\t\t\t\t\t\tcase SINGLEQUOTE: {\n\t\t\t\t\t\t\t\t\twhile (caret++ < eol) {\n\t\t\t\t\t\t\t\t\t\tif (body.charCodeAt(caret) === code) {\n\t\t\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif (counter === 0) {\n\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tcaret++\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tchild = body.substring(length, caret)\n\n\t\t\t\t\t\tif (first === NULL) {\n\t\t\t\t\t\t\tfirst = (chars = chars.replace(nullptn, '').trim()).charCodeAt(0)\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tswitch (first) {\n\t\t\t\t\t\t\t// @at-rule\n\t\t\t\t\t\t\tcase AT: {\n\t\t\t\t\t\t\t\tif (format > 0) {\n\t\t\t\t\t\t\t\t\tchars = chars.replace(formatptn, '')\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tsecond = chars.charCodeAt(1)\n\n\t\t\t\t\t\t\t\tswitch (second) {\n\t\t\t\t\t\t\t\t\tcase DOCUMENT:\n\t\t\t\t\t\t\t\t\tcase MEDIA:\n\t\t\t\t\t\t\t\t\tcase SUPPORTS:\n\t\t\t\t\t\t\t\t\tcase DASH: {\n\t\t\t\t\t\t\t\t\t\tselector = current\n\t\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdefault: {\n\t\t\t\t\t\t\t\t\t\tselector = array\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tchild = compile(current, selector, child, second, depth+1)\n\t\t\t\t\t\t\t\tlength = child.length\n\n\t\t\t\t\t\t\t\t// preserve empty @at-rule\n\t\t\t\t\t\t\t\tif (preserve > 0 && length === 0) {\n\t\t\t\t\t\t\t\t\tlength = chars.length\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t// execute plugins, @at-rule context\n\t\t\t\t\t\t\t\tif (plugged > 0) {\n\t\t\t\t\t\t\t\t\tselector = select(array, chars, invert)\n\t\t\t\t\t\t\t\t\tresult = proxy(ATRUL, child, selector, current, line, column, length, second, depth, id)\n\t\t\t\t\t\t\t\t\tchars = selector.join('')\n\n\t\t\t\t\t\t\t\t\tif (result !== void 0) {\n\t\t\t\t\t\t\t\t\t\tif ((length = (child = result.trim()).length) === 0) {\n\t\t\t\t\t\t\t\t\t\t\tsecond = 0\n\t\t\t\t\t\t\t\t\t\t\tchild = ''\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tif (length > 0) {\n\t\t\t\t\t\t\t\t\tswitch (second) {\n\t\t\t\t\t\t\t\t\t\tcase SUPPORTS: {\n\t\t\t\t\t\t\t\t\t\t\tchars = chars.replace(supportsptn, supports)\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tcase DOCUMENT:\n\t\t\t\t\t\t\t\t\t\tcase MEDIA:\n\t\t\t\t\t\t\t\t\t\tcase DASH: {\n\t\t\t\t\t\t\t\t\t\t\tchild = chars + '{' + child + '}'\n\t\t\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tcase KEYFRAME: {\n\t\t\t\t\t\t\t\t\t\t\tchars = chars.replace(keyframeptn, '$1 $2' + (keyed > 0 ? key : ''))\n\t\t\t\t\t\t\t\t\t\t\tchild = chars + '{' + child + '}'\n\n\t\t\t\t\t\t\t\t\t\t\tif (prefix === 1 || (prefix === 2 && vendor('@'+child, 3))) {\n\t\t\t\t\t\t\t\t\t\t\t\tchild = '@' + webkit + child + '@' + child\n\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\tchild = '@' + child\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tdefault: {\n\t\t\t\t\t\t\t\t\t\t\tchild = chars + child\n\n\t\t\t\t\t\t\t\t\t\t\tif (id === PAGE) {\n\t\t\t\t\t\t\t\t\t\t\t\tchild = (out += child, '')\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tchild = ''\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t// selector\n\t\t\t\t\t\t\tdefault: {\n\t\t\t\t\t\t\t\tchild = compile(current, select(current, chars, invert), child, id, depth+1)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tchildren += child\n\n\t\t\t\t\t\t// reset\n\t\t\t\t\t\tcontext = 0\n\t\t\t\t\t\tinsert = 0\n\t\t\t\t\t\tpseudo = 0\n\t\t\t\t\t\tformat = 0\n\t\t\t\t\t\tinvert = 0\n\t\t\t\t\t\tatrule = 0\n\t\t\t\t\t\tchars = ''\n\t\t\t\t\t\tchild = ''\n\t\t\t\t\t\tcode = body.charCodeAt(++caret)\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t\tcase CLOSEBRACES:\n\t\t\t\t\tcase SEMICOLON: {\n\t\t\t\t\t\tchars = (format > 0 ? chars.replace(formatptn, '') : chars).trim()\n\n\t\t\t\t\t\tif ((length = chars.length) > 1) {\n\t\t\t\t\t\t\t// monkey-patch missing colon\n\t\t\t\t\t\t\tif (pseudo === 0) {\n\t\t\t\t\t\t\t\tfirst = chars.charCodeAt(0)\n\n\t\t\t\t\t\t\t\t// first character is a letter or dash, buffer has a space character\n\t\t\t\t\t\t\t\tif ((first === DASH || first > 96 && first < 123)) {\n\t\t\t\t\t\t\t\t\tlength = (chars = chars.replace(' ', ':')).length\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t// execute plugins, property context\n\t\t\t\t\t\t\tif (plugged > 0) {\n\t\t\t\t\t\t\t\tif ((result = proxy(PROPS, chars, current, parent, line, column, out.length, id, depth, id)) !== void 0) {\n\t\t\t\t\t\t\t\t\tif ((length = (chars = result.trim()).length) === 0) {\n\t\t\t\t\t\t\t\t\t\tchars = '\\0\\0'\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tfirst = chars.charCodeAt(0)\n\t\t\t\t\t\t\tsecond = chars.charCodeAt(1)\n\n\t\t\t\t\t\t\tswitch (first) {\n\t\t\t\t\t\t\t\tcase NULL: {\n\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tcase AT: {\n\t\t\t\t\t\t\t\t\tif (second === IMPORT || second === CHARSET) {\n\t\t\t\t\t\t\t\t\t\tflat += chars + body.charAt(caret)\n\t\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdefault: {\n\t\t\t\t\t\t\t\t\tif (chars.charCodeAt(length-1) === COLON) {\n\t\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\tout += property(chars, first, second, chars.charCodeAt(2))\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// reset\n\t\t\t\t\t\tcontext = 0\n\t\t\t\t\t\tinsert = 0\n\t\t\t\t\t\tpseudo = 0\n\t\t\t\t\t\tformat = 0\n\t\t\t\t\t\tinvert = 0\n\t\t\t\t\t\tchars = ''\n\t\t\t\t\t\tcode = body.charCodeAt(++caret)\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// parse characters\n\t\t\tswitch (code) {\n\t\t\t\tcase CARRIAGE:\n\t\t\t\tcase NEWLINE: {\n\t\t\t\t\t// auto insert semicolon\n\t\t\t\t\tif (comment + quote + parentheses + bracket + semicolon === 0) {\n\t\t\t\t\t\t// valid non-whitespace characters that\n\t\t\t\t\t\t// may precede a newline\n\t\t\t\t\t\tswitch (peak) {\n\t\t\t\t\t\t\tcase CLOSEPARENTHESES:\n\t\t\t\t\t\t\tcase SINGLEQUOTE:\n\t\t\t\t\t\t\tcase DOUBLEQUOTE:\n\t\t\t\t\t\t\tcase AT:\n\t\t\t\t\t\t\tcase TILDE:\n\t\t\t\t\t\t\tcase GREATERTHAN:\n\t\t\t\t\t\t\tcase STAR:\n\t\t\t\t\t\t\tcase PLUS:\n\t\t\t\t\t\t\tcase FOWARDSLASH:\n\t\t\t\t\t\t\tcase DASH:\n\t\t\t\t\t\t\tcase COLON:\n\t\t\t\t\t\t\tcase COMMA:\n\t\t\t\t\t\t\tcase SEMICOLON:\n\t\t\t\t\t\t\tcase OPENBRACES:\n\t\t\t\t\t\t\tcase CLOSEBRACES: {\n\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdefault: {\n\t\t\t\t\t\t\t\t// current buffer has a colon\n\t\t\t\t\t\t\t\tif (pseudo > 0) {\n\t\t\t\t\t\t\t\t\tinsert = 1\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// terminate line comment\n\t\t\t\t\tif (comment === FOWARDSLASH) {\n\t\t\t\t\t\tcomment = 0\n\t\t\t\t\t} else if (cascade + context === 0 && id !== KEYFRAME && chars.length > 0) {\n\t\t\t\t\t\tformat = 1\n\t\t\t\t\t\tchars += '\\0'\n\t\t\t\t\t}\n\n\t\t\t\t\t// execute plugins, newline context\n\t\t\t\t\tif (plugged * unkwn > 0) {\n\t\t\t\t\t\tproxy(UNKWN, chars, current, parent, line, column, out.length, id, depth, id)\n\t\t\t\t\t}\n\n\t\t\t\t\t// next line, reset column position\n\t\t\t\t\tcolumn = 1\n\t\t\t\t\tline++\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t\tcase SEMICOLON:\n\t\t\t\tcase CLOSEBRACES: {\n\t\t\t\t\tif (comment + quote + parentheses + bracket === 0) {\n\t\t\t\t\t\tcolumn++\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tdefault: {\n\t\t\t\t\t// increment column position\n\t\t\t\t\tcolumn++\n\n\t\t\t\t\t// current character\n\t\t\t\t\tchar = body.charAt(caret)\n\n\t\t\t\t\t// remove comments, escape functions, strings, attributes and prepare selectors\n\t\t\t\t\tswitch (code) {\n\t\t\t\t\t\tcase TAB:\n\t\t\t\t\t\tcase SPACE: {\n\t\t\t\t\t\t\tif (quote + bracket + comment === 0) {\n\t\t\t\t\t\t\t\tswitch (tail) {\n\t\t\t\t\t\t\t\t\tcase COMMA:\n\t\t\t\t\t\t\t\t\tcase COLON:\n\t\t\t\t\t\t\t\t\tcase TAB:\n\t\t\t\t\t\t\t\t\tcase SPACE: {\n\t\t\t\t\t\t\t\t\t\tchar = ''\n\t\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdefault: {\n\t\t\t\t\t\t\t\t\t\tif (code !== SPACE) {\n\t\t\t\t\t\t\t\t\t\t\tchar = ' '\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// escape breaking control characters\n\t\t\t\t\t\tcase NULL: {\n\t\t\t\t\t\t\tchar = '\\\\0'\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t\tcase FORMFEED: {\n\t\t\t\t\t\t\tchar = '\\\\f'\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t\tcase VERTICALTAB: {\n\t\t\t\t\t\t\tchar = '\\\\v'\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// &\n\t\t\t\t\t\tcase AND: {\n\t\t\t\t\t\t\t// inverted selector pattern i.e html &\n\t\t\t\t\t\t\tif (quote + comment + bracket === 0 && cascade > 0) {\n\t\t\t\t\t\t\t\tinvert = 1\n\t\t\t\t\t\t\t\tformat = 1\n\t\t\t\t\t\t\t\tchar = '\\f' + char\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// ::paceholder, l\n\t\t\t\t\t\t// :read-ony, l\n\t\t\t\t\t\tcase 108: {\n\t\t\t\t\t\t\tif (quote + comment + bracket + pattern === 0 && pseudo > 0) {\n\t\t\t\t\t\t\t\tswitch (caret - pseudo) {\n\t\t\t\t\t\t\t\t\t// ::placeholder\n\t\t\t\t\t\t\t\t\tcase 2: {\n\t\t\t\t\t\t\t\t\t\tif (tail === PLACEHOLDER && body.charCodeAt(caret-3) === COLON) {\n\t\t\t\t\t\t\t\t\t\t\tpattern = tail\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t// :read-only\n\t\t\t\t\t\t\t\t\tcase 8: {\n\t\t\t\t\t\t\t\t\t\tif (trail === READONLY) {\n\t\t\t\t\t\t\t\t\t\t\tpattern = trail\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// :\n\t\t\t\t\t\tcase COLON: {\n\t\t\t\t\t\t\tif (quote + comment + bracket === 0) {\n\t\t\t\t\t\t\t\tpseudo = caret\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// selectors\n\t\t\t\t\t\tcase COMMA: {\n\t\t\t\t\t\t\tif (comment + parentheses + quote + bracket === 0) {\n\t\t\t\t\t\t\t\tformat = 1\n\t\t\t\t\t\t\t\tchar += '\\r'\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// quotes\n\t\t\t\t\t\tcase DOUBLEQUOTE:\n\t\t\t\t\t\tcase SINGLEQUOTE: {\n\t\t\t\t\t\t\tif (comment === 0) {\n\t\t\t\t\t\t\t\tquote = quote === code ? 0 : (quote === 0 ? code : quote)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// attributes\n\t\t\t\t\t\tcase OPENBRACKET: {\n\t\t\t\t\t\t\tif (quote + comment + parentheses === 0) {\n\t\t\t\t\t\t\t\tbracket++\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t\tcase CLOSEBRACKET: {\n\t\t\t\t\t\t\tif (quote + comment + parentheses === 0) {\n\t\t\t\t\t\t\t\tbracket--\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// functions\n\t\t\t\t\t\tcase CLOSEPARENTHESES: {\n\t\t\t\t\t\t\tif (quote + comment + bracket === 0) {\n\t\t\t\t\t\t\t\tparentheses--\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t\tcase OPENPARENTHESES: {\n\t\t\t\t\t\t\tif (quote + comment + bracket === 0) {\n\t\t\t\t\t\t\t\tif (context === 0) {\n\t\t\t\t\t\t\t\t\tswitch (tail*2 + trail*3) {\n\t\t\t\t\t\t\t\t\t\t// :matches\n\t\t\t\t\t\t\t\t\t\tcase 533: {\n\t\t\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t// :global, :not, :nth-child etc...\n\t\t\t\t\t\t\t\t\t\tdefault: {\n\t\t\t\t\t\t\t\t\t\t\tcounter = 0\n\t\t\t\t\t\t\t\t\t\t\tcontext = 1\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tparentheses++\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t\tcase AT: {\n\t\t\t\t\t\t\tif (comment + parentheses + quote + bracket + pseudo + atrule === 0) {\n\t\t\t\t\t\t\t\tatrule = 1\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// block/line comments\n\t\t\t\t\t\tcase STAR:\n\t\t\t\t\t\tcase FOWARDSLASH: {\n\t\t\t\t\t\t\tif (quote + bracket + parentheses > 0) {\n\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tswitch (comment) {\n\t\t\t\t\t\t\t\t// initialize line/block comment context\n\t\t\t\t\t\t\t\tcase 0: {\n\t\t\t\t\t\t\t\t\tswitch (code*2 + body.charCodeAt(caret+1)*3) {\n\t\t\t\t\t\t\t\t\t\t// //\n\t\t\t\t\t\t\t\t\t\tcase 235: {\n\t\t\t\t\t\t\t\t\t\t\tcomment = FOWARDSLASH\n\t\t\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t// /*\n\t\t\t\t\t\t\t\t\t\tcase 220: {\n\t\t\t\t\t\t\t\t\t\t\tlength = caret\n\t\t\t\t\t\t\t\t\t\t\tcomment = STAR\n\t\t\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// end block comment context\n\t\t\t\t\t\t\t\tcase STAR: {\n\t\t\t\t\t\t\t\t\tif (code === FOWARDSLASH && tail === STAR && length + 2 !== caret) {\n\t\t\t\t\t\t\t\t\t\t// /* ... */, !\n\t\t\t\t\t\t\t\t\t\tif (body.charCodeAt(length+2) === 33) {\n\t\t\t\t\t\t\t\t\t\t\tout += body.substring(length, caret+1)\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tchar = ''\n\t\t\t\t\t\t\t\t\t\tcomment = 0\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// ignore comment blocks\n\t\t\t\t\tif (comment === 0) {\n\t\t\t\t\t\t// aggressive isolation mode, divide each individual selector\n\t\t\t\t\t\t// including selectors in :not function but excluding selectors in :global function\n\t\t\t\t\t\tif (cascade + quote + bracket + atrule === 0 && id !== KEYFRAME && code !== SEMICOLON) {\n\t\t\t\t\t\t\tswitch (code) {\n\t\t\t\t\t\t\t\tcase COMMA:\n\t\t\t\t\t\t\t\tcase TILDE:\n\t\t\t\t\t\t\t\tcase GREATERTHAN:\n\t\t\t\t\t\t\t\tcase PLUS:\n\t\t\t\t\t\t\t\tcase CLOSEPARENTHESES:\n\t\t\t\t\t\t\t\tcase OPENPARENTHESES: {\n\t\t\t\t\t\t\t\t\tif (context === 0) {\n\t\t\t\t\t\t\t\t\t\t// outside of an isolated context i.e nth-child(<...>)\n\t\t\t\t\t\t\t\t\t\tswitch (tail) {\n\t\t\t\t\t\t\t\t\t\t\tcase TAB:\n\t\t\t\t\t\t\t\t\t\t\tcase SPACE:\n\t\t\t\t\t\t\t\t\t\t\tcase NEWLINE:\n\t\t\t\t\t\t\t\t\t\t\tcase CARRIAGE: {\n\t\t\t\t\t\t\t\t\t\t\t\tchar = char + '\\0'\n\t\t\t\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tdefault: {\n\t\t\t\t\t\t\t\t\t\t\t\tchar = '\\0' + char + (code === COMMA ? '' : '\\0')\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tformat = 1\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t// within an isolated context, sleep untill it's terminated\n\t\t\t\t\t\t\t\t\t\tswitch (code) {\n\t\t\t\t\t\t\t\t\t\t\tcase OPENPARENTHESES: {\n\t\t\t\t\t\t\t\t\t\t\t\t// :globa(\n\t\t\t\t\t\t\t\t\t\t\t\tif (pseudo + 7 === caret && tail === 108) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tpseudo = 0\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tcontext = ++counter\n\t\t\t\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tcase CLOSEPARENTHESES: {\n\t\t\t\t\t\t\t\t\t\t\t\tif ((context = --counter) === 0) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tformat = 1\n\t\t\t\t\t\t\t\t\t\t\t\t\tchar += '\\0'\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tcase TAB:\n\t\t\t\t\t\t\t\tcase SPACE: {\n\t\t\t\t\t\t\t\t\tswitch (tail) {\n\t\t\t\t\t\t\t\t\t\tcase NULL:\n\t\t\t\t\t\t\t\t\t\tcase OPENBRACES:\n\t\t\t\t\t\t\t\t\t\tcase CLOSEBRACES:\n\t\t\t\t\t\t\t\t\t\tcase SEMICOLON:\n\t\t\t\t\t\t\t\t\t\tcase COMMA:\n\t\t\t\t\t\t\t\t\t\tcase FORMFEED:\n\t\t\t\t\t\t\t\t\t\tcase TAB:\n\t\t\t\t\t\t\t\t\t\tcase SPACE:\n\t\t\t\t\t\t\t\t\t\tcase NEWLINE:\n\t\t\t\t\t\t\t\t\t\tcase CARRIAGE: {\n\t\t\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tdefault: {\n\t\t\t\t\t\t\t\t\t\t\t// ignore in isolated contexts\n\t\t\t\t\t\t\t\t\t\t\tif (context === 0) {\n\t\t\t\t\t\t\t\t\t\t\t\tformat = 1\n\t\t\t\t\t\t\t\t\t\t\t\tchar += '\\0'\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// concat buffer of characters\n\t\t\t\t\t\tchars += char\n\n\t\t\t\t\t\t// previous non-whitespace character code\n\t\t\t\t\t\tif (code !== SPACE && code !== TAB) {\n\t\t\t\t\t\t\tpeak = code\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// tail character codes\n\t\t\ttrail = tail\n\t\t\ttail = code\n\n\t\t\t// visit every character\n\t\t\tcaret++\n\t\t}\n\n\t\tlength = out.length\n\n\t\t// preserve empty selector\n \t\tif (preserve > 0) {\n \t\t\tif (length === 0 && children.length === 0 && (current[0].length === 0) === false) {\n \t\t\t\tif (id !== MEDIA || (current.length === 1 && (cascade > 0 ? nscopealt : nscope) === current[0])) {\n\t\t\t\t\tlength = current.join(',').length + 2\n \t\t\t\t}\n \t\t\t}\n\t\t}\n\n\t\tif (length > 0) {\n\t\t\t// cascade isolation mode?\n\t\t\tselector = cascade === 0 && id !== KEYFRAME ? isolate(current) : current\n\n\t\t\t// execute plugins, block context\n\t\t\tif (plugged > 0) {\n\t\t\t\tresult = proxy(BLCKS, out, selector, parent, line, column, length, id, depth, id)\n\n\t\t\t\tif (result !== void 0 && (out = result).length === 0) {\n\t\t\t\t\treturn flat + out + children\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tout = selector.join(',') + '{' + out + '}'\n\n\t\t\tif (prefix*pattern !== 0) {\n\t\t\t\tif (prefix === 2 && !vendor(out, 2))\n\t\t\t\t\tpattern = 0\n\n\t\t\t\tswitch (pattern) {\n\t\t\t\t\t// ::read-only\n\t\t\t\t\tcase READONLY: {\n\t\t\t\t\t\tout = out.replace(readonlyptn, ':'+moz+'$1')+out\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t\t// ::placeholder\n\t\t\t\t\tcase PLACEHOLDER: {\n\t\t\t\t\t\tout = (\n\t\t\t\t\t\t\tout.replace(plcholdrptn, '::' + webkit + 'input-$1') +\n\t\t\t\t\t\t\tout.replace(plcholdrptn, '::' + moz + '$1') +\n\t\t\t\t\t\t\tout.replace(plcholdrptn, ':' + ms + 'input-$1') + out\n\t\t\t\t\t\t)\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tpattern = 0\n\t\t\t}\n\t\t}\n\n\t\treturn flat + out + children\n\t}\n\n\t/**\n\t * Select\n\t *\n\t * @param {Array} parent\n\t * @param {string} current\n\t * @param {number} invert\n\t * @return {Array}\n\t */\n\tfunction select (parent, current, invert) {\n\t\tvar selectors = current.trim().split(selectorptn)\n\t\tvar out = selectors\n\n\t\tvar length = selectors.length\n\t\tvar l = parent.length\n\n\t\tswitch (l) {\n\t\t\t// 0-1 parent selectors\n\t\t\tcase 0:\n\t\t\tcase 1: {\n\t\t\t\tfor (var i = 0, selector = l === 0 ? '' : parent[0] + ' '; i < length; ++i) {\n\t\t\t\t\tout[i] = scope(selector, out[i], invert, l).trim()\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\t}\n\t\t\t// >2 parent selectors, nested\n\t\t\tdefault: {\n\t\t\t\tfor (var i = 0, j = 0, out = []; i < length; ++i) {\n\t\t\t\t\tfor (var k = 0; k < l; ++k) {\n\t\t\t\t\t\tout[j++] = scope(parent[k] + ' ', selectors[i], invert, l).trim()\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn out\n\t}\n\n\t/**\n\t * Scope\n\t *\n\t * @param {string} parent\n\t * @param {string} current\n\t * @param {number} invert\n\t * @param {number} level\n\t * @return {string}\n\t */\n\tfunction scope (parent, current, invert, level) {\n\t\tvar selector = current\n\t\tvar code = selector.charCodeAt(0)\n\n\t\t// trim leading whitespace\n\t\tif (code < 33) {\n\t\t\tcode = (selector = selector.trim()).charCodeAt(0)\n\t\t}\n\n\t\tswitch (code) {\n\t\t\t// &\n\t\t\tcase AND: {\n\t\t\t\tswitch (cascade + level) {\n\t\t\t\t\tcase 0:\n\t\t\t\t\tcase 1: {\n\t\t\t\t\t\tif (parent.trim().length === 0) {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tdefault: {\n\t\t\t\t\t\treturn selector.replace(andptn, '$1'+parent.trim())\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\t}\n\t\t\t// :\n\t\t\tcase COLON: {\n\t\t\t\tswitch (selector.charCodeAt(1)) {\n\t\t\t\t\t// g in :global\n\t\t\t\t\tcase 103: {\n\t\t\t\t\t\tif (escape > 0 && cascade > 0) {\n\t\t\t\t\t\t\treturn selector.replace(escapeptn, '$1').replace(andptn, '$1'+nscope)\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t\tdefault: {\n\t\t\t\t\t\t// :hover\n\t\t\t\t\t\treturn parent.trim() + selector.replace(andptn, '$1'+parent.trim())\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tdefault: {\n\t\t\t\t// html &\n\t\t\t\tif (invert*cascade > 0 && selector.indexOf('\\f') > 0) {\n\t\t\t\t\treturn selector.replace(andptn, (parent.charCodeAt(0) === COLON ? '' : '$1')+parent.trim())\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn parent + selector\n\t}\n\n\t/**\n\t * Property\n\t *\n\t * @param {string} input\n\t * @param {number} first\n\t * @param {number} second\n\t * @param {number} third\n\t * @return {string}\n\t */\n\tfunction property (input, first, second, third) {\n\t\tvar index = 0\n\t\tvar out = input + ';'\n\t\tvar hash = (first*2) + (second*3) + (third*4)\n\t\tvar cache\n\n\t\t// animation: a, n, i characters\n\t\tif (hash === 944) {\n\t\t\treturn animation(out)\n\t\t} else if (prefix === 0 || (prefix === 2 && !vendor(out, 1))) {\n\t\t\treturn out\n\t\t}\n\n\t\t// vendor prefix\n\t\tswitch (hash) {\n\t\t\t// text-decoration/text-size-adjust/text-shadow/text-align/text-transform: t, e, x\n\t\t\tcase 1015: {\n\t\t\t\t// text-shadow/text-align/text-transform, a\n\t\t\t\treturn out.charCodeAt(10) === 97 ? webkit + out + out : out\n\t\t\t}\n\t\t\t// filter/fill f, i, l\n\t\t\tcase 951: {\n\t\t\t\t// filter, t\n\t\t\t\treturn out.charCodeAt(3) === 116 ? webkit + out + out : out\n\t\t\t}\n\t\t\t// color/column, c, o, l\n\t\t\tcase 963: {\n\t\t\t\t// column, n\n\t\t\t\treturn out.charCodeAt(5) === 110 ? webkit + out + out : out\n\t\t\t}\n\t\t\t// box-decoration-break, b, o, x\n\t\t\tcase 1009: {\n\t\t\t\tif (out.charCodeAt(4) !== 100) {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\t// mask, m, a, s\n\t\t\t// clip-path, c, l, i\n\t\t\tcase 969:\n\t\t\tcase 942: {\n\t\t\t\treturn webkit + out + out\n\t\t\t}\n\t\t\t// appearance: a, p, p\n\t\t\tcase 978: {\n\t\t\t\treturn webkit + out + moz + out + out\n\t\t\t}\n\t\t\t// hyphens: h, y, p\n\t\t\t// user-select: u, s, e\n\t\t\tcase 1019:\n\t\t\tcase 983: {\n\t\t\t\treturn webkit + out + moz + out + ms + out + out\n\t\t\t}\n\t\t\t// background/backface-visibility, b, a, c\n\t\t\tcase 883: {\n\t\t\t\t// backface-visibility, -\n\t\t\t\tif (out.charCodeAt(8) === DASH) {\n\t\t\t\t\treturn webkit + out + out\n\t\t\t\t}\n\n\t\t\t\t// image-set(...)\n\t\t\t\tif (out.indexOf('image-set(', 11) > 0) {\n\t\t\t\t\treturn out.replace(imgsrcptn, '$1'+webkit+'$2') + out\n\t\t\t\t}\n\n\t\t\t\treturn out\n\t\t\t}\n\t\t\t// flex: f, l, e\n\t\t\tcase 932: {\n\t\t\t\tif (out.charCodeAt(4) === DASH) {\n\t\t\t\t\tswitch (out.charCodeAt(5)) {\n\t\t\t\t\t\t// flex-grow, g\n\t\t\t\t\t\tcase 103: {\n\t\t\t\t\t\t\treturn webkit + 'box-' + out.replace('-grow', '') + webkit + out + ms + out.replace('grow', 'positive') + out\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// flex-shrink, s\n\t\t\t\t\t\tcase 115: {\n\t\t\t\t\t\t\treturn webkit + out + ms + out.replace('shrink', 'negative') + out\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// flex-basis, b\n\t\t\t\t\t\tcase 98: {\n\t\t\t\t\t\t\treturn webkit + out + ms + out.replace('basis', 'preferred-size') + out\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn webkit + out + ms + out + out\n\t\t\t}\n\t\t\t// order: o, r, d\n\t\t\tcase 964: {\n\t\t\t\treturn webkit + out + ms + 'flex' + '-' + out + out\n\t\t\t}\n\t\t\t// justify-items/justify-content, j, u, s\n\t\t\tcase 1023: {\n\t\t\t\t// justify-content, c\n\t\t\t\tif (out.charCodeAt(8) !== 99) {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\n\t\t\t\tcache = out.substring(out.indexOf(':', 15)).replace('flex-', '').replace('space-between', 'justify')\n\t\t\t\treturn webkit + 'box-pack' + cache + webkit + out + ms + 'flex-pack' + cache + out\n\t\t\t}\n\t\t\t// cursor, c, u, r\n\t\t\tcase 1005: {\n\t\t\t\treturn cursorptn.test(out) ? out.replace(colonptn, ':' + webkit) + out.replace(colonptn, ':' + moz) + out : out\n\t\t\t}\n\t\t\t// writing-mode, w, r, i\n\t\t\tcase 1000: {\n\t\t\t\tcache = out.substring(13).trim()\n\t\t\t\tindex = cache.indexOf('-') + 1\n\n\t\t\t\tswitch (cache.charCodeAt(0)+cache.charCodeAt(index)) {\n\t\t\t\t\t// vertical-lr\n\t\t\t\t\tcase 226: {\n\t\t\t\t\t\tcache = out.replace(writingptn, 'tb')\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t\t// vertical-rl\n\t\t\t\t\tcase 232: {\n\t\t\t\t\t\tcache = out.replace(writingptn, 'tb-rl')\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t\t// horizontal-tb\n\t\t\t\t\tcase 220: {\n\t\t\t\t\t\tcache = out.replace(writingptn, 'lr')\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t\tdefault: {\n\t\t\t\t\t\treturn out\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn webkit + out + ms + cache + out\n\t\t\t}\n\t\t\t// position: sticky\n\t\t\tcase 1017: {\n\t\t\t\tif (out.indexOf('sticky', 9) === -1) {\n\t\t\t\t\treturn out\n\t\t\t\t}\n\t\t\t}\n\t\t\t// display(flex/inline-flex/inline-box): d, i, s\n\t\t\tcase 975: {\n\t\t\t\tindex = (out = input).length - 10\n\t\t\t\tcache = (out.charCodeAt(index) === 33 ? out.substring(0, index) : out).substring(input.indexOf(':', 7) + 1).trim()\n\n\t\t\t\tswitch (hash = cache.charCodeAt(0) + (cache.charCodeAt(7)|0)) {\n\t\t\t\t\t// inline-\n\t\t\t\t\tcase 203: {\n\t\t\t\t\t\t// inline-box\n\t\t\t\t\t\tif (cache.charCodeAt(8) < 111) {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\t// inline-box/sticky\n\t\t\t\t\tcase 115: {\n\t\t\t\t\t\tout = out.replace(cache, webkit+cache)+';'+out\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t\t// inline-flex\n\t\t\t\t\t// flex\n\t\t\t\t\tcase 207:\n\t\t\t\t\tcase 102: {\n\t\t\t\t\t\tout = (\n\t\t\t\t\t\t\tout.replace(cache, webkit+(hash > 102 ? 'inline-' : '')+'box')+';'+\n\t\t\t\t\t\t\tout.replace(cache, webkit+cache)+';'+\n\t\t\t\t\t\t\tout.replace(cache, ms+cache+'box')+';'+\n\t\t\t\t\t\t\tout\n\t\t\t\t\t\t)\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn out + ';'\n\t\t\t}\n\t\t\t// align-items, align-center, align-self: a, l, i, -\n\t\t\tcase 938: {\n\t\t\t\tif (out.charCodeAt(5) === DASH) {\n\t\t\t\t\tswitch (out.charCodeAt(6)) {\n\t\t\t\t\t\t// align-items, i\n\t\t\t\t\t\tcase 105: {\n\t\t\t\t\t\t\tcache = out.replace('-items', '')\n\t\t\t\t\t\t\treturn webkit + out + webkit + 'box-' + cache + ms + 'flex-' + cache + out\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// align-self, s\n\t\t\t\t\t\tcase 115: {\n\t\t\t\t\t\t\treturn webkit + out + ms + 'flex-item-' + out.replace(selfptn, '') + out\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// align-content\n\t\t\t\t\t\tdefault: {\n\t\t\t\t\t\t\treturn webkit + out + ms + 'flex-line-pack' + out.replace('align-content', '').replace(selfptn, '') + out\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\t}\n\t\t\t// min/max\n\t\t\tcase 973:\n\t\t\tcase 989: {\n\t\t\t\t// min-/max- height/width/block-size/inline-size\n\t\t\t\tif (out.charCodeAt(3) !== DASH || out.charCodeAt(4) === 122) {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\t// height/width: min-content / width: max-content\n\t\t\tcase 931:\n\t\t\tcase 953: {\n\t\t\t\tif (dimensionptn.test(input) === true) {\n\t\t\t\t\t// stretch\n\t\t\t\t\tif ((cache = input.substring(input.indexOf(':') + 1)).charCodeAt(0) === 115)\n\t\t\t\t\t\treturn property(input.replace('stretch', 'fill-available'), first, second, third).replace(':fill-available', ':stretch')\n\t\t\t\t\telse\n\t\t\t\t\t\treturn out.replace(cache, webkit + cache) + out.replace(cache, moz + cache.replace('fill-', '')) + out\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\t}\n\t\t\t// transform, transition: t, r, a\n\t\t\tcase 962: {\n\t\t\t\tout = webkit + out + (out.charCodeAt(5) === 102 ? ms + out : '') + out\n\n\t\t\t\t// transitions\n\t\t\t\tif (second + third === 211 && out.charCodeAt(13) === 105 && out.indexOf('transform', 10) > 0) {\n\t\t\t\t\treturn out.substring(0, out.indexOf(';', 27) + 1).replace(transformptn, '$1' + webkit + '$2') + out\n\t\t\t\t}\n\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\n\t\treturn out\n\t}\n\n\t/**\n\t * Vendor\n\t *\n\t * @param {string} content\n\t * @param {number} context\n\t * @return {boolean}\n\t */\n\tfunction vendor (content, context) {\n\t\tvar index = content.indexOf(context === 1 ? ':' : '{')\n\t\tvar key = content.substring(0, context !== 3 ? index : 10)\n\t\tvar value = content.substring(index + 1, content.length - 1)\n\n\t\treturn should(context !== 2 ? key : key.replace(pseudofmt, '$1'), value, context)\n\t}\n\n\t/**\n\t * Supports\n\t *\n\t * @param {string} match\n\t * @param {string} group\n\t * @return {string}\n\t */\n\tfunction supports (match, group) {\n\t\tvar out = property(group, group.charCodeAt(0), group.charCodeAt(1), group.charCodeAt(2))\n\n\t\treturn out !== group+';' ? out.replace(propertyptn, ' or ($1)').substring(4) : '('+group+')'\n\t}\n\n\t/**\n\t * Animation\n\t *\n\t * @param {string} input\n\t * @return {string}\n\t */\n\tfunction animation (input) {\n\t\tvar length = input.length\n\t\tvar index = input.indexOf(':', 9) + 1\n\t\tvar declare = input.substring(0, index).trim()\n\t\tvar out = input.substring(index, length-1).trim()\n\n\t\tswitch (input.charCodeAt(9)*keyed) {\n\t\t\tcase 0: {\n\t\t\t\tbreak\n\t\t\t}\n\t\t\t// animation-*, -\n\t\t\tcase DASH: {\n\t\t\t\t// animation-name, n\n\t\t\t\tif (input.charCodeAt(10) !== 110) {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\t// animation/animation-name\n\t\t\tdefault: {\n\t\t\t\t// split in case of multiple animations\n\t\t\t\tvar list = out.split((out = '', animationptn))\n\n\t\t\t\tfor (var i = 0, index = 0, length = list.length; i < length; index = 0, ++i) {\n\t\t\t\t\tvar value = list[i]\n\t\t\t\t\tvar items = value.split(propertiesptn)\n\n\t\t\t\t\twhile (value = items[index]) {\n\t\t\t\t\t\tvar peak = value.charCodeAt(0)\n\n\t\t\t\t\t\tif (keyed === 1 && (\n\t\t\t\t\t\t\t// letters\n\t\t\t\t\t\t\t(peak > AT && peak < 90) || (peak > 96 && peak < 123) || peak === UNDERSCORE ||\n\t\t\t\t\t\t\t// dash but not in sequence i.e --\n\t\t\t\t\t\t\t(peak === DASH && value.charCodeAt(1) !== DASH)\n\t\t\t\t\t\t)) {\n\t\t\t\t\t\t\t// not a number/function\n\t\t\t\t\t\t\tswitch (isNaN(parseFloat(value)) + (value.indexOf('(') !== -1)) {\n\t\t\t\t\t\t\t\tcase 1: {\n\t\t\t\t\t\t\t\t\tswitch (value) {\n\t\t\t\t\t\t\t\t\t\t// not a valid reserved keyword\n\t\t\t\t\t\t\t\t\t\tcase 'infinite': case 'alternate': case 'backwards': case 'running':\n\t\t\t\t\t\t\t\t\t\tcase 'normal': case 'forwards': case 'both': case 'none': case 'linear':\n\t\t\t\t\t\t\t\t\t\tcase 'ease': case 'ease-in': case 'ease-out': case 'ease-in-out':\n\t\t\t\t\t\t\t\t\t\tcase 'paused': case 'reverse': case 'alternate-reverse': case 'inherit':\n\t\t\t\t\t\t\t\t\t\tcase 'initial': case 'unset': case 'step-start': case 'step-end': {\n\t\t\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tdefault: {\n\t\t\t\t\t\t\t\t\t\t\tvalue += key\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\titems[index++] = value\n\t\t\t\t\t}\n\n\t\t\t\t\tout += (i === 0 ? '' : ',') + items.join(' ')\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tout = declare + out + ';'\n\n\t\tif (prefix === 1 || (prefix === 2 && vendor(out, 1)))\n\t\t\treturn webkit + out + out\n\n\t\treturn out\n\t}\n\n\t/**\n\t * Isolate\n\t *\n\t * @param {Array} current\n\t */\n\tfunction isolate (current) {\n\t\tfor (var i = 0, length = current.length, selector = Array(length), padding, element; i < length; ++i) {\n\t\t\t// split individual elements in a selector i.e h1 h2 === [h1, h2]\n\t\t\tvar elements = current[i].split(elementptn)\n\t\t\tvar out = ''\n\n\t\t\tfor (var j = 0, size = 0, tail = 0, code = 0, l = elements.length; j < l; ++j) {\n\t\t\t\t// empty element\n\t\t\t\tif ((size = (element = elements[j]).length) === 0 && l > 1) {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\n\t\t\t\ttail = out.charCodeAt(out.length-1)\n\t\t\t\tcode = element.charCodeAt(0)\n\t\t\t\tpadding = ''\n\n\t\t\t\tif (j !== 0) {\n\t\t\t\t\t// determine if we need padding\n\t\t\t\t\tswitch (tail) {\n\t\t\t\t\t\tcase STAR:\n\t\t\t\t\t\tcase TILDE:\n\t\t\t\t\t\tcase GREATERTHAN:\n\t\t\t\t\t\tcase PLUS:\n\t\t\t\t\t\tcase SPACE:\n\t\t\t\t\t\tcase OPENPARENTHESES: {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdefault: {\n\t\t\t\t\t\t\tpadding = ' '\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tswitch (code) {\n\t\t\t\t\tcase AND: {\n\t\t\t\t\t\telement = padding + nscopealt\n\t\t\t\t\t}\n\t\t\t\t\tcase TILDE:\n\t\t\t\t\tcase GREATERTHAN:\n\t\t\t\t\tcase PLUS:\n\t\t\t\t\tcase SPACE:\n\t\t\t\t\tcase CLOSEPARENTHESES:\n\t\t\t\t\tcase OPENPARENTHESES: {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t\tcase OPENBRACKET: {\n\t\t\t\t\t\telement = padding + element + nscopealt\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t\tcase COLON: {\n\t\t\t\t\t\tswitch (element.charCodeAt(1)*2 + element.charCodeAt(2)*3) {\n\t\t\t\t\t\t\t// :global\n\t\t\t\t\t\t\tcase 530: {\n\t\t\t\t\t\t\t\tif (escape > 0) {\n\t\t\t\t\t\t\t\t\telement = padding + element.substring(8, size - 1)\n\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t// :hover, :nth-child(), ...\n\t\t\t\t\t\t\tdefault: {\n\t\t\t\t\t\t\t\tif (j < 1 || elements[j-1].length < 1) {\n\t\t\t\t\t\t\t\t\telement = padding + nscopealt + element\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t\tcase COMMA: {\n\t\t\t\t\t\tpadding = ''\n\t\t\t\t\t}\n\t\t\t\t\tdefault: {\n\t\t\t\t\t\tif (size > 1 && element.indexOf(':') > 0) {\n\t\t\t\t\t\t\telement = padding + element.replace(pseudoptn, '$1' + nscopealt + '$2')\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\telement = padding + element + nscopealt\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tout += element\n\t\t\t}\n\n\t\t\tselector[i] = out.replace(formatptn, '').trim()\n\t\t}\n\n\t\treturn selector\n\t}\n\n\t/**\n\t * Proxy\n\t *\n\t * @param {number} context\n\t * @param {string} content\n\t * @param {Array} selectors\n\t * @param {Array} parents\n\t * @param {number} line\n\t * @param {number} column\n\t * @param {number} length\n\t * @param {number} id\n\t * @param {number} depth\n\t * @param {number} at\n\t * @return {(string|void|*)}\n\t */\n\tfunction proxy (context, content, selectors, parents, line, column, length, id, depth, at) {\n\t\tfor (var i = 0, out = content, next; i < plugged; ++i) {\n\t\t\tswitch (next = plugins[i].call(stylis, context, out, selectors, parents, line, column, length, id, depth, at)) {\n\t\t\t\tcase void 0:\n\t\t\t\tcase false:\n\t\t\t\tcase true:\n\t\t\t\tcase null: {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t\tdefault: {\n\t\t\t\t\tout = next\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (out !== content) {\n\t\t return out\n\t\t}\n\t}\n\n\t/**\n\t * @param {number} code\n\t * @param {number} index\n\t * @param {number} length\n\t * @param {string} body\n\t * @return {number}\n\t */\n\tfunction delimited (code, index, length, body) {\n\t\tfor (var i = index + 1; i < length; ++i) {\n\t\t\tswitch (body.charCodeAt(i)) {\n\t\t\t\t// /*\n\t\t\t\tcase FOWARDSLASH: {\n\t\t\t\t\tif (code === STAR) {\n\t\t\t\t\t\tif (body.charCodeAt(i - 1) === STAR && index + 2 !== i) {\n\t\t\t\t\t\t\treturn i + 1\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t\t// //\n\t\t\t\tcase NEWLINE: {\n\t\t\t\t\tif (code === FOWARDSLASH) {\n\t\t\t\t\t\treturn i + 1\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn i\n\t}\n\n\t/**\n\t * @param {number} type\n\t * @param {number} index\n\t * @param {number} length\n\t * @param {number} find\n\t * @param {string} body\n\t * @return {number}\n\t */\n\tfunction match (type, index, length, body) {\n\t\tfor (var i = index + 1; i < length; ++i) {\n\t\t\tswitch (body.charCodeAt(i)) {\n\t\t\t\tcase type: {\n\t\t\t\t\treturn i\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn i\n\t}\n\n\t/**\n\t * Minify\n\t *\n\t * @param {(string|*)} output\n\t * @return {string}\n\t */\n\tfunction minify (output) {\n\t\treturn output\n\t\t\t.replace(formatptn, '')\n\t\t\t.replace(beforeptn, '')\n\t\t\t.replace(afterptn, '$1')\n\t\t\t.replace(tailptn, '$1')\n\t\t\t.replace(whiteptn, ' ')\n\t}\n\n\t/**\n\t * Use\n\t *\n\t * @param {(Array|function(...?)|number|void)?} plugin\n\t */\n\tfunction use (plugin) {\n\t\tswitch (plugin) {\n\t\t\tcase void 0:\n\t\t\tcase null: {\n\t\t\t\tplugged = plugins.length = 0\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tdefault: {\n\t\t\t\tif (typeof plugin === 'function') {\n\t\t\t\t\tplugins[plugged++] = plugin\n\t\t\t\t}\telse if (typeof plugin === 'object') {\n\t\t\t\t\tfor (var i = 0, length = plugin.length; i < length; ++i) {\n\t\t\t\t\t\tuse(plugin[i])\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tunkwn = !!plugin|0\n\t\t\t\t}\n\t\t\t}\n \t\t}\n\n \t\treturn use\n\t}\n\n\t/**\n\t * Set\n\t *\n\t * @param {*} options\n\t */\n\tfunction set (options) {\n\t\tfor (var name in options) {\n\t\t\tvar value = options[name]\n\t\t\tswitch (name) {\n\t\t\t\tcase 'keyframe': keyed = value|0; break\n\t\t\t\tcase 'global': escape = value|0; break\n\t\t\t\tcase 'cascade': cascade = value|0; break\n\t\t\t\tcase 'compress': compress = value|0; break\n\t\t\t\tcase 'semicolon': semicolon = value|0; break\n\t\t\t\tcase 'preserve': preserve = value|0; break\n\t\t\t\tcase 'prefix':\n\t\t\t\t\tshould = null\n\n\t\t\t\t\tif (!value) {\n\t\t\t\t\t\tprefix = 0\n\t\t\t\t\t} else if (typeof value !== 'function') {\n\t\t\t\t\t\tprefix = 1\n\t\t\t\t\t} else {\n\t\t\t\t\t\tprefix = 2\n\t\t\t\t\t\tshould = value\n\t\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn set\n\t}\n\n\t/**\n\t * Stylis\n\t *\n\t * @param {string} selector\n\t * @param {string} input\n\t * @return {*}\n\t */\n\tfunction stylis (selector, input) {\n\t\tif (this !== void 0 && this.constructor === stylis) {\n\t\t\treturn factory(selector)\n\t\t}\n\n\t\t// setup\n\t\tvar ns = selector\n\t\tvar code = ns.charCodeAt(0)\n\n\t\t// trim leading whitespace\n\t\tif (code < 33) {\n\t\t\tcode = (ns = ns.trim()).charCodeAt(0)\n\t\t}\n\n\t\t// keyframe/animation namespace\n\t\tif (keyed > 0) {\n\t\t\tkey = ns.replace(invalidptn, code === OPENBRACKET ? '' : '-')\n\t\t}\n\n\t\t// reset, used to assert if a plugin is moneky-patching the return value\n\t\tcode = 1\n\n\t\t// cascade/isolate\n\t\tif (cascade === 1) {\n\t\t\tnscope = ns\n\t\t} else {\n\t\t\tnscopealt = ns\n\t\t}\n\n\t\tvar selectors = [nscope]\n\t\tvar result\n\n\t\t// execute plugins, pre-process context\n\t\tif (plugged > 0) {\n\t\t\tresult = proxy(PREPS, input, selectors, selectors, line, column, 0, 0, 0, 0)\n\n\t\t\tif (result !== void 0 && typeof result === 'string') {\n\t\t\t\tinput = result\n\t\t\t}\n\t\t}\n\n\t\t// build\n\t\tvar output = compile(array, selectors, input, 0, 0)\n\n\t\t// execute plugins, post-process context\n\t\tif (plugged > 0) {\n\t\t\tresult = proxy(POSTS, output, selectors, selectors, line, column, output.length, 0, 0, 0)\n\n\t\t\t// bypass minification\n\t\t\tif (result !== void 0 && typeof(output = result) !== 'string') {\n\t\t\t\tcode = 0\n\t\t\t}\n\t\t}\n\n\t\t// reset\n\t\tkey = ''\n\t\tnscope = ''\n\t\tnscopealt = ''\n\t\tpattern = 0\n\t\tline = 1\n\t\tcolumn = 1\n\n\t\treturn compress*code === 0 ? output : minify(output)\n\t}\n\n\tstylis['use'] = use\n\tstylis['set'] = set\n\n\tif (options !== void 0) {\n\t\tset(options)\n\t}\n\n\treturn stylis\n}));\n","import module from './index.js';\n\nexport default module;"],"names":["Object","defineProperty","exports","Symbol","toStringTag","value","M","window","F","ShadowRoot","ShadyCSS","nativeShadow","Document","prototype","CSSStyleSheet","Q","Z","WeakMap","ct","constructor","t","e","s","this","_$cssResult$","Error","cssText","styleSheet","o","length","get","replaceSync","set","toString","X","i","cssRules","_t","L","H","tt","trustedTypes","mt","emptyScript","et","reactiveElementPolyfillSupport","Y","toAttribute","Boolean","Array","JSON","stringify","fromAttribute","Number","parse","dt","W","attribute","type","String","converter","reflect","hasChanged","q","y","HTMLElement","super","_$Ei","Map","isUpdatePending","hasUpdated","_$El","u","addInitializer","finalize","h","push","observedAttributes","elementProperties","forEach","n","_$Ep","_$Ev","createProperty","state","noAccessor","hasOwnProperty","getPropertyDescriptor","r","requestUpdate","configurable","enumerable","getPropertyOptions","getPrototypeOf","properties","getOwnPropertyNames","getOwnPropertySymbols","elementStyles","finalizeStyles","styles","isArray","Set","flat","reverse","unshift","toLowerCase","_$E_","Promise","enableUpdating","_$AL","_$Eg","addController","_$ES","renderRoot","isConnected","hostConnected","call","removeController","splice","indexOf","createRenderRoot","shadowRoot","attachShadow","shadowRootOptions","adoptedStyleSheets","map","document","createElement","litNonce","setAttribute","textContent","appendChild","ft","connectedCallback","disconnectedCallback","hostDisconnected","attributeChangedCallback","_$AK","_$EO","removeAttribute","c","has","_$EC","_$Ej","reject","scheduleUpdate","performUpdate","shouldUpdate","willUpdate","hostUpdate","update","_$Ek","_$AE","hostUpdated","firstUpdated","updated","updateComplete","getUpdateComplete","D","mode","ReactiveElement","reactiveElementVersions","x","S","st","createPolicy","createHTML","J","v","Math","random","slice","ut","At","A","N","createComment","O","pt","z","C","it","nt","f","RegExp","rt","ot","$t","Et","_$litType$","strings","values","E","for","lt","m","createTreeWalker","P","parts","l","_","a","d","g","lastIndex","exec","test","R","startsWith","bt","el","currentNode","content","firstChild","remove","append","childNodes","nextNode","nodeType","hasAttributes","getAttributeNames","endsWith","getAttribute","split","I","index","name","ctor","wt","Nt","Ot","k","tagName","data","innerHTML","b","_$Co","_$Cl","_$litDirective$","_$AO","_$AT","_$AS","Ct","_$AV","_$AN","_$AD","_$AM","parentNode","_$AU","creationScope","importNode","T","nextSibling","Pt","_$AI","_$AH","_$AA","_$AB","options","_$Cp","startNode","endNode","_$AR","$","iterator","yt","insertBefore","createTextNode","_$AC","_$AP","setConnected","element","fill","j","arguments","Ut","capture","once","passive","removeEventListener","addEventListener","handleEvent","host","ht","litHtmlPolyfillSupport","litHtmlVersions","B","w","renderOptions","_$Do","renderBefore","render","_$litPart$","Tt","finalized","_$litElement$","globalThis","litElementHydrateSupport","LitElement","at","litElementPolyfillSupport","litElementVersions","It","kind","descriptor","finisher","key","placement","originalKey","initializer","Mt","V","HTMLSlotElement","assignedElements","xt","kt","_$Ct","_$Ci","U","G","delete","size","gt","add","Dt","Lt","Wt","_$AQ","zt","reconnected","disconnected","setValue","Ht","Bt","K","Vt","Gt","Kt","Yt","getOwnPropertyDescriptor","p","GiscusWidget","GISCUS_SESSION_KEY","GISCUS_DEFAULT_HOST","ERROR_SUGGESTION","__session","_iframeRef","messageEventHandler","handleMessageEvent","bind","hasLoaded","strict","reactionsEnabled","emitMetadata","inputPosition","theme","lang","loading","setupSession","iframeRef","_host","URL","_formatError","location","href","localStorage","getItem","searchParams","setItem","hash","history","replaceState","title","removeItem","console","warn","message","signOut","origin","giscus","resizeHeight","style","height","log","error","includes","sendMessage","contentWindow","postMessage","updateConfig","setConfig","repo","repoId","category","categoryId","term","getTerm","number","getNumber","classList","getMetaContent","querySelector","_getCleanedUrl","mapping","pathname","substring","replace","getIframeSrc","id","session","description","backLink","URLSearchParams","reduce","customElements","define","elements","Rt","qt","module","useState","useEffect","resolve","then","jsx","repoid","categoryid","reactionsenabled","emitmetadata","inputposition","Wrapper","styled","div","withConfig","displayName","componentId","ArticleTitle","h1","props","colors","text","Information","Author","span","Date","secondaryText","Property","strong","_ref","date","tags","minToRead","React","author","TagList","tagList","Divider","SeriesWrapper","seriesBackground","SeriesHeader","h2","tertiaryText","PostWrapper","ul","Post","li","currentPost","ViewMore","header","series","fold","setFold","filteredPosts","useMemo","currentPostIdx","_findIndex","showViewButton","Link","to","_replace","post","fields","slug","frontmatter","AiOutlineArrowLeft","onClick","useOffsetTop","ref","useRef","offsetTop","current","getBoundingClientRect","top","documentElement","scrollTop","useScroll","scroll","setScroll","onScroll","scrollY","scrollX","rect","scrollLeft","pageXOffset","pageYOffset","left","StyledWrapper","visible","css","revealAt","children","reveal","TocWrapper","scrollTrack","scrollHandle","stick","ParagraphTitle","subtitle","mutedText","active","accentText","secondAccentText","items","articleOffset","setRevealAt","headers","setHeaders","setActive","_toConsumableArray","querySelectorAll","getElementOffset","RevealOnScroll","item","handleClickTitle","animateScroll","scrollTo","innerText","blockQuoteBorder","blockQuoteBackground","inlineCodeBackgroundDarker","border","tableBackground","inlineCodeBackground","flipAccentText","flipAccentOppositeText","hoveredLinkText","Theme","createGlobalStyle","CommonStyle","PrismTheme","useSelector","LightMode","DarkMode","html","toc","setToc","from","Toc","StyledMarkdown","dangerouslySetInnerHTML","__html","itemProp","_defineProperties","target","writable","_defineProperty","obj","_extends","assign","source","apply","_objectSpread","ownKeys","keys","concat","filter","sym","_getPrototypeOf","setPrototypeOf","__proto__","_setPrototypeOf","_objectWithoutProperties","excluded","sourceKeys","_objectWithoutPropertiesLoose","sourceSymbolKeys","propertyIsEnumerable","_possibleConstructorReturn","self","ReferenceError","_assertThisInitialized","STYLE_DATA_NAME","KEYFRAME_PREFIX","global","cascade","keyframe","prefix","compress","Keyframe","ROOT_ROTATE","FILL_UNFILL_ROTATE","LAYER_1_FADE_IN_OUT","LAYER_2_FADE_IN_OUT","LAYER_3_FADE_IN_OUT","LAYER_4_FADE_IN_OUT","LEFT_SPIN","RIGHT_SPIN","keyframes","MDSpinner","_React$PureComponent","instance","Constructor","TypeError","_classCallCheck","protoProps","staticProps","subClass","superClass","create","_inherits","rules","mountedInstanceCount","head","max","removeChild","_this$props","rest","singleColor","borderSize","duration","color1","color2","color3","color4","_getStyles","borderWidth","round","getColors","rootDuration","rootStyle","display","position","width","verticalAlign","fontSize","animation","WebkitAnimation","layerStyles","color","boxSizing","borderColor","whiteSpace","opacity","animationName","WebkitAnimationName","animationDuration","WebkitAnimationDuration","animationTimingFunction","WebkitAnimationTimingFunction","animationIterationCount","WebkitAnimationIterationCount","layerClipAfterStyle","borderRadius","layerAfterStyle","borderTopStyle","clipAfterStyle","bottom","borderStyle","clip1AfterStyle","transform","WebkitTransform","clip1AfterStyles","clip2AfterStyle","clipStyle","overflow","clip2AfterStyles","getStyles","layers","ArticleButtonContainer","ArrowFlexWrapper","ArticleButtonTextWrapper","Arrow","ArticleButtonWrapper","right","nextPostButtonBackground","hoveredNextPostButtonBackground","ArticleButtonLabel","ArticleButtonTitle","CommentWrapper","SpinnerWrapper","HiddenWrapper","isHidden","ArticleButton","BiRightArrowAlt","BiLeftArrowAlt","Spinner","useTheme","spinner","Comment","_ref2","setSpinner","setTimeout","Giscus","_ref3","_previous$frontmatter","_next$frontmatter","previous","next","_previous$fields","navigate","_next$fields","Article","article","Header","Series","Body","Footer","BioWrapper","profileImageRoot","siteUrl","Profile","profile","Description","LinksWrapper","icon","link","rel","Bio","github","kaggle","instagram","facebook","twitter","blogger","medium","linkedIn","email","resume","links","FaGithub","FaKaggle","FaInstagram","FaFacebook","FaTwitter","FaXTwitter","FaMedium","FaBlogger","FaLinkedin","FaRegEnvelope","FaRegFileLines","FaLink","TagListWrapper","TagLink","selected","selectedTagBackground","tagBackground","selectedTagText","tagText","hoveredSelectedTagBackground","hoveredTagBackground","spaceToDash","count","tag","fieldValue","encodeURIComponent","totalCount","FUNC_ERROR_TEXT","NAN","symbolTag","reTrim","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","parseInt","freeGlobal","freeSelf","root","Function","objectToString","nativeMax","nativeMin","min","now","debounce","func","wait","lastArgs","lastThis","maxWait","result","timerId","lastCallTime","lastInvokeTime","leading","maxing","trailing","invokeFunc","time","args","thisArg","undefined","shouldInvoke","timeSinceLastCall","timerExpired","trailingEdge","remainingWait","debounced","isInvoking","leadingEdge","toNumber","isObject","cancel","clearTimeout","flush","isObjectLike","isSymbol","other","valueOf","isBinary","array","predicate","fromIndex","fromRight","baseFindIndex","baseIteratee","toInteger","string","INFINITY","toFinite","remainder","_createClass","defineProperties","_react2","_interopRequireDefault","_scrollLink2","__esModule","default","ButtonElement","_React$Component","Component","_scrollElement2","_propTypes2","ElementWrapper","_this2","newProps","parentBindings","domNode","propTypes","LinkElement","_temp","_this","_len","_key","_Link2","_Button2","_Element2","_scroller2","_scrollEvents2","_scrollSpy2","_animateScroll2","_Helpers2","scrollSpy","defaultScroller","PropTypes","scrollHash","protoTypes","isRequired","containerId","container","object","activeClass","spy","bool","smooth","oneOfType","offset","delay","isDynamic","absolute","onSetActive","onSetInactive","ignoreCancelEvents","hashSpy","spyThrottle","Helpers","Scroll","customScroller","scroller","_initialiseProps","getElementById","scrollSpyContainer","getScrollSpyContainer","isMounted","mount","mapContainer","addStateHandler","stateHandler","addSpyHandler","spyHandler","setState","unmount","className","trim","prop","handleClick","event","stopPropagation","preventDefault","getActiveLink","isInitialized","elemTopBound","elemBottomBound","containerTop","cords","offsetY","isInside","floor","isOutside","activeLink","setActiveLink","getHash","changeHash","updateStates","defaultProps","Element","_React$Component2","_this3","childBindings","registerElems","prevProps","unregister","register","_smooth2","_cancelEvents2","getAnimationType","defaultEasing","requestAnimationFrameHelper","requestAnimationFrame","webkitRequestAnimationFrame","currentWindowProperties","callback","getTime","currentPositionX","containerElement","body","supportPageOffset","isCSS1Compat","compatMode","currentPositionY","easing","timestamp","delta","targetPosition","startPosition","start","progress","percent","currentPosition","ceil","horizontal","easedAnimate","registered","setContainer","animateTopScroll","scrollOffset","delayTimeout","subscribe","isNaN","parseFloat","proceedOptions","scrollToTop","scrollToBottom","scrollWidth","offsetWidth","clientWidth","scrollContainerWidth","scrollHeight","offsetHeight","clientHeight","scrollContainerHeight","toPosition","scrollMore","_passiveEventListeners","events","cancelEvent","addPassiveEventListener","eventName","listener","supportsPassiveOption","opts","removePassiveEventListener","Events","scrollEvent","evtName","_utils","_utils2","mountFlag","initialized","containers","handleHashChange","initStateFromHash","isInit","saveHashHistory","updateHash","_scrollHash2","activeStyle","PureComponent","elemLeftBound","elemRightBound","containerLeft","offsetX","_cords","_props$saveHashHistor","_props$saveHashHistor2","_saveHashHistory","_lodash","_lodash2","spyCallbacks","spySetState","scrollSpyContainers","throttle","eventHandler","throttleAmount","eventThrottler","scrollHandler","handler","__mapped","__activeLink","getElementsByName","getElementsByClassName","pow","linear","easeInQuad","easeOutQuad","easeInOutQuad","easeInCubic","easeOutCubic","easeInOutCubic","easeInQuart","easeOutQuart","easeInOutQuart","easeInQuint","easeOutQuint","easeInOutQuint","getElementOffsetInfoUntil","currentOffsetParent","offsetParent","historyUpdate","hashVal","hashToUpdate","curLoc","urlToPush","search","pushState","filterElementInContainer","contains","compareDocumentPosition","getComputedStyle","offsetLeft","_getElementOffsetInfo","isDocument","factory","nullptn","formatptn","colonptn","cursorptn","transformptn","animationptn","propertiesptn","elementptn","selectorptn","andptn","escapeptn","invalidptn","keyframeptn","plcholdrptn","readonlyptn","beforeptn","afterptn","tailptn","whiteptn","pseudoptn","writingptn","supportsptn","propertyptn","selfptn","pseudofmt","dimensionptn","imgsrcptn","webkit","moz","ms","SEMICOLON","CLOSEBRACES","OPENBRACES","OPENPARENTHESES","CLOSEPARENTHESES","OPENBRACKET","CLOSEBRACKET","NEWLINE","CARRIAGE","TAB","AT","SPACE","AND","DASH","UNDERSCORE","STAR","COMMA","COLON","SINGLEQUOTE","DOUBLEQUOTE","FOWARDSLASH","GREATERTHAN","PLUS","TILDE","NULL","FORMFEED","VERTICALTAB","KEYFRAME","MEDIA","SUPPORTS","PLACEHOLDER","READONLY","IMPORT","CHARSET","DOCUMENT","PAGE","column","line","pattern","escape","semicolon","preserve","plugins","plugged","should","POSTS","PREPS","UNKWN","PROPS","BLCKS","ATRUL","unkwn","keyed","nscopealt","nscope","compile","parent","depth","selector","bracket","comment","parentheses","quote","first","second","code","tail","trail","peak","counter","context","atrule","pseudo","caret","format","insert","invert","eof","eol","char","chars","child","out","charCodeAt","charAt","delimited","select","proxy","join","supports","vendor","property","isolate","selectors","scope","level","input","third","cache","match","group","declare","list","padding","parents","stylis","minify","output","use","plugin","ns"],"sourceRoot":""} \ No newline at end of file diff --git "a/Respiratory Sound Database \354\234\240\355\232\250\354\204\261 \353\266\204\354\204\235/index.html" "b/Respiratory Sound Database \354\234\240\355\232\250\354\204\261 \353\266\204\354\204\235/index.html" index 47c255d..26aa411 100644 --- "a/Respiratory Sound Database \354\234\240\355\232\250\354\204\261 \353\266\204\354\204\235/index.html" +++ "b/Respiratory Sound Database \354\234\240\355\232\250\354\204\261 \353\266\204\354\204\235/index.html" @@ -46,34 +46,34 @@ data-styled.g10[id="Footer__FooterWrapper-sc-1qfqdid-0"]{content:"gUOgk,"}/*!sc*/ .juihub{margin-top:0;margin-bottom:48px;border:none;border-bottom:1px solid #e9ecef;}/*!sc*/ .dsTUYW{margin-top:32px;margin-bottom:48px;border:none;border-bottom:1px solid #e9ecef;}/*!sc*/ -data-styled.g12[id="Divider-sc-1jz0jl-0"]{content:"juihub,dsTUYW,"}/*!sc*/ +data-styled.g18[id="Divider-sc-1jz0jl-0"]{content:"juihub,dsTUYW,"}/*!sc*/ .gJiIIX{margin-bottom:10px;word-break:break-all;}/*!sc*/ -data-styled.g13[id="TagList__TagListWrapper-sc-s1uz5f-0"]{content:"gJiIIX,"}/*!sc*/ +data-styled.g19[id="TagList__TagListWrapper-sc-s1uz5f-0"]{content:"gJiIIX,"}/*!sc*/ .OSwVR{display:inline-block;padding:9.6px 11.2px;margin-right:8px;margin-bottom:8px;border-radius:50px;background-color:#f1f3f5;color:#404040;-webkit-text-decoration:none;text-decoration:none;font-size:14.4px;-webkit-transition:all 0.2s;transition:all 0.2s;}/*!sc*/ .OSwVR:hover{background-color:#dee2e6;}/*!sc*/ -data-styled.g14[id="TagList__TagLink-sc-s1uz5f-1"]{content:"OSwVR,"}/*!sc*/ +data-styled.g20[id="TagList__TagLink-sc-s1uz5f-1"]{content:"OSwVR,"}/*!sc*/ .cVaGFY{margin-top:32px;}/*!sc*/ @media (max-width:768px){.cVaGFY{padding:0 15px;}}/*!sc*/ -data-styled.g20[id="Header__Wrapper-sc-1d3p6ct-0"]{content:"cVaGFY,"}/*!sc*/ +data-styled.g21[id="Header__Wrapper-sc-1d3p6ct-0"]{content:"cVaGFY,"}/*!sc*/ .dkDUwb{margin-bottom:25.6px;line-height:1.2;font-size:40px;font-weight:700;color:#191919;}/*!sc*/ -data-styled.g21[id="Header__ArticleTitle-sc-1d3p6ct-1"]{content:"dkDUwb,"}/*!sc*/ +data-styled.g22[id="Header__ArticleTitle-sc-1d3p6ct-1"]{content:"dkDUwb,"}/*!sc*/ .bUGEvg{margin-bottom:32px;font-size:16px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;gap:8px;}/*!sc*/ -data-styled.g22[id="Header__Information-sc-1d3p6ct-2"]{content:"bUGEvg,"}/*!sc*/ +data-styled.g23[id="Header__Information-sc-1d3p6ct-2"]{content:"bUGEvg,"}/*!sc*/ .ceAkMY{padding-bottom:15px;font-weight:700;color:#191919;}/*!sc*/ -data-styled.g23[id="Header__Author-sc-1d3p6ct-3"]{content:"ceAkMY,"}/*!sc*/ +data-styled.g24[id="Header__Author-sc-1d3p6ct-3"]{content:"ceAkMY,"}/*!sc*/ .kmPIwO{font-weight:300;color:#404040;}/*!sc*/ -data-styled.g24[id="Header__Date-sc-1d3p6ct-4"]{content:"kmPIwO,"}/*!sc*/ +data-styled.g25[id="Header__Date-sc-1d3p6ct-4"]{content:"kmPIwO,"}/*!sc*/ .kfiAnU{font-weight:300;color:#404040;}/*!sc*/ -data-styled.g25[id="Header__Property-sc-1d3p6ct-5"]{content:"kfiAnU,"}/*!sc*/ +data-styled.g26[id="Header__Property-sc-1d3p6ct-5"]{content:"kfiAnU,"}/*!sc*/ .jUHwIM{position:relative;opacity:0;-webkit-transition:0.35s all ease;transition:0.35s all ease;opacity:1;}/*!sc*/ -data-styled.g31[id="RevealOnScroll__StyledWrapper-sc-j177rt-0"]{content:"jUHwIM,"}/*!sc*/ +data-styled.g32[id="RevealOnScroll__StyledWrapper-sc-j177rt-0"]{content:"jUHwIM,"}/*!sc*/ .cKsOEP{position:absolute;opacity:1;left:100%;}/*!sc*/ .cKsOEP > div{padding-right:20px;padding-left:16px;margin-left:48px;position:relative;width:240px;max-height:calc(100% - 185px);overflow-y:auto;position:fixed;top:100px;}/*!sc*/ .cKsOEP > div::-webkit-scrollbar{width:3px;}/*!sc*/ .cKsOEP > div::-webkit-scrollbar-track{background:#f1f3f5;}/*!sc*/ .cKsOEP > div::-webkit-scrollbar-thumb{background:#ced4da;}/*!sc*/ @media (max-width:1300px){.cKsOEP{display:None;}}/*!sc*/ -data-styled.g32[id="Toc__TocWrapper-sc-1axrmab-0"]{content:"cKsOEP,"}/*!sc*/ +data-styled.g33[id="Toc__TocWrapper-sc-1axrmab-0"]{content:"cKsOEP,"}/*!sc*/ .erkpHX{font-size:16.7px;color:#191919;line-height:1.73;overflow:hidden;}/*!sc*/ .erkpHX h1:first-child,.erkpHX h2:first-child,.erkpHX h3:first-child,.erkpHX h4:first-child{margin-top:0;}/*!sc*/ .erkpHX > p,.erkpHX > ul,.erkpHX > ol,.erkpHX table,.erkpHX blockquote,.erkpHX pre,.erkpHX img,.erkpHX .katex-display{margin-top:0;margin-bottom:24px;word-break:break-all;}/*!sc*/ @@ -119,7 +119,7 @@ .erkpHX a[data-wiki-link="true"]:hover{-webkit-text-decoration:underline;text-decoration:underline;}/*!sc*/ .erkpHX a{padding:1.6px 0;color:#191919;}/*!sc*/ .erkpHX a:hover{background-color:none;color:#868e96;}/*!sc*/ -data-styled.g34[id="StyledMarkdown-sc-lqtcur-0"]{content:"erkpHX,"}/*!sc*/ +data-styled.g35[id="StyledMarkdown-sc-lqtcur-0"]{content:"erkpHX,"}/*!sc*/ code[class*="language-"],pre[class*="language-"]{margin-bottom:24px;font-size:14.5px;color:#ccc;background:none;font-family:"Bai Jamjuree",monospace;text-align:justify;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none;}/*!sc*/ pre[class*="language-"]{padding:1em;overflow:auto;}/*!sc*/ :not(pre) > code[class*="language-"]{padding:0.1em;border-radius:0.3em;white-space:normal;}/*!sc*/ @@ -185,19 +185,19 @@ .prism-previewer-angle.prism-previewer-angle circle,.prism-previewer-time.prism-previewer-time circle{stroke:hsl(230,8%,24%);stroke-opacity:1;}/*!sc*/ .prism-previewer-easing.prism-previewer-easing circle,.prism-previewer-easing.prism-previewer-easing path,.prism-previewer-easing.prism-previewer-easing line{stroke:hsl(230,8%,24%);}/*!sc*/ .prism-previewer-easing.prism-previewer-easing circle{fill:transparent;}/*!sc*/ -data-styled.g36[id="sc-global-bIpVyQ1"]{content:"sc-global-bIpVyQ1,"}/*!sc*/ +data-styled.g37[id="sc-global-bIpVyQ1"]{content:"sc-global-bIpVyQ1,"}/*!sc*/ .bUeHPW{position:relative;margin-bottom:112px;}/*!sc*/ @media (max-width:768px){.bUeHPW{padding:0 15px;}}/*!sc*/ -data-styled.g37[id="Body__Wrapper-sc-7hat30-0"]{content:"bUeHPW,"}/*!sc*/ +data-styled.g38[id="Body__Wrapper-sc-7hat30-0"]{content:"bUeHPW,"}/*!sc*/ .becwQW{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;margin-bottom:48px;}/*!sc*/ @media (max-width:768px){.becwQW{margin-bottom:80px;padding:0 12.8px;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}.becwQW > div:first-child{margin-bottom:12.8px;}}/*!sc*/ -data-styled.g38[id="Footer__ArticleButtonContainer-sc-zqxmks-0"]{content:"becwQW,"}/*!sc*/ +data-styled.g39[id="Footer__ArticleButtonContainer-sc-zqxmks-0"]{content:"becwQW,"}/*!sc*/ .gwQEOy{width:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;white-space:nowrap;}/*!sc*/ -data-styled.g39[id="Footer__ArrowFlexWrapper-sc-zqxmks-1"]{content:"gwQEOy,"}/*!sc*/ +data-styled.g40[id="Footer__ArrowFlexWrapper-sc-zqxmks-1"]{content:"gwQEOy,"}/*!sc*/ .jxGLes{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:flex-end;-webkit-box-align:flex-end;-ms-flex-align:flex-end;align-items:flex-end;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;overflow:hidden;}/*!sc*/ -data-styled.g40[id="Footer__ArticleButtonTextWrapper-sc-zqxmks-2"]{content:"jxGLes,"}/*!sc*/ +data-styled.g41[id="Footer__ArticleButtonTextWrapper-sc-zqxmks-2"]{content:"jxGLes,"}/*!sc*/ .bhYcVf{position:relative;left:0;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;font-size:24px;-webkit-flex-basis:24px;-ms-flex-preferred-size:24px;flex-basis:24px;-webkit-transition:left 0.3s;transition:left 0.3s;}/*!sc*/ -data-styled.g41[id="Footer__Arrow-sc-zqxmks-3"]{content:"bhYcVf,"}/*!sc*/ +data-styled.g42[id="Footer__Arrow-sc-zqxmks-3"]{content:"bhYcVf,"}/*!sc*/ .OEEnV{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;padding:20.8px 16px;max-width:250px;-webkit-flex-basis:250px;-ms-flex-preferred-size:250px;flex-basis:250px;font-size:17.6px;border-radius:5px;background-color:rgba(0,0,0,0.06);color:#191919;cursor:pointer;-webkit-transition:background-color 0.3s;transition:background-color 0.3s;}/*!sc*/ .OEEnV:hover{background-color:rgba(0,0,0,0.08);}/*!sc*/ .OEEnV .Footer__ArrowFlexWrapper-sc-zqxmks-1{-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}/*!sc*/ @@ -205,18 +205,18 @@ .OEEnV .Footer__Arrow-sc-zqxmks-3{margin-right:16px;}/*!sc*/ .OEEnV:hover .Footer__Arrow-sc-zqxmks-3{left:-2px;}/*!sc*/ @media (max-width:768px){.OEEnV{max-width:inherit;-webkit-flex-basis:inherit;-ms-flex-preferred-size:inherit;flex-basis:inherit;}}/*!sc*/ -data-styled.g42[id="Footer__ArticleButtonWrapper-sc-zqxmks-4"]{content:"OEEnV,"}/*!sc*/ +data-styled.g43[id="Footer__ArticleButtonWrapper-sc-zqxmks-4"]{content:"OEEnV,"}/*!sc*/ .hngxZd{margin-bottom:9.6px;font-size:12.8px;}/*!sc*/ -data-styled.g43[id="Footer__ArticleButtonLabel-sc-zqxmks-5"]{content:"hngxZd,"}/*!sc*/ +data-styled.g44[id="Footer__ArticleButtonLabel-sc-zqxmks-5"]{content:"hngxZd,"}/*!sc*/ .brczfR{padding:2px 0;width:100%;text-overflow:ellipsis;overflow:hidden;}/*!sc*/ -data-styled.g44[id="Footer__ArticleButtonTitle-sc-zqxmks-6"]{content:"brczfR,"}/*!sc*/ +data-styled.g45[id="Footer__ArticleButtonTitle-sc-zqxmks-6"]{content:"brczfR,"}/*!sc*/ @media (max-width:768px){.cRSPGb{padding:0 15px;}}/*!sc*/ -data-styled.g45[id="Footer__CommentWrapper-sc-zqxmks-7"]{content:"cRSPGb,"}/*!sc*/ +data-styled.g46[id="Footer__CommentWrapper-sc-zqxmks-7"]{content:"cRSPGb,"}/*!sc*/ .XZnrl{height:200px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}/*!sc*/ -data-styled.g46[id="Footer__SpinnerWrapper-sc-zqxmks-8"]{content:"XZnrl,"}/*!sc*/ +data-styled.g47[id="Footer__SpinnerWrapper-sc-zqxmks-8"]{content:"XZnrl,"}/*!sc*/ .yzdKT{height:0px;overflow:hidden;}/*!sc*/ .ivqWaF{height:auto;overflow:auto;}/*!sc*/ -data-styled.g47[id="Footer__HiddenWrapper-sc-zqxmks-9"]{content:"yzdKT,ivqWaF,"}/*!sc*/ +data-styled.g48[id="Footer__HiddenWrapper-sc-zqxmks-9"]{content:"yzdKT,ivqWaF,"}/*!sc*/ Respiratory Sound Database 유효성 분석

      Respiratory Sound Database 유효성 분석

      @MJ · 4 min read
      Created Date · 2024년 10월 13일 12:10
      Last Update · 2024년 10월 14일 19:10

      기존 HCSLAB 폐음 연구팀에서 사용하던 데이터의 질이 좋지 않아 다른 폐음 데이터셋을 찾던 와중 ICBHI Respiratory Sound Database (The Respiratory Sound database - ICBHI 2017 Challenge)을 발견했다. 폐음 연구 분야에서는 유명한 데이터셋이고 Kaggle에서도 여러 사람들이 활발히 분석을 해놓은 게 많아서 우리 연구에도 쓸 수 있을지 그 결과를 보고자 한다.

      알고자 하는 건 2개다.

        @@ -368,6 +368,6 @@

        Overview

        - \ No newline at end of file + \ No newline at end of file diff --git a/_gatsby/slices/_gatsby-scripts-1.html b/_gatsby/slices/_gatsby-scripts-1.html index 282ba6b..9d94e86 100644 --- a/_gatsby/slices/_gatsby-scripts-1.html +++ b/_gatsby/slices/_gatsby-scripts-1.html @@ -2,6 +2,6 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/about/index.html b/about/index.html index 5d0ba05..a680d08 100644 --- a/about/index.html +++ b/about/index.html @@ -44,31 +44,31 @@ .gUOgk{margin-top:32px;padding:40px 0;border-top:1px solid #e9ecef;text-align:center;font-size:11pt;font-weight:lighter;color:#404040;}/*!sc*/ .gUOgk > a{color:#191919;}/*!sc*/ data-styled.g10[id="Footer__FooterWrapper-sc-1qfqdid-0"]{content:"gUOgk,"}/*!sc*/ -.dUqLxz{margin-top:48px;margin-bottom:48px;border:none;border-bottom:1px solid #e9ecef;}/*!sc*/ -data-styled.g12[id="Divider-sc-1jz0jl-0"]{content:"dUqLxz,"}/*!sc*/ .cIxGdo{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}/*!sc*/ @media (max-width:768px){.cIxGdo{padding:0 15px;}}/*!sc*/ -data-styled.g15[id="Bio__BioWrapper-sc-5v8ml6-0"]{content:"cIxGdo,"}/*!sc*/ +data-styled.g12[id="Bio__BioWrapper-sc-5v8ml6-0"]{content:"cIxGdo,"}/*!sc*/ .WycDW{-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;margin-right:16px;width:128px;height:128px;border-radius:999px;background-image:url(https://minjun.blog//profile.png);background-size:cover;background-position:center;}/*!sc*/ -data-styled.g16[id="Bio__Profile-sc-5v8ml6-1"]{content:"WycDW,"}/*!sc*/ +data-styled.g13[id="Bio__Profile-sc-5v8ml6-1"]{content:"WycDW,"}/*!sc*/ .zdqtp{margin-bottom:8px;font-size:24px;font-weight:700;color:#191919;}/*!sc*/ -data-styled.g17[id="Bio__Author-sc-5v8ml6-2"]{content:"zdqtp,"}/*!sc*/ +data-styled.g14[id="Bio__Author-sc-5v8ml6-2"]{content:"zdqtp,"}/*!sc*/ .hskwiv{margin-bottom:11.2px;line-height:1.5;font-size:16px;color:#404040;}/*!sc*/ -data-styled.g18[id="Bio__Description-sc-5v8ml6-3"]{content:"hskwiv,"}/*!sc*/ +data-styled.g15[id="Bio__Description-sc-5v8ml6-3"]{content:"hskwiv,"}/*!sc*/ .cZRWgC a{margin-right:9.6px;}/*!sc*/ .cZRWgC svg{width:25.6px;height:25.6px;cursor:pointer;}/*!sc*/ .cZRWgC svg path{fill:#868e96;-webkit-transition:fill 0.3s;transition:fill 0.3s;}/*!sc*/ .cZRWgC a:hover svg path{fill:#191919;}/*!sc*/ -data-styled.g19[id="Bio__LinksWrapper-sc-5v8ml6-4"]{content:"cZRWgC,"}/*!sc*/ +data-styled.g16[id="Bio__LinksWrapper-sc-5v8ml6-4"]{content:"cZRWgC,"}/*!sc*/ +.cUedeU{height:48px;}/*!sc*/ +data-styled.g17[id="VerticalSpace-sc-fbwjqc-0"]{content:"cUedeU,"}/*!sc*/ .jUHwIM{position:relative;opacity:0;-webkit-transition:0.35s all ease;transition:0.35s all ease;opacity:1;}/*!sc*/ -data-styled.g31[id="RevealOnScroll__StyledWrapper-sc-j177rt-0"]{content:"jUHwIM,"}/*!sc*/ +data-styled.g32[id="RevealOnScroll__StyledWrapper-sc-j177rt-0"]{content:"jUHwIM,"}/*!sc*/ .cKsOEP{position:absolute;opacity:1;left:100%;}/*!sc*/ .cKsOEP > div{padding-right:20px;padding-left:16px;margin-left:48px;position:relative;width:240px;max-height:calc(100% - 185px);overflow-y:auto;position:fixed;top:100px;}/*!sc*/ .cKsOEP > div::-webkit-scrollbar{width:3px;}/*!sc*/ .cKsOEP > div::-webkit-scrollbar-track{background:#f1f3f5;}/*!sc*/ .cKsOEP > div::-webkit-scrollbar-thumb{background:#ced4da;}/*!sc*/ @media (max-width:1300px){.cKsOEP{display:None;}}/*!sc*/ -data-styled.g32[id="Toc__TocWrapper-sc-1axrmab-0"]{content:"cKsOEP,"}/*!sc*/ +data-styled.g33[id="Toc__TocWrapper-sc-1axrmab-0"]{content:"cKsOEP,"}/*!sc*/ .erkpHX{font-size:16.7px;color:#191919;line-height:1.73;overflow:hidden;}/*!sc*/ .erkpHX h1:first-child,.erkpHX h2:first-child,.erkpHX h3:first-child,.erkpHX h4:first-child{margin-top:0;}/*!sc*/ .erkpHX > p,.erkpHX > ul,.erkpHX > ol,.erkpHX table,.erkpHX blockquote,.erkpHX pre,.erkpHX img,.erkpHX .katex-display{margin-top:0;margin-bottom:24px;word-break:break-all;}/*!sc*/ @@ -114,7 +114,7 @@ .erkpHX a[data-wiki-link="true"]:hover{-webkit-text-decoration:underline;text-decoration:underline;}/*!sc*/ .erkpHX a{padding:1.6px 0;color:#191919;}/*!sc*/ .erkpHX a:hover{background-color:none;color:#868e96;}/*!sc*/ -data-styled.g34[id="StyledMarkdown-sc-lqtcur-0"]{content:"erkpHX,"}/*!sc*/ +data-styled.g35[id="StyledMarkdown-sc-lqtcur-0"]{content:"erkpHX,"}/*!sc*/ code[class*="language-"],pre[class*="language-"]{margin-bottom:24px;font-size:14.5px;color:#ccc;background:none;font-family:"Bai Jamjuree",monospace;text-align:justify;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none;}/*!sc*/ pre[class*="language-"]{padding:1em;overflow:auto;}/*!sc*/ :not(pre) > code[class*="language-"]{padding:0.1em;border-radius:0.3em;white-space:normal;}/*!sc*/ @@ -180,12 +180,10 @@ .prism-previewer-angle.prism-previewer-angle circle,.prism-previewer-time.prism-previewer-time circle{stroke:hsl(230,8%,24%);stroke-opacity:1;}/*!sc*/ .prism-previewer-easing.prism-previewer-easing circle,.prism-previewer-easing.prism-previewer-easing path,.prism-previewer-easing.prism-previewer-easing line{stroke:hsl(230,8%,24%);}/*!sc*/ .prism-previewer-easing.prism-previewer-easing circle{fill:transparent;}/*!sc*/ -data-styled.g36[id="sc-global-bIpVyQ1"]{content:"sc-global-bIpVyQ1,"}/*!sc*/ +data-styled.g37[id="sc-global-bIpVyQ1"]{content:"sc-global-bIpVyQ1,"}/*!sc*/ .bUeHPW{position:relative;margin-bottom:112px;}/*!sc*/ @media (max-width:768px){.bUeHPW{padding:0 15px;}}/*!sc*/ -data-styled.g37[id="Body__Wrapper-sc-7hat30-0"]{content:"bUeHPW,"}/*!sc*/ -.cUedeU{height:48px;}/*!sc*/ -data-styled.g49[id="VerticalSpace-sc-fbwjqc-0"]{content:"cUedeU,"}/*!sc*/ +data-styled.g38[id="Body__Wrapper-sc-7hat30-0"]{content:"bUeHPW,"}/*!sc*/ .czXDrk{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;gap:15px;border-bottom:1px solid #e9ecef;margin-top:35px;margin-bottom:48px;}/*!sc*/ .czXDrk a{-webkit-text-decoration:none;text-decoration:none;}/*!sc*/ data-styled.g50[id="Tab__TabWrapper-sc-1ebif1p-0"]{content:"czXDrk,"}/*!sc*/ @@ -198,8 +196,6 @@ data-styled.g51[id="Tab__TabButton-sc-1ebif1p-1"]{content:"dtEfKd,gSgVxb,"}/*!sc*/ .bXRJvD{display:inline-block;margin-left:7px;padding:3px 6px;border-radius:50px;background-color:#f1f3f5;color:#404040;font-weight:normal;font-size:13px;-webkit-letter-spacing:0.3px;-moz-letter-spacing:0.3px;-ms-letter-spacing:0.3px;letter-spacing:0.3px;-webkit-transition:all 0.2s;transition:all 0.2s;}/*!sc*/ data-styled.g52[id="Tab__Badge-sc-1ebif1p-2"]{content:"bXRJvD,"}/*!sc*/ -@media (max-width:768px){.lnaiaQ{padding:0 15px;}}/*!sc*/ -data-styled.g54[id="about__Wrapper-sc-17crp4s-1"]{content:"lnaiaQ,"}/*!sc*/ minjun.blog
        @MJ
        안녕하세요, 최민준입니다 :)

        😄 Introduction

        Hi! I'm Minjun Choi, I constantly reflect on whether the services I create are solving problems effectively and making a positive impact on the community I belong to. With this mindset I strive to develop better solutions and become a developer who makes a meaningful contribution to society. You can check out my blog!

        ✏️ Education

        @@ -232,10 +228,10 @@

        📖 Study

      1. Computer Structure Study in ZeroPage (2022.09. ~ 2022.12.)
      2. Spring Study in GDG CAU (2024.10. ~ )
      3. Kubernetes Study in GDG CAU (2024.10. ~ )
      4. -

    +
- \ No newline at end of file + \ No newline at end of file diff --git a/after-jigeumgeuddae/index.html b/after-jigeumgeuddae/index.html index 471c9f8..26a1947 100644 --- a/after-jigeumgeuddae/index.html +++ b/after-jigeumgeuddae/index.html @@ -46,34 +46,34 @@ data-styled.g10[id="Footer__FooterWrapper-sc-1qfqdid-0"]{content:"gUOgk,"}/*!sc*/ .juihub{margin-top:0;margin-bottom:48px;border:none;border-bottom:1px solid #e9ecef;}/*!sc*/ .dsTUYW{margin-top:32px;margin-bottom:48px;border:none;border-bottom:1px solid #e9ecef;}/*!sc*/ -data-styled.g12[id="Divider-sc-1jz0jl-0"]{content:"juihub,dsTUYW,"}/*!sc*/ +data-styled.g18[id="Divider-sc-1jz0jl-0"]{content:"juihub,dsTUYW,"}/*!sc*/ .gJiIIX{margin-bottom:10px;word-break:break-all;}/*!sc*/ -data-styled.g13[id="TagList__TagListWrapper-sc-s1uz5f-0"]{content:"gJiIIX,"}/*!sc*/ +data-styled.g19[id="TagList__TagListWrapper-sc-s1uz5f-0"]{content:"gJiIIX,"}/*!sc*/ .OSwVR{display:inline-block;padding:9.6px 11.2px;margin-right:8px;margin-bottom:8px;border-radius:50px;background-color:#f1f3f5;color:#404040;-webkit-text-decoration:none;text-decoration:none;font-size:14.4px;-webkit-transition:all 0.2s;transition:all 0.2s;}/*!sc*/ .OSwVR:hover{background-color:#dee2e6;}/*!sc*/ -data-styled.g14[id="TagList__TagLink-sc-s1uz5f-1"]{content:"OSwVR,"}/*!sc*/ +data-styled.g20[id="TagList__TagLink-sc-s1uz5f-1"]{content:"OSwVR,"}/*!sc*/ .cVaGFY{margin-top:32px;}/*!sc*/ @media (max-width:768px){.cVaGFY{padding:0 15px;}}/*!sc*/ -data-styled.g20[id="Header__Wrapper-sc-1d3p6ct-0"]{content:"cVaGFY,"}/*!sc*/ +data-styled.g21[id="Header__Wrapper-sc-1d3p6ct-0"]{content:"cVaGFY,"}/*!sc*/ .dkDUwb{margin-bottom:25.6px;line-height:1.2;font-size:40px;font-weight:700;color:#191919;}/*!sc*/ -data-styled.g21[id="Header__ArticleTitle-sc-1d3p6ct-1"]{content:"dkDUwb,"}/*!sc*/ +data-styled.g22[id="Header__ArticleTitle-sc-1d3p6ct-1"]{content:"dkDUwb,"}/*!sc*/ .bUGEvg{margin-bottom:32px;font-size:16px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;gap:8px;}/*!sc*/ -data-styled.g22[id="Header__Information-sc-1d3p6ct-2"]{content:"bUGEvg,"}/*!sc*/ +data-styled.g23[id="Header__Information-sc-1d3p6ct-2"]{content:"bUGEvg,"}/*!sc*/ .ceAkMY{padding-bottom:15px;font-weight:700;color:#191919;}/*!sc*/ -data-styled.g23[id="Header__Author-sc-1d3p6ct-3"]{content:"ceAkMY,"}/*!sc*/ +data-styled.g24[id="Header__Author-sc-1d3p6ct-3"]{content:"ceAkMY,"}/*!sc*/ .kmPIwO{font-weight:300;color:#404040;}/*!sc*/ -data-styled.g24[id="Header__Date-sc-1d3p6ct-4"]{content:"kmPIwO,"}/*!sc*/ +data-styled.g25[id="Header__Date-sc-1d3p6ct-4"]{content:"kmPIwO,"}/*!sc*/ .kfiAnU{font-weight:300;color:#404040;}/*!sc*/ -data-styled.g25[id="Header__Property-sc-1d3p6ct-5"]{content:"kfiAnU,"}/*!sc*/ +data-styled.g26[id="Header__Property-sc-1d3p6ct-5"]{content:"kfiAnU,"}/*!sc*/ .jUHwIM{position:relative;opacity:0;-webkit-transition:0.35s all ease;transition:0.35s all ease;opacity:1;}/*!sc*/ -data-styled.g31[id="RevealOnScroll__StyledWrapper-sc-j177rt-0"]{content:"jUHwIM,"}/*!sc*/ +data-styled.g32[id="RevealOnScroll__StyledWrapper-sc-j177rt-0"]{content:"jUHwIM,"}/*!sc*/ .cKsOEP{position:absolute;opacity:1;left:100%;}/*!sc*/ .cKsOEP > div{padding-right:20px;padding-left:16px;margin-left:48px;position:relative;width:240px;max-height:calc(100% - 185px);overflow-y:auto;position:fixed;top:100px;}/*!sc*/ .cKsOEP > div::-webkit-scrollbar{width:3px;}/*!sc*/ .cKsOEP > div::-webkit-scrollbar-track{background:#f1f3f5;}/*!sc*/ .cKsOEP > div::-webkit-scrollbar-thumb{background:#ced4da;}/*!sc*/ @media (max-width:1300px){.cKsOEP{display:None;}}/*!sc*/ -data-styled.g32[id="Toc__TocWrapper-sc-1axrmab-0"]{content:"cKsOEP,"}/*!sc*/ +data-styled.g33[id="Toc__TocWrapper-sc-1axrmab-0"]{content:"cKsOEP,"}/*!sc*/ .erkpHX{font-size:16.7px;color:#191919;line-height:1.73;overflow:hidden;}/*!sc*/ .erkpHX h1:first-child,.erkpHX h2:first-child,.erkpHX h3:first-child,.erkpHX h4:first-child{margin-top:0;}/*!sc*/ .erkpHX > p,.erkpHX > ul,.erkpHX > ol,.erkpHX table,.erkpHX blockquote,.erkpHX pre,.erkpHX img,.erkpHX .katex-display{margin-top:0;margin-bottom:24px;word-break:break-all;}/*!sc*/ @@ -119,7 +119,7 @@ .erkpHX a[data-wiki-link="true"]:hover{-webkit-text-decoration:underline;text-decoration:underline;}/*!sc*/ .erkpHX a{padding:1.6px 0;color:#191919;}/*!sc*/ .erkpHX a:hover{background-color:none;color:#868e96;}/*!sc*/ -data-styled.g34[id="StyledMarkdown-sc-lqtcur-0"]{content:"erkpHX,"}/*!sc*/ +data-styled.g35[id="StyledMarkdown-sc-lqtcur-0"]{content:"erkpHX,"}/*!sc*/ code[class*="language-"],pre[class*="language-"]{margin-bottom:24px;font-size:14.5px;color:#ccc;background:none;font-family:"Bai Jamjuree",monospace;text-align:justify;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none;}/*!sc*/ pre[class*="language-"]{padding:1em;overflow:auto;}/*!sc*/ :not(pre) > code[class*="language-"]{padding:0.1em;border-radius:0.3em;white-space:normal;}/*!sc*/ @@ -185,19 +185,19 @@ .prism-previewer-angle.prism-previewer-angle circle,.prism-previewer-time.prism-previewer-time circle{stroke:hsl(230,8%,24%);stroke-opacity:1;}/*!sc*/ .prism-previewer-easing.prism-previewer-easing circle,.prism-previewer-easing.prism-previewer-easing path,.prism-previewer-easing.prism-previewer-easing line{stroke:hsl(230,8%,24%);}/*!sc*/ .prism-previewer-easing.prism-previewer-easing circle{fill:transparent;}/*!sc*/ -data-styled.g36[id="sc-global-bIpVyQ1"]{content:"sc-global-bIpVyQ1,"}/*!sc*/ +data-styled.g37[id="sc-global-bIpVyQ1"]{content:"sc-global-bIpVyQ1,"}/*!sc*/ .bUeHPW{position:relative;margin-bottom:112px;}/*!sc*/ @media (max-width:768px){.bUeHPW{padding:0 15px;}}/*!sc*/ -data-styled.g37[id="Body__Wrapper-sc-7hat30-0"]{content:"bUeHPW,"}/*!sc*/ +data-styled.g38[id="Body__Wrapper-sc-7hat30-0"]{content:"bUeHPW,"}/*!sc*/ .becwQW{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;margin-bottom:48px;}/*!sc*/ @media (max-width:768px){.becwQW{margin-bottom:80px;padding:0 12.8px;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}.becwQW > div:first-child{margin-bottom:12.8px;}}/*!sc*/ -data-styled.g38[id="Footer__ArticleButtonContainer-sc-zqxmks-0"]{content:"becwQW,"}/*!sc*/ +data-styled.g39[id="Footer__ArticleButtonContainer-sc-zqxmks-0"]{content:"becwQW,"}/*!sc*/ .gwQEOy{width:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;white-space:nowrap;}/*!sc*/ -data-styled.g39[id="Footer__ArrowFlexWrapper-sc-zqxmks-1"]{content:"gwQEOy,"}/*!sc*/ +data-styled.g40[id="Footer__ArrowFlexWrapper-sc-zqxmks-1"]{content:"gwQEOy,"}/*!sc*/ .jxGLes{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:flex-end;-webkit-box-align:flex-end;-ms-flex-align:flex-end;align-items:flex-end;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;overflow:hidden;}/*!sc*/ -data-styled.g40[id="Footer__ArticleButtonTextWrapper-sc-zqxmks-2"]{content:"jxGLes,"}/*!sc*/ +data-styled.g41[id="Footer__ArticleButtonTextWrapper-sc-zqxmks-2"]{content:"jxGLes,"}/*!sc*/ .bhYcVf{position:relative;left:0;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;font-size:24px;-webkit-flex-basis:24px;-ms-flex-preferred-size:24px;flex-basis:24px;-webkit-transition:left 0.3s;transition:left 0.3s;}/*!sc*/ -data-styled.g41[id="Footer__Arrow-sc-zqxmks-3"]{content:"bhYcVf,"}/*!sc*/ +data-styled.g42[id="Footer__Arrow-sc-zqxmks-3"]{content:"bhYcVf,"}/*!sc*/ .OEEnV{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;padding:20.8px 16px;max-width:250px;-webkit-flex-basis:250px;-ms-flex-preferred-size:250px;flex-basis:250px;font-size:17.6px;border-radius:5px;background-color:rgba(0,0,0,0.06);color:#191919;cursor:pointer;-webkit-transition:background-color 0.3s;transition:background-color 0.3s;}/*!sc*/ .OEEnV:hover{background-color:rgba(0,0,0,0.08);}/*!sc*/ .OEEnV .Footer__ArrowFlexWrapper-sc-zqxmks-1{-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}/*!sc*/ @@ -212,18 +212,18 @@ .cCfvHe .Footer__Arrow-sc-zqxmks-3{margin-left:16px;}/*!sc*/ .cCfvHe:hover .Footer__Arrow-sc-zqxmks-3{left:2px;}/*!sc*/ @media (max-width:768px){.cCfvHe{max-width:inherit;-webkit-flex-basis:inherit;-ms-flex-preferred-size:inherit;flex-basis:inherit;}}/*!sc*/ -data-styled.g42[id="Footer__ArticleButtonWrapper-sc-zqxmks-4"]{content:"OEEnV,cCfvHe,"}/*!sc*/ +data-styled.g43[id="Footer__ArticleButtonWrapper-sc-zqxmks-4"]{content:"OEEnV,cCfvHe,"}/*!sc*/ .hngxZd{margin-bottom:9.6px;font-size:12.8px;}/*!sc*/ -data-styled.g43[id="Footer__ArticleButtonLabel-sc-zqxmks-5"]{content:"hngxZd,"}/*!sc*/ +data-styled.g44[id="Footer__ArticleButtonLabel-sc-zqxmks-5"]{content:"hngxZd,"}/*!sc*/ .brczfR{padding:2px 0;width:100%;text-overflow:ellipsis;overflow:hidden;}/*!sc*/ -data-styled.g44[id="Footer__ArticleButtonTitle-sc-zqxmks-6"]{content:"brczfR,"}/*!sc*/ +data-styled.g45[id="Footer__ArticleButtonTitle-sc-zqxmks-6"]{content:"brczfR,"}/*!sc*/ @media (max-width:768px){.cRSPGb{padding:0 15px;}}/*!sc*/ -data-styled.g45[id="Footer__CommentWrapper-sc-zqxmks-7"]{content:"cRSPGb,"}/*!sc*/ +data-styled.g46[id="Footer__CommentWrapper-sc-zqxmks-7"]{content:"cRSPGb,"}/*!sc*/ .XZnrl{height:200px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}/*!sc*/ -data-styled.g46[id="Footer__SpinnerWrapper-sc-zqxmks-8"]{content:"XZnrl,"}/*!sc*/ +data-styled.g47[id="Footer__SpinnerWrapper-sc-zqxmks-8"]{content:"XZnrl,"}/*!sc*/ .yzdKT{height:0px;overflow:hidden;}/*!sc*/ .ivqWaF{height:auto;overflow:auto;}/*!sc*/ -data-styled.g47[id="Footer__HiddenWrapper-sc-zqxmks-9"]{content:"yzdKT,ivqWaF,"}/*!sc*/ +data-styled.g48[id="Footer__HiddenWrapper-sc-zqxmks-9"]{content:"yzdKT,ivqWaF,"}/*!sc*/ 2022 ZeroPage 지금그때

2022 ZeroPage 지금그때

@MJ · 17 min read
Created Date · 2022년 11월 26일 20:11
Last Update · 2024년 06월 24일 22:06

기존 블로그에서 이전해온 글입니다.

What is 지금그때?

ZeroPage.svg

@@ -330,6 +330,6 @@

2022 지금그때 회고

- \ No newline at end of file + \ No newline at end of file diff --git a/all/index.html b/all/index.html index 5e942d9..131a117 100644 --- a/all/index.html +++ b/all/index.html @@ -44,15 +44,15 @@ .gUOgk{margin-top:32px;padding:40px 0;border-top:1px solid #e9ecef;text-align:center;font-size:11pt;font-weight:lighter;color:#404040;}/*!sc*/ .gUOgk > a{color:#191919;}/*!sc*/ data-styled.g10[id="Footer__FooterWrapper-sc-1qfqdid-0"]{content:"gUOgk,"}/*!sc*/ +.cUedeU{height:48px;}/*!sc*/ +data-styled.g17[id="VerticalSpace-sc-fbwjqc-0"]{content:"cUedeU,"}/*!sc*/ .lbAWYW{margin-top:48px;margin-bottom:32px;border:none;border-bottom:1px solid #e9ecef;}/*!sc*/ -data-styled.g12[id="Divider-sc-1jz0jl-0"]{content:"lbAWYW,"}/*!sc*/ +data-styled.g18[id="Divider-sc-1jz0jl-0"]{content:"lbAWYW,"}/*!sc*/ .gJiIIX{margin-bottom:10px;word-break:break-all;}/*!sc*/ -data-styled.g13[id="TagList__TagListWrapper-sc-s1uz5f-0"]{content:"gJiIIX,"}/*!sc*/ +data-styled.g19[id="TagList__TagListWrapper-sc-s1uz5f-0"]{content:"gJiIIX,"}/*!sc*/ .OSwVR{display:inline-block;padding:9.6px 11.2px;margin-right:8px;margin-bottom:8px;border-radius:50px;background-color:#f1f3f5;color:#404040;-webkit-text-decoration:none;text-decoration:none;font-size:14.4px;-webkit-transition:all 0.2s;transition:all 0.2s;}/*!sc*/ .OSwVR:hover{background-color:#dee2e6;}/*!sc*/ -data-styled.g14[id="TagList__TagLink-sc-s1uz5f-1"]{content:"OSwVR,"}/*!sc*/ -.cUedeU{height:48px;}/*!sc*/ -data-styled.g49[id="VerticalSpace-sc-fbwjqc-0"]{content:"cUedeU,"}/*!sc*/ +data-styled.g20[id="TagList__TagLink-sc-s1uz5f-1"]{content:"OSwVR,"}/*!sc*/ .hlSpe{margin-bottom:24px;font-size:33.6px;font-weight:700;line-height:1.3;color:#191919;word-break:break-all;}/*!sc*/ .hlSpe > a{-webkit-text-decoration:none;text-decoration:none;color:inherit;-webkit-transition:all 0.2s;transition:all 0.2s;}/*!sc*/ .hlSpe > a:hover{color:#404040;}/*!sc*/ @@ -76,6 +76,6 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/chunk-map.json b/chunk-map.json index ff942b6..7e2076b 100644 --- a/chunk-map.json +++ b/chunk-map.json @@ -1 +1 @@ -{"app":["/app-f0f3cd2db561ce6e43f4.js"],"component---src-pages-404-jsx":["/component---src-pages-404-jsx-e47b4cb7e798033e3bc2.js"],"component---src-pages-about-jsx":["/component---src-pages-about-jsx-cb47ea504a5fbba73eb2.js"],"component---src-pages-all-jsx":["/component---src-pages-all-jsx-8a45188f879ec4629512.js"],"component---src-pages-index-jsx":["/component---src-pages-index-jsx-f59eded68e6ee3a02450.js"],"component---src-pages-search-jsx":["/component---src-pages-search-jsx-8bccd43916eab5af868d.js"],"component---src-pages-series-jsx":["/component---src-pages-series-jsx-a98d10b088e8179d641d.js"],"component---src-pages-tags-jsx":["/component---src-pages-tags-jsx-e8f6df0a9fe106e28241.js"],"component---src-templates-post-jsx":["/component---src-templates-post-jsx-00b923d7403a54d3f226.js"],"component---src-templates-series-jsx":["/component---src-templates-series-jsx-b9dedc8d24b16b41a547.js"]} \ No newline at end of file +{"app":["/app-f0f3cd2db561ce6e43f4.js"],"component---src-pages-404-jsx":["/component---src-pages-404-jsx-e47b4cb7e798033e3bc2.js"],"component---src-pages-about-jsx":["/component---src-pages-about-jsx-8949f6c7018c76f0e2a7.js"],"component---src-pages-all-jsx":["/component---src-pages-all-jsx-8a45188f879ec4629512.js"],"component---src-pages-index-jsx":["/component---src-pages-index-jsx-f59eded68e6ee3a02450.js"],"component---src-pages-search-jsx":["/component---src-pages-search-jsx-8bccd43916eab5af868d.js"],"component---src-pages-series-jsx":["/component---src-pages-series-jsx-a98d10b088e8179d641d.js"],"component---src-pages-tags-jsx":["/component---src-pages-tags-jsx-e8f6df0a9fe106e28241.js"],"component---src-templates-post-jsx":["/component---src-templates-post-jsx-00b923d7403a54d3f226.js"],"component---src-templates-series-jsx":["/component---src-templates-series-jsx-b9dedc8d24b16b41a547.js"]} \ No newline at end of file diff --git a/commons-0dc47607e00869081fbb.js b/commons-0dc47607e00869081fbb.js new file mode 100644 index 0000000..133a4ce --- /dev/null +++ b/commons-0dc47607e00869081fbb.js @@ -0,0 +1,2 @@ +(self.webpackChunkgatsby_starter_hoodie=self.webpackChunkgatsby_starter_hoodie||[]).push([[351],{4852:function(e){"use strict";e.exports=Object.assign},9349:function(e){e.exports={title:"minjun.blog",description:"안녕하세요, 최민준입니다 :)",author:"MJ",siteUrl:"https://minjun.blog/",links:{github:"https://github.com/theminjunchoi",linkedIn:"https://www.linkedin.com/in/minjunchoi/",x:"https://x.com/_minjun_choi",instagram:"https://www.instagram.com/_minjun_choi",email:"mailto:mj043000@naver.com",link:"https://solved.ac/profile/mj043000"},useAbout:!0,giscus:{repo:"theminjunchoi/theminjunchoi.github.io",type:"pathname"}}},5038:function(e,t,n){"use strict";n.d(t,{Z:function(){return R}});var r=n(7294),o=n(2788),i=n(6113),a=n(3130);const c="#191919",l="#2D2D2D",s="#404040",u="#868e96",d="#adb5bd",f="#ced4da",p="#dee2e6",h="#e9ecef",m="#f1f3f5",g="#f8f9fa",b={name:"light",colors:{profile:"profile",bodyBackground:"#ffffff",text:c,secondaryText:s,tertiaryText:u,mutedText:d,hoveredLinkText:u,border:f,activatedBorder:u,background:m,icon:u,divider:h,headerBackground:"rgba(255, 255, 255, 0.85)",headerShadow:"rgba(0, 0, 0, 0.08)",inlineCodeBackground:h,inlineCodeBackgroundDarker:f,tagBackground:m,selectedTagBackground:s,hoveredTagBackground:p,hoveredSelectedTagBackground:l,nextPostButtonBackground:"rgba(0, 0, 0, 0.06)",hoveredNextPostButtonBackground:"rgba(0, 0, 0, 0.08)",seriesBackground:m,tagText:s,selectedTagText:g,spinner:s,scrollTrack:m,scrollHandle:f,blockQuoteBorder:f,blockQuoteBackground:m,textFieldBorder:f,textFieldActivatedBorder:d,tableBackground:m}},y={name:"dark",colors:{profile:"profile-bl",bodyBackground:c,text:g,secondaryText:f,tertiaryText:d,mutedText:u,hoveredLinkText:d,border:d,activatedBorder:p,background:l,icon:d,divider:l,headerBackground:"rgba(25, 25, 25, 0.85)",headerShadow:"rgba(150, 150, 150, 0.08)",inlineCodeBackground:l,inlineCodeBackgroundDarker:s,tagBackground:l,selectedTagBackground:h,hoveredTagBackground:s,hoveredSelectedTagBackground:m,nextPostButtonBackground:"rgba(255, 255, 255, 0.05)",hoveredNextPostButtonBackground:"rgba(255, 255, 255, 0.08)",seriesBackground:l,tagText:h,selectedTagText:c,spinner:m,scrollTrack:l,scrollHandle:s,blockQuoteBorder:s,blockQuoteBackground:l,textFieldBorder:s,textFieldActivatedBorder:u,tableBackground:"#292e33"}};var v,w,T=function(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e},x=(0,o.css)(v||(v=T(["\n/* http://meyerweb.com/eric/tools/css/reset/\n v5.0.1 | 20191019\n License: none (public domain)\n*/\n\nhtml, body, div, span, applet, object, iframe,\nh1, h2, h3, h4, h5, h6, p, blockquote, pre,\na, abbr, acronym, address, big, cite, code,\ndel, dfn, em, img, ins, kbd, q, s, samp,\nsmall, strike, strong, sub, sup, tt, var,\nb, u, i, center,\ndl, dt, dd, menu, ol, ul, li,\nfieldset, form, label, legend,\ntable, caption, tbody, tfoot, thead, tr, th, td,\narticle, aside, canvas, details, embed,\nfigure, figcaption, footer, header, hgroup,\nmain, menu, nav, output, ruby, section, summary,\ntime, mark, audio, video {\n margin: 0;\n padding: 0;\n border: 0;\n font-size: 100%;\n font: inherit;\n vertical-align: baseline;\n}\n/* HTML5 display-role reset for older browsers */\narticle, aside, details, figcaption, figure,\nfooter, header, hgroup, main, menu, nav, section {\n display: block;\n}\n/* HTML5 hidden-attribute fix for newer browsers */\n*[hidden] {\n display: none;\n}\nbody {\n line-height: 1;\n}\nmenu, ol, ul {\n list-style: none;\n}\nblockquote, q {\n quotes: none;\n}\nblockquote:before, blockquote:after,\nq:before, q:after {\n content: '';\n content: none;\n}\ntable {\n border-collapse: collapse;\n border-spacing: 0;\n}\n"],["\n/* http://meyerweb.com/eric/tools/css/reset/\n v5.0.1 | 20191019\n License: none (public domain)\n*/\n\nhtml, body, div, span, applet, object, iframe,\nh1, h2, h3, h4, h5, h6, p, blockquote, pre,\na, abbr, acronym, address, big, cite, code,\ndel, dfn, em, img, ins, kbd, q, s, samp,\nsmall, strike, strong, sub, sup, tt, var,\nb, u, i, center,\ndl, dt, dd, menu, ol, ul, li,\nfieldset, form, label, legend,\ntable, caption, tbody, tfoot, thead, tr, th, td,\narticle, aside, canvas, details, embed,\nfigure, figcaption, footer, header, hgroup,\nmain, menu, nav, output, ruby, section, summary,\ntime, mark, audio, video {\n margin: 0;\n padding: 0;\n border: 0;\n font-size: 100%;\n font: inherit;\n vertical-align: baseline;\n}\n/* HTML5 display-role reset for older browsers */\narticle, aside, details, figcaption, figure,\nfooter, header, hgroup, main, menu, nav, section {\n display: block;\n}\n/* HTML5 hidden-attribute fix for newer browsers */\n*[hidden] {\n display: none;\n}\nbody {\n line-height: 1;\n}\nmenu, ol, ul {\n list-style: none;\n}\nblockquote, q {\n quotes: none;\n}\nblockquote:before, blockquote:after,\nq:before, q:after {\n content: '';\n content: none;\n}\ntable {\n border-collapse: collapse;\n border-spacing: 0;\n}\n"]))),k=((0,o.createGlobalStyle)(w||(w=T(["",""],["",""])),x),x);var E=(0,o.createGlobalStyle)([""," body{font-family:'Noto Sans KR',sans-serif;background:",";}"],k,(e=>e.theme.colors.bodyBackground)),C=n(1883),O=n(9349),S=n(9583);const A=o.default.header.withConfig({displayName:"Header__HeaderWrapper",componentId:"sc-12xtq5x-0"})(["display:block;position:fixed;top:","px;left:0;right:0;padding:16px;background-color:",";box-shadow:0 0 8px ",";backdrop-filter:blur(5px);opacity:",";transition:top 0.5s,opacity 0.5s;z-index:999;@media (max-width:768px){padding:16px 0;}"],(e=>e.isHidden?-60:0),(e=>e.theme.colors.headerBackground),(e=>e.theme.colors.headerShadow),(e=>e.isHidden?0:1)),j=o.default.div.withConfig({displayName:"Header__Inner",componentId:"sc-12xtq5x-1"})(["display:flex;justify-content:space-between;margin:0 64px;@media (max-width:768px){margin:0 15px;}"]),B=o.default.span.withConfig({displayName:"Header__BlogTitle",componentId:"sc-12xtq5x-2"})(['letter-spacing:-1px;font-family:"Source Code Pro",sans-serif;font-weight:700;font-size:24px;color:',";& > a{text-decoration:none;color:inherit;}"],(e=>e.theme.colors.text)),P=o.default.div.withConfig({displayName:"Header__Menu",componentId:"sc-12xtq5x-3"})(["display:flex;justify-content:space-between;align-items:center;& svg{width:20px;height:20px;margin-right:15px;cursor:pointer;}& svg path{fill:",";transition:fill 0.3s;}& svg:hover path{fill:",";}"],(e=>e.theme.colors.icon),(e=>e.theme.colors.text)),L=o.default.div.withConfig({displayName:"Header__ToggleWrapper",componentId:"sc-12xtq5x-4"})(["width:20px;height:24px;margin-right:15px;overflow:hidden;box-sizing:border-box;"]),I=o.default.div.withConfig({displayName:"Header__IconRail",componentId:"sc-12xtq5x-5"})(["position:relative;display:flex;flex-direction:column;justify-content:space-between;height:40px;top:",";transition:top 0.4s;& > svg{transition:opacity 0.25s;}& > svg:first-child{opacity:",";}& > svg:last-child{opacity:",";}"],(e=>"light"===e.theme?"-19px":"0px"),(e=>"light"===e.theme?0:1),(e=>"dark"===e.theme?0:1));var _=e=>{let{toggleTheme:t}=e;const n=(0,o.useTheme)(),{0:i,1:a}=(0,r.useState)(),{0:c,1:l}=(0,r.useState)(!1),s=()=>{i>=window.scrollY?l(!1):i(window.addEventListener("scroll",s),()=>{window.removeEventListener("scroll",s)})),[i]),(0,r.useEffect)((()=>{a(window.scrollY)}),[]),r.createElement(A,{isHidden:c},r.createElement(j,null,r.createElement(B,null,r.createElement(C.Link,{to:"/"},O.title)),r.createElement(P,null,r.createElement(L,null,r.createElement(I,{theme:n.name},r.createElement(S.Mei,{onClick:t}),r.createElement(S.TLr,{onClick:t}))),r.createElement(C.Link,{to:"/tags"},r.createElement(S.YxP,null)),r.createElement(C.Link,{to:"/series"},r.createElement(S.hON,null)),r.createElement(C.Link,{to:"/search"},r.createElement(S.U41,{style:{marginRight:0}})))))};const N=o.default.div.withConfig({displayName:"Body__BodyWrapper",componentId:"sc-v34kqr-0"})(["margin:0 auto;padding-top:80px;max-width:800px;"]);var q=e=>{let{children:t}=e;return r.createElement(N,null,t)};const M=o.default.footer.withConfig({displayName:"Footer__FooterWrapper",componentId:"sc-1qfqdid-0"})(["margin-top:32px;padding:40px 0;border-top:1px solid ",";text-align:center;font-size:11pt;font-weight:lighter;color:",";& > a{color:",";}"],(e=>e.theme.colors.divider),(e=>e.theme.colors.secondaryText),(e=>e.theme.colors.text));var H=()=>r.createElement(M,null,"© ",O.title,", Built with Gatsby and"," ",r.createElement("a",{href:"https://github.com/devHudi/gatsby-starter-hoodie",target:"blank"},"gatsby-starter-hoodie")," ","theme.");var R=e=>{let{children:t}=e;const n=(0,i.useDispatch)(),{theme:c}=(0,i.useSelector)((e=>e.theme));let l=null;"undefined"!=typeof window&&(l=window.matchMedia("(prefers-color-scheme: dark)").matches);let s=null;"undefined"!=typeof localStorage&&(s=localStorage.getItem("theme"));return(0,r.useEffect)((()=>{l&&!s?n(l?a.xD:a.Gs):s&&n("dark"===s?a.xD:a.Gs)}),[]),r.createElement(o.ThemeProvider,{theme:"light"===c?b:y},r.createElement(E,null),r.createElement(_,{toggleTheme:()=>{const e="dark"===c?"light":"dark";n("dark"===e?a.xD:a.Gs),localStorage.setItem("theme",e)}}),r.createElement(q,null,t),r.createElement(H,null))}},5609:function(e,t,n){"use strict";n.d(t,{Z:function(){return me}});var r,o,i,a,c=n(7294),l=n(5697),s=n.n(l),u=n(3524),d=n.n(u),f=n(9590),p=n.n(f),h=n(4852),m=n.n(h),g="bodyAttributes",b="htmlAttributes",y="titleAttributes",v={BASE:"base",BODY:"body",HEAD:"head",HTML:"html",LINK:"link",META:"meta",NOSCRIPT:"noscript",SCRIPT:"script",STYLE:"style",TITLE:"title"},w=(Object.keys(v).map((function(e){return v[e]})),"charset"),T="cssText",x="href",k="http-equiv",E="innerHTML",C="itemprop",O="name",S="property",A="rel",j="src",B="target",P={accesskey:"accessKey",charset:"charSet",class:"className",contenteditable:"contentEditable",contextmenu:"contextMenu","http-equiv":"httpEquiv",itemprop:"itemProp",tabindex:"tabIndex"},L="defaultTitle",I="defer",_="encodeSpecialCharacters",N="onChangeClientState",q="titleTemplate",M=Object.keys(P).reduce((function(e,t){return e[P[t]]=t,e}),{}),H=[v.NOSCRIPT,v.SCRIPT,v.STYLE],R="data-react-helmet",D="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Y=function(){function e(e,t){for(var n=0;n=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n},U=function(e){return!1===(!(arguments.length>1&&void 0!==arguments[1])||arguments[1])?String(e):String(e).replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'")},W=function(e){var t=Z(e,v.TITLE),n=Z(e,q);if(n&&t)return n.replace(/%s/g,(function(){return Array.isArray(t)?t.join(""):t}));var r=Z(e,L);return t||r||void 0},K=function(e){return Z(e,N)||function(){}},G=function(e,t){return t.filter((function(t){return void 0!==t[e]})).map((function(t){return t[e]})).reduce((function(e,t){return z({},e,t)}),{})},Q=function(e,t){return t.filter((function(e){return void 0!==e[v.BASE]})).map((function(e){return e[v.BASE]})).reverse().reduce((function(t,n){if(!t.length)for(var r=Object.keys(n),o=0;o=0;n--){var r=e[n];if(r.hasOwnProperty(t))return r[t]}return null},$=(r=Date.now(),function(e){var t=Date.now();t-r>16?(r=t,e(t)):setTimeout((function(){$(e)}),0)}),J=function(e){return clearTimeout(e)},X="undefined"!=typeof window?window.requestAnimationFrame&&window.requestAnimationFrame.bind(window)||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||$:n.g.requestAnimationFrame||$,ee="undefined"!=typeof window?window.cancelAnimationFrame||window.webkitCancelAnimationFrame||window.mozCancelAnimationFrame||J:n.g.cancelAnimationFrame||J,te=function(e){return console&&"function"==typeof console.warn&&console.warn(e)},ne=null,re=function(e,t){var n=e.baseTag,r=e.bodyAttributes,o=e.htmlAttributes,i=e.linkTags,a=e.metaTags,c=e.noscriptTags,l=e.onChangeClientState,s=e.scriptTags,u=e.styleTags,d=e.title,f=e.titleAttributes;ae(v.BODY,r),ae(v.HTML,o),ie(d,f);var p={baseTag:ce(v.BASE,n),linkTags:ce(v.LINK,i),metaTags:ce(v.META,a),noscriptTags:ce(v.NOSCRIPT,c),scriptTags:ce(v.SCRIPT,s),styleTags:ce(v.STYLE,u)},h={},m={};Object.keys(p).forEach((function(e){var t=p[e],n=t.newTags,r=t.oldTags;n.length&&(h[e]=n),r.length&&(m[e]=p[e].oldTags)})),t&&t(),l(e,h,m)},oe=function(e){return Array.isArray(e)?e.join(""):e},ie=function(e,t){void 0!==e&&document.title!==e&&(document.title=oe(e)),ae(v.TITLE,t)},ae=function(e,t){var n=document.getElementsByTagName(e)[0];if(n){for(var r=n.getAttribute(R),o=r?r.split(","):[],i=[].concat(o),a=Object.keys(t),c=0;c=0;d--)n.removeAttribute(i[d]);o.length===i.length?n.removeAttribute(R):n.getAttribute(R)!==a.join(",")&&n.setAttribute(R,a.join(","))}},ce=function(e,t){var n=document.head||document.querySelector(v.HEAD),r=n.querySelectorAll(e+"["+R+"]"),o=Array.prototype.slice.call(r),i=[],a=void 0;return t&&t.length&&t.forEach((function(t){var n=document.createElement(e);for(var r in t)if(t.hasOwnProperty(r))if(r===E)n.innerHTML=t.innerHTML;else if(r===T)n.styleSheet?n.styleSheet.cssText=t.cssText:n.appendChild(document.createTextNode(t.cssText));else{var c=void 0===t[r]?"":t[r];n.setAttribute(r,c)}n.setAttribute(R,"true"),o.some((function(e,t){return a=t,n.isEqualNode(e)}))?o.splice(a,1):i.push(n)})),o.forEach((function(e){return e.parentNode.removeChild(e)})),i.forEach((function(e){return n.appendChild(e)})),{oldTags:o,newTags:i}},le=function(e){return Object.keys(e).reduce((function(t,n){var r=void 0!==e[n]?n+'="'+e[n]+'"':""+n;return t?t+" "+r:r}),"")},se=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return Object.keys(e).reduce((function(t,n){return t[P[n]||n]=e[n],t}),t)},ue=function(e,t,n){switch(e){case v.TITLE:return{toComponent:function(){return e=t.title,n=t.titleAttributes,(r={key:e})[R]=!0,o=se(n,r),[c.createElement(v.TITLE,o,e)];var e,n,r,o},toString:function(){return function(e,t,n,r){var o=le(n),i=oe(t);return o?"<"+e+" "+R+'="true" '+o+">"+U(i,r)+"":"<"+e+" "+R+'="true">'+U(i,r)+""}(e,t.title,t.titleAttributes,n)}};case g:case b:return{toComponent:function(){return se(t)},toString:function(){return le(t)}};default:return{toComponent:function(){return function(e,t){return t.map((function(t,n){var r,o=((r={key:n})[R]=!0,r);return Object.keys(t).forEach((function(e){var n=P[e]||e;if(n===E||n===T){var r=t.innerHTML||t.cssText;o.dangerouslySetInnerHTML={__html:r}}else o[n]=t[e]})),c.createElement(e,o)}))}(e,t)},toString:function(){return function(e,t,n){return t.reduce((function(t,r){var o=Object.keys(r).filter((function(e){return!(e===E||e===T)})).reduce((function(e,t){var o=void 0===r[t]?t:t+'="'+U(r[t],n)+'"';return e?e+" "+o:o}),""),i=r.innerHTML||r.cssText||"",a=-1===H.indexOf(e);return t+"<"+e+" "+R+'="true" '+o+(a?"/>":">"+i+"")}),"")}(e,t,n)}}}},de=function(e){var t=e.baseTag,n=e.bodyAttributes,r=e.encode,o=e.htmlAttributes,i=e.linkTags,a=e.metaTags,c=e.noscriptTags,l=e.scriptTags,s=e.styleTags,u=e.title,d=void 0===u?"":u,f=e.titleAttributes;return{base:ue(v.BASE,t,r),bodyAttributes:ue(g,n,r),htmlAttributes:ue(b,o,r),link:ue(v.LINK,i,r),meta:ue(v.META,a,r),noscript:ue(v.NOSCRIPT,c,r),script:ue(v.SCRIPT,l,r),style:ue(v.STYLE,s,r),title:ue(v.TITLE,{title:d,titleAttributes:f},r)}},fe=d()((function(e){return{baseTag:Q([x,B],e),bodyAttributes:G(g,e),defer:Z(e,I),encode:Z(e,_),htmlAttributes:G(b,e),linkTags:V(v.LINK,[A,x],e),metaTags:V(v.META,[O,w,k,S,C],e),noscriptTags:V(v.NOSCRIPT,[E],e),onChangeClientState:K(e),scriptTags:V(v.SCRIPT,[j,E],e),styleTags:V(v.STYLE,[T],e),title:W(e),titleAttributes:G(y,e)}}),(function(e){ne&&ee(ne),e.defer?ne=X((function(){re(e,(function(){ne=null}))})):(re(e),ne=null)}),de)((function(){return null})),pe=(o=fe,a=i=function(e){function t(){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}(this,e.apply(this,arguments))}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,e),t.prototype.shouldComponentUpdate=function(e){return!p()(this.props,e)},t.prototype.mapNestedChildrenToProps=function(e,t){if(!t)return null;switch(e.type){case v.SCRIPT:case v.NOSCRIPT:return{innerHTML:t};case v.STYLE:return{cssText:t}}throw new Error("<"+e.type+" /> elements are self-closing and can not contain children. Refer to our API for more information.")},t.prototype.flattenArrayTypeChildren=function(e){var t,n=e.child,r=e.arrayTypeChildren,o=e.newChildProps,i=e.nestedChildren;return z({},r,((t={})[n.type]=[].concat(r[n.type]||[],[z({},o,this.mapNestedChildrenToProps(n,i))]),t))},t.prototype.mapObjectTypeChildren=function(e){var t,n,r=e.child,o=e.newProps,i=e.newChildProps,a=e.nestedChildren;switch(r.type){case v.TITLE:return z({},o,((t={})[r.type]=a,t.titleAttributes=z({},i),t));case v.BODY:return z({},o,{bodyAttributes:z({},i)});case v.HTML:return z({},o,{htmlAttributes:z({},i)})}return z({},o,((n={})[r.type]=z({},i),n))},t.prototype.mapArrayTypeChildrenToProps=function(e,t){var n=z({},t);return Object.keys(e).forEach((function(t){var r;n=z({},n,((r={})[t]=e[t],r))})),n},t.prototype.warnOnInvalidChildren=function(e,t){return!0},t.prototype.mapChildrenToProps=function(e,t){var n=this,r={};return c.Children.forEach(e,(function(e){if(e&&e.props){var o=e.props,i=o.children,a=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return Object.keys(e).reduce((function(t,n){return t[M[n]||n]=e[n],t}),t)}(F(o,["children"]));switch(n.warnOnInvalidChildren(e,i),e.type){case v.LINK:case v.META:case v.NOSCRIPT:case v.SCRIPT:case v.STYLE:r=n.flattenArrayTypeChildren({child:e,arrayTypeChildren:r,newChildProps:a,nestedChildren:i});break;default:t=n.mapObjectTypeChildren({child:e,newProps:t,newChildProps:a,nestedChildren:i})}}})),t=this.mapArrayTypeChildrenToProps(r,t)},t.prototype.render=function(){var e=this.props,t=e.children,n=F(e,["children"]),r=z({},n);return t&&(r=this.mapChildrenToProps(t,r)),c.createElement(o,r)},Y(t,null,[{key:"canUseDOM",set:function(e){o.canUseDOM=e}}]),t}(c.Component),i.propTypes={base:s().object,bodyAttributes:s().object,children:s().oneOfType([s().arrayOf(s().node),s().node]),defaultTitle:s().string,defer:s().bool,encodeSpecialCharacters:s().bool,htmlAttributes:s().object,link:s().arrayOf(s().object),meta:s().arrayOf(s().object),noscript:s().arrayOf(s().object),onChangeClientState:s().func,script:s().arrayOf(s().object),style:s().arrayOf(s().object),title:s().string,titleAttributes:s().object,titleTemplate:s().string},i.defaultProps={defer:!0,encodeSpecialCharacters:!0},i.peek=o.peek,i.rewind=function(){var e=o.rewind();return e||(e=de({baseTag:[],bodyAttributes:{},encodeSpecialCharacters:!0,htmlAttributes:{},linkTags:[],metaTags:[],noscriptTags:[],scriptTags:[],styleTags:[],title:"",titleAttributes:{}})),e},a);pe.renderStatic=pe.rewind;var he=n(9349);var me=e=>{let{title:t,description:n,url:r}=e;return c.createElement(pe,null,c.createElement("title",null,t),c.createElement("meta",{property:"og:url",content:r}),c.createElement("meta",{property:"og:title",content:t}),c.createElement("meta",{property:"og:image",content:he.siteUrl+"/og-image.png"}),n&&c.createElement("meta",{name:"description",content:n}),n&&c.createElement("meta",{property:"og:description",content:n}))}},9590:function(e){var t="undefined"!=typeof Element,n="function"==typeof Map,r="function"==typeof Set,o="function"==typeof ArrayBuffer&&!!ArrayBuffer.isView;function i(e,a){if(e===a)return!0;if(e&&a&&"object"==typeof e&&"object"==typeof a){if(e.constructor!==a.constructor)return!1;var c,l,s,u;if(Array.isArray(e)){if((c=e.length)!=a.length)return!1;for(l=c;0!=l--;)if(!i(e[l],a[l]))return!1;return!0}if(n&&e instanceof Map&&a instanceof Map){if(e.size!==a.size)return!1;for(u=e.entries();!(l=u.next()).done;)if(!a.has(l.value[0]))return!1;for(u=e.entries();!(l=u.next()).done;)if(!i(l.value[1],a.get(l.value[0])))return!1;return!0}if(r&&e instanceof Set&&a instanceof Set){if(e.size!==a.size)return!1;for(u=e.entries();!(l=u.next()).done;)if(!a.has(l.value[0]))return!1;return!0}if(o&&ArrayBuffer.isView(e)&&ArrayBuffer.isView(a)){if((c=e.length)!=a.length)return!1;for(l=c;0!=l--;)if(e[l]!==a[l])return!1;return!0}if(e.constructor===RegExp)return e.source===a.source&&e.flags===a.flags;if(e.valueOf!==Object.prototype.valueOf&&"function"==typeof e.valueOf&&"function"==typeof a.valueOf)return e.valueOf()===a.valueOf();if(e.toString!==Object.prototype.toString&&"function"==typeof e.toString&&"function"==typeof a.toString)return e.toString()===a.toString();if((c=(s=Object.keys(e)).length)!==Object.keys(a).length)return!1;for(l=c;0!=l--;)if(!Object.prototype.hasOwnProperty.call(a,s[l]))return!1;if(t&&e instanceof Element)return!1;for(l=c;0!=l--;)if(("_owner"!==s[l]&&"__v"!==s[l]&&"__o"!==s[l]||!e.$$typeof)&&!i(e[s[l]],a[s[l]]))return!1;return!0}return e!=e&&a!=a}e.exports=function(e,t){try{return i(e,t)}catch(n){if((n.message||"").match(/stack|recursion/i))return console.warn("react-fast-compare cannot handle circular refs"),!1;throw n}}},4405:function(e,t,n){"use strict";n.d(t,{w_:function(){return s}});var r=n(7294),o={color:void 0,size:void 0,className:void 0,style:void 0,attr:void 0},i=r.createContext&&r.createContext(o),a=function(){return a=Object.assign||function(e){for(var t,n=1,r=arguments.length;n props.theme.colors.bodyBackground};\n }\n`\n\nexport default GlobalStyles\n","import React, { useEffect, useState } from \"react\"\nimport styled, { useTheme } from \"styled-components\"\n\nimport { Link } from \"gatsby\"\n\nimport { title } from \"../../../../blog-config\"\n\nimport {\n FaSun,\n FaMoon,\n FaTags,\n FaRss,\n FaSearch,\n FaListUl,\n} from \"react-icons/fa\"\n\nconst HeaderWrapper = styled.header`\n display: block;\n position: fixed;\n top: ${props => (props.isHidden ? -60 : 0)}px;\n left: 0;\n right: 0;\n padding: 16px;\n background-color: ${props => props.theme.colors.headerBackground};\n box-shadow: 0 0 8px ${props => props.theme.colors.headerShadow};\n backdrop-filter: blur(5px);\n opacity: ${props => (props.isHidden ? 0 : 1)};\n transition: top 0.5s, opacity 0.5s;\n z-index: 999;\n\n @media (max-width: 768px) {\n padding: 16px 0;\n }\n`\n\nconst Inner = styled.div`\n display: flex;\n justify-content: space-between;\n margin: 0 64px;\n\n @media (max-width: 768px) {\n margin: 0 15px;\n }\n`\n\nconst BlogTitle = styled.span`\n letter-spacing: -1px;\n font-family: \"Source Code Pro\", sans-serif;\n font-weight: 700;\n font-size: 24px;\n color: ${props => props.theme.colors.text};\n\n & > a {\n text-decoration: none;\n color: inherit;\n }\n`\n\nconst Menu = styled.div`\n display: flex;\n justify-content: space-between;\n align-items: center;\n\n & svg {\n width: 20px;\n height: 20px;\n margin-right: 15px;\n cursor: pointer;\n }\n\n & svg path {\n fill: ${props => props.theme.colors.icon};\n transition: fill 0.3s;\n }\n\n & svg:hover path {\n fill: ${props => props.theme.colors.text};\n }\n`\n\nconst ToggleWrapper = styled.div`\n width: 20px;\n height: 24px;\n margin-right: 15px;\n overflow: hidden;\n box-sizing: border-box;\n`\n\nconst IconRail = styled.div`\n position: relative;\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n height: 40px;\n top: ${props => (props.theme === \"light\" ? \"-19px\" : \"0px\")};\n transition: top 0.4s;\n\n & > svg {\n transition: opacity 0.25s;\n }\n\n & > svg:first-child {\n opacity: ${props => (props.theme === \"light\" ? 0 : 1)};\n }\n\n & > svg:last-child {\n opacity: ${props => (props.theme === \"dark\" ? 0 : 1)};\n }\n`\n\nconst Header = ({ toggleTheme }) => {\n const theme = useTheme()\n const [scrollY, setScrollY] = useState()\n const [hidden, setHidden] = useState(false)\n\n const detectScrollDirection = () => {\n if (scrollY >= window.scrollY) {\n // scroll up\n setHidden(false)\n } else if (scrollY < window.scrollY && 400 <= window.scrollY) {\n // scroll down\n setHidden(true)\n }\n\n setScrollY(window.scrollY)\n }\n\n useEffect(() => {\n window.addEventListener(\"scroll\", detectScrollDirection)\n\n return () => {\n window.removeEventListener(\"scroll\", detectScrollDirection)\n }\n }, [scrollY])\n\n useEffect(() => {\n setScrollY(window.scrollY)\n }, [])\n\n return (\n \n \n \n {title}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {/* \n \n */}\n \n \n \n \n \n \n )\n}\n\nexport default Header\n","import React from \"react\"\nimport styled from \"styled-components\"\n\nconst BodyWrapper = styled.div`\n margin: 0 auto;\n padding-top: 80px;\n max-width: 800px;\n`\n\nconst Body = ({ children }) => {\n return {children}\n}\n\nexport default Body\n","import React from \"react\"\nimport styled from \"styled-components\"\n\nimport { title } from \"../../../../blog-config\"\n\nconst FooterWrapper = styled.footer`\n margin-top: 32px;\n padding: 40px 0;\n border-top: 1px solid ${props => props.theme.colors.divider};\n text-align: center;\n font-size: 11pt;\n font-weight: lighter;\n color: ${props => props.theme.colors.secondaryText};\n\n & > a {\n color: ${props => props.theme.colors.text};\n }\n`\n\nconst Footer = () => {\n return (\n \n © {title}, Built with Gatsby and{\" \"}\n \n gatsby-starter-hoodie\n {\" \"}\n theme.\n \n )\n}\n\nexport default Footer\n","import React, { useEffect } from \"react\"\nimport { ThemeProvider } from \"styled-components\"\n\nimport { useSelector, useDispatch } from \"react-redux\"\nimport { setLight, setDark } from \"reducers/theme\"\n\nimport { light, dark } from \"assets/theme\"\n\nimport GlobalStyles from \"components/GlobalStyles\"\n\nimport Header from \"./Header\"\nimport Body from \"./Body\"\nimport Footer from \"./Footer\"\n\nconst Layout = ({ children }) => {\n const dispatch = useDispatch()\n const { theme } = useSelector(state => state.theme)\n\n let isSystemDarkMode = null\n if (typeof window !== \"undefined\") {\n isSystemDarkMode = window.matchMedia(\"(prefers-color-scheme: dark)\").matches\n }\n\n let localTheme = null\n if (typeof localStorage !== \"undefined\") {\n localTheme = localStorage.getItem(\"theme\")\n }\n\n const toggleTheme = () => {\n const nextTheme = theme === \"dark\" ? \"light\" : \"dark\"\n dispatch(nextTheme === \"dark\" ? setDark : setLight)\n localStorage.setItem(\"theme\", nextTheme)\n }\n\n useEffect(() => {\n if (isSystemDarkMode && !localTheme)\n dispatch(isSystemDarkMode ? setDark : setLight)\n else if (localTheme) dispatch(localTheme === \"dark\" ? setDark : setLight)\n }, [])\n\n return (\n \n \n
\n {children}\n