diff --git a/_site/404.html b/_site/404.html deleted file mode 100644 index 8bff19c..0000000 --- a/_site/404.html +++ /dev/null @@ -1,1724 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 404: Page not found | Trever Ehrfurth - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - -
-
- - - - - -
- 404: Page not found -
- - - - - - - - -
-
- - -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - -

- 404: Page not found -

-
- - - - -

Sorry, we've misplaced that URL or it's pointing to something that doesn't exist.

- -
- -
- - - -
- - - -
- -
- -
- - - - - - -
-
- - - -
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

Trending Tags

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - -
-
-
-
- -
- - -
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/_site/about/index.html b/_site/about/index.html deleted file mode 100644 index 44022a8..0000000 --- a/_site/about/index.html +++ /dev/null @@ -1,1803 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - About | Trever Ehrfurth - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - -
-
- - - - - -
- About -
- - - - - - - - -
-
- - -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - -

- About -

-
- - -

Trever and Rachel

- -

Hello!

- -

I’m Trever Ehrfurth, a full time data engineer by trade, and a homelab enthusiast for fun. I enjoy learning new tools and technologies, automation, developing pipelines, and building cool stuff. I am an open source advocate and contributor and enjoy working with passionate developers to create better tools.

- -

I hope you find something helpful here and that we can enjoy this learning journey together!

- -
- -
- - - -
- - - -
- -
- -
- - - - - - -
-
- - - -
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

Trending Tags

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - -
-
-
-
- -
- - -
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/_site/archives/index.html b/_site/archives/index.html deleted file mode 100644 index 4de3863..0000000 --- a/_site/archives/index.html +++ /dev/null @@ -1,1803 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Archives | Trever Ehrfurth - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - -
-
- - - - - -
- Archives -
- - - - - - - - -
-
- - -
-
- - - - - -
- - - -

- Archives -

-
- - - - - - - -
- - - - - - - - - -
- -
- -
- - -
- - - -
- -
- -
- - - - - - -
-
- - - -
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

Trending Tags

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - -
-
-
-
- -
- - -
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/_site/assets/css/jekyll-theme-chirpy.css b/_site/assets/css/jekyll-theme-chirpy.css deleted file mode 100644 index 041d8a6..0000000 --- a/_site/assets/css/jekyll-theme-chirpy.css +++ /dev/null @@ -1 +0,0 @@ -header .post-desc,#search-results a,h5,h4,h3,h2,h1{color:var(--heading-color);font-weight:400;font-family:Lato,"Microsoft Yahei",sans-serif}main h5,main h4,main h3,main h2{margin-top:2.5rem;margin-bottom:1.25rem}main h5:focus,main h4:focus,main h3:focus,main h2:focus{outline:none}h5 .anchor,h4 .anchor,h3 .anchor,h2 .anchor{font-size:80%}@media(hover: hover){h5 .anchor,h4 .anchor,h3 .anchor,h2 .anchor{visibility:hidden;opacity:0;transition:opacity .25s ease-in,visibility 0s ease-in .25s}h5:hover .anchor,h4:hover .anchor,h3:hover .anchor,h2:hover .anchor{visibility:visible;opacity:1;transition:opacity .25s ease-in,visibility 0s ease-in 0s}}.post-tags .post-tag:hover,.tag:hover{background:var(--tag-hover);transition:background .35s ease-in-out}.table-wrapper>table tbody tr td,.table-wrapper>table thead th{padding:.4rem 1rem;font-size:95%;white-space:nowrap}#page-category a:hover,#page-tag a:hover,.post-tags .post-tag:hover,.post-tail-wrapper .license-wrapper>a:hover,#search-results a:hover,#topbar #breadcrumb a:hover,.content a:not(.img-link):hover,.post-meta a:not([class]):hover,#access-lastmod a:hover,footer a:hover{color:#d2603a !important;border-bottom:1px solid #d2603a;text-decoration:none}#search-results a,#search-hints .post-tag,a{color:var(--link-color)}.post-tail-wrapper .post-meta a:not(:hover),.content a:not(.img-link){border-bottom:1px solid var(--link-underline-color)}#sidebar .sidebar-bottom a,#sidebar .site-title a,#sidebar .profile-wrapper{transition:all .3s ease-in-out}#sidebar .sidebar-bottom .icon-border,.content a.popup,i.far,i.fas,.code-header{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}#page-category ul>li>a,#page-tag ul>li>a,.post-tags .post-tag:hover,#search-results a,main .categories a:not(:hover),main #tags a:not(:hover),main #archives a:not(:hover),#access-lastmod a{border-bottom:none}.post-tail-wrapper .share-wrapper .share-icons button,#search-cancel,.code-header button{cursor:pointer}#related-posts time,#post-list .card .card-body .post-meta em,.post-meta em{font-style:normal}.categories.card,.categories .list-group,.embed-video,.post-preview::before,.post-preview,.preview-img img,.preview-img,blockquote[class^=prompt-],.code-header button,div[class^=language-],.highlight{border-radius:.625rem}.embed-audio+em,.embed-video+em,.content a.popup+em{display:block;text-align:center;font-style:normal;font-size:80%;padding:0;color:#6d6c6c}#sidebar .sidebar-bottom #mode-toggle,#sidebar a{color:var(--sidebar-muted-color);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}#related-posts .card h4,#post-list .card .card-body .card-text.content p,#post-list .card .card-body .card-title{display:-webkit-box;overflow:hidden;text-overflow:ellipsis;-webkit-line-clamp:2;-webkit-box-orient:vertical}.post-tail-wrapper .license-wrapper>a,header .post-meta em,header .post-meta time,footer em,footer a{color:var(--text-muted-hightlight-color);font-weight:600}.post-tail-wrapper .license-wrapper span:last-child,.post-tail-wrapper,.post-meta{font-size:.85rem}#related-posts time,footer{font-size:.8rem}sup:target,.footnotes>ol>li:target{background-color:var(--footnote-target-bg);width:-moz-fit-content;width:-webkit-fit-content;width:fit-content;transition:background-color 1.75s ease-in-out}@media(prefers-color-scheme: light){html:not([data-mode]),html[data-mode=light]{--language-border-color: #ececec;--highlight-bg-color: #f6f8fa;--highlighter-rouge-color: #3f596f;--highlight-lineno-color: #9e9e9e;--inline-code-bg: #f6f6f7;--code-color: #3a3a3a;--code-header-text-color: #a3a3a3;--code-header-muted-color: #e5e5e5;--code-header-icon-color: #c9c8c8;--clipboard-checked-color: #43c743}html:not([data-mode]) [class^=prompt-],html[data-mode=light] [class^=prompt-]{--inline-code-bg: #fbfafa}html:not([data-mode]) .highlight table td,html[data-mode=light] .highlight table td{padding:5px}html:not([data-mode]) .highlight table pre,html[data-mode=light] .highlight table pre{margin:0}html:not([data-mode]) .highlight,html:not([data-mode]) .highlight .w,html[data-mode=light] .highlight,html[data-mode=light] .highlight .w{color:#24292f;background-color:#f6f8fa}html:not([data-mode]) .highlight .k,html:not([data-mode]) .highlight .kd,html:not([data-mode]) .highlight .kn,html:not([data-mode]) .highlight .kp,html:not([data-mode]) .highlight .kr,html:not([data-mode]) .highlight .kt,html:not([data-mode]) .highlight .kv,html[data-mode=light] .highlight .k,html[data-mode=light] .highlight .kd,html[data-mode=light] .highlight .kn,html[data-mode=light] .highlight .kp,html[data-mode=light] .highlight .kr,html[data-mode=light] .highlight .kt,html[data-mode=light] .highlight .kv{color:#cf222e}html:not([data-mode]) .highlight .gr,html[data-mode=light] .highlight .gr{color:#f6f8fa}html:not([data-mode]) .highlight .gd,html[data-mode=light] .highlight .gd{color:#82071e;background-color:#ffebe9}html:not([data-mode]) .highlight .nb,html[data-mode=light] .highlight .nb{color:#953800}html:not([data-mode]) .highlight .nc,html[data-mode=light] .highlight .nc{color:#953800}html:not([data-mode]) .highlight .no,html[data-mode=light] .highlight .no{color:#953800}html:not([data-mode]) .highlight .nn,html[data-mode=light] .highlight .nn{color:#953800}html:not([data-mode]) .highlight .sr,html[data-mode=light] .highlight .sr{color:#116329}html:not([data-mode]) .highlight .na,html[data-mode=light] .highlight .na{color:#116329}html:not([data-mode]) .highlight .nt,html[data-mode=light] .highlight .nt{color:#116329}html:not([data-mode]) .highlight .gi,html[data-mode=light] .highlight .gi{color:#116329;background-color:#dafbe1}html:not([data-mode]) .highlight .kc,html[data-mode=light] .highlight .kc{color:#0550ae}html:not([data-mode]) .highlight .l,html:not([data-mode]) .highlight .ld,html:not([data-mode]) .highlight .m,html:not([data-mode]) .highlight .mb,html:not([data-mode]) .highlight .mf,html:not([data-mode]) .highlight .mh,html:not([data-mode]) .highlight .mi,html:not([data-mode]) .highlight .il,html:not([data-mode]) .highlight .mo,html:not([data-mode]) .highlight .mx,html[data-mode=light] .highlight .l,html[data-mode=light] .highlight .ld,html[data-mode=light] .highlight .m,html[data-mode=light] .highlight .mb,html[data-mode=light] .highlight .mf,html[data-mode=light] .highlight .mh,html[data-mode=light] .highlight .mi,html[data-mode=light] .highlight .il,html[data-mode=light] .highlight .mo,html[data-mode=light] .highlight .mx{color:#0550ae}html:not([data-mode]) .highlight .sb,html[data-mode=light] .highlight .sb{color:#0550ae}html:not([data-mode]) .highlight .bp,html[data-mode=light] .highlight .bp{color:#0550ae}html:not([data-mode]) .highlight .ne,html[data-mode=light] .highlight .ne{color:#0550ae}html:not([data-mode]) .highlight .nl,html[data-mode=light] .highlight .nl{color:#0550ae}html:not([data-mode]) .highlight .py,html[data-mode=light] .highlight .py{color:#0550ae}html:not([data-mode]) .highlight .nv,html:not([data-mode]) .highlight .vc,html:not([data-mode]) .highlight .vg,html:not([data-mode]) .highlight .vi,html:not([data-mode]) .highlight .vm,html[data-mode=light] .highlight .nv,html[data-mode=light] .highlight .vc,html[data-mode=light] .highlight .vg,html[data-mode=light] .highlight .vi,html[data-mode=light] .highlight .vm{color:#0550ae}html:not([data-mode]) .highlight .o,html:not([data-mode]) .highlight .ow,html[data-mode=light] .highlight .o,html[data-mode=light] .highlight .ow{color:#0550ae}html:not([data-mode]) .highlight .gh,html[data-mode=light] .highlight .gh{color:#0550ae;font-weight:bold}html:not([data-mode]) .highlight .gu,html[data-mode=light] .highlight .gu{color:#0550ae;font-weight:bold}html:not([data-mode]) .highlight .s,html:not([data-mode]) .highlight .sa,html:not([data-mode]) .highlight .sc,html:not([data-mode]) .highlight .dl,html:not([data-mode]) .highlight .sd,html:not([data-mode]) .highlight .s2,html:not([data-mode]) .highlight .se,html:not([data-mode]) .highlight .sh,html:not([data-mode]) .highlight .sx,html:not([data-mode]) .highlight .s1,html:not([data-mode]) .highlight .ss,html[data-mode=light] .highlight .s,html[data-mode=light] .highlight .sa,html[data-mode=light] .highlight .sc,html[data-mode=light] .highlight .dl,html[data-mode=light] .highlight .sd,html[data-mode=light] .highlight .s2,html[data-mode=light] .highlight .se,html[data-mode=light] .highlight .sh,html[data-mode=light] .highlight .sx,html[data-mode=light] .highlight .s1,html[data-mode=light] .highlight .ss{color:#0a3069}html:not([data-mode]) .highlight .nd,html[data-mode=light] .highlight .nd{color:#8250df}html:not([data-mode]) .highlight .nf,html:not([data-mode]) .highlight .fm,html[data-mode=light] .highlight .nf,html[data-mode=light] .highlight .fm{color:#8250df}html:not([data-mode]) .highlight .err,html[data-mode=light] .highlight .err{color:#f6f8fa;background-color:#82071e}html:not([data-mode]) .highlight .c,html:not([data-mode]) .highlight .ch,html:not([data-mode]) .highlight .cd,html:not([data-mode]) .highlight .cm,html:not([data-mode]) .highlight .cp,html:not([data-mode]) .highlight .cpf,html:not([data-mode]) .highlight .c1,html:not([data-mode]) .highlight .cs,html[data-mode=light] .highlight .c,html[data-mode=light] .highlight .ch,html[data-mode=light] .highlight .cd,html[data-mode=light] .highlight .cm,html[data-mode=light] .highlight .cp,html[data-mode=light] .highlight .cpf,html[data-mode=light] .highlight .c1,html[data-mode=light] .highlight .cs{color:#68717a}html:not([data-mode]) .highlight .gl,html[data-mode=light] .highlight .gl{color:#68717a}html:not([data-mode]) .highlight .gt,html[data-mode=light] .highlight .gt{color:#68717a}html:not([data-mode]) .highlight .ni,html[data-mode=light] .highlight .ni{color:#24292f}html:not([data-mode]) .highlight .si,html[data-mode=light] .highlight .si{color:#24292f}html:not([data-mode]) .highlight .ge,html[data-mode=light] .highlight .ge{color:#24292f;font-style:italic}html:not([data-mode]) .highlight .gs,html[data-mode=light] .highlight .gs{color:#24292f;font-weight:bold}html[data-mode=dark]{--language-border-color: #2d2d2d;--highlight-bg-color: #151515;--highlighter-rouge-color: #c9def1;--highlight-lineno-color: #808080;--inline-code-bg: #323238;--code-color: #b0b0b0;--code-header-text-color: #6a6a6a;--code-header-muted-color: #353535;--code-header-icon-color: #565656;--clipboard-checked-color: #2bcc2b;--filepath-text-color: #cacaca}html[data-mode=dark] .highlight .gp{color:#87939d}html[data-mode=dark] .highlight table td{padding:5px}html[data-mode=dark] .highlight table pre{margin:0}html[data-mode=dark] .highlight,html[data-mode=dark] .highlight .w{color:#d0d0d0;background-color:#151515}html[data-mode=dark] .highlight .err{color:#151515;background-color:#ac4142}html[data-mode=dark] .highlight .c,html[data-mode=dark] .highlight .ch,html[data-mode=dark] .highlight .cd,html[data-mode=dark] .highlight .cm,html[data-mode=dark] .highlight .cpf,html[data-mode=dark] .highlight .c1,html[data-mode=dark] .highlight .cs{color:#848484}html[data-mode=dark] .highlight .cp{color:#f4bf75}html[data-mode=dark] .highlight .nt{color:#f4bf75}html[data-mode=dark] .highlight .o,html[data-mode=dark] .highlight .ow{color:#d0d0d0}html[data-mode=dark] .highlight .p,html[data-mode=dark] .highlight .pi{color:#d0d0d0}html[data-mode=dark] .highlight .gi{color:#90a959}html[data-mode=dark] .highlight .gd{color:#f08a8b;background-color:#320000}html[data-mode=dark] .highlight .gh{color:#6a9fb5;background-color:#151515;font-weight:bold}html[data-mode=dark] .highlight .k,html[data-mode=dark] .highlight .kn,html[data-mode=dark] .highlight .kp,html[data-mode=dark] .highlight .kr,html[data-mode=dark] .highlight .kv{color:#aa759f}html[data-mode=dark] .highlight .kc{color:#d28445}html[data-mode=dark] .highlight .kt{color:#d28445}html[data-mode=dark] .highlight .kd{color:#d28445}html[data-mode=dark] .highlight .s,html[data-mode=dark] .highlight .sb,html[data-mode=dark] .highlight .sc,html[data-mode=dark] .highlight .dl,html[data-mode=dark] .highlight .sd,html[data-mode=dark] .highlight .s2,html[data-mode=dark] .highlight .sh,html[data-mode=dark] .highlight .sx,html[data-mode=dark] .highlight .s1{color:#90a959}html[data-mode=dark] .highlight .sa{color:#aa759f}html[data-mode=dark] .highlight .sr{color:#75b5aa}html[data-mode=dark] .highlight .si{color:#b76d45}html[data-mode=dark] .highlight .se{color:#b76d45}html[data-mode=dark] .highlight .nn{color:#f4bf75}html[data-mode=dark] .highlight .nc{color:#f4bf75}html[data-mode=dark] .highlight .no{color:#f4bf75}html[data-mode=dark] .highlight .na{color:#6a9fb5}html[data-mode=dark] .highlight .m,html[data-mode=dark] .highlight .mb,html[data-mode=dark] .highlight .mf,html[data-mode=dark] .highlight .mh,html[data-mode=dark] .highlight .mi,html[data-mode=dark] .highlight .il,html[data-mode=dark] .highlight .mo,html[data-mode=dark] .highlight .mx{color:#90a959}html[data-mode=dark] .highlight .ss{color:#90a959}}@media(prefers-color-scheme: dark){html:not([data-mode]),html[data-mode=dark]{--language-border-color: #2d2d2d;--highlight-bg-color: #151515;--highlighter-rouge-color: #c9def1;--highlight-lineno-color: #808080;--inline-code-bg: #323238;--code-color: #b0b0b0;--code-header-text-color: #6a6a6a;--code-header-muted-color: #353535;--code-header-icon-color: #565656;--clipboard-checked-color: #2bcc2b;--filepath-text-color: #cacaca}html:not([data-mode]) .highlight .gp,html[data-mode=dark] .highlight .gp{color:#87939d}html:not([data-mode]) .highlight table td,html[data-mode=dark] .highlight table td{padding:5px}html:not([data-mode]) .highlight table pre,html[data-mode=dark] .highlight table pre{margin:0}html:not([data-mode]) .highlight,html:not([data-mode]) .highlight .w,html[data-mode=dark] .highlight,html[data-mode=dark] .highlight .w{color:#d0d0d0;background-color:#151515}html:not([data-mode]) .highlight .err,html[data-mode=dark] .highlight .err{color:#151515;background-color:#ac4142}html:not([data-mode]) .highlight .c,html:not([data-mode]) .highlight .ch,html:not([data-mode]) .highlight .cd,html:not([data-mode]) .highlight .cm,html:not([data-mode]) .highlight .cpf,html:not([data-mode]) .highlight .c1,html:not([data-mode]) .highlight .cs,html[data-mode=dark] .highlight .c,html[data-mode=dark] .highlight .ch,html[data-mode=dark] .highlight .cd,html[data-mode=dark] .highlight .cm,html[data-mode=dark] .highlight .cpf,html[data-mode=dark] .highlight .c1,html[data-mode=dark] .highlight .cs{color:#848484}html:not([data-mode]) .highlight .cp,html[data-mode=dark] .highlight .cp{color:#f4bf75}html:not([data-mode]) .highlight .nt,html[data-mode=dark] .highlight .nt{color:#f4bf75}html:not([data-mode]) .highlight .o,html:not([data-mode]) .highlight .ow,html[data-mode=dark] .highlight .o,html[data-mode=dark] .highlight .ow{color:#d0d0d0}html:not([data-mode]) .highlight .p,html:not([data-mode]) .highlight .pi,html[data-mode=dark] .highlight .p,html[data-mode=dark] .highlight .pi{color:#d0d0d0}html:not([data-mode]) .highlight .gi,html[data-mode=dark] .highlight .gi{color:#90a959}html:not([data-mode]) .highlight .gd,html[data-mode=dark] .highlight .gd{color:#f08a8b;background-color:#320000}html:not([data-mode]) .highlight .gh,html[data-mode=dark] .highlight .gh{color:#6a9fb5;background-color:#151515;font-weight:bold}html:not([data-mode]) .highlight .k,html:not([data-mode]) .highlight .kn,html:not([data-mode]) .highlight .kp,html:not([data-mode]) .highlight .kr,html:not([data-mode]) .highlight .kv,html[data-mode=dark] .highlight .k,html[data-mode=dark] .highlight .kn,html[data-mode=dark] .highlight .kp,html[data-mode=dark] .highlight .kr,html[data-mode=dark] .highlight .kv{color:#aa759f}html:not([data-mode]) .highlight .kc,html[data-mode=dark] .highlight .kc{color:#d28445}html:not([data-mode]) .highlight .kt,html[data-mode=dark] .highlight .kt{color:#d28445}html:not([data-mode]) .highlight .kd,html[data-mode=dark] .highlight .kd{color:#d28445}html:not([data-mode]) .highlight .s,html:not([data-mode]) .highlight .sb,html:not([data-mode]) .highlight .sc,html:not([data-mode]) .highlight .dl,html:not([data-mode]) .highlight .sd,html:not([data-mode]) .highlight .s2,html:not([data-mode]) .highlight .sh,html:not([data-mode]) .highlight .sx,html:not([data-mode]) .highlight .s1,html[data-mode=dark] .highlight .s,html[data-mode=dark] .highlight .sb,html[data-mode=dark] .highlight .sc,html[data-mode=dark] .highlight .dl,html[data-mode=dark] .highlight .sd,html[data-mode=dark] .highlight .s2,html[data-mode=dark] .highlight .sh,html[data-mode=dark] .highlight .sx,html[data-mode=dark] .highlight .s1{color:#90a959}html:not([data-mode]) .highlight .sa,html[data-mode=dark] .highlight .sa{color:#aa759f}html:not([data-mode]) .highlight .sr,html[data-mode=dark] .highlight .sr{color:#75b5aa}html:not([data-mode]) .highlight .si,html[data-mode=dark] .highlight .si{color:#b76d45}html:not([data-mode]) .highlight .se,html[data-mode=dark] .highlight .se{color:#b76d45}html:not([data-mode]) .highlight .nn,html[data-mode=dark] .highlight .nn{color:#f4bf75}html:not([data-mode]) .highlight .nc,html[data-mode=dark] .highlight .nc{color:#f4bf75}html:not([data-mode]) .highlight .no,html[data-mode=dark] .highlight .no{color:#f4bf75}html:not([data-mode]) .highlight .na,html[data-mode=dark] .highlight .na{color:#6a9fb5}html:not([data-mode]) .highlight .m,html:not([data-mode]) .highlight .mb,html:not([data-mode]) .highlight .mf,html:not([data-mode]) .highlight .mh,html:not([data-mode]) .highlight .mi,html:not([data-mode]) .highlight .il,html:not([data-mode]) .highlight .mo,html:not([data-mode]) .highlight .mx,html[data-mode=dark] .highlight .m,html[data-mode=dark] .highlight .mb,html[data-mode=dark] .highlight .mf,html[data-mode=dark] .highlight .mh,html[data-mode=dark] .highlight .mi,html[data-mode=dark] .highlight .il,html[data-mode=dark] .highlight .mo,html[data-mode=dark] .highlight .mx{color:#90a959}html:not([data-mode]) .highlight .ss,html[data-mode=dark] .highlight .ss{color:#90a959}html[data-mode=light]{--language-border-color: #ececec;--highlight-bg-color: #f6f8fa;--highlighter-rouge-color: #3f596f;--highlight-lineno-color: #9e9e9e;--inline-code-bg: #f6f6f7;--code-color: #3a3a3a;--code-header-text-color: #a3a3a3;--code-header-muted-color: #e5e5e5;--code-header-icon-color: #c9c8c8;--clipboard-checked-color: #43c743}html[data-mode=light] [class^=prompt-]{--inline-code-bg: #fbfafa}html[data-mode=light] .highlight table td{padding:5px}html[data-mode=light] .highlight table pre{margin:0}html[data-mode=light] .highlight,html[data-mode=light] .highlight .w{color:#24292f;background-color:#f6f8fa}html[data-mode=light] .highlight .k,html[data-mode=light] .highlight .kd,html[data-mode=light] .highlight .kn,html[data-mode=light] .highlight .kp,html[data-mode=light] .highlight .kr,html[data-mode=light] .highlight .kt,html[data-mode=light] .highlight .kv{color:#cf222e}html[data-mode=light] .highlight .gr{color:#f6f8fa}html[data-mode=light] .highlight .gd{color:#82071e;background-color:#ffebe9}html[data-mode=light] .highlight .nb{color:#953800}html[data-mode=light] .highlight .nc{color:#953800}html[data-mode=light] .highlight .no{color:#953800}html[data-mode=light] .highlight .nn{color:#953800}html[data-mode=light] .highlight .sr{color:#116329}html[data-mode=light] .highlight .na{color:#116329}html[data-mode=light] .highlight .nt{color:#116329}html[data-mode=light] .highlight .gi{color:#116329;background-color:#dafbe1}html[data-mode=light] .highlight .kc{color:#0550ae}html[data-mode=light] .highlight .l,html[data-mode=light] .highlight .ld,html[data-mode=light] .highlight .m,html[data-mode=light] .highlight .mb,html[data-mode=light] .highlight .mf,html[data-mode=light] .highlight .mh,html[data-mode=light] .highlight .mi,html[data-mode=light] .highlight .il,html[data-mode=light] .highlight .mo,html[data-mode=light] .highlight .mx{color:#0550ae}html[data-mode=light] .highlight .sb{color:#0550ae}html[data-mode=light] .highlight .bp{color:#0550ae}html[data-mode=light] .highlight .ne{color:#0550ae}html[data-mode=light] .highlight .nl{color:#0550ae}html[data-mode=light] .highlight .py{color:#0550ae}html[data-mode=light] .highlight .nv,html[data-mode=light] .highlight .vc,html[data-mode=light] .highlight .vg,html[data-mode=light] .highlight .vi,html[data-mode=light] .highlight .vm{color:#0550ae}html[data-mode=light] .highlight .o,html[data-mode=light] .highlight .ow{color:#0550ae}html[data-mode=light] .highlight .gh{color:#0550ae;font-weight:bold}html[data-mode=light] .highlight .gu{color:#0550ae;font-weight:bold}html[data-mode=light] .highlight .s,html[data-mode=light] .highlight .sa,html[data-mode=light] .highlight .sc,html[data-mode=light] .highlight .dl,html[data-mode=light] .highlight .sd,html[data-mode=light] .highlight .s2,html[data-mode=light] .highlight .se,html[data-mode=light] .highlight .sh,html[data-mode=light] .highlight .sx,html[data-mode=light] .highlight .s1,html[data-mode=light] .highlight .ss{color:#0a3069}html[data-mode=light] .highlight .nd{color:#8250df}html[data-mode=light] .highlight .nf,html[data-mode=light] .highlight .fm{color:#8250df}html[data-mode=light] .highlight .err{color:#f6f8fa;background-color:#82071e}html[data-mode=light] .highlight .c,html[data-mode=light] .highlight .ch,html[data-mode=light] .highlight .cd,html[data-mode=light] .highlight .cm,html[data-mode=light] .highlight .cp,html[data-mode=light] .highlight .cpf,html[data-mode=light] .highlight .c1,html[data-mode=light] .highlight .cs{color:#68717a}html[data-mode=light] .highlight .gl{color:#68717a}html[data-mode=light] .highlight .gt{color:#68717a}html[data-mode=light] .highlight .ni{color:#24292f}html[data-mode=light] .highlight .si{color:#24292f}html[data-mode=light] .highlight .ge{color:#24292f;font-style:italic}html[data-mode=light] .highlight .gs{color:#24292f;font-weight:bold}}div[class^=language-],figure.highlight,.highlight{background-color:var(--highlight-bg-color)}td.rouge-code{padding-left:1rem;padding-right:1.5rem}.highlighter-rouge{color:var(--highlighter-rouge-color);margin-top:.5rem;margin-bottom:1.2em}.highlight{overflow:auto;padding-bottom:.75rem}.highlight pre{margin-bottom:0;font-size:.85rem;line-height:1.4rem;word-wrap:normal}.highlight table td:first-child{display:inline-block;margin-left:1rem;margin-right:.75rem}.highlight table td:last-child{padding-right:2rem !important}.highlight table td pre{overflow:visible;word-break:normal}.highlight .lineno{text-align:right;color:var(--highlight-lineno-color);-webkit-user-select:none;-moz-user-select:none;-o-user-select:none;-ms-user-select:none;user-select:none}code{-webkit-hyphens:none;-ms-hyphens:none;hyphens:none;color:var(--code-color)}code.highlighter-rouge{font-size:.85rem;padding:3px 5px;word-break:break-word;border-radius:4px;background-color:var(--inline-code-bg)}code.filepath{background-color:inherit;color:var(--filepath-text-color);font-weight:600;padding:0}a>code.highlighter-rouge{padding-bottom:0;color:inherit}a:hover>code.highlighter-rouge{border-bottom:none}blockquote code{color:inherit}td.rouge-code a{color:inherit !important;border-bottom:none !important;pointer-events:none}div[class^=language-]{box-shadow:var(--language-border-color) 0 0 0 1px}.content>div[class^=language-]{margin-left:-1rem;margin-right:-1rem;border-radius:0}div[class^=language-] .highlight{border-top-left-radius:0;border-top-right-radius:0}div.nolineno td:first-child,div.language-plaintext td:first-child,div.language-console td:first-child,div.language-terminal td:first-child{padding:0 !important;margin-right:0}div.nolineno td:first-child .lineno,div.language-plaintext td:first-child .lineno,div.language-console td:first-child .lineno,div.language-terminal td:first-child .lineno{display:none}.code-header{display:flex;justify-content:space-between;align-items:center;height:2.25rem;margin-left:.75rem;margin-right:.25rem}.code-header span{line-height:2.25rem}.code-header span i{font-size:1rem;width:1.75rem;color:var(--code-header-icon-color)}.code-header span i.small{font-size:70%}[file] .code-header span>i{position:relative;top:1px}.code-header span::after{content:attr(data-label-text);font-size:.85rem;font-weight:600;color:var(--code-header-text-color)}.code-header button{border:1px solid rgba(0,0,0,0);height:2.25rem;width:2.25rem;padding:0;background-color:inherit}.code-header button i{color:var(--code-header-icon-color)}.code-header button[timeout]:hover{border-color:var(--clipboard-checked-color)}.code-header button[timeout] i{color:var(--clipboard-checked-color)}.code-header button:focus{outline:none}.code-header button:not([timeout]):hover{background-color:rgba(128,128,128,.37)}.code-header button:not([timeout]):hover i{color:#fff}@media all and (min-width: 576px){.content>div[class^=language-]{margin-left:0;margin-right:0;border-radius:.625rem}div[class^=language-] .code-header{margin-left:0;margin-right:0}div[class^=language-] .code-header::before{content:"";display:inline-block;margin-left:1rem;width:.75rem;height:.75rem;border-radius:50%;background-color:var(--code-header-muted-color);box-shadow:1.25rem 0 0 var(--code-header-muted-color),2.5rem 0 0 var(--code-header-muted-color)}div[class^=language-] .code-header span{margin-left:-0.875rem}}html{font-size:16px}@media(prefers-color-scheme: light){html:not([data-mode]),html[data-mode=light]{--main-bg: white;--mask-bg: #c1c3c5;--main-border-color: #f3f3f3;--text-color: #34343c;--text-muted-color: #757575;--text-muted-hightlight-color: inherit;--heading-color: #2a2a2a;--label-color: #585858;--blockquote-border-color: #eeeeee;--blockquote-text-color: #757575;--link-color: #0056b2;--link-underline-color: #dee2e6;--button-bg: #ffffff;--btn-border-color: #e9ecef;--btn-backtotop-color: #686868;--btn-backtotop-border-color: #f1f1f1;--btn-box-shadow: #eaeaea;--checkbox-color: #c5c5c5;--checkbox-checked-color: #07a8f7;--img-bg: radial-gradient( circle, rgb(255, 255, 255) 0%, rgb(239, 239, 239) 100% );--shimmer-bg: linear-gradient( 90deg, rgba(250, 250, 250, 0) 0%, rgba(232, 230, 230, 1) 50%, rgba(250, 250, 250, 0) 100% );--site-title-color: rgb(113, 113, 113);--site-subtitle-color: #717171;--sidebar-bg: #f6f8fa;--sidebar-border-color: #efefef;--sidebar-muted-color: #545454;--sidebar-active-color: #1d1d1d;--sidebar-hover-bg: rgb(223, 233, 241, 0.64);--sidebar-btn-bg: white;--sidebar-btn-color: #8e8e8e;--avatar-border-color: white;--topbar-bg: rgb(255, 255, 255, 0.7);--topbar-text-color: rgb(78, 78, 78);--search-border-color: rgb(240, 240, 240);--search-icon-color: #c2c6cc;--input-focus-border-color: #b8b8b8;--post-list-text-color: dimgray;--btn-patinator-text-color: #555555;--btn-paginator-hover-color: var(--sidebar-bg);--toc-highlight: #0550ae;--btn-share-color: gray;--btn-share-hover-color: #0d6efd;--card-bg: white;--card-hovor-bg: #e2e2e2;--card-shadow: rgb(104, 104, 104, 0.05) 0 2px 6px 0, rgba(211, 209, 209, 0.15) 0 0 0 1px;--footnote-target-bg: lightcyan;--tb-odd-bg: #fbfcfd;--tb-border-color: #eaeaea;--dash-color: silver;--kbd-wrap-color: #bdbdbd;--kbd-text-color: var(--text-color);--kbd-bg-color: white;--prompt-text-color: rgb(46, 46, 46, 0.77);--prompt-tip-bg: rgb(123, 247, 144, 0.2);--prompt-tip-icon-color: #03b303;--prompt-info-bg: #e1f5fe;--prompt-info-icon-color: #0070cb;--prompt-warning-bg: rgb(255, 243, 205);--prompt-warning-icon-color: #ef9c03;--prompt-danger-bg: rgb(248, 215, 218, 0.56);--prompt-danger-icon-color: #df3c30;--tag-border: #dee2e6;--tag-shadow: var(--btn-border-color);--tag-hover: rgb(222, 226, 230);--search-tag-bg: #f8f9fa;--categories-border: rgba(0, 0, 0, 0.125);--categories-hover-bg: var(--btn-border-color);--categories-icon-hover-color: darkslategray;--timeline-color: rgba(0, 0, 0, 0.075);--timeline-node-bg: #c2c6cc;--timeline-year-dot-color: #ffffff}html:not([data-mode]) [class^=prompt-],html[data-mode=light] [class^=prompt-]{--link-underline-color: rgb(219, 216, 216)}html:not([data-mode]) .dark,html[data-mode=light] .dark{display:none}html[data-mode=dark]{--main-bg: rgb(27, 27, 30);--mask-bg: rgb(68, 69, 70);--main-border-color: rgb(44, 45, 45);--text-color: rgb(175, 176, 177);--text-muted-color: #868686;--text-muted-hightlight-color: #aeaeae;--heading-color: #cccccc;--label-color: #a7a7a7;--blockquote-border-color: rgb(66, 66, 66);--blockquote-text-color: #868686;--link-color: rgb(138, 180, 248);--link-underline-color: rgb(82, 108, 150);--button-bg: #1e1e1e;--btn-border-color: #2e2f31;--btn-backtotop-color: var(--text-color);--btn-backtotop-border-color: #212122;--btn-box-shadow: var(--main-bg);--card-header-bg: #292929;--checkbox-color: rgb(118, 120, 121);--checkbox-checked-color: var(--link-color);--img-bg: radial-gradient(circle, rgb(22, 22, 24) 0%, rgb(32, 32, 32) 100%);--shimmer-bg: linear-gradient( 90deg, rgba(255, 255, 255, 0) 0%, rgba(58, 55, 55, 0.4) 50%, rgba(255, 255, 255, 0) 100% );--site-title-color: #717070;--site-subtitle-color: #868686;--sidebar-bg: #1e1e1e;--sidebar-border-color: #292929;--sidebar-muted-color: #868686;--sidebar-active-color: rgb(255, 255, 255, 0.95);--sidebar-hover-bg: #262626;--sidebar-btn-bg: #232328;--sidebar-btn-color: #787878;--avatar-border-color: rgb(206, 206, 206, 0.9);--topbar-bg: rgb(27, 27, 30, 0.64);--topbar-text-color: var(--text-color);--search-border-color: rgb(55, 55, 55);--search-icon-color: rgb(100, 102, 105);--input-focus-border-color: rgb(112, 114, 115);--post-list-text-color: rgb(175, 176, 177);--btn-patinator-text-color: var(--text-color);--btn-paginator-hover-color: #2e2e2e;--toc-highlight: rgb(116, 178, 243);--tag-hover: rgb(43, 56, 62);--tb-odd-bg: #252526;--tb-even-bg: rgb(31, 31, 34);--tb-border-color: var(--tb-odd-bg);--footnote-target-bg: rgb(63, 81, 181);--btn-share-color: #6c757d;--btn-share-hover-color: #bfc1ca;--card-bg: #1e1e1e;--card-hovor-bg: #464d51;--card-shadow: rgb(21, 21, 21, 0.72) 0 6px 18px 0, rgb(137, 135, 135, 0.24) 0 0 0 1px;--kbd-wrap-color: #6a6a6a;--kbd-text-color: #d3d3d3;--kbd-bg-color: #242424;--prompt-text-color: rgb(216, 212, 212, 0.75);--prompt-tip-bg: rgb(22, 60, 36, 0.64);--prompt-tip-icon-color: rgb(15, 164, 15, 0.81);--prompt-info-bg: rgb(7, 59, 104, 0.8);--prompt-info-icon-color: #0075d1;--prompt-warning-bg: rgb(90, 69, 3, 0.88);--prompt-warning-icon-color: rgb(255, 165, 0, 0.8);--prompt-danger-bg: rgb(86, 28, 8, 0.8);--prompt-danger-icon-color: #cd0202;--tag-border: rgb(59, 79, 88);--tag-shadow: rgb(32, 33, 33);--dash-color: rgb(63, 65, 68);--search-tag-bg: #292828;--categories-border: rgb(64, 66, 69, 0.5);--categories-hover-bg: rgb(73, 75, 76);--categories-icon-hover-color: white;--timeline-node-bg: rgb(150, 152, 156);--timeline-color: rgb(63, 65, 68);--timeline-year-dot-color: var(--timeline-color);color-scheme:dark}html[data-mode=dark] .light{display:none}html[data-mode=dark] .categories.card,html[data-mode=dark] .list-group-item{background-color:var(--card-bg)}html[data-mode=dark] .categories .card-header{background-color:var(--card-header-bg)}html[data-mode=dark] .categories .list-group-item{border-left:none;border-right:none;padding-left:2rem;border-color:var(--categories-border)}html[data-mode=dark] .categories .list-group-item:last-child{border-bottom-color:var(--card-bg)}html[data-mode=dark] #archives li:nth-child(odd){background-image:linear-gradient(to left, rgb(26, 26, 30), rgb(39, 39, 45), rgb(39, 39, 45), rgb(39, 39, 45), rgb(26, 26, 30))}html[data-mode=dark] #disqus_thread{color-scheme:none}}@media(prefers-color-scheme: dark){html:not([data-mode]),html[data-mode=dark]{--main-bg: rgb(27, 27, 30);--mask-bg: rgb(68, 69, 70);--main-border-color: rgb(44, 45, 45);--text-color: rgb(175, 176, 177);--text-muted-color: #868686;--text-muted-hightlight-color: #aeaeae;--heading-color: #cccccc;--label-color: #a7a7a7;--blockquote-border-color: rgb(66, 66, 66);--blockquote-text-color: #868686;--link-color: rgb(138, 180, 248);--link-underline-color: rgb(82, 108, 150);--button-bg: #1e1e1e;--btn-border-color: #2e2f31;--btn-backtotop-color: var(--text-color);--btn-backtotop-border-color: #212122;--btn-box-shadow: var(--main-bg);--card-header-bg: #292929;--checkbox-color: rgb(118, 120, 121);--checkbox-checked-color: var(--link-color);--img-bg: radial-gradient(circle, rgb(22, 22, 24) 0%, rgb(32, 32, 32) 100%);--shimmer-bg: linear-gradient( 90deg, rgba(255, 255, 255, 0) 0%, rgba(58, 55, 55, 0.4) 50%, rgba(255, 255, 255, 0) 100% );--site-title-color: #717070;--site-subtitle-color: #868686;--sidebar-bg: #1e1e1e;--sidebar-border-color: #292929;--sidebar-muted-color: #868686;--sidebar-active-color: rgb(255, 255, 255, 0.95);--sidebar-hover-bg: #262626;--sidebar-btn-bg: #232328;--sidebar-btn-color: #787878;--avatar-border-color: rgb(206, 206, 206, 0.9);--topbar-bg: rgb(27, 27, 30, 0.64);--topbar-text-color: var(--text-color);--search-border-color: rgb(55, 55, 55);--search-icon-color: rgb(100, 102, 105);--input-focus-border-color: rgb(112, 114, 115);--post-list-text-color: rgb(175, 176, 177);--btn-patinator-text-color: var(--text-color);--btn-paginator-hover-color: #2e2e2e;--toc-highlight: rgb(116, 178, 243);--tag-hover: rgb(43, 56, 62);--tb-odd-bg: #252526;--tb-even-bg: rgb(31, 31, 34);--tb-border-color: var(--tb-odd-bg);--footnote-target-bg: rgb(63, 81, 181);--btn-share-color: #6c757d;--btn-share-hover-color: #bfc1ca;--card-bg: #1e1e1e;--card-hovor-bg: #464d51;--card-shadow: rgb(21, 21, 21, 0.72) 0 6px 18px 0, rgb(137, 135, 135, 0.24) 0 0 0 1px;--kbd-wrap-color: #6a6a6a;--kbd-text-color: #d3d3d3;--kbd-bg-color: #242424;--prompt-text-color: rgb(216, 212, 212, 0.75);--prompt-tip-bg: rgb(22, 60, 36, 0.64);--prompt-tip-icon-color: rgb(15, 164, 15, 0.81);--prompt-info-bg: rgb(7, 59, 104, 0.8);--prompt-info-icon-color: #0075d1;--prompt-warning-bg: rgb(90, 69, 3, 0.88);--prompt-warning-icon-color: rgb(255, 165, 0, 0.8);--prompt-danger-bg: rgb(86, 28, 8, 0.8);--prompt-danger-icon-color: #cd0202;--tag-border: rgb(59, 79, 88);--tag-shadow: rgb(32, 33, 33);--dash-color: rgb(63, 65, 68);--search-tag-bg: #292828;--categories-border: rgb(64, 66, 69, 0.5);--categories-hover-bg: rgb(73, 75, 76);--categories-icon-hover-color: white;--timeline-node-bg: rgb(150, 152, 156);--timeline-color: rgb(63, 65, 68);--timeline-year-dot-color: var(--timeline-color);color-scheme:dark}html:not([data-mode]) .light,html[data-mode=dark] .light{display:none}html:not([data-mode]) .categories.card,html:not([data-mode]) .list-group-item,html[data-mode=dark] .categories.card,html[data-mode=dark] .list-group-item{background-color:var(--card-bg)}html:not([data-mode]) .categories .card-header,html[data-mode=dark] .categories .card-header{background-color:var(--card-header-bg)}html:not([data-mode]) .categories .list-group-item,html[data-mode=dark] .categories .list-group-item{border-left:none;border-right:none;padding-left:2rem;border-color:var(--categories-border)}html:not([data-mode]) .categories .list-group-item:last-child,html[data-mode=dark] .categories .list-group-item:last-child{border-bottom-color:var(--card-bg)}html:not([data-mode]) #archives li:nth-child(odd),html[data-mode=dark] #archives li:nth-child(odd){background-image:linear-gradient(to left, rgb(26, 26, 30), rgb(39, 39, 45), rgb(39, 39, 45), rgb(39, 39, 45), rgb(26, 26, 30))}html:not([data-mode]) #disqus_thread,html[data-mode=dark] #disqus_thread{color-scheme:none}html[data-mode=light]{--main-bg: white;--mask-bg: #c1c3c5;--main-border-color: #f3f3f3;--text-color: #34343c;--text-muted-color: #757575;--text-muted-hightlight-color: inherit;--heading-color: #2a2a2a;--label-color: #585858;--blockquote-border-color: #eeeeee;--blockquote-text-color: #757575;--link-color: #0056b2;--link-underline-color: #dee2e6;--button-bg: #ffffff;--btn-border-color: #e9ecef;--btn-backtotop-color: #686868;--btn-backtotop-border-color: #f1f1f1;--btn-box-shadow: #eaeaea;--checkbox-color: #c5c5c5;--checkbox-checked-color: #07a8f7;--img-bg: radial-gradient( circle, rgb(255, 255, 255) 0%, rgb(239, 239, 239) 100% );--shimmer-bg: linear-gradient( 90deg, rgba(250, 250, 250, 0) 0%, rgba(232, 230, 230, 1) 50%, rgba(250, 250, 250, 0) 100% );--site-title-color: rgb(113, 113, 113);--site-subtitle-color: #717171;--sidebar-bg: #f6f8fa;--sidebar-border-color: #efefef;--sidebar-muted-color: #545454;--sidebar-active-color: #1d1d1d;--sidebar-hover-bg: rgb(223, 233, 241, 0.64);--sidebar-btn-bg: white;--sidebar-btn-color: #8e8e8e;--avatar-border-color: white;--topbar-bg: rgb(255, 255, 255, 0.7);--topbar-text-color: rgb(78, 78, 78);--search-border-color: rgb(240, 240, 240);--search-icon-color: #c2c6cc;--input-focus-border-color: #b8b8b8;--post-list-text-color: dimgray;--btn-patinator-text-color: #555555;--btn-paginator-hover-color: var(--sidebar-bg);--toc-highlight: #0550ae;--btn-share-color: gray;--btn-share-hover-color: #0d6efd;--card-bg: white;--card-hovor-bg: #e2e2e2;--card-shadow: rgb(104, 104, 104, 0.05) 0 2px 6px 0, rgba(211, 209, 209, 0.15) 0 0 0 1px;--footnote-target-bg: lightcyan;--tb-odd-bg: #fbfcfd;--tb-border-color: #eaeaea;--dash-color: silver;--kbd-wrap-color: #bdbdbd;--kbd-text-color: var(--text-color);--kbd-bg-color: white;--prompt-text-color: rgb(46, 46, 46, 0.77);--prompt-tip-bg: rgb(123, 247, 144, 0.2);--prompt-tip-icon-color: #03b303;--prompt-info-bg: #e1f5fe;--prompt-info-icon-color: #0070cb;--prompt-warning-bg: rgb(255, 243, 205);--prompt-warning-icon-color: #ef9c03;--prompt-danger-bg: rgb(248, 215, 218, 0.56);--prompt-danger-icon-color: #df3c30;--tag-border: #dee2e6;--tag-shadow: var(--btn-border-color);--tag-hover: rgb(222, 226, 230);--search-tag-bg: #f8f9fa;--categories-border: rgba(0, 0, 0, 0.125);--categories-hover-bg: var(--btn-border-color);--categories-icon-hover-color: darkslategray;--timeline-color: rgba(0, 0, 0, 0.075);--timeline-node-bg: #c2c6cc;--timeline-year-dot-color: #ffffff}html[data-mode=light] [class^=prompt-]{--link-underline-color: rgb(219, 216, 216)}html[data-mode=light] .dark{display:none}}body{background:var(--main-bg);padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);color:var(--text-color);-webkit-font-smoothing:antialiased;font-family:"Source Sans Pro","Microsoft Yahei",sans-serif}h1{font-size:1.92rem}h2{font-size:1.54rem}h3{font-size:1.36rem}h4{font-size:1.18rem}h5{font-size:1rem}a{text-decoration:none}img{max-width:100%;height:auto;transition:all .35s ease-in-out}.blur img{-webkit-filter:blur(20px);filter:blur(20px)}blockquote{border-left:5px solid var(--blockquote-border-color);padding-left:1rem;color:var(--blockquote-text-color)}blockquote>p:last-child{margin-bottom:0}blockquote[class^=prompt-]{border-left:0;position:relative;padding:1rem 1rem 1rem 3rem;color:var(--prompt-text-color)}blockquote[class^=prompt-]::before{text-align:center;width:3rem;position:absolute;left:.25rem;margin-top:.4rem;text-rendering:auto;-webkit-font-smoothing:antialiased}blockquote.prompt-tip{background-color:var(--prompt-tip-bg)}blockquote.prompt-tip::before{content:"";color:var(--prompt-tip-icon-color);font:var(--fa-font-regular)}blockquote.prompt-info{background-color:var(--prompt-info-bg)}blockquote.prompt-info::before{content:"";color:var(--prompt-info-icon-color);font:var(--fa-font-solid)}blockquote.prompt-warning{background-color:var(--prompt-warning-bg)}blockquote.prompt-warning::before{content:"";color:var(--prompt-warning-icon-color);font:var(--fa-font-solid)}blockquote.prompt-danger{background-color:var(--prompt-danger-bg)}blockquote.prompt-danger::before{content:"";color:var(--prompt-danger-icon-color);font:var(--fa-font-solid)}kbd{font-family:inherit;display:inline-block;vertical-align:middle;line-height:1.3rem;min-width:1.75rem;text-align:center;margin:0 .3rem;padding-top:.1rem;color:var(--kbd-text-color);background-color:var(--kbd-bg-color);border-radius:.25rem;border:solid 1px var(--kbd-wrap-color);box-shadow:inset 0 -2px 0 var(--kbd-wrap-color)}hr{border-color:var(--main-border-color);opacity:1}footer{background-color:var(--main-bg);height:5rem;border-top:1px solid var(--main-border-color)}footer p{text-align:center;margin-bottom:0}.access{top:2rem;transition:top .2s ease-in-out;margin-top:3rem;margin-bottom:4rem}.access:only-child{position:-webkit-sticky;position:sticky}.access>section{padding-left:1rem;border-left:1px solid var(--main-border-color)}.access>section:not(:last-child){margin-bottom:4rem}.access .content{font-size:.9rem}#panel-wrapper .panel-heading{font-family:inherit;line-height:inherit;color:var(--label-color);font-size:inherit;font-weight:600}#panel-wrapper .post-tag{line-height:1.05rem;font-size:.85rem;border-radius:.8rem;padding:.3rem .5rem;margin:0 .35rem .5rem 0}#panel-wrapper .post-tag:hover{transition:all .3s ease-in}#access-lastmod a{color:inherit}.footnotes>ol{padding-left:2rem;margin-top:.5rem}.footnotes>ol>li:not(:last-child){margin-bottom:.3rem}.footnotes>ol>li>p{margin-left:.25em;margin-top:0;margin-bottom:0}a.footnote{margin-left:1px;margin-right:1px;padding-left:2px;padding-right:2px;border-bottom-style:none !important}a.reversefootnote{font-size:.6rem;line-height:1;position:relative;bottom:.25em;margin-left:.25em;border-bottom-style:none !important}.table-wrapper{overflow-x:auto;margin-bottom:1.5rem}.table-wrapper>table{min-width:100%;overflow-x:auto;border-spacing:0}.table-wrapper>table thead{border-bottom:solid 2px rgba(210,215,217,.75)}.table-wrapper>table tbody tr{border-bottom:1px solid var(--tb-border-color)}.table-wrapper>table tbody tr:nth-child(2n){background-color:var(--tb-even-bg)}.table-wrapper>table tbody tr:nth-child(2n+1){background-color:var(--tb-odd-bg)}.preview-img{aspect-ratio:40/21;width:100%;height:100%;overflow:hidden}.preview-img:not(.no-bg){background:var(--img-bg)}.preview-img img{height:100%;-o-object-fit:cover;object-fit:cover}#post-list .preview-img img{width:100%}.post-preview{border:0;background:var(--card-bg);box-shadow:var(--card-shadow)}.post-preview::before{content:"";width:100%;height:100%;position:absolute;background-color:var(--card-hovor-bg);opacity:0;transition:opacity .35s ease-in-out}.post-preview:hover::before{opacity:.3}main{line-height:1.75}main h1{margin-top:2rem}main p>a.popup:not(.normal):not(.left):not(.right){position:relative;left:50%;transform:translateX(-50%)}.content{font-size:1.08rem;margin-top:2rem;overflow-wrap:break-word}.content a.popup{margin-top:.5rem;margin-bottom:.5rem;cursor:zoom-in}.content ol:not([class]),.content ol.task-list,.content ul:not([class]),.content ul.task-list{-webkit-padding-start:1.75rem;padding-inline-start:1.75rem}.content ol:not([class]) li,.content ol.task-list li,.content ul:not([class]) li,.content ul.task-list li{margin:.25rem 0;padding-left:.25rem}.content ol:not([class]) ol,.content ol:not([class]) ul,.content ol.task-list ol,.content ol.task-list ul,.content ul:not([class]) ol,.content ul:not([class]) ul,.content ul.task-list ol,.content ul.task-list ul{-webkit-padding-start:1.25rem;padding-inline-start:1.25rem;margin:.5rem 0}.content ul.task-list{-webkit-padding-start:1.25rem;padding-inline-start:1.25rem}.content ul.task-list li{list-style-type:none;padding-left:0}.content ul.task-list li>i{width:2rem;margin-left:-1.25rem;color:var(--checkbox-color)}.content ul.task-list li>i.checked{color:var(--checkbox-checked-color)}.content ul.task-list li ul{-webkit-padding-start:1.75rem;padding-inline-start:1.75rem}.content ul.task-list input[type=checkbox]{margin:0 .5rem .2rem -1.3rem;vertical-align:middle}.content dl>dd{margin-left:1rem}.content ::marker{color:var(--text-muted-color)}.post-tag{display:inline-block;min-width:2rem;text-align:center;border-radius:.5rem;border:1px solid var(--btn-border-color);padding:0 .4rem;color:var(--text-muted-color);line-height:1.3rem}.post-tag:not(:last-child){margin-right:.2rem}.rounded-10{border-radius:10px !important}.img-link{color:rgba(0,0,0,0);display:inline-flex}.shimmer{overflow:hidden;position:relative;background:var(--img-bg)}.shimmer::before{content:"";position:absolute;background:var(--shimmer-bg);height:100%;width:100%;-webkit-animation:shimmer 1.3s infinite;animation:shimmer 1.3s infinite}@-webkit-keyframes shimmer{0%{transform:translateX(-100%)}100%{transform:translateX(100%)}}@keyframes shimmer{0%{transform:translateX(-100%)}100%{transform:translateX(100%)}}.embed-video{width:100%;height:100%;margin-bottom:1rem;aspect-ratio:16/9}.embed-video.twitch{aspect-ratio:310/189}.embed-video.file{display:block;width:auto;height:auto;max-width:100%;max-height:100%;margin:auto;margin-bottom:0}.embed-audio{width:100%;display:block}.btn-lang{border:1px solid !important;padding:1px 3px;border-radius:3px;color:var(--link-color)}.btn-lang:focus{box-shadow:none}.flex-grow-1{flex-grow:1 !important}.btn-box-shadow{box-shadow:var(--card-shadow)}.text-muted{color:var(--text-muted-color) !important}.tooltip-inner{font-size:.7rem;max-width:220px;text-align:left}.btn.btn-outline-primary:not(.disabled):hover{border-color:#007bff !important}.disabled{color:#cec4c4;pointer-events:auto;cursor:not-allowed}.hide-border-bottom{border-bottom:none !important}.input-focus{box-shadow:none;border-color:var(--input-focus-border-color) !important;background:center !important;transition:background-color .15s ease-in-out,border-color .15s ease-in-out}.left{float:left;margin:.75rem 1rem 1rem 0}.right{float:right;margin:.75rem 0 1rem 1rem}.mermaid{text-align:center}mjx-container{overflow-y:hidden;min-width:auto !important}#sidebar{padding-left:0;padding-right:0;position:fixed;top:0;left:0;height:100%;overflow-y:auto;width:260px;z-index:99;background:var(--sidebar-bg);border-right:1px solid var(--sidebar-border-color);-ms-overflow-style:none;scrollbar-width:none}#sidebar::-webkit-scrollbar{display:none}#sidebar .sidebar-bottom #mode-toggle:hover,#sidebar .sidebar-bottom a:hover,#sidebar .site-title a:hover{color:var(--sidebar-active-color)}#sidebar #avatar{display:block;width:7rem;height:7rem;overflow:hidden;box-shadow:var(--avatar-border-color) 0 0 0 2px;transform:translateZ(0)}#sidebar #avatar img{transition:transform .5s}#sidebar #avatar img:hover{transform:scale(1.2)}#sidebar .profile-wrapper{margin-top:2.5rem;margin-bottom:2.5rem;padding-left:2.5rem;padding-right:1.25rem;width:100%}#sidebar .site-title{font-family:inherit;font-weight:900;font-size:1.75rem;line-height:1.2;letter-spacing:.25px;margin-top:1.25rem;margin-bottom:.5rem}#sidebar .site-title a{color:var(--site-title-color)}#sidebar .site-subtitle{font-size:95%;color:var(--site-subtitle-color);margin-top:.25rem;word-spacing:1px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}#sidebar ul{margin-bottom:2rem}#sidebar ul li.nav-item{opacity:.9;width:100%;padding-left:1.5rem;padding-right:1.5rem}#sidebar ul li.nav-item a.nav-link{padding-top:.6rem;padding-bottom:.6rem;display:flex;align-items:center;border-radius:.75rem;font-weight:600}#sidebar ul li.nav-item a.nav-link:hover{background-color:var(--sidebar-hover-bg)}#sidebar ul li.nav-item a.nav-link i{font-size:95%;opacity:.8;margin-right:1.5rem}#sidebar ul li.nav-item a.nav-link span{font-size:90%;letter-spacing:.2px}#sidebar ul li.nav-item.active .nav-link{color:var(--sidebar-active-color);background-color:var(--sidebar-hover-bg)}#sidebar ul li.nav-item.active .nav-link span{opacity:1}#sidebar ul li.nav-item:not(:first-child){margin-top:.25rem}#sidebar .sidebar-bottom{padding-left:2rem;padding-right:1rem;margin-bottom:1.5rem}#sidebar .sidebar-bottom #mode-toggle,#sidebar .sidebar-bottom a{width:1.75rem;height:1.75rem;margin-bottom:.5rem;border-radius:50%;color:var(--sidebar-btn-color);background-color:var(--sidebar-btn-bg);text-align:center;display:flex;align-items:center;justify-content:center}#sidebar .sidebar-bottom #mode-toggle:not(:focus-visible),#sidebar .sidebar-bottom a:not(:focus-visible){box-shadow:var(--sidebar-border-color) 0 0 0 1px}#sidebar .sidebar-bottom #mode-toggle:hover,#sidebar .sidebar-bottom a:hover{background-color:var(--sidebar-hover-bg)}#sidebar .sidebar-bottom a:not(:last-child){margin-right:.8rem}#sidebar .sidebar-bottom i{line-height:1.75rem}#sidebar .sidebar-bottom .icon-border{margin-left:calc((.8rem - 3px)/2);margin-right:calc((.8rem - 3px)/2);background-color:var(--sidebar-btn-color);content:"";width:3px;height:3px;border-radius:50%;margin-bottom:.5rem}@media(hover: hover){#sidebar ul>li:last-child::after{transition:top .5s ease}.nav-link{transition:background-color .3s ease-in-out}.post-preview{transition:background-color .35s ease-in-out}}#search-result-wrapper{display:none;height:100%;width:100%;overflow:auto}#search-result-wrapper .content{margin-top:2rem}#topbar-wrapper{height:3rem;background-color:var(--topbar-bg)}#topbar button i{color:#999}#topbar #breadcrumb{font-size:1rem;color:var(--text-muted-color);padding-left:.5rem}#topbar #breadcrumb span:not(:last-child)::after{content:"›";padding:0 .3rem}::-webkit-input-placeholder{color:var(--text-muted-color) !important}::-moz-placeholder{color:var(--text-muted-color) !important}:-ms-input-placeholder{color:var(--text-muted-color) !important}::-ms-input-placeholder{color:var(--text-muted-color) !important}::placeholder{color:var(--text-muted-color) !important}:focus::-webkit-input-placeholder{opacity:.6}:focus::-moz-placeholder{opacity:.6}:focus:-ms-input-placeholder{opacity:.6}:focus::-ms-input-placeholder{opacity:.6}:focus::placeholder{opacity:.6}search{display:flex;width:100%;border-radius:1rem;border:1px solid var(--search-border-color);background:var(--main-bg);padding:0 .5rem}search i{z-index:2;font-size:.9rem;color:var(--search-icon-color)}#sidebar-trigger,#search-trigger{display:none}#search-cancel{color:var(--link-color);display:none;white-space:nowrap}#search-input{background:center;border:0;border-radius:0;padding:.18rem .3rem;color:var(--text-color);height:auto}#search-input:focus{box-shadow:none}#search-hints{padding:0 1rem}#search-hints h4{margin-bottom:1.5rem}#search-hints .post-tag{display:inline-block;line-height:1rem;font-size:1rem;background:var(--search-tag-bg);border:none;padding:.5rem;margin:0 1.25rem 1rem 0}#search-hints .post-tag::before{content:"#";color:var(--text-muted-color);padding-right:.2rem}#search-results{padding-bottom:3rem}#search-results a{font-size:1.4rem;line-height:2.5rem}#search-results>article{width:100%}#search-results>article:not(:last-child){margin-bottom:1rem}#search-results>article i{color:#818182;margin-right:.15rem;font-size:80%}#search-results>article>p{overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical}#topbar-title{display:none;font-size:1.1rem;font-weight:600;font-family:sans-serif;color:var(--topbar-text-color);text-align:center;width:70%;overflow:hidden;text-overflow:ellipsis;word-break:keep-all;white-space:nowrap}#mask{display:none;position:fixed;inset:0 0 0 0;height:100%;width:100%;z-index:1}[sidebar-display] #mask{display:block !important}#main-wrapper{position:relative;padding-left:0;padding-right:0}#main-wrapper>.container{min-height:100vh}#topbar-wrapper.row,#main-wrapper>.container>.row,#search-result-wrapper>.row{margin-left:0;margin-right:0}#tail-wrapper>:not(script){margin-top:3rem}#back-to-top{visibility:hidden;opacity:0;z-index:1;cursor:pointer;position:fixed;right:1rem;bottom:4.625rem;background:var(--button-bg);color:var(--btn-backtotop-color);padding:0;width:2.75rem;height:2.75rem;border-radius:50%;border:1px solid var(--btn-backtotop-border-color);transition:opacity .5s ease-in-out,transform .2s ease-out}#back-to-top:hover{transform:translate3d(0, -5px, 0);-webkit-transform:translate3d(0, -5px, 0)}#back-to-top i{line-height:2.75rem;position:relative;bottom:2px}#back-to-top.show{opacity:1;visibility:visible}@-webkit-keyframes popup{from{opacity:0;bottom:0}}@keyframes popup{from{opacity:0;bottom:0}}#notification .toast-header{background:none;border-bottom:none;color:inherit}#notification .toast-body{font-family:Lato,sans-serif;line-height:1.25rem}#notification .toast-body button{font-size:90%;min-width:4rem}#notification.toast.show{display:block;min-width:20rem;border-radius:.5rem;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background-color:rgba(255,255,255,.5);color:rgba(27,27,30,.7294117647);position:fixed;left:50%;bottom:20%;transform:translateX(-50%);-webkit-animation:popup .8s;animation:popup .8s}@media all and (max-width: 576px){main .content>blockquote[class^=prompt-]{margin-left:-1rem;margin-right:-1rem;border-radius:0;max-width:none}#avatar{width:5rem;height:5rem}}@media all and (max-width: 768px){#main-wrapper>.container,#topbar{max-width:100%}#main-wrapper>.container{padding-left:0;padding-right:0}}@media all and (max-width: 849px){footer{transition:transform .4s ease;height:6rem;padding:1.5rem 0}[sidebar-display] #sidebar{transform:translateX(0)}[sidebar-display] #main-wrapper{transform:translateX(260px)}[sidebar-display] #back-to-top{visibility:hidden}#sidebar{transition:transform .4s ease;transform:translateX(-260px);-webkit-transform:translateX(-260px)}#main-wrapper{transition:transform .4s ease}#topbar,#main-wrapper>.container{max-width:100%}#search-result-wrapper{width:100%}#breadcrumb,search{display:none}#topbar-wrapper{transition:transform .4s ease,top .2s ease;left:0}main,#panel-wrapper{margin-top:0}#topbar-title,#sidebar-trigger,#search-trigger{display:block}#search-result-wrapper .content{letter-spacing:0}#tags{justify-content:center !important}h1.dynamic-title{display:none}h1.dynamic-title~.content{margin-top:2.5rem}}@media all and (min-width: 850px){html{overflow-y:scroll}#main-wrapper{margin-left:260px}#sidebar .profile-wrapper{margin-top:3rem}#search-hints{display:none}search{max-width:200px}#search-result-wrapper{max-width:1250px;justify-content:start !important}main h1{margin-top:3rem}div.content .table-wrapper>table{min-width:70%}#back-to-top{right:5%;bottom:3.625rem}#topbar-title{text-align:left}}@media all and (min-width: 992px)and (max-width: 1199px){#main-wrapper>.container .col-lg-11{flex:0 0 96%;max-width:96%}}@media all and (min-width: 850px)and (max-width: 1199px){#search-results>div{max-width:700px}#breadcrumb{width:65%;overflow:hidden;text-overflow:ellipsis;word-break:keep-all;white-space:nowrap}}@media all and (max-width: 1199px){#panel-wrapper{display:none}#main-wrapper>.container>div.row{justify-content:center !important}}@media all and (min-width: 1200px){search{margin-right:4rem}#search-input{transition:all .3s ease-in-out}#search-results>article{width:45%}#search-results>article:nth-child(odd){margin-right:1.5rem}#search-results>article:nth-child(even){margin-left:1.5rem}#search-results>article:last-child:nth-child(odd){position:relative;right:24.3%}.content{font-size:1.03rem}}@media all and (min-width: 1400px){#back-to-top{right:calc((100vw - 260px - 1140px)/2 + 3rem)}}@media all and (min-width: 1650px){#main-wrapper{margin-left:300px}#topbar-wrapper{left:300px}search{margin-right:calc(112.5px - .75rem)}#main-wrapper>.container{max-width:1250px;padding-left:1.75rem !important;padding-right:1.75rem !important}main.col-12,#tail-wrapper{padding-right:4.5rem !important}#back-to-top{right:calc((100vw - 300px - 1250px)/2 + 2rem)}#sidebar{width:300px}#sidebar .profile-wrapper{margin-top:3.5rem;margin-bottom:2.5rem;padding-left:3.5rem}#sidebar ul li.nav-item{padding-left:2.75rem;padding-right:2.75rem}#sidebar .sidebar-bottom{padding-left:2.75rem;margin-bottom:1.75rem}#sidebar .sidebar-bottom a:not(:last-child){margin-right:1rem}#sidebar .sidebar-bottom .icon-border{margin-left:calc((1rem - 3px)/2);margin-right:calc((1rem - 3px)/2)}}#post-list{margin-top:2rem}#post-list .card-wrapper:hover{text-decoration:none}#post-list .card-wrapper:not(:last-child){margin-bottom:1.25rem}#post-list .card{border:0;background:none}#post-list .card .preview-img img,#post-list .card .preview-img{border-radius:.625rem .625rem 0 0}#post-list .card .card-body{height:100%;padding:1rem}#post-list .card .card-body .card-title{color:var(--heading-color) !important;font-size:1.25rem}#post-list .card .card-body .post-meta,#post-list .card .card-body .card-text.content{color:var(--text-muted-color) !important}#post-list .card .card-body .card-text.content p{line-height:1.5;margin:0}#post-list .card .card-body .post-meta i:not(:first-child){margin-left:1.5rem}#post-list .card .card-body .post-meta em{color:inherit}#post-list .card .card-body .post-meta>div:first-child{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pagination{color:var(--text-color);font-family:Lato,sans-serif;justify-content:space-evenly}.pagination a:hover{text-decoration:none}.pagination .page-item .page-link{color:var(--btn-patinator-text-color);padding:0 .6rem;display:-webkit-box;-webkit-box-pack:center;-webkit-box-align:center;border-radius:.5rem;border:0;background-color:inherit}.pagination .page-item.active .page-link{background-color:var(--btn-paginator-hover-color)}.pagination .page-item:not(.active) .page-link:hover{box-shadow:inset var(--btn-border-color) 0 0 0 1px}.pagination .page-item.disabled{cursor:not-allowed}.pagination .page-item.disabled .page-link{color:rgba(108,117,125,.57)}@media all and (min-width: 768px){#post-list .card .preview-img,#post-list .card .preview-img img{border-radius:0 .625rem .625rem 0}#post-list .card .card-body{padding:1.75rem 1.75rem 1.25rem 1.75rem}#post-list .card .card-body .card-text{display:inherit !important}#post-list .card .card-body .post-meta i:not(:first-child){margin-left:1.75rem}}@media all and (max-width: 830px){.pagination .page-item:not(:first-child):not(:last-child){display:none}}@media all and (min-width: 831px){#post-list{margin-top:2.5rem}.pagination{font-size:.85rem;justify-content:center}.pagination .page-item:not(:last-child){margin-right:.7rem}.pagination .page-index{display:none}}.post-navigation .btn.disabled,.post-navigation .btn{width:50%;position:relative;border-color:var(--btn-border-color)}header .post-desc{font-size:1.125rem;line-height:1.6}header .post-meta span+span::before{content:"•";padding-left:.25rem;padding-right:.25rem}header .post-meta em a{color:inherit}header h1+.post-meta{margin-top:1.5rem}.post-tail-wrapper{margin-top:6rem;border-bottom:1px double var(--main-border-color)}.post-tail-wrapper .license-wrapper{line-height:1.2rem}.post-tail-wrapper .share-wrapper{vertical-align:middle;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.post-tail-wrapper .share-wrapper .share-icons>*,.post-tail-wrapper .share-wrapper .share-icons i{font-size:1.125rem}.post-tail-wrapper .share-wrapper .share-icons{display:flex}.post-tail-wrapper .share-wrapper .share-icons i{color:var(--btn-share-color)}.post-tail-wrapper .share-wrapper .share-icons>*{margin-left:.5rem}.post-tail-wrapper .share-wrapper .share-icons button{padding:0;border:none;line-height:inherit}.share-mastodon{--wc-stm-font-family: $font-family-base;--wc-stm-dialog-background-color: var(--card-bg);--wc-stm-form-button-border: 1px solid var(--btn-border-color);--wc-stm-form-submit-background-color: var(--sidebar-btn-bg);--wc-stm-form-cancel-background-color: var(--sidebar-btn-bg);--wc-stm-form-button-background-color-hover: #007bff;--wc-stm-form-button-color-hover: white;font-size:1rem}.post-tags{line-height:2rem}.post-navigation .btn:not(:hover){color:var(--link-color)}.post-navigation .btn:hover:not(.disabled)::before{color:#f5f5f5}.post-navigation .btn.disabled{pointer-events:auto;cursor:not-allowed;background:none;color:gray}.post-navigation .btn.btn-outline-primary.disabled:focus{box-shadow:none}.post-navigation .btn::before{color:var(--text-muted-color);font-size:.65rem;text-transform:uppercase;content:attr(aria-label)}.post-navigation .btn:first-child{border-radius:.625rem 0 0 .625rem;left:.5px}.post-navigation .btn:last-child{border-radius:0 .625rem .625rem 0;right:.5px}.post-navigation p{font-size:1.1rem;line-height:1.5rem;margin-top:.3rem;white-space:normal}@media(hover: hover){.post-navigation .btn,.post-navigation .btn::before{transition:all .35s ease-in-out}}@-webkit-keyframes fade-up{from{opacity:0;position:relative;top:2rem}to{opacity:1;position:relative;top:0}}@keyframes fade-up{from{opacity:0;position:relative;top:2rem}to{opacity:1;position:relative;top:0}}#toc-wrapper{border-left:1px solid rgba(158,158,158,.17);position:-webkit-sticky;position:sticky;top:4rem;transition:top .2s ease-in-out;-webkit-animation:fade-up .8s;animation:fade-up .8s}#toc-wrapper ul{list-style:none;font-size:.85rem;line-height:1.25;padding-left:0}#toc-wrapper ul li:not(:last-child){margin:.4rem 0}#toc-wrapper ul li a{padding:.2rem 0 .2rem 1.25rem}#toc-wrapper ul .toc-link{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}#toc-wrapper ul .toc-link:hover{color:var(--toc-highlight);text-decoration:none}#toc-wrapper ul .toc-link::before{display:none}#toc-wrapper ul .is-active-link{color:var(--toc-highlight) !important;font-weight:600}#toc-wrapper ul .is-active-link::before{display:inline-block;width:1px;left:-1px;height:1.25rem;background-color:var(--toc-highlight) !important}#toc-wrapper ul ul{padding-left:.75rem}#related-posts>h3{color:var(--label-color);font-size:1.1rem;font-weight:600}#related-posts time{color:var(--text-muted-color)}#related-posts p{font-size:.9rem;margin-bottom:.5rem;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}#disqus_thread{min-height:8.5rem}.utterances{max-width:100%}.post-tail-wrapper .share-wrapper .share-icons>*:hover i{color:var(--btn-share-hover-color) !important}.share-label{color:inherit;font-size:inherit;font-weight:400}.share-label::after{content:":"}@media all and (max-width: 576px){.post-tail-bottom{flex-wrap:wrap-reverse !important}.post-tail-bottom>div:first-child{width:100%;margin-top:1rem}}@media all and (max-width: 768px){.content>p>img{max-width:calc(100% + 1rem)}}@media all and (max-width: 849px){.post-navigation{padding-left:0;padding-right:0;margin-left:-0.5rem;margin-right:-0.5rem}}.tag{border-radius:.7em;padding:6px 8px 7px;margin-right:.8rem;line-height:3rem;letter-spacing:0;border:1px solid var(--tag-border) !important;box-shadow:0 0 3px 0 var(--tag-shadow)}.tag span{margin-left:.6em;font-size:.7em;font-family:Oswald,sans-serif}#archives{letter-spacing:.03rem}#archives ul li::before,#archives .year:first-child::before,#archives .year::before{content:"";width:4px;position:relative;float:left;background-color:var(--timeline-color)}#archives .year{height:3.5rem;font-size:1.5rem;position:relative;left:2px;margin-left:-4px}#archives .year::before{height:72px;left:79px;bottom:16px}#archives .year:first-child::before{height:32px;top:24px}#archives .year::after{content:"";display:inline-block;position:relative;border-radius:50%;width:12px;height:12px;left:21.5px;border:3px solid;background-color:var(--timeline-year-dot-color);border-color:var(--timeline-node-bg);box-shadow:0 0 2px 0 #c2c6cc;z-index:1}#archives ul li{font-size:1.1rem;line-height:3rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}#archives ul li:nth-child(odd){background-color:var(--main-bg, #ffffff);background-image:linear-gradient(to left, #ffffff, #fbfbfb, #fbfbfb, #fbfbfb, #ffffff)}#archives ul li::before{top:0;left:77px;height:3.1rem}#archives ul:last-child li:last-child::before{height:1.5rem}#archives .date{white-space:nowrap;display:inline-block;position:relative;right:.5rem}#archives .date.month{width:1.4rem;text-align:center}#archives .date.day{font-size:85%;font-family:Lato,sans-serif}#archives a{margin-left:2.5rem;position:relative;top:.1rem}#archives a:hover{border-bottom:none}#archives a::before{content:"";display:inline-block;position:relative;border-radius:50%;width:8px;height:8px;float:left;top:1.35rem;left:71px;background-color:var(--timeline-node-bg);box-shadow:0 0 3px 0 #c2c6cc;z-index:1}@media all and (max-width: 576px){#archives{margin-top:-1rem}#archives ul{letter-spacing:0}}.categories i{color:gray}.categories{margin-bottom:2rem;border-color:var(--categories-border)}.categories .card-header{padding:.75rem;border-radius:calc(.625rem - 1px);border-bottom:0}.categories .card-header.hide-border-bottom{border-bottom-left-radius:0;border-bottom-right-radius:0}.categories i{font-size:86%}.categories .list-group-item{border-left:none;border-right:none;padding-left:2rem}.categories .list-group-item:first-child{border-top-left-radius:0;border-top-right-radius:0}.categories .list-group-item:last-child{border-bottom:0}.category-trigger{width:1.7rem;height:1.7rem;border-radius:50%;text-align:center;color:#6c757d !important}.category-trigger i{position:relative;height:.7rem;width:1rem;transition:transform 300ms ease}.category-trigger:hover i{color:var(--categories-icon-hover-color)}@media(hover: hover){.category-trigger:hover{background-color:var(--categories-hover-bg)}}.rotate{transform:rotate(-90deg)}.dash{margin:0 .5rem .6rem .5rem;border-bottom:2px dotted var(--dash-color)}#page-category ul>li,#page-tag ul>li{line-height:1.5rem;padding:.6rem 0}#page-category ul>li::before,#page-tag ul>li::before{background:#999;width:5px;height:5px;border-radius:50%;display:block;content:"";position:relative;top:.6rem;margin-right:.5rem}#page-category ul>li>a,#page-tag ul>li>a{font-size:1.1rem}#page-tag h1>i{font-size:1.2rem}#page-category h1>i{font-size:1.25rem}#page-category a:hover,#page-tag a:hover,#access-lastmod a:hover{margin-bottom:-1px}@media all and (max-width: 576px){#page-category ul>li::before,#page-tag ul>li::before{margin:0 .5rem}#page-category ul>li>a,#page-tag ul>li>a{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}}/*# sourceMappingURL=jekyll-theme-chirpy.css.map */ \ No newline at end of file diff --git a/_site/assets/css/jekyll-theme-chirpy.css.map b/_site/assets/css/jekyll-theme-chirpy.css.map deleted file mode 100644 index 469c768..0000000 --- a/_site/assets/css/jekyll-theme-chirpy.css.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sourceRoot":"","sources":["../../../../../../../../Users/trever/.gem/ruby/3.1.3/gems/jekyll-theme-chirpy-7.0.1/_sass/addon/module.scss","../../../../../../../../Users/trever/.gem/ruby/3.1.3/gems/jekyll-theme-chirpy-7.0.1/_sass/addon/variables.scss","../../../../../../../../Users/trever/.gem/ruby/3.1.3/gems/jekyll-theme-chirpy-7.0.1/_sass/addon/syntax.scss","../../../../../../../../Users/trever/.gem/ruby/3.1.3/gems/jekyll-theme-chirpy-7.0.1/_sass/colors/syntax-light.scss","../../../../../../../../Users/trever/.gem/ruby/3.1.3/gems/jekyll-theme-chirpy-7.0.1/_sass/colors/syntax-dark.scss","../../../../../../../../Users/trever/.gem/ruby/3.1.3/gems/jekyll-theme-chirpy-7.0.1/_sass/addon/commons.scss","../../../../../../../../Users/trever/.gem/ruby/3.1.3/gems/jekyll-theme-chirpy-7.0.1/_sass/colors/typography-light.scss","../../../../../../../../Users/trever/.gem/ruby/3.1.3/gems/jekyll-theme-chirpy-7.0.1/_sass/colors/typography-dark.scss","../../../../../../../../Users/trever/.gem/ruby/3.1.3/gems/jekyll-theme-chirpy-7.0.1/_sass/layout/home.scss","../../../../../../../../Users/trever/.gem/ruby/3.1.3/gems/jekyll-theme-chirpy-7.0.1/_sass/layout/post.scss","../../../../../../../../Users/trever/.gem/ruby/3.1.3/gems/jekyll-theme-chirpy-7.0.1/_sass/layout/tags.scss","../../../../../../../../Users/trever/.gem/ruby/3.1.3/gems/jekyll-theme-chirpy-7.0.1/_sass/layout/archives.scss","../../../../../../../../Users/trever/.gem/ruby/3.1.3/gems/jekyll-theme-chirpy-7.0.1/_sass/layout/categories.scss","../../../../../../../../Users/trever/.gem/ruby/3.1.3/gems/jekyll-theme-chirpy-7.0.1/_sass/layout/category-tag.scss"],"names":[],"mappings":"CAMA,mDACE,2BACA,gBACA,YCuBoB,kCDnBpB,gCACE,kBACA,sBAEA,wDACE,aAMJ,4CACE,cAGF,qBACE,4CACE,kBACA,UACA,2DAIA,oEACE,mBACA,UACA,0DAMR,sCACE,4BACA,uCAGF,+DACE,mBACA,cACA,mBAGF,2QACE,yBACA,gCACA,qBAGF,4CACE,wBAGF,sEACE,oDAGF,4EACE,+BAGF,gFACE,yBACA,sBACA,qBACA,iBAGF,6LACE,mBAGF,yFACE,eAGF,4EACE,kBAGF,wMACE,cC5EY,QDgFZ,oDACE,cACA,kBACA,kBACA,cACA,UACA,cAIJ,iDACE,iCACA,yBACA,sBACA,qBACA,iBAGF,iHACE,oBACA,gBACA,uBACA,qBACA,4BAGF,qGACE,yCACA,gBAGF,kFACE,iBAGF,2BACE,gBAIA,mCACE,2CACA,uBACA,0BACA,kBACA,8CEvIF,oCACE,4CCHF,iCACA,8BACA,mCACA,kCACA,0BACA,sBACA,kCACA,mCACA,kCACA,mCAEA,8EACE,0BAKF,oFACE,YAGF,sFACE,SAGF,0IAEE,cACA,yBAGF,ogBAOE,cAGF,0EACE,cAGF,0EACE,cACA,yBAGF,0EACE,cAGF,0EACE,cAGF,0EACE,cAGF,0EACE,cAGF,0EACE,cAGF,0EACE,cAGF,0EACE,cAGF,0EACE,cACA,yBAGF,0EACE,cAGF,guBAUE,cAGF,0EACE,cAGF,0EACE,cAGF,0EACE,cAGF,0EACE,cAGF,0EACE,cAGF,kXAKE,cAGF,kJAEE,cAGF,0EACE,cACA,iBAGF,0EACE,cACA,iBAGF,4yBAWE,cAGF,0EACE,cAGF,oJAEE,cAGF,4EACE,cACA,yBAGF,glBAQE,cAGF,0EACE,cAGF,0EACE,cAGF,0EACE,cAGF,0EACE,cAGF,0EACE,cACA,kBAGF,0EACE,cACA,iBDrMA,qBETF,iCACA,8BACA,mCACA,kCACA,0BACA,sBACA,kCACA,mCACA,kCACA,mCACA,+BAEA,oCACE,cAKF,yCACE,YAGF,0CACE,SAGF,mEAEE,cACA,yBAGF,qCACE,cACA,yBAGF,4PAOE,cAGF,oCACE,cAGF,oCACE,cAGF,uEAEE,cAGF,uEAEE,cAGF,oCACE,cAGF,oCACE,cACA,yBAGF,oCACE,cACA,yBACA,iBAGF,mLAKE,cAGF,oCACE,cAGF,oCACE,cAGF,oCACE,cAGF,mUASE,cAGF,oCACE,cAGF,oCACE,cAGF,oCACE,cAGF,oCACE,cAGF,oCACE,cAGF,oCACE,cAGF,oCACE,cAGF,oCACE,cAGF,+RAQE,cAGF,oCACE,eF9IF,mCACE,2CEfF,iCACA,8BACA,mCACA,kCACA,0BACA,sBACA,kCACA,mCACA,kCACA,mCACA,+BAEA,yEACE,cAKF,mFACE,YAGF,qFACE,SAGF,wIAEE,cACA,yBAGF,2EACE,cACA,yBAGF,+fAOE,cAGF,yEACE,cAGF,yEACE,cAGF,gJAEE,cAGF,gJAEE,cAGF,yEACE,cAGF,yEACE,cACA,yBAGF,yEACE,cACA,yBACA,iBAGF,2WAKE,cAGF,yEACE,cAGF,yEACE,cAGF,yEACE,cAGF,+oBASE,cAGF,yEACE,cAGF,yEACE,cAGF,yEACE,cAGF,yEACE,cAGF,yEACE,cAGF,yEACE,cAGF,yEACE,cAGF,yEACE,cAGF,skBAQE,cAGF,yEACE,cFxIA,sBCnBF,iCACA,8BACA,mCACA,kCACA,0BACA,sBACA,kCACA,mCACA,kCACA,mCAEA,uCACE,0BAKF,0CACE,YAGF,2CACE,SAGF,qEAEE,cACA,yBAGF,kQAOE,cAGF,qCACE,cAGF,qCACE,cACA,yBAGF,qCACE,cAGF,qCACE,cAGF,qCACE,cAGF,qCACE,cAGF,qCACE,cAGF,qCACE,cAGF,qCACE,cAGF,qCACE,cACA,yBAGF,qCACE,cAGF,gXAUE,cAGF,qCACE,cAGF,qCACE,cAGF,qCACE,cAGF,qCACE,cAGF,qCACE,cAGF,yLAKE,cAGF,yEAEE,cAGF,qCACE,cACA,iBAGF,qCACE,cACA,iBAGF,sZAWE,cAGF,qCACE,cAGF,0EAEE,cAGF,sCACE,cACA,yBAGF,wSAQE,cAGF,qCACE,cAGF,qCACE,cAGF,qCACE,cAGF,qCACE,cAGF,qCACE,cACA,kBAGF,qCACE,cACA,kBDlLJ,kDACE,2CAGF,cACE,kBACA,qBAGF,mBACE,qCACA,iBACA,oBAGF,WAQE,cACA,sBAEA,eACE,gBACA,UDtCa,OCuCb,mBACA,iBAKE,gCACE,qBACA,iBACA,oBAGF,+BACE,8BAGF,wBACE,iBACA,kBAKN,mBACE,iBACA,oCACA,yBACA,sBACA,oBACA,qBACA,iBAIJ,KACE,qBACA,iBACA,aACA,wBAEA,uBACE,UDhFa,OCiFb,gBACA,sBACA,kBACA,uCAGF,cACE,yBACA,iCACA,gBACA,UAGF,yBACE,iBACA,cAGF,+BACE,mBAGF,gBACE,cAWF,gBACE,yBACA,8BACA,oBAIJ,sBAIE,kDAEA,+BFIA,YEHiB,MFIjB,aEJiB,MAEf,gBAGF,iCACE,yBACA,0BAUA,2IACE,qBACA,eAEA,2KACE,aAMR,aAGE,aACA,8BACA,mBACA,ODlKmB,QCmKnB,mBACA,oBAGA,kBACE,YDxKiB,QC2KjB,oBACE,eACA,MD1KY,QC2KZ,oCAEA,0BACE,cAIK,2BACP,kBACA,QAIF,yBACE,8BACA,iBACA,gBACA,oCAKJ,oBAIE,+BACA,ODzMiB,QC0MjB,MD1MiB,QC2MjB,UACA,yBAEA,sBACE,oCAIA,mCACE,4CAGF,+BACE,qCAIJ,0BACE,aAGF,yCACE,uCAEA,2CACE,WAMR,kCAEI,+BFzGF,YE0GmB,EFzGnB,aEyGmB,EAEf,cDrPQ,QCwPV,mCF/GF,YEgHmB,EF/GnB,aE+GmB,EAIf,2CACE,WACA,qBACA,YALW,KAMX,MD1PQ,OC2PR,OD3PQ,OC4PR,kBACA,gDACA,gGAMF,wCAEE,uBG7RR,KAuBE,eAtBA,oCACE,4CCEF,iBACA,mBACA,6BAGA,sBACA,4BACA,uCACA,yBACA,uBACA,mCACA,iCACA,sBACA,gCACA,qBACA,4BACA,+BACA,sCACA,0BACA,0BACA,kCACA,oFAKA,2HAQA,uCACA,+BACA,sBACA,gCACA,+BACA,gCACA,6CACA,wBACA,6BACA,6BAGA,qCACA,qCACA,0CACA,6BACA,oCAGA,gCACA,oCACA,+CAGA,yBACA,wBACA,iCACA,iBACA,yBACA,yFAEA,gCACA,qBACA,2BACA,qBACA,0BACA,oCACA,sBACA,2CACA,yCACA,iCACA,0BACA,kCACA,wCACA,qCACA,6CACA,oCAGA,sBACA,sCACA,gCACA,yBAWA,0CACA,+CACA,6CAGA,uCACA,4BACA,mCAhBA,8EACE,2CAGF,wDACE,aD1FA,qBEHF,2BACA,2BACA,qCAGA,iCACA,4BACA,uCACA,yBACA,uBACA,2CACA,iCACA,iCACA,0CACA,qBACA,4BACA,yCACA,sCACA,iCACA,0BACA,qCACA,4CACA,4EACA,0HAQA,4BACA,+BACA,sBACA,gCACA,+BACA,iDACA,4BACA,0BACA,6BACA,+CAGA,mCACA,uCACA,uCACA,wCACA,+CAGA,2CACA,8CACA,qCAGA,oCACA,6BACA,qBACA,8BACA,oCACA,uCACA,2BACA,iCACA,mBACA,yBACA,sFAEA,0BACA,0BACA,wBACA,8CACA,uCACA,gDACA,uCACA,kCACA,0CACA,mDACA,wCACA,oCAGA,8BACA,8BACA,8BACA,yBAGA,0CACA,uCACA,qCAGA,uCACA,kCACA,iDAwCA,kBAtCA,4BACE,aAIF,4EAEE,gCAIA,8CACE,uCAGF,kDACE,iBACA,kBACA,kBACA,sCAEA,6DACE,mCAKN,iDACE,+HAaF,oCACE,mBFlIF,mCACE,2CETF,2BACA,2BACA,qCAGA,iCACA,4BACA,uCACA,yBACA,uBACA,2CACA,iCACA,iCACA,0CACA,qBACA,4BACA,yCACA,sCACA,iCACA,0BACA,qCACA,4CACA,4EACA,0HAQA,4BACA,+BACA,sBACA,gCACA,+BACA,iDACA,4BACA,0BACA,6BACA,+CAGA,mCACA,uCACA,uCACA,wCACA,+CAGA,2CACA,8CACA,qCAGA,oCACA,6BACA,qBACA,8BACA,oCACA,uCACA,2BACA,iCACA,mBACA,yBACA,sFAEA,0BACA,0BACA,wBACA,8CACA,uCACA,gDACA,uCACA,kCACA,0CACA,mDACA,wCACA,oCAGA,8BACA,8BACA,8BACA,yBAGA,0CACA,uCACA,qCAGA,uCACA,kCACA,iDAwCA,kBAtCA,yDACE,aAIF,0JAEE,gCAIA,6FACE,uCAGF,qGACE,iBACA,kBACA,kBACA,sCAEA,2HACE,mCAKN,mGACE,+HAaF,yEACE,kBF5HA,sBCdF,iBACA,mBACA,6BAGA,sBACA,4BACA,uCACA,yBACA,uBACA,mCACA,iCACA,sBACA,gCACA,qBACA,4BACA,+BACA,sCACA,0BACA,0BACA,kCACA,oFAKA,2HAQA,uCACA,+BACA,sBACA,gCACA,+BACA,gCACA,6CACA,wBACA,6BACA,6BAGA,qCACA,qCACA,0CACA,6BACA,oCAGA,gCACA,oCACA,+CAGA,yBACA,wBACA,iCACA,iBACA,yBACA,yFAEA,gCACA,qBACA,2BACA,qBACA,0BACA,oCACA,sBACA,2CACA,yCACA,iCACA,0BACA,kCACA,wCACA,qCACA,6CACA,oCAGA,sBACA,sCACA,gCACA,yBAWA,0CACA,+CACA,6CAGA,uCACA,4BACA,mCAhBA,uCACE,2CAGF,4BACE,cDvEJ,KACE,0BACA,kHAEA,wBACA,mCACA,YJHiB,+CISjB,GAeI,kBAfJ,GAeI,kBAfJ,GAeI,kBAfJ,GAeI,kBAfJ,GAiBI,eAKN,EAGE,qBAGF,IACE,eACA,YACA,gCAEA,UAGE,0BACA,kBAIJ,WACE,qDACA,kBACA,mCAEA,wBACE,gBAGF,2BACE,cACA,kBACA,4BACA,+BAIA,mCACE,kBACA,WACA,kBACA,YACA,iBACA,oBACA,mCLqFJ,sBACE,sCAEA,8BACE,QKrFmB,ILsFnB,mCACA,4BANJ,uBACE,uCAEA,+BACE,QKpFoB,ILqFpB,oCACA,0BANJ,0BACE,0CAEA,kCACE,QKnFuB,ILoFvB,uCACA,0BANJ,yBACE,yCAEA,iCACE,QKlFsB,ILmFtB,sCACA,0BKjFN,IACE,oBACA,qBACA,sBACA,mBACA,kBACA,kBACA,eACA,kBACA,4BACA,qCACA,qBACA,uCACA,gDAGF,GACE,sCACA,UAGF,OACE,gCACA,OJ3Hc,KI4Hd,8CAgBA,SACE,kBACA,gBAcJ,QACE,SACA,+BACA,gBACA,mBAEA,mBACE,wBACA,gBAGF,gBACE,kBACA,+CAEA,iCACE,mBAIJ,iBACE,gBAMF,8BACE,oBACA,oBLtBF,MADwD,mBAExD,UKuBiB,QLtBjB,YAH2C,IK4B3C,yBACE,oBACA,iBACA,oBACA,oBACA,wBAEA,+BACE,2BAMJ,kBAOE,cAIJ,cACE,kBACA,iBAGE,kCACE,oBAKF,mBACE,kBACA,aACA,gBAMK,WL/FT,YKgGiB,IL/FjB,aK+FiB,ILtFjB,aKuFiB,ILtFjB,cKsFiB,IAEf,oCASO,kBACP,gBACA,cACA,kBACA,aACA,kBACA,oCAOJ,eACE,gBACA,qBAEA,qBACE,eACA,gBACA,iBAEA,2BACE,8CAQA,8BACE,+CAEA,4CACE,mCAGF,8CACE,kCAaV,aACE,mBACA,WACA,YACA,gBAIA,yBACE,yBAGF,iBACE,YACA,oBACA,iBAIS,4BACP,WAKN,cAGE,SACA,0BACA,8BAEA,sBAGE,WACA,WACA,YACA,kBACA,sCACA,UACA,oCAIA,4BACE,WAKN,KACE,iBAEA,QACE,gBAKE,mDL/LJ,kBACA,SACA,2BK0NF,SACE,kBACA,gBACA,yBAGE,iBLpQF,WKuQmB,MLtQnB,cKsQmB,MAEf,eAcF,8FAEE,8BACA,6BAEA,0GACE,gBACA,oBAGF,oNAEE,8BACA,6BACA,eAKN,sBACE,8BACA,6BAEA,yBACE,qBACA,eAGA,2BACE,WACA,qBACA,4BAEA,mCACE,oCAIJ,4BACE,8BACA,6BAIJ,2CACE,6BACA,sBAIJ,eACE,iBAGF,kBACE,8BAQJ,UACE,qBACA,eACA,kBACA,oBACA,yCACA,gBACA,8BACA,mBAEA,2BACE,mBAIJ,YACE,8BAGF,UACE,oBACA,oBAGF,SACE,gBACA,kBACA,yBAEA,iBACE,WACA,kBACA,6BACA,YACA,WACA,wCACA,gCAGF,2BACE,GACE,4BAGF,KACE,4BAIJ,mBACE,GACE,4BAGF,KACE,4BAKN,aACE,WACA,YACA,mBACA,kBAIA,oBACE,qBAGF,kBACE,cACA,WACA,YACA,eACA,gBACA,YACA,gBAMJ,aACE,WACA,cAMF,UACE,4BACA,gBACA,kBACA,wBAEA,gBACE,gBAMJ,aACE,uBAGF,gBACE,8BAIF,YACE,yCAIF,eACE,gBACA,gBACA,gBAKA,8CACE,gCAIJ,UACE,cACA,oBACA,mBAGF,oBACE,8BAGF,aACE,gBACA,wDACA,6BACA,2EAGF,MACE,WACA,0BAGF,OACE,YACA,0BAMF,SACE,kBAIF,cACE,kBACA,0BASF,SL1fE,aK2fe,EL1ff,cK0fe,EAEf,eACA,MACA,OACA,YACA,gBACA,MJjqBc,MIkqBd,WACA,6BACA,mDAQA,wBACA,qBANA,4BACE,aAQA,0GACE,kCAQJ,iBACE,cACA,WACA,YACA,gBACA,gDACA,wBAEA,qBACE,yBAEA,2BACE,qBAKN,0BL1jBA,WK2jBiB,OL1jBjB,cK0jBiB,OAGf,oBACA,sBACA,WAGF,qBACE,oBACA,gBACA,kBACA,gBACA,qBACA,mBACA,oBAEA,uBAIE,8BAIJ,wBACE,cACA,iCACA,kBACA,iBACA,yBACA,sBACA,qBACA,iBAGF,YACE,mBAEA,wBACE,WACA,WACA,oBACA,qBAEA,mCL9lBJ,YK+lBqB,ML9lBrB,eK8lBqB,MAEf,aACA,mBACA,qBACA,gBAEA,yCACE,yCAGF,qCACE,cACA,WACA,oBAGF,wCACE,cACA,oBAKF,yCACE,kCACA,yCAEA,8CACE,UAKN,0CACE,kBAKN,yBACE,kBACA,mBACA,qBAIA,iEACE,MAHS,QAIT,OAJS,QAKT,cApJG,MAqJH,kBACA,+BACA,uCACA,kBACA,aACA,mBACA,uBAEA,yGACE,iDAGF,6EACE,yCASF,4CACE,aJj0BK,MIq0BT,2BACE,YAlCS,QA2CX,sCL5rBF,YK8rBmB,sBL7rBnB,aK6rBmB,sBAEf,0CACA,WACA,MAjMa,IAkMb,OAlMa,IAmMb,kBACA,cAnMG,MAwMT,qBACE,iCACE,wBAGF,UACE,4CAGF,cACE,8CAIJ,uBACE,aACA,YACA,WACA,cAEA,gCACE,gBAMJ,gBACE,OJp3Bc,KIq3Bd,kCAIA,iBACE,WAGF,oBACE,eACA,8BACA,mBAQI,iDACE,YACA,gBAOV,4BLpvBE,yCKwvBF,mBLxvBE,yCK4vBF,uBL5vBE,yCKgwBF,wBLhwBE,yCKowBF,cLpwBE,yCKwwBF,kCLpwBE,WKwwBF,yBLxwBE,WK4wBF,6BL5wBE,WKgxBF,8BLhxBE,WKoxBF,oBLpxBE,WKwxBF,OACE,aACA,WACA,mBACA,4CACA,0BACA,gBAEA,SACE,UACA,gBACA,+BAIJ,iCAEE,aAIF,eACE,wBACA,aACA,mBAKF,cACE,kBACA,SACA,gBACA,qBACA,wBACA,YAEA,oBACE,gBAIJ,cACE,eAEA,iBACE,qBAGF,wBACE,qBACA,iBACA,eACA,gCACA,YACA,cACA,wBAEA,gCACE,YACA,8BACA,oBAON,gBACE,oBAEA,kBASE,iBACA,mBAGF,wBACE,WAEA,yCACE,mBAIF,0BACE,cACA,oBACA,cAGF,0BACE,gBACA,uBACA,oBACA,qBACA,4BAKN,cACE,aACA,iBACA,gBACA,uBACA,+BACA,kBACA,UACA,gBACA,uBACA,oBACA,mBAGF,MACE,aACA,eACA,cACA,YACA,WACA,UAES,wBACP,yBAMJ,cACE,kBL36BA,aK66Be,EL56Bf,cK46Be,EAEf,yBACE,iBAIJ,8EL97BE,YKi8Be,ELh8Bf,aKg8Be,EAIf,2BACE,gBAMJ,aACE,kBACA,UACA,UACA,eACA,eACA,WACA,gBACA,4BACA,iCACA,UACA,MJ/lCc,QIgmCd,OJhmCc,QIimCd,kBACA,mDACA,0DAEA,mBACE,kCACA,0CAGF,eACE,YJ3mCY,QI4mCZ,kBACA,WAGF,kBACE,UACA,mBAKF,yBACE,KACE,UACA,UAIJ,iBACE,KACE,UACA,UAIJ,4BACE,gBACA,mBACA,cAGF,0BACE,4BACA,oBAEA,iCACE,cACA,eAKF,yBACE,cACA,gBACA,oBACA,mCACA,2BACA,sCACA,iCACA,eACA,SACA,WACA,2BACA,4BACA,oBAcN,kCAGM,yCL5iCJ,YK6iCqB,ML5iCrB,aK4iCqB,MAEf,gBACA,eAKN,QACE,WACA,aAIJ,kCACE,iCACE,eAOF,yBL1jCA,aK4jCiB,EL3jCjB,cK2jCiB,GAKnB,kCAWE,OAJI,WALM,mBAYR,OJpuCkB,KIquClB,iBAIA,2BACE,wBAGF,gCACE,4BAGF,+BACE,kBAIJ,SAzBI,WALM,mBAiCR,6BACA,qCAGF,cAhCI,WALM,mBAyCV,iCAEE,eAGF,uBACE,WAGF,mBAEE,aAGF,gBApDI,2CAuDF,OAGF,oBAEE,aAGF,+CAGE,cAGF,gCACE,iBAGF,MACE,kCAGF,iBACE,aAEA,0BACE,mBAMN,kCAEE,KACE,kBAGF,cACE,YJn0CY,MIu0CZ,0BACE,gBAIJ,cACE,aAGF,OACE,UJz0Ce,MI40CjB,uBACE,UJ10CqB,OI20CrB,iCAIA,QACE,gBAIJ,iCACE,cAIF,aACE,SACA,gBAGF,cACE,iBAKJ,yDACE,oCACE,aACA,eAKJ,yDACE,oBACE,gBAGF,YACE,UACA,gBACA,uBACA,oBACA,oBAKJ,mCACE,eACE,aAGF,iCACE,mCAMJ,mCACE,OACE,kBAGF,cACE,+BAGF,wBACE,UAEA,uCACE,oBAGF,wCACE,mBAGF,kDACE,kBACA,YAIJ,SACE,mBAIJ,mCACE,aACE,+CAIJ,mCAGE,cACE,YJ17CkB,MI67CpB,gBACE,KJ97CkB,MIi8CpB,OACE,oCAKF,yBACE,UJ97CqB,OI+7CrB,gCACA,iCAGF,0BAEE,gCAGF,aACE,8CAKF,SACE,MJz9CkB,MI29ClB,0BACE,kBACA,qBACA,oBAIA,wBLp0CJ,aKq0CqB,QLp0CrB,cKo0CqB,QAInB,yBACE,qBACA,sBAEA,4CACE,aJ1+CQ,KI6+CV,sCL31CJ,YK41CqB,qBL31CrB,aK21CqB,sBGn/CvB,WACE,gBAGE,+BACE,qBAGF,0CACE,sBAIJ,iBACE,SACA,gBAEA,gEACE,kCAWF,4BACE,YACA,aAEA,wCAGE,sCACA,kBAGF,sFACE,yCAMA,iDAGE,gBACA,SAQA,2DACE,mBAIJ,0CAGE,cAGF,uDACE,cACA,mBACA,gBACA,uBAOV,YACE,wBACA,4BACA,6BAEA,oBACE,qBAIA,kCACE,sCACA,gBACA,oBACA,wBACA,yBACA,oBACA,SACA,yBAIA,yCACE,kDAMA,qDACE,mDAKN,gCACE,mBAEA,2CACE,4BAOR,kCACE,gEACE,kCAKE,4BACE,wCAEA,uCACE,2BAKE,2DACE,qBAUd,kCAGM,0DACE,cAOR,kCACE,WACE,kBAGF,YACE,iBACA,uBAGE,wCACE,mBAIJ,wBACE,cCrLN,qDACE,UACA,kBACA,qCAUA,kBAGE,mBACA,gBAIA,oCAdF,YACA,aAFc,OAGd,cAH4B,OAyBxB,uBACE,cAKN,qBACE,kBAIJ,mBAGE,gBACA,kDAEA,oCACE,mBAmBF,kCACE,sBACA,yBACA,sBACA,qBACA,iBAEA,kGACE,mBAGF,+CACE,aAEA,iDACE,6BAKF,iDAGE,kBASF,sDACE,UACA,YACA,oBAQR,gBAEE,wCACA,iDACA,+DACA,6DACA,6DACA,qDACA,wCAEA,eAGF,WACE,iBAeE,kCACE,wBAIA,mDACE,cAIJ,+BAGE,oBACA,mBACA,gBACA,WAGF,yDACE,gBAGF,8BACE,8BACA,iBACA,yBACA,yBAGF,kCACE,kCACA,UAGF,iCACE,kCACA,WAIJ,mBACE,iBACA,mBACA,iBACA,mBAIJ,qBAEI,oDAEE,iCAKN,2BACE,KACE,UACA,kBACA,SAGF,GACE,UACA,kBACA,OAIJ,mBACE,KACE,UACA,kBACA,SAGF,GACE,UACA,kBACA,OAIJ,aACE,4CACA,wBACA,gBACA,SACA,+BACA,8BACA,sBAEA,gBACE,gBACA,iBACA,iBACA,eAGE,oCACE,eAGF,qBACE,8BAMJ,0BACE,cACA,mBACA,gBACA,uBAEA,gCACE,2BACA,qBAGF,kCACE,aAIJ,gCACE,sCACA,gBAEA,wCACE,qBACA,UACA,UACA,eACA,iDAIJ,mBACE,oBAQJ,kBTrHA,MADwD,mBAExD,USqHiB,OTpHjB,YSoHyB,IAGzB,oBAIE,8BAGF,iBACE,gBACA,oBACA,gBACA,uBACA,oBACA,qBACA,4BAWJ,eACE,kBAGF,YACE,eAGF,yDACE,8CAGF,aT9JE,MS+J6B,QT9J7B,US8Je,QT7Jf,YS6JwB,IAExB,oBACE,YAIJ,kCACE,kBACE,kCAEA,kCACE,WACA,iBAKN,kCACE,eACE,6BAKJ,kCACE,iBACE,eACA,gBACA,oBACA,sBC3WJ,KACE,mBACA,oBACA,mBACA,iBACA,iBACA,8CACA,uCAEA,UACE,iBACA,eACA,8BCZJ,UACE,sBAIA,oFACE,WACA,MAJe,IAKf,kBACA,WACA,uCAGF,gBACE,cACA,iBACA,kBACA,SACA,iBAEA,wBAGE,YACA,UACA,YAGF,oCAGE,YACA,SAIF,uBACE,WACA,qBACA,kBACA,kBACA,WACA,YACA,YACA,iBACA,gDACA,qCACA,6BACA,UAKF,gBACE,iBACA,iBACA,mBACA,gBACA,uBAEA,+BACE,yCACA,uFAUF,wBAGE,MACA,UACA,cAIJ,8CACE,cAIJ,gBACE,mBACA,qBACA,kBACA,YAEA,sBACE,aACA,kBAGF,oBACE,cACA,4BAIJ,YAEE,mBACA,kBACA,UAEA,kBACE,mBAGF,oBAEE,WACA,qBACA,kBACA,kBACA,UACA,WACA,WACA,YACA,UACA,yCACA,6BACA,UAKN,kCACE,UACE,iBAEA,aACE,kBCxIN,cACE,WAGF,YACE,mBACA,sCAOA,yBAGE,eACA,cAHS,oBAIT,gBAEA,4CACE,4BACA,6BAIJ,cAGE,cAGF,6BACE,iBACA,kBACA,kBAEA,yCACE,yBACA,0BAGF,wCACE,gBAKN,kBACE,aACA,cACA,kBACA,kBACA,yBAEA,oBACE,kBACA,aACA,WACA,gCAIA,0BACE,yCAMN,qBACE,wBACE,6CAIJ,QACE,yBC7EF,MACE,2BACA,2CAKA,qCACE,mBACA,gBAGA,qDACE,gBACA,UACA,WACA,kBACA,cACA,WACA,kBACA,UACA,mBAIF,yCAGE,iBAMN,eACE,iBAGF,oBACE,kBAMA,iEAGE,mBAIJ,kCAIM,qDACE,eAGF,yCACE,mBACA,gBACA","sourcesContent":["/*\n* Mainly scss modules, only imported to `assets/css/main.scss`\n*/\n\n/* ---------- scss placeholder --------- */\n\n%heading {\n color: var(--heading-color);\n font-weight: 400;\n font-family: $font-family-heading;\n}\n\n%section {\n main & {\n margin-top: 2.5rem;\n margin-bottom: 1.25rem;\n\n &:focus {\n outline: none; /* avoid outline in Safari */\n }\n }\n}\n\n%anchor {\n .anchor {\n font-size: 80%;\n }\n\n @media (hover: hover) {\n .anchor {\n visibility: hidden;\n opacity: 0;\n transition: opacity 0.25s ease-in, visibility 0s ease-in 0.25s;\n }\n\n &:hover {\n .anchor {\n visibility: visible;\n opacity: 1;\n transition: opacity 0.25s ease-in, visibility 0s ease-in 0s;\n }\n }\n }\n}\n\n%tag-hover {\n background: var(--tag-hover);\n transition: background 0.35s ease-in-out;\n}\n\n%table-cell {\n padding: 0.4rem 1rem;\n font-size: 95%;\n white-space: nowrap;\n}\n\n%link-hover {\n color: #d2603a !important;\n border-bottom: 1px solid #d2603a;\n text-decoration: none;\n}\n\n%link-color {\n color: var(--link-color);\n}\n\n%link-underline {\n border-bottom: 1px solid var(--link-underline-color);\n}\n\n%clickable-transition {\n transition: all 0.3s ease-in-out;\n}\n\n%no-cursor {\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n\n%no-bottom-border {\n border-bottom: none;\n}\n\n%cursor-pointer {\n cursor: pointer;\n}\n\n%normal-font-style {\n font-style: normal;\n}\n\n%rounded {\n border-radius: $base-radius;\n}\n\n%img-caption {\n + em {\n display: block;\n text-align: center;\n font-style: normal;\n font-size: 80%;\n padding: 0;\n color: #6d6c6c;\n }\n}\n\n%sidebar-links {\n color: var(--sidebar-muted-color);\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n\n%text-clip {\n display: -webkit-box;\n overflow: hidden;\n text-overflow: ellipsis;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n}\n\n%text-highlight {\n color: var(--text-muted-hightlight-color);\n font-weight: 600;\n}\n\n%text-sm {\n font-size: 0.85rem;\n}\n\n%text-xs {\n font-size: 0.8rem;\n}\n\n%sup-fn-target {\n &:target {\n background-color: var(--footnote-target-bg);\n width: -moz-fit-content;\n width: -webkit-fit-content;\n width: fit-content;\n transition: background-color 1.75s ease-in-out;\n }\n}\n\n/* ---------- scss mixin --------- */\n\n@mixin mt-mb($value) {\n margin-top: $value;\n margin-bottom: $value;\n}\n\n@mixin ml-mr($value) {\n margin-left: $value;\n margin-right: $value;\n}\n\n@mixin pt-pb($val) {\n padding-top: $val;\n padding-bottom: $val;\n}\n\n@mixin pl-pr($val) {\n padding-left: $val;\n padding-right: $val;\n}\n\n@mixin placeholder {\n color: var(--text-muted-color) !important;\n}\n\n@mixin placeholder-focus {\n opacity: 0.6;\n}\n\n@mixin label($font-size: 1rem, $font-weight: 600, $color: var(--label-color)) {\n color: $color;\n font-size: $font-size;\n font-weight: $font-weight;\n}\n\n@mixin align-center {\n position: relative;\n left: 50%;\n transform: translateX(-50%);\n}\n\n@mixin prompt($type, $fa-content, $fa-style: 'solid') {\n &.prompt-#{$type} {\n background-color: var(--prompt-#{$type}-bg);\n\n &::before {\n content: $fa-content;\n color: var(--prompt-#{$type}-icon-color);\n font: var(--fa-font-#{$fa-style});\n }\n }\n}\n","/*\n * The SCSS variables\n */\n\n/* sidebar */\n\n$sidebar-width: 260px !default; /* the basic width */\n$sidebar-width-large: 300px !default; /* screen width: >= 1650px */\n$sb-btn-gap: 0.8rem !default;\n$sb-btn-gap-lg: 1rem !default;\n\n/* other framework sizes */\n\n$topbar-height: 3rem !default;\n$search-max-width: 200px !default;\n$footer-height: 5rem !default;\n$footer-height-large: 6rem !default; /* screen width: < 850px */\n$main-content-max-width: 1250px !default;\n$base-radius: 0.625rem !default;\n$back2top-size: 2.75rem !default;\n\n/* syntax highlight */\n\n$code-font-size: 0.85rem !default;\n$code-header-height: 2.25rem !default;\n$code-dot-size: 0.75rem !default;\n$code-dot-gap: 0.5rem !default;\n$code-icon-width: 1.75rem !default;\n\n/* fonts */\n\n$font-family-base: 'Source Sans Pro', 'Microsoft Yahei', sans-serif !default;\n$font-family-heading: Lato, 'Microsoft Yahei', sans-serif !default;\n","/*\n* The syntax highlight.\n*/\n\n@import 'colors/syntax-light';\n@import 'colors/syntax-dark';\n\nhtml {\n @media (prefers-color-scheme: light) {\n &:not([data-mode]),\n &[data-mode='light'] {\n @include light-syntax;\n }\n\n &[data-mode='dark'] {\n @include dark-syntax;\n }\n }\n\n @media (prefers-color-scheme: dark) {\n &:not([data-mode]),\n &[data-mode='dark'] {\n @include dark-syntax;\n }\n\n &[data-mode='light'] {\n @include light-syntax;\n }\n }\n}\n\n/* -- code snippets -- */\n\n%code-snippet-bg {\n background-color: var(--highlight-bg-color);\n}\n\n%code-snippet-padding {\n padding-left: 1rem;\n padding-right: 1.5rem;\n}\n\n.highlighter-rouge {\n color: var(--highlighter-rouge-color);\n margin-top: 0.5rem;\n margin-bottom: 1.2em; /* Override BS Inline-code style */\n}\n\n.highlight {\n @extend %rounded;\n @extend %code-snippet-bg;\n\n @at-root figure#{&} {\n @extend %code-snippet-bg;\n }\n\n overflow: auto;\n padding-bottom: 0.75rem;\n\n pre {\n margin-bottom: 0;\n font-size: $code-font-size;\n line-height: 1.4rem;\n word-wrap: normal; /* Fixed Safari overflow-x */\n }\n\n table {\n td {\n &:first-child {\n display: inline-block;\n margin-left: 1rem;\n margin-right: 0.75rem;\n }\n\n &:last-child {\n padding-right: 2rem !important;\n }\n\n pre {\n overflow: visible; /* Fixed iOS safari overflow-x */\n word-break: normal; /* Fixed iOS safari linenos code break */\n }\n }\n }\n\n .lineno {\n text-align: right;\n color: var(--highlight-lineno-color);\n -webkit-user-select: none;\n -moz-user-select: none;\n -o-user-select: none;\n -ms-user-select: none;\n user-select: none;\n }\n} /* .highlight */\n\ncode {\n -webkit-hyphens: none;\n -ms-hyphens: none;\n hyphens: none;\n color: var(--code-color);\n\n &.highlighter-rouge {\n font-size: $code-font-size;\n padding: 3px 5px;\n word-break: break-word;\n border-radius: 4px;\n background-color: var(--inline-code-bg);\n }\n\n &.filepath {\n background-color: inherit;\n color: var(--filepath-text-color);\n font-weight: 600;\n padding: 0;\n }\n\n a > &.highlighter-rouge {\n padding-bottom: 0; /* show link's underlinke */\n color: inherit;\n }\n\n a:hover > &.highlighter-rouge {\n border-bottom: none;\n }\n\n blockquote & {\n color: inherit;\n }\n}\n\ntd.rouge-code {\n @extend %code-snippet-padding;\n\n /*\n Prevent some browser extends from\n changing the URL string of code block.\n */\n a {\n color: inherit !important;\n border-bottom: none !important;\n pointer-events: none;\n }\n}\n\ndiv[class^='language-'] {\n @extend %rounded;\n @extend %code-snippet-bg;\n\n box-shadow: var(--language-border-color) 0 0 0 1px;\n\n .content > & {\n @include ml-mr(-1rem);\n\n border-radius: 0;\n }\n\n .highlight {\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n }\n}\n\n/* Hide line numbers for default, console, and terminal code snippets */\ndiv {\n &.nolineno,\n &.language-plaintext,\n &.language-console,\n &.language-terminal {\n td:first-child {\n padding: 0 !important;\n margin-right: 0;\n\n .lineno {\n display: none;\n }\n }\n }\n}\n\n.code-header {\n @extend %no-cursor;\n\n display: flex;\n justify-content: space-between;\n align-items: center;\n height: $code-header-height;\n margin-left: 0.75rem;\n margin-right: 0.25rem;\n\n /* the label block */\n span {\n line-height: $code-header-height;\n\n /* label icon */\n i {\n font-size: 1rem;\n width: $code-icon-width;\n color: var(--code-header-icon-color);\n\n &.small {\n font-size: 70%;\n }\n }\n\n @at-root [file] #{&} > i {\n position: relative;\n top: 1px; /* center the file icon */\n }\n\n /* label text */\n &::after {\n content: attr(data-label-text);\n font-size: 0.85rem;\n font-weight: 600;\n color: var(--code-header-text-color);\n }\n }\n\n /* clipboard */\n button {\n @extend %cursor-pointer;\n @extend %rounded;\n\n border: 1px solid transparent;\n height: $code-header-height;\n width: $code-header-height;\n padding: 0;\n background-color: inherit;\n\n i {\n color: var(--code-header-icon-color);\n }\n\n &[timeout] {\n &:hover {\n border-color: var(--clipboard-checked-color);\n }\n\n i {\n color: var(--clipboard-checked-color);\n }\n }\n\n &:focus {\n outline: none;\n }\n\n &:not([timeout]):hover {\n background-color: rgba(128, 128, 128, 0.37);\n\n i {\n color: white;\n }\n }\n }\n}\n\n@media all and (min-width: 576px) {\n div[class^='language-'] {\n .content > & {\n @include ml-mr(0);\n\n border-radius: $base-radius;\n }\n\n .code-header {\n @include ml-mr(0);\n\n $dot-margin: 1rem;\n\n &::before {\n content: '';\n display: inline-block;\n margin-left: $dot-margin;\n width: $code-dot-size;\n height: $code-dot-size;\n border-radius: 50%;\n background-color: var(--code-header-muted-color);\n box-shadow: ($code-dot-size + $code-dot-gap) 0 0\n var(--code-header-muted-color),\n ($code-dot-size + $code-dot-gap) * 2 0 0\n var(--code-header-muted-color);\n }\n\n span {\n // center the text of label\n margin-left: calc(($dot-margin + $code-dot-size) / 2 * -1);\n }\n }\n }\n}\n","/*\n * The syntax light mode code snippet colors.\n */\n\n@mixin light-syntax {\n /* --- custom light colors --- */\n --language-border-color: #ececec;\n --highlight-bg-color: #f6f8fa;\n --highlighter-rouge-color: #3f596f;\n --highlight-lineno-color: #9e9e9e;\n --inline-code-bg: #f6f6f7;\n --code-color: #3a3a3a;\n --code-header-text-color: #a3a3a3;\n --code-header-muted-color: #e5e5e5;\n --code-header-icon-color: #c9c8c8;\n --clipboard-checked-color: #43c743;\n\n [class^='prompt-'] {\n --inline-code-bg: #fbfafa;\n }\n\n /* --- Syntax highlight theme from `rougify style github` --- */\n\n .highlight table td {\n padding: 5px;\n }\n\n .highlight table pre {\n margin: 0;\n }\n\n .highlight,\n .highlight .w {\n color: #24292f;\n background-color: #f6f8fa;\n }\n\n .highlight .k,\n .highlight .kd,\n .highlight .kn,\n .highlight .kp,\n .highlight .kr,\n .highlight .kt,\n .highlight .kv {\n color: #cf222e;\n }\n\n .highlight .gr {\n color: #f6f8fa;\n }\n\n .highlight .gd {\n color: #82071e;\n background-color: #ffebe9;\n }\n\n .highlight .nb {\n color: #953800;\n }\n\n .highlight .nc {\n color: #953800;\n }\n\n .highlight .no {\n color: #953800;\n }\n\n .highlight .nn {\n color: #953800;\n }\n\n .highlight .sr {\n color: #116329;\n }\n\n .highlight .na {\n color: #116329;\n }\n\n .highlight .nt {\n color: #116329;\n }\n\n .highlight .gi {\n color: #116329;\n background-color: #dafbe1;\n }\n\n .highlight .kc {\n color: #0550ae;\n }\n\n .highlight .l,\n .highlight .ld,\n .highlight .m,\n .highlight .mb,\n .highlight .mf,\n .highlight .mh,\n .highlight .mi,\n .highlight .il,\n .highlight .mo,\n .highlight .mx {\n color: #0550ae;\n }\n\n .highlight .sb {\n color: #0550ae;\n }\n\n .highlight .bp {\n color: #0550ae;\n }\n\n .highlight .ne {\n color: #0550ae;\n }\n\n .highlight .nl {\n color: #0550ae;\n }\n\n .highlight .py {\n color: #0550ae;\n }\n\n .highlight .nv,\n .highlight .vc,\n .highlight .vg,\n .highlight .vi,\n .highlight .vm {\n color: #0550ae;\n }\n\n .highlight .o,\n .highlight .ow {\n color: #0550ae;\n }\n\n .highlight .gh {\n color: #0550ae;\n font-weight: bold;\n }\n\n .highlight .gu {\n color: #0550ae;\n font-weight: bold;\n }\n\n .highlight .s,\n .highlight .sa,\n .highlight .sc,\n .highlight .dl,\n .highlight .sd,\n .highlight .s2,\n .highlight .se,\n .highlight .sh,\n .highlight .sx,\n .highlight .s1,\n .highlight .ss {\n color: #0a3069;\n }\n\n .highlight .nd {\n color: #8250df;\n }\n\n .highlight .nf,\n .highlight .fm {\n color: #8250df;\n }\n\n .highlight .err {\n color: #f6f8fa;\n background-color: #82071e;\n }\n\n .highlight .c,\n .highlight .ch,\n .highlight .cd,\n .highlight .cm,\n .highlight .cp,\n .highlight .cpf,\n .highlight .c1,\n .highlight .cs {\n color: #68717a;\n }\n\n .highlight .gl {\n color: #68717a;\n }\n\n .highlight .gt {\n color: #68717a;\n }\n\n .highlight .ni {\n color: #24292f;\n }\n\n .highlight .si {\n color: #24292f;\n }\n\n .highlight .ge {\n color: #24292f;\n font-style: italic;\n }\n\n .highlight .gs {\n color: #24292f;\n font-weight: bold;\n }\n} /* light-syntax */\n","/*\n * The syntax dark mode styles.\n */\n\n@mixin dark-syntax {\n --language-border-color: #2d2d2d;\n --highlight-bg-color: #151515;\n --highlighter-rouge-color: #c9def1;\n --highlight-lineno-color: #808080;\n --inline-code-bg: #323238;\n --code-color: #b0b0b0;\n --code-header-text-color: #6a6a6a;\n --code-header-muted-color: #353535;\n --code-header-icon-color: #565656;\n --clipboard-checked-color: #2bcc2b;\n --filepath-text-color: #cacaca;\n\n .highlight .gp {\n color: #87939d;\n }\n\n /* --- Syntax highlight theme from `rougify style base16.dark` --- */\n\n .highlight table td {\n padding: 5px;\n }\n\n .highlight table pre {\n margin: 0;\n }\n\n .highlight,\n .highlight .w {\n color: #d0d0d0;\n background-color: #151515;\n }\n\n .highlight .err {\n color: #151515;\n background-color: #ac4142;\n }\n\n .highlight .c,\n .highlight .ch,\n .highlight .cd,\n .highlight .cm,\n .highlight .cpf,\n .highlight .c1,\n .highlight .cs {\n color: #848484;\n }\n\n .highlight .cp {\n color: #f4bf75;\n }\n\n .highlight .nt {\n color: #f4bf75;\n }\n\n .highlight .o,\n .highlight .ow {\n color: #d0d0d0;\n }\n\n .highlight .p,\n .highlight .pi {\n color: #d0d0d0;\n }\n\n .highlight .gi {\n color: #90a959;\n }\n\n .highlight .gd {\n color: #f08a8b;\n background-color: #320000;\n }\n\n .highlight .gh {\n color: #6a9fb5;\n background-color: #151515;\n font-weight: bold;\n }\n\n .highlight .k,\n .highlight .kn,\n .highlight .kp,\n .highlight .kr,\n .highlight .kv {\n color: #aa759f;\n }\n\n .highlight .kc {\n color: #d28445;\n }\n\n .highlight .kt {\n color: #d28445;\n }\n\n .highlight .kd {\n color: #d28445;\n }\n\n .highlight .s,\n .highlight .sb,\n .highlight .sc,\n .highlight .dl,\n .highlight .sd,\n .highlight .s2,\n .highlight .sh,\n .highlight .sx,\n .highlight .s1 {\n color: #90a959;\n }\n\n .highlight .sa {\n color: #aa759f;\n }\n\n .highlight .sr {\n color: #75b5aa;\n }\n\n .highlight .si {\n color: #b76d45;\n }\n\n .highlight .se {\n color: #b76d45;\n }\n\n .highlight .nn {\n color: #f4bf75;\n }\n\n .highlight .nc {\n color: #f4bf75;\n }\n\n .highlight .no {\n color: #f4bf75;\n }\n\n .highlight .na {\n color: #6a9fb5;\n }\n\n .highlight .m,\n .highlight .mb,\n .highlight .mf,\n .highlight .mh,\n .highlight .mi,\n .highlight .il,\n .highlight .mo,\n .highlight .mx {\n color: #90a959;\n }\n\n .highlight .ss {\n color: #90a959;\n }\n}\n","/* The common styles */\n\nhtml {\n @media (prefers-color-scheme: light) {\n &:not([data-mode]),\n &[data-mode='light'] {\n @include light-scheme;\n }\n\n &[data-mode='dark'] {\n @include dark-scheme;\n }\n }\n\n @media (prefers-color-scheme: dark) {\n &:not([data-mode]),\n &[data-mode='dark'] {\n @include dark-scheme;\n }\n\n &[data-mode='light'] {\n @include light-scheme;\n }\n }\n\n font-size: 16px;\n}\n\nbody {\n background: var(--main-bg);\n padding: env(safe-area-inset-top) env(safe-area-inset-right)\n env(safe-area-inset-bottom) env(safe-area-inset-left);\n color: var(--text-color);\n -webkit-font-smoothing: antialiased;\n font-family: $font-family-base;\n}\n\n/* --- Typography --- */\n\n@for $i from 1 through 5 {\n h#{$i} {\n @extend %heading;\n\n @if $i > 1 {\n @extend %section;\n @extend %anchor;\n }\n\n @if $i < 5 {\n $factor: 0.18rem;\n\n @if $i == 1 {\n $factor: 0.23rem;\n }\n\n font-size: 1rem + (5 - $i) * $factor;\n } @else {\n font-size: 1rem;\n }\n }\n}\n\na {\n @extend %link-color;\n\n text-decoration: none;\n}\n\nimg {\n max-width: 100%;\n height: auto;\n transition: all 0.35s ease-in-out;\n\n .blur & {\n $blur: 20px;\n\n -webkit-filter: blur($blur);\n filter: blur($blur);\n }\n}\n\nblockquote {\n border-left: 5px solid var(--blockquote-border-color);\n padding-left: 1rem;\n color: var(--blockquote-text-color);\n\n > p:last-child {\n margin-bottom: 0;\n }\n\n &[class^='prompt-'] {\n border-left: 0;\n position: relative;\n padding: 1rem 1rem 1rem 3rem;\n color: var(--prompt-text-color);\n\n @extend %rounded;\n\n &::before {\n text-align: center;\n width: 3rem;\n position: absolute;\n left: 0.25rem;\n margin-top: 0.4rem;\n text-rendering: auto;\n -webkit-font-smoothing: antialiased;\n }\n }\n\n @include prompt('tip', '\\f0eb', 'regular');\n @include prompt('info', '\\f06a');\n @include prompt('warning', '\\f06a');\n @include prompt('danger', '\\f071');\n}\n\nkbd {\n font-family: inherit;\n display: inline-block;\n vertical-align: middle;\n line-height: 1.3rem;\n min-width: 1.75rem;\n text-align: center;\n margin: 0 0.3rem;\n padding-top: 0.1rem;\n color: var(--kbd-text-color);\n background-color: var(--kbd-bg-color);\n border-radius: 0.25rem;\n border: solid 1px var(--kbd-wrap-color);\n box-shadow: inset 0 -2px 0 var(--kbd-wrap-color);\n}\n\nhr {\n border-color: var(--main-border-color);\n opacity: 1;\n}\n\nfooter {\n background-color: var(--main-bg);\n height: $footer-height;\n border-top: 1px solid var(--main-border-color);\n\n @extend %text-xs;\n\n a {\n @extend %text-highlight;\n\n &:hover {\n @extend %link-hover;\n }\n }\n\n em {\n @extend %text-highlight;\n }\n\n p {\n text-align: center;\n margin-bottom: 0;\n }\n}\n\n/* fontawesome icons */\ni {\n &.far,\n &.fas {\n @extend %no-cursor;\n }\n}\n\n/* --- Panels --- */\n\n.access {\n top: 2rem;\n transition: top 0.2s ease-in-out;\n margin-top: 3rem;\n margin-bottom: 4rem;\n\n &:only-child {\n position: -webkit-sticky;\n position: sticky;\n }\n\n > section {\n padding-left: 1rem;\n border-left: 1px solid var(--main-border-color);\n\n &:not(:last-child) {\n margin-bottom: 4rem;\n }\n }\n\n .content {\n font-size: 0.9rem;\n }\n}\n\n#panel-wrapper {\n /* the headings */\n .panel-heading {\n font-family: inherit;\n line-height: inherit;\n\n @include label(inherit);\n }\n\n .post-tag {\n line-height: 1.05rem;\n font-size: 0.85rem;\n border-radius: 0.8rem;\n padding: 0.3rem 0.5rem;\n margin: 0 0.35rem 0.5rem 0;\n\n &:hover {\n transition: all 0.3s ease-in;\n }\n }\n}\n\n#access-lastmod {\n a {\n &:hover {\n @extend %link-hover;\n }\n\n @extend %no-bottom-border;\n\n color: inherit;\n }\n}\n\n.footnotes > ol {\n padding-left: 2rem;\n margin-top: 0.5rem;\n\n > li {\n &:not(:last-child) {\n margin-bottom: 0.3rem;\n }\n\n @extend %sup-fn-target;\n\n > p {\n margin-left: 0.25em;\n margin-top: 0;\n margin-bottom: 0;\n }\n }\n}\n\n.footnote {\n @at-root a#{&} {\n @include ml-mr(1px);\n @include pl-pr(2px);\n\n border-bottom-style: none !important;\n }\n}\n\nsup {\n @extend %sup-fn-target;\n}\n\n.reversefootnote {\n @at-root a#{&} {\n font-size: 0.6rem;\n line-height: 1;\n position: relative;\n bottom: 0.25em;\n margin-left: 0.25em;\n border-bottom-style: none !important;\n }\n}\n\n/* --- Begin of Markdown table style --- */\n\n/* it will be created by Liquid */\n.table-wrapper {\n overflow-x: auto;\n margin-bottom: 1.5rem;\n\n > table {\n min-width: 100%;\n overflow-x: auto;\n border-spacing: 0;\n\n thead {\n border-bottom: solid 2px rgba(210, 215, 217, 0.75);\n\n th {\n @extend %table-cell;\n }\n }\n\n tbody {\n tr {\n border-bottom: 1px solid var(--tb-border-color);\n\n &:nth-child(2n) {\n background-color: var(--tb-even-bg);\n }\n\n &:nth-child(2n + 1) {\n background-color: var(--tb-odd-bg);\n }\n\n td {\n @extend %table-cell;\n }\n }\n } /* tbody */\n } /* table */\n}\n\n/* --- post --- */\n\n.preview-img {\n aspect-ratio: 40 / 21;\n width: 100%;\n height: 100%;\n overflow: hidden;\n\n @extend %rounded;\n\n &:not(.no-bg) {\n background: var(--img-bg);\n }\n\n img {\n height: 100%;\n -o-object-fit: cover;\n object-fit: cover;\n\n @extend %rounded;\n\n @at-root #post-list & {\n width: 100%;\n }\n }\n}\n\n.post-preview {\n @extend %rounded;\n\n border: 0;\n background: var(--card-bg);\n box-shadow: var(--card-shadow);\n\n &::before {\n @extend %rounded;\n\n content: '';\n width: 100%;\n height: 100%;\n position: absolute;\n background-color: var(--card-hovor-bg);\n opacity: 0;\n transition: opacity 0.35s ease-in-out;\n }\n\n &:hover {\n &::before {\n opacity: 0.3;\n }\n }\n}\n\nmain {\n line-height: 1.75;\n\n h1 {\n margin-top: 2rem;\n }\n\n p {\n > a.popup {\n &:not(.normal):not(.left):not(.right) {\n @include align-center;\n }\n }\n }\n\n .categories,\n #tags,\n #archives {\n a:not(:hover) {\n @extend %no-bottom-border;\n }\n }\n}\n\n.post-meta {\n @extend %text-sm;\n\n a {\n &:not([class]):hover {\n @extend %link-hover;\n }\n }\n\n em {\n @extend %normal-font-style;\n }\n}\n\n.content {\n font-size: 1.08rem;\n margin-top: 2rem;\n overflow-wrap: break-word;\n\n a {\n &.popup {\n @extend %no-cursor;\n @extend %img-caption;\n @include mt-mb(0.5rem);\n\n cursor: zoom-in;\n }\n\n &:not(.img-link) {\n @extend %link-underline;\n\n &:hover {\n @extend %link-hover;\n }\n }\n }\n\n ol,\n ul {\n &:not([class]),\n &.task-list {\n -webkit-padding-start: 1.75rem;\n padding-inline-start: 1.75rem;\n\n li {\n margin: 0.25rem 0;\n padding-left: 0.25rem;\n }\n\n ol,\n ul {\n -webkit-padding-start: 1.25rem;\n padding-inline-start: 1.25rem;\n margin: 0.5rem 0;\n }\n }\n }\n\n ul.task-list {\n -webkit-padding-start: 1.25rem;\n padding-inline-start: 1.25rem;\n\n li {\n list-style-type: none;\n padding-left: 0;\n\n /* checkbox icon */\n > i {\n width: 2rem;\n margin-left: -1.25rem;\n color: var(--checkbox-color);\n\n &.checked {\n color: var(--checkbox-checked-color);\n }\n }\n\n ul {\n -webkit-padding-start: 1.75rem;\n padding-inline-start: 1.75rem;\n }\n }\n\n input[type='checkbox'] {\n margin: 0 0.5rem 0.2rem -1.3rem;\n vertical-align: middle;\n }\n } /* ul */\n\n dl > dd {\n margin-left: 1rem;\n }\n\n ::marker {\n color: var(--text-muted-color);\n }\n} /* .content */\n\n.tag:hover {\n @extend %tag-hover;\n}\n\n.post-tag {\n display: inline-block;\n min-width: 2rem;\n text-align: center;\n border-radius: 0.5rem;\n border: 1px solid var(--btn-border-color);\n padding: 0 0.4rem;\n color: var(--text-muted-color);\n line-height: 1.3rem;\n\n &:not(:last-child) {\n margin-right: 0.2rem;\n }\n}\n\n.rounded-10 {\n border-radius: 10px !important;\n}\n\n.img-link {\n color: transparent;\n display: inline-flex;\n}\n\n.shimmer {\n overflow: hidden;\n position: relative;\n background: var(--img-bg);\n\n &::before {\n content: '';\n position: absolute;\n background: var(--shimmer-bg);\n height: 100%;\n width: 100%;\n -webkit-animation: shimmer 1.3s infinite;\n animation: shimmer 1.3s infinite;\n }\n\n @-webkit-keyframes shimmer {\n 0% {\n transform: translateX(-100%);\n }\n\n 100% {\n transform: translateX(100%);\n }\n }\n\n @keyframes shimmer {\n 0% {\n transform: translateX(-100%);\n }\n\n 100% {\n transform: translateX(100%);\n }\n }\n}\n\n.embed-video {\n width: 100%;\n height: 100%;\n margin-bottom: 1rem;\n aspect-ratio: 16 / 9;\n\n @extend %rounded;\n\n &.twitch {\n aspect-ratio: 310 / 189;\n }\n\n &.file {\n display: block;\n width: auto;\n height: auto;\n max-width: 100%;\n max-height: 100%;\n margin: auto;\n margin-bottom: 0;\n }\n\n @extend %img-caption;\n}\n\n.embed-audio {\n width: 100%;\n display: block;\n\n @extend %img-caption;\n}\n\n/* --- buttons --- */\n.btn-lang {\n border: 1px solid !important;\n padding: 1px 3px;\n border-radius: 3px;\n color: var(--link-color);\n\n &:focus {\n box-shadow: none;\n }\n}\n\n/* --- Effects classes --- */\n\n.flex-grow-1 {\n flex-grow: 1 !important;\n}\n\n.btn-box-shadow {\n box-shadow: var(--card-shadow);\n}\n\n/* overwrite bootstrap muted */\n.text-muted {\n color: var(--text-muted-color) !important;\n}\n\n/* Overwrite bootstrap tooltip */\n.tooltip-inner {\n font-size: 0.7rem;\n max-width: 220px;\n text-align: left;\n}\n\n/* Overwrite bootstrap outline button */\n.btn.btn-outline-primary {\n &:not(.disabled):hover {\n border-color: #007bff !important;\n }\n}\n\n.disabled {\n color: rgb(206, 196, 196);\n pointer-events: auto;\n cursor: not-allowed;\n}\n\n.hide-border-bottom {\n border-bottom: none !important;\n}\n\n.input-focus {\n box-shadow: none;\n border-color: var(--input-focus-border-color) !important;\n background: center !important;\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out;\n}\n\n.left {\n float: left;\n margin: 0.75rem 1rem 1rem 0;\n}\n\n.right {\n float: right;\n margin: 0.75rem 0 1rem 1rem;\n}\n\n/* --- Overriding --- */\n\n/* mermaid */\n.mermaid {\n text-align: center;\n}\n\n/* MathJax */\nmjx-container {\n overflow-y: hidden;\n min-width: auto !important;\n}\n\n/* --- sidebar layout --- */\n\n$sidebar-display: 'sidebar-display';\n$btn-border-width: 3px;\n$btn-mb: 0.5rem;\n\n#sidebar {\n @include pl-pr(0);\n\n position: fixed;\n top: 0;\n left: 0;\n height: 100%;\n overflow-y: auto;\n width: $sidebar-width;\n z-index: 99;\n background: var(--sidebar-bg);\n border-right: 1px solid var(--sidebar-border-color);\n\n /* Hide scrollbar for Chrome, Safari and Opera */\n &::-webkit-scrollbar {\n display: none;\n }\n\n /* Hide scrollbar for IE, Edge and Firefox */\n -ms-overflow-style: none; /* IE and Edge */\n scrollbar-width: none; /* Firefox */\n\n %sidebar-link-hover {\n &:hover {\n color: var(--sidebar-active-color);\n }\n }\n\n a {\n @extend %sidebar-links;\n }\n\n #avatar {\n display: block;\n width: 7rem;\n height: 7rem;\n overflow: hidden;\n box-shadow: var(--avatar-border-color) 0 0 0 2px;\n transform: translateZ(0); /* fixed the zoom in Safari */\n\n img {\n transition: transform 0.5s;\n\n &:hover {\n transform: scale(1.2);\n }\n }\n }\n\n .profile-wrapper {\n @include mt-mb(2.5rem);\n @extend %clickable-transition;\n\n padding-left: 2.5rem;\n padding-right: 1.25rem;\n width: 100%;\n }\n\n .site-title {\n font-family: inherit;\n font-weight: 900;\n font-size: 1.75rem;\n line-height: 1.2;\n letter-spacing: 0.25px;\n margin-top: 1.25rem;\n margin-bottom: 0.5rem;\n\n a {\n @extend %clickable-transition;\n @extend %sidebar-link-hover;\n\n color: var(--site-title-color);\n }\n }\n\n .site-subtitle {\n font-size: 95%;\n color: var(--site-subtitle-color);\n margin-top: 0.25rem;\n word-spacing: 1px;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n }\n\n ul {\n margin-bottom: 2rem;\n\n li.nav-item {\n opacity: 0.9;\n width: 100%;\n padding-left: 1.5rem;\n padding-right: 1.5rem;\n\n a.nav-link {\n @include pt-pb(0.6rem);\n\n display: flex;\n align-items: center;\n border-radius: 0.75rem;\n font-weight: 600;\n\n &:hover {\n background-color: var(--sidebar-hover-bg);\n }\n\n i {\n font-size: 95%;\n opacity: 0.8;\n margin-right: 1.5rem;\n }\n\n span {\n font-size: 90%;\n letter-spacing: 0.2px;\n }\n }\n\n &.active {\n .nav-link {\n color: var(--sidebar-active-color);\n background-color: var(--sidebar-hover-bg);\n\n span {\n opacity: 1;\n }\n }\n }\n\n &:not(:first-child) {\n margin-top: 0.25rem;\n }\n }\n }\n\n .sidebar-bottom {\n padding-left: 2rem;\n padding-right: 1rem;\n margin-bottom: 1.5rem;\n\n $btn-size: 1.75rem;\n\n %button {\n width: $btn-size;\n height: $btn-size;\n margin-bottom: $btn-mb; // multi line gap\n border-radius: 50%;\n color: var(--sidebar-btn-color);\n background-color: var(--sidebar-btn-bg);\n text-align: center;\n display: flex;\n align-items: center;\n justify-content: center;\n\n &:not(:focus-visible) {\n box-shadow: var(--sidebar-border-color) 0 0 0 1px;\n }\n\n &:hover {\n background-color: var(--sidebar-hover-bg);\n }\n }\n\n a {\n @extend %button;\n @extend %sidebar-link-hover;\n @extend %clickable-transition;\n\n &:not(:last-child) {\n margin-right: $sb-btn-gap;\n }\n }\n\n i {\n line-height: $btn-size;\n }\n\n #mode-toggle {\n @extend %button;\n @extend %sidebar-links;\n @extend %sidebar-link-hover;\n }\n\n .icon-border {\n @extend %no-cursor;\n @include ml-mr(calc(($sb-btn-gap - $btn-border-width) / 2));\n\n background-color: var(--sidebar-btn-color);\n content: '';\n width: $btn-border-width;\n height: $btn-border-width;\n border-radius: 50%;\n margin-bottom: $btn-mb;\n }\n } /* .sidebar-bottom */\n} /* #sidebar */\n\n@media (hover: hover) {\n #sidebar ul > li:last-child::after {\n transition: top 0.5s ease;\n }\n\n .nav-link {\n transition: background-color 0.3s ease-in-out;\n }\n\n .post-preview {\n transition: background-color 0.35s ease-in-out;\n }\n}\n\n#search-result-wrapper {\n display: none;\n height: 100%;\n width: 100%;\n overflow: auto;\n\n .content {\n margin-top: 2rem;\n }\n}\n\n/* --- top-bar --- */\n\n#topbar-wrapper {\n height: $topbar-height;\n background-color: var(--topbar-bg);\n}\n\n#topbar {\n button i {\n color: #999999;\n }\n\n #breadcrumb {\n font-size: 1rem;\n color: var(--text-muted-color);\n padding-left: 0.5rem;\n\n a:hover {\n @extend %link-hover;\n }\n\n span {\n &:not(:last-child) {\n &::after {\n content: '›';\n padding: 0 0.3rem;\n }\n }\n }\n }\n} /* #topbar */\n\n::-webkit-input-placeholder {\n @include placeholder;\n}\n\n::-moz-placeholder {\n @include placeholder;\n}\n\n:-ms-input-placeholder {\n @include placeholder;\n}\n\n::-ms-input-placeholder {\n @include placeholder;\n}\n\n::placeholder {\n @include placeholder;\n}\n\n:focus::-webkit-input-placeholder {\n @include placeholder-focus;\n}\n\n:focus::-moz-placeholder {\n @include placeholder-focus;\n}\n\n:focus:-ms-input-placeholder {\n @include placeholder-focus;\n}\n\n:focus::-ms-input-placeholder {\n @include placeholder-focus;\n}\n\n:focus::placeholder {\n @include placeholder-focus;\n}\n\nsearch {\n display: flex;\n width: 100%;\n border-radius: 1rem;\n border: 1px solid var(--search-border-color);\n background: var(--main-bg);\n padding: 0 0.5rem;\n\n i {\n z-index: 2;\n font-size: 0.9rem;\n color: var(--search-icon-color);\n }\n}\n\n#sidebar-trigger,\n#search-trigger {\n display: none;\n}\n\n/* 'Cancel' link */\n#search-cancel {\n color: var(--link-color);\n display: none;\n white-space: nowrap;\n\n @extend %cursor-pointer;\n}\n\n#search-input {\n background: center;\n border: 0;\n border-radius: 0;\n padding: 0.18rem 0.3rem;\n color: var(--text-color);\n height: auto;\n\n &:focus {\n box-shadow: none;\n }\n}\n\n#search-hints {\n padding: 0 1rem;\n\n h4 {\n margin-bottom: 1.5rem;\n }\n\n .post-tag {\n display: inline-block;\n line-height: 1rem;\n font-size: 1rem;\n background: var(--search-tag-bg);\n border: none;\n padding: 0.5rem;\n margin: 0 1.25rem 1rem 0;\n\n &::before {\n content: '#';\n color: var(--text-muted-color);\n padding-right: 0.2rem;\n }\n\n @extend %link-color;\n }\n}\n\n#search-results {\n padding-bottom: 3rem;\n\n a {\n &:hover {\n @extend %link-hover;\n }\n\n @extend %link-color;\n @extend %no-bottom-border;\n @extend %heading;\n\n font-size: 1.4rem;\n line-height: 2.5rem;\n }\n\n > article {\n width: 100%;\n\n &:not(:last-child) {\n margin-bottom: 1rem;\n }\n\n /* icons */\n i {\n color: #818182;\n margin-right: 0.15rem;\n font-size: 80%;\n }\n\n > p {\n overflow: hidden;\n text-overflow: ellipsis;\n display: -webkit-box;\n -webkit-line-clamp: 3;\n -webkit-box-orient: vertical;\n }\n }\n} /* #search-results */\n\n#topbar-title {\n display: none;\n font-size: 1.1rem;\n font-weight: 600;\n font-family: sans-serif;\n color: var(--topbar-text-color);\n text-align: center;\n width: 70%;\n overflow: hidden;\n text-overflow: ellipsis;\n word-break: keep-all;\n white-space: nowrap;\n}\n\n#mask {\n display: none;\n position: fixed;\n inset: 0 0 0 0;\n height: 100%;\n width: 100%;\n z-index: 1;\n\n @at-root [#{$sidebar-display}] & {\n display: block !important;\n }\n}\n\n/* --- basic wrappers --- */\n\n#main-wrapper {\n position: relative;\n\n @include pl-pr(0);\n\n > .container {\n min-height: 100vh;\n }\n}\n\n#topbar-wrapper.row,\n#main-wrapper > .container > .row,\n#search-result-wrapper > .row {\n @include ml-mr(0);\n}\n\n#tail-wrapper {\n > :not(script) {\n margin-top: 3rem;\n }\n}\n\n/* --- button back-to-top --- */\n\n#back-to-top {\n visibility: hidden;\n opacity: 0;\n z-index: 1;\n cursor: pointer;\n position: fixed;\n right: 1rem;\n bottom: calc($footer-height-large - $back2top-size / 2);\n background: var(--button-bg);\n color: var(--btn-backtotop-color);\n padding: 0;\n width: $back2top-size;\n height: $back2top-size;\n border-radius: 50%;\n border: 1px solid var(--btn-backtotop-border-color);\n transition: opacity 0.5s ease-in-out, transform 0.2s ease-out;\n\n &:hover {\n transform: translate3d(0, -5px, 0);\n -webkit-transform: translate3d(0, -5px, 0);\n }\n\n i {\n line-height: $back2top-size;\n position: relative;\n bottom: 2px;\n }\n\n &.show {\n opacity: 1;\n visibility: visible;\n }\n}\n\n#notification {\n @-webkit-keyframes popup {\n from {\n opacity: 0;\n bottom: 0;\n }\n }\n\n @keyframes popup {\n from {\n opacity: 0;\n bottom: 0;\n }\n }\n\n .toast-header {\n background: none;\n border-bottom: none;\n color: inherit;\n }\n\n .toast-body {\n font-family: Lato, sans-serif;\n line-height: 1.25rem;\n\n button {\n font-size: 90%;\n min-width: 4rem;\n }\n }\n\n &.toast {\n &.show {\n display: block;\n min-width: 20rem;\n border-radius: 0.5rem;\n -webkit-backdrop-filter: blur(10px);\n backdrop-filter: blur(10px);\n background-color: rgba(255, 255, 255, 0.5);\n color: #1b1b1eba;\n position: fixed;\n left: 50%;\n bottom: 20%;\n transform: translateX(-50%);\n -webkit-animation: popup 0.8s;\n animation: popup 0.8s;\n }\n }\n}\n\n/*\n Responsive Design:\n\n {sidebar, content, panel} >= 1200px screen width\n {sidebar, content} >= 850px screen width\n {content} <= 849px screen width\n\n*/\n\n@media all and (max-width: 576px) {\n main {\n .content {\n > blockquote[class^='prompt-'] {\n @include ml-mr(-1rem);\n\n border-radius: 0;\n max-width: none;\n }\n }\n }\n\n #avatar {\n width: 5rem;\n height: 5rem;\n }\n}\n\n@media all and (max-width: 768px) {\n %full-width {\n max-width: 100%;\n }\n\n #topbar {\n @extend %full-width;\n }\n\n #main-wrapper > .container {\n @extend %full-width;\n @include pl-pr(0);\n }\n}\n\n/* hide sidebar and panel */\n@media all and (max-width: 849px) {\n @mixin slide($append: null) {\n $basic: transform 0.4s ease;\n\n @if $append {\n transition: $basic, $append;\n } @else {\n transition: $basic;\n }\n }\n\n footer {\n @include slide;\n\n height: $footer-height-large;\n padding: 1.5rem 0;\n }\n\n [#{$sidebar-display}] {\n #sidebar {\n transform: translateX(0);\n }\n\n #main-wrapper {\n transform: translateX($sidebar-width);\n }\n\n #back-to-top {\n visibility: hidden;\n }\n }\n\n #sidebar {\n @include slide;\n\n transform: translateX(-$sidebar-width); /* hide */\n -webkit-transform: translateX(-$sidebar-width);\n }\n\n #main-wrapper {\n @include slide;\n }\n\n #topbar,\n #main-wrapper > .container {\n max-width: 100%;\n }\n\n #search-result-wrapper {\n width: 100%;\n }\n\n #breadcrumb,\n search {\n display: none;\n }\n\n #topbar-wrapper {\n @include slide(top 0.2s ease);\n\n left: 0;\n }\n\n main,\n #panel-wrapper {\n margin-top: 0;\n }\n\n #topbar-title,\n #sidebar-trigger,\n #search-trigger {\n display: block;\n }\n\n #search-result-wrapper .content {\n letter-spacing: 0;\n }\n\n #tags {\n justify-content: center !important;\n }\n\n h1.dynamic-title {\n display: none;\n\n ~ .content {\n margin-top: 2.5rem;\n }\n }\n} /* max-width: 849px */\n\n/* Sidebar is visible */\n@media all and (min-width: 850px) {\n /* Solved jumping scrollbar */\n html {\n overflow-y: scroll;\n }\n\n #main-wrapper {\n margin-left: $sidebar-width;\n }\n\n #sidebar {\n .profile-wrapper {\n margin-top: 3rem;\n }\n }\n\n #search-hints {\n display: none;\n }\n\n search {\n max-width: $search-max-width;\n }\n\n #search-result-wrapper {\n max-width: $main-content-max-width;\n justify-content: start !important;\n }\n\n main {\n h1 {\n margin-top: 3rem;\n }\n }\n\n div.content .table-wrapper > table {\n min-width: 70%;\n }\n\n /* button 'back-to-Top' position */\n #back-to-top {\n right: 5%;\n bottom: calc($footer-height - $back2top-size / 2);\n }\n\n #topbar-title {\n text-align: left;\n }\n}\n\n/* Pad horizontal */\n@media all and (min-width: 992px) and (max-width: 1199px) {\n #main-wrapper > .container .col-lg-11 {\n flex: 0 0 96%;\n max-width: 96%;\n }\n}\n\n/* Compact icons in sidebar & panel hidden */\n@media all and (min-width: 850px) and (max-width: 1199px) {\n #search-results > div {\n max-width: 700px;\n }\n\n #breadcrumb {\n width: 65%;\n overflow: hidden;\n text-overflow: ellipsis;\n word-break: keep-all;\n white-space: nowrap;\n }\n}\n\n/* panel hidden */\n@media all and (max-width: 1199px) {\n #panel-wrapper {\n display: none;\n }\n\n #main-wrapper > .container > div.row {\n justify-content: center !important;\n }\n}\n\n/* --- desktop mode, both sidebar and panel are visible --- */\n\n@media all and (min-width: 1200px) {\n search {\n margin-right: 4rem;\n }\n\n #search-input {\n transition: all 0.3s ease-in-out;\n }\n\n #search-results > article {\n width: 45%;\n\n &:nth-child(odd) {\n margin-right: 1.5rem;\n }\n\n &:nth-child(even) {\n margin-left: 1.5rem;\n }\n\n &:last-child:nth-child(odd) {\n position: relative;\n right: 24.3%;\n }\n }\n\n .content {\n font-size: 1.03rem;\n }\n}\n\n@media all and (min-width: 1400px) {\n #back-to-top {\n right: calc((100vw - $sidebar-width - 1140px) / 2 + 3rem);\n }\n}\n\n@media all and (min-width: 1650px) {\n $icon-gap: 1rem;\n\n #main-wrapper {\n margin-left: $sidebar-width-large;\n }\n\n #topbar-wrapper {\n left: $sidebar-width-large;\n }\n\n search {\n margin-right: calc(\n $main-content-max-width / 4 - $search-max-width - 0.75rem\n );\n }\n\n #main-wrapper > .container {\n max-width: $main-content-max-width;\n padding-left: 1.75rem !important;\n padding-right: 1.75rem !important;\n }\n\n main.col-12,\n #tail-wrapper {\n padding-right: 4.5rem !important;\n }\n\n #back-to-top {\n right: calc(\n (100vw - $sidebar-width-large - $main-content-max-width) / 2 + 2rem\n );\n }\n\n #sidebar {\n width: $sidebar-width-large;\n\n .profile-wrapper {\n margin-top: 3.5rem;\n margin-bottom: 2.5rem;\n padding-left: 3.5rem;\n }\n\n ul {\n li.nav-item {\n @include pl-pr(2.75rem);\n }\n }\n\n .sidebar-bottom {\n padding-left: 2.75rem;\n margin-bottom: 1.75rem;\n\n a:not(:last-child) {\n margin-right: $sb-btn-gap-lg;\n }\n\n .icon-border {\n @include ml-mr(calc(($sb-btn-gap-lg - $btn-border-width) / 2));\n }\n }\n }\n} /* min-width: 1650px */\n","/*\n * The syntax light mode typography colors\n */\n\n@mixin light-scheme {\n /* Framework color */\n --main-bg: white;\n --mask-bg: #c1c3c5;\n --main-border-color: #f3f3f3;\n\n /* Common color */\n --text-color: #34343c;\n --text-muted-color: #757575;\n --text-muted-hightlight-color: inherit;\n --heading-color: #2a2a2a;\n --label-color: #585858;\n --blockquote-border-color: #eeeeee;\n --blockquote-text-color: #757575;\n --link-color: #0056b2;\n --link-underline-color: #dee2e6;\n --button-bg: #ffffff;\n --btn-border-color: #e9ecef;\n --btn-backtotop-color: #686868;\n --btn-backtotop-border-color: #f1f1f1;\n --btn-box-shadow: #eaeaea;\n --checkbox-color: #c5c5c5;\n --checkbox-checked-color: #07a8f7;\n --img-bg: radial-gradient(\n circle,\n rgb(255, 255, 255) 0%,\n rgb(239, 239, 239) 100%\n );\n --shimmer-bg: linear-gradient(\n 90deg,\n rgba(250, 250, 250, 0) 0%,\n rgba(232, 230, 230, 1) 50%,\n rgba(250, 250, 250, 0) 100%\n );\n\n /* Sidebar */\n --site-title-color: rgb(113, 113, 113);\n --site-subtitle-color: #717171;\n --sidebar-bg: #f6f8fa;\n --sidebar-border-color: #efefef;\n --sidebar-muted-color: #545454;\n --sidebar-active-color: #1d1d1d;\n --sidebar-hover-bg: rgb(223, 233, 241, 0.64);\n --sidebar-btn-bg: white;\n --sidebar-btn-color: #8e8e8e;\n --avatar-border-color: white;\n\n /* Topbar */\n --topbar-bg: rgb(255, 255, 255, 0.7);\n --topbar-text-color: rgb(78, 78, 78);\n --search-border-color: rgb(240, 240, 240);\n --search-icon-color: #c2c6cc;\n --input-focus-border-color: #b8b8b8;\n\n /* Home page */\n --post-list-text-color: dimgray;\n --btn-patinator-text-color: #555555;\n --btn-paginator-hover-color: var(--sidebar-bg);\n\n /* Posts */\n --toc-highlight: #0550ae;\n --btn-share-color: gray;\n --btn-share-hover-color: #0d6efd;\n --card-bg: white;\n --card-hovor-bg: #e2e2e2;\n --card-shadow: rgb(104, 104, 104, 0.05) 0 2px 6px 0,\n rgba(211, 209, 209, 0.15) 0 0 0 1px;\n --footnote-target-bg: lightcyan;\n --tb-odd-bg: #fbfcfd;\n --tb-border-color: #eaeaea;\n --dash-color: silver;\n --kbd-wrap-color: #bdbdbd;\n --kbd-text-color: var(--text-color);\n --kbd-bg-color: white;\n --prompt-text-color: rgb(46, 46, 46, 0.77);\n --prompt-tip-bg: rgb(123, 247, 144, 0.2);\n --prompt-tip-icon-color: #03b303;\n --prompt-info-bg: #e1f5fe;\n --prompt-info-icon-color: #0070cb;\n --prompt-warning-bg: rgb(255, 243, 205);\n --prompt-warning-icon-color: #ef9c03;\n --prompt-danger-bg: rgb(248, 215, 218, 0.56);\n --prompt-danger-icon-color: #df3c30;\n\n /* Tags */\n --tag-border: #dee2e6;\n --tag-shadow: var(--btn-border-color);\n --tag-hover: rgb(222, 226, 230);\n --search-tag-bg: #f8f9fa;\n\n [class^='prompt-'] {\n --link-underline-color: rgb(219, 216, 216);\n }\n\n .dark {\n display: none;\n }\n\n /* Categories */\n --categories-border: rgba(0, 0, 0, 0.125);\n --categories-hover-bg: var(--btn-border-color);\n --categories-icon-hover-color: darkslategray;\n\n /* Archive */\n --timeline-color: rgba(0, 0, 0, 0.075);\n --timeline-node-bg: #c2c6cc;\n --timeline-year-dot-color: #ffffff;\n} /* light-scheme */\n","/*\n * The main dark mode styles\n */\n\n@mixin dark-scheme {\n /* Framework color */\n --main-bg: rgb(27, 27, 30);\n --mask-bg: rgb(68, 69, 70);\n --main-border-color: rgb(44, 45, 45);\n\n /* Common color */\n --text-color: rgb(175, 176, 177);\n --text-muted-color: #868686;\n --text-muted-hightlight-color: #aeaeae;\n --heading-color: #cccccc;\n --label-color: #a7a7a7;\n --blockquote-border-color: rgb(66, 66, 66);\n --blockquote-text-color: #868686;\n --link-color: rgb(138, 180, 248);\n --link-underline-color: rgb(82, 108, 150);\n --button-bg: #1e1e1e;\n --btn-border-color: #2e2f31;\n --btn-backtotop-color: var(--text-color);\n --btn-backtotop-border-color: #212122;\n --btn-box-shadow: var(--main-bg);\n --card-header-bg: #292929;\n --checkbox-color: rgb(118, 120, 121);\n --checkbox-checked-color: var(--link-color);\n --img-bg: radial-gradient(circle, rgb(22, 22, 24) 0%, rgb(32, 32, 32) 100%);\n --shimmer-bg: linear-gradient(\n 90deg,\n rgba(255, 255, 255, 0) 0%,\n rgba(58, 55, 55, 0.4) 50%,\n rgba(255, 255, 255, 0) 100%\n );\n\n /* Sidebar */\n --site-title-color: #717070;\n --site-subtitle-color: #868686;\n --sidebar-bg: #1e1e1e;\n --sidebar-border-color: #292929;\n --sidebar-muted-color: #868686;\n --sidebar-active-color: rgb(255, 255, 255, 0.95);\n --sidebar-hover-bg: #262626;\n --sidebar-btn-bg: #232328;\n --sidebar-btn-color: #787878;\n --avatar-border-color: rgb(206, 206, 206, 0.9);\n\n /* Topbar */\n --topbar-bg: rgb(27, 27, 30, 0.64);\n --topbar-text-color: var(--text-color);\n --search-border-color: rgb(55, 55, 55);\n --search-icon-color: rgb(100, 102, 105);\n --input-focus-border-color: rgb(112, 114, 115);\n\n /* Home page */\n --post-list-text-color: rgb(175, 176, 177);\n --btn-patinator-text-color: var(--text-color);\n --btn-paginator-hover-color: #2e2e2e;\n\n /* Posts */\n --toc-highlight: rgb(116, 178, 243);\n --tag-hover: rgb(43, 56, 62);\n --tb-odd-bg: #252526; /* odd rows of the posts' table */\n --tb-even-bg: rgb(31, 31, 34); /* even rows of the posts' table */\n --tb-border-color: var(--tb-odd-bg);\n --footnote-target-bg: rgb(63, 81, 181);\n --btn-share-color: #6c757d;\n --btn-share-hover-color: #bfc1ca;\n --card-bg: #1e1e1e;\n --card-hovor-bg: #464d51;\n --card-shadow: rgb(21, 21, 21, 0.72) 0 6px 18px 0,\n rgb(137, 135, 135, 0.24) 0 0 0 1px;\n --kbd-wrap-color: #6a6a6a;\n --kbd-text-color: #d3d3d3;\n --kbd-bg-color: #242424;\n --prompt-text-color: rgb(216, 212, 212, 0.75);\n --prompt-tip-bg: rgb(22, 60, 36, 0.64);\n --prompt-tip-icon-color: rgb(15, 164, 15, 0.81);\n --prompt-info-bg: rgb(7, 59, 104, 0.8);\n --prompt-info-icon-color: #0075d1;\n --prompt-warning-bg: rgb(90, 69, 3, 0.88);\n --prompt-warning-icon-color: rgb(255, 165, 0, 0.8);\n --prompt-danger-bg: rgb(86, 28, 8, 0.8);\n --prompt-danger-icon-color: #cd0202;\n\n /* tags */\n --tag-border: rgb(59, 79, 88);\n --tag-shadow: rgb(32, 33, 33);\n --dash-color: rgb(63, 65, 68);\n --search-tag-bg: #292828;\n\n /* categories */\n --categories-border: rgb(64, 66, 69, 0.5);\n --categories-hover-bg: rgb(73, 75, 76);\n --categories-icon-hover-color: white;\n\n /* archives */\n --timeline-node-bg: rgb(150, 152, 156);\n --timeline-color: rgb(63, 65, 68);\n --timeline-year-dot-color: var(--timeline-color);\n\n .light {\n display: none;\n }\n\n /* categories */\n .categories.card,\n .list-group-item {\n background-color: var(--card-bg);\n }\n\n .categories {\n .card-header {\n background-color: var(--card-header-bg);\n }\n\n .list-group-item {\n border-left: none;\n border-right: none;\n padding-left: 2rem;\n border-color: var(--categories-border);\n\n &:last-child {\n border-bottom-color: var(--card-bg);\n }\n }\n }\n\n #archives li:nth-child(odd) {\n background-image: linear-gradient(\n to left,\n rgb(26, 26, 30),\n rgb(39, 39, 45),\n rgb(39, 39, 45),\n rgb(39, 39, 45),\n rgb(26, 26, 30)\n );\n }\n\n color-scheme: dark;\n\n /* stylelint-disable-next-line selector-id-pattern */\n #disqus_thread {\n color-scheme: none;\n }\n} /* dark-scheme */\n","/*\n Style for Homepage\n*/\n\n#post-list {\n margin-top: 2rem;\n\n .card-wrapper {\n &:hover {\n text-decoration: none;\n }\n\n &:not(:last-child) {\n margin-bottom: 1.25rem;\n }\n }\n\n .card {\n border: 0;\n background: none;\n\n %img-radius {\n border-radius: $base-radius $base-radius 0 0;\n }\n\n .preview-img {\n @extend %img-radius;\n\n img {\n @extend %img-radius;\n }\n }\n\n .card-body {\n height: 100%;\n padding: 1rem;\n\n .card-title {\n @extend %text-clip;\n\n color: var(--heading-color) !important;\n font-size: 1.25rem;\n }\n\n %muted {\n color: var(--text-muted-color) !important;\n }\n\n .card-text.content {\n @extend %muted;\n\n p {\n @extend %text-clip;\n\n line-height: 1.5;\n margin: 0;\n }\n }\n\n .post-meta {\n @extend %muted;\n\n i {\n &:not(:first-child) {\n margin-left: 1.5rem;\n }\n }\n\n em {\n @extend %normal-font-style;\n\n color: inherit;\n }\n\n > div:first-child {\n display: block;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n }\n }\n }\n} /* #post-list */\n\n.pagination {\n color: var(--text-color);\n font-family: Lato, sans-serif;\n justify-content: space-evenly;\n\n a:hover {\n text-decoration: none;\n }\n\n .page-item {\n .page-link {\n color: var(--btn-patinator-text-color);\n padding: 0 0.6rem;\n display: -webkit-box;\n -webkit-box-pack: center;\n -webkit-box-align: center;\n border-radius: 0.5rem;\n border: 0;\n background-color: inherit;\n }\n\n &.active {\n .page-link {\n background-color: var(--btn-paginator-hover-color);\n }\n }\n\n &:not(.active) {\n .page-link {\n &:hover {\n box-shadow: inset var(--btn-border-color) 0 0 0 1px;\n }\n }\n }\n\n &.disabled {\n cursor: not-allowed;\n\n .page-link {\n color: rgba(108, 117, 125, 0.57);\n }\n }\n } /* .page-item */\n} /* .pagination */\n\n/* Tablet */\n@media all and (min-width: 768px) {\n %img-radius {\n border-radius: 0 $base-radius $base-radius 0;\n }\n\n #post-list {\n .card {\n .card-body {\n padding: 1.75rem 1.75rem 1.25rem 1.75rem;\n\n .card-text {\n display: inherit !important;\n }\n\n .post-meta {\n i {\n &:not(:first-child) {\n margin-left: 1.75rem;\n }\n }\n }\n }\n }\n }\n}\n\n/* Hide SideBar and TOC */\n@media all and (max-width: 830px) {\n .pagination {\n .page-item {\n &:not(:first-child):not(:last-child) {\n display: none;\n }\n }\n }\n}\n\n/* Sidebar is visible */\n@media all and (min-width: 831px) {\n #post-list {\n margin-top: 2.5rem;\n }\n\n .pagination {\n font-size: 0.85rem;\n justify-content: center;\n\n .page-item {\n &:not(:last-child) {\n margin-right: 0.7rem;\n }\n }\n\n .page-index {\n display: none;\n }\n } /* .pagination */\n}\n","/*\n Post-specific style\n*/\n\n%btn-post-nav {\n width: 50%;\n position: relative;\n border-color: var(--btn-border-color);\n}\n\n@mixin dot($pl: 0.25rem, $pr: 0.25rem) {\n content: '\\2022';\n padding-left: $pl;\n padding-right: $pr;\n}\n\nheader {\n .post-desc {\n @extend %heading;\n\n font-size: 1.125rem;\n line-height: 1.6;\n }\n\n .post-meta {\n span + span::before {\n @include dot;\n }\n\n em,\n time {\n @extend %text-highlight;\n }\n\n em {\n a {\n color: inherit;\n }\n }\n }\n\n h1 + .post-meta {\n margin-top: 1.5rem;\n }\n}\n\n.post-tail-wrapper {\n @extend %text-sm;\n\n margin-top: 6rem;\n border-bottom: 1px double var(--main-border-color);\n\n .license-wrapper {\n line-height: 1.2rem;\n\n > a {\n @extend %text-highlight;\n\n &:hover {\n @extend %link-hover;\n }\n }\n\n span:last-child {\n @extend %text-sm;\n }\n } /* .license-wrapper */\n\n .post-meta a:not(:hover) {\n @extend %link-underline;\n }\n\n .share-wrapper {\n vertical-align: middle;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n\n %icon-size {\n font-size: 1.125rem;\n }\n\n .share-icons {\n display: flex;\n\n i {\n color: var(--btn-share-color);\n\n @extend %icon-size;\n }\n\n > * {\n @extend %icon-size;\n\n margin-left: 0.5rem;\n\n &:hover {\n i {\n @extend %btn-share-hovor;\n }\n }\n }\n\n button {\n padding: 0;\n border: none;\n line-height: inherit;\n\n @extend %cursor-pointer;\n }\n } /* .share-icons */\n } /* .share-wrapper */\n}\n\n.share-mastodon {\n /* See: https://github.com/justinribeiro/share-to-mastodon#properties */\n --wc-stm-font-family: $font-family-base;\n --wc-stm-dialog-background-color: var(--card-bg);\n --wc-stm-form-button-border: 1px solid var(--btn-border-color);\n --wc-stm-form-submit-background-color: var(--sidebar-btn-bg);\n --wc-stm-form-cancel-background-color: var(--sidebar-btn-bg);\n --wc-stm-form-button-background-color-hover: #007bff;\n --wc-stm-form-button-color-hover: white;\n\n font-size: 1rem;\n}\n\n.post-tags {\n line-height: 2rem;\n\n .post-tag {\n &:hover {\n @extend %link-hover;\n @extend %tag-hover;\n @extend %no-bottom-border;\n }\n }\n}\n\n.post-navigation {\n .btn {\n @extend %btn-post-nav;\n\n &:not(:hover) {\n color: var(--link-color);\n }\n\n &:hover {\n &:not(.disabled)::before {\n color: whitesmoke;\n }\n }\n\n &.disabled {\n @extend %btn-post-nav;\n\n pointer-events: auto;\n cursor: not-allowed;\n background: none;\n color: gray;\n }\n\n &.btn-outline-primary.disabled:focus {\n box-shadow: none;\n }\n\n &::before {\n color: var(--text-muted-color);\n font-size: 0.65rem;\n text-transform: uppercase;\n content: attr(aria-label);\n }\n\n &:first-child {\n border-radius: $base-radius 0 0 $base-radius;\n left: 0.5px;\n }\n\n &:last-child {\n border-radius: 0 $base-radius $base-radius 0;\n right: 0.5px;\n }\n }\n\n p {\n font-size: 1.1rem;\n line-height: 1.5rem;\n margin-top: 0.3rem;\n white-space: normal;\n }\n} /* .post-navigation */\n\n@media (hover: hover) {\n .post-navigation {\n .btn,\n .btn::before {\n transition: all 0.35s ease-in-out;\n }\n }\n}\n\n@-webkit-keyframes fade-up {\n from {\n opacity: 0;\n position: relative;\n top: 2rem;\n }\n\n to {\n opacity: 1;\n position: relative;\n top: 0;\n }\n}\n\n@keyframes fade-up {\n from {\n opacity: 0;\n position: relative;\n top: 2rem;\n }\n\n to {\n opacity: 1;\n position: relative;\n top: 0;\n }\n}\n\n#toc-wrapper {\n border-left: 1px solid rgba(158, 158, 158, 0.17);\n position: -webkit-sticky;\n position: sticky;\n top: 4rem;\n transition: top 0.2s ease-in-out;\n -webkit-animation: fade-up 0.8s;\n animation: fade-up 0.8s;\n\n ul {\n list-style: none;\n font-size: 0.85rem;\n line-height: 1.25;\n padding-left: 0;\n\n li {\n &:not(:last-child) {\n margin: 0.4rem 0;\n }\n\n a {\n padding: 0.2rem 0 0.2rem 1.25rem;\n }\n }\n\n /* Overwrite TOC plugin style */\n\n .toc-link {\n display: block;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n\n &:hover {\n color: var(--toc-highlight);\n text-decoration: none;\n }\n\n &::before {\n display: none;\n }\n }\n\n .is-active-link {\n color: var(--toc-highlight) !important;\n font-weight: 600;\n\n &::before {\n display: inline-block;\n width: 1px;\n left: -1px;\n height: 1.25rem;\n background-color: var(--toc-highlight) !important;\n }\n }\n\n ul {\n padding-left: 0.75rem;\n }\n }\n}\n\n/* --- Related Posts --- */\n\n#related-posts {\n > h3 {\n @include label(1.1rem, 600);\n }\n\n time {\n @extend %normal-font-style;\n @extend %text-xs;\n\n color: var(--text-muted-color);\n }\n\n p {\n font-size: 0.9rem;\n margin-bottom: 0.5rem;\n overflow: hidden;\n text-overflow: ellipsis;\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n }\n\n .card {\n h4 {\n @extend %text-clip;\n }\n }\n}\n\n/* stylelint-disable-next-line selector-id-pattern */\n#disqus_thread {\n min-height: 8.5rem;\n}\n\n.utterances {\n max-width: 100%;\n}\n\n%btn-share-hovor {\n color: var(--btn-share-hover-color) !important;\n}\n\n.share-label {\n @include label(inherit, 400, inherit);\n\n &::after {\n content: ':';\n }\n}\n\n@media all and (max-width: 576px) {\n .post-tail-bottom {\n flex-wrap: wrap-reverse !important;\n\n > div:first-child {\n width: 100%;\n margin-top: 1rem;\n }\n }\n}\n\n@media all and (max-width: 768px) {\n .content > p > img {\n max-width: calc(100% + 1rem);\n }\n}\n\n/* Hide SideBar and TOC */\n@media all and (max-width: 849px) {\n .post-navigation {\n padding-left: 0;\n padding-right: 0;\n margin-left: -0.5rem;\n margin-right: -0.5rem;\n }\n}\n","/*\n Styles for Tab Tags\n*/\n\n.tag {\n border-radius: 0.7em;\n padding: 6px 8px 7px;\n margin-right: 0.8rem;\n line-height: 3rem;\n letter-spacing: 0;\n border: 1px solid var(--tag-border) !important;\n box-shadow: 0 0 3px 0 var(--tag-shadow);\n\n span {\n margin-left: 0.6em;\n font-size: 0.7em;\n font-family: Oswald, sans-serif;\n }\n}\n","/*\n Style for Archives\n*/\n\n#archives {\n letter-spacing: 0.03rem;\n\n $timeline-width: 4px;\n\n %timeline {\n content: '';\n width: $timeline-width;\n position: relative;\n float: left;\n background-color: var(--timeline-color);\n }\n\n .year {\n height: 3.5rem;\n font-size: 1.5rem;\n position: relative;\n left: 2px;\n margin-left: -$timeline-width;\n\n &::before {\n @extend %timeline;\n\n height: 72px;\n left: 79px;\n bottom: 16px;\n }\n\n &:first-child::before {\n @extend %timeline;\n\n height: 32px;\n top: 24px;\n }\n\n /* Year dot */\n &::after {\n content: '';\n display: inline-block;\n position: relative;\n border-radius: 50%;\n width: 12px;\n height: 12px;\n left: 21.5px;\n border: 3px solid;\n background-color: var(--timeline-year-dot-color);\n border-color: var(--timeline-node-bg);\n box-shadow: 0 0 2px 0 #c2c6cc;\n z-index: 1;\n }\n }\n\n ul {\n li {\n font-size: 1.1rem;\n line-height: 3rem;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n\n &:nth-child(odd) {\n background-color: var(--main-bg, #ffffff);\n background-image: linear-gradient(\n to left,\n #ffffff,\n #fbfbfb,\n #fbfbfb,\n #fbfbfb,\n #ffffff\n );\n }\n\n &::before {\n @extend %timeline;\n\n top: 0;\n left: 77px;\n height: 3.1rem;\n }\n }\n\n &:last-child li:last-child::before {\n height: 1.5rem;\n }\n } /* #archives ul */\n\n .date {\n white-space: nowrap;\n display: inline-block;\n position: relative;\n right: 0.5rem;\n\n &.month {\n width: 1.4rem;\n text-align: center;\n }\n\n &.day {\n font-size: 85%;\n font-family: Lato, sans-serif;\n }\n }\n\n a {\n /* post title in Archvies */\n margin-left: 2.5rem;\n position: relative;\n top: 0.1rem;\n\n &:hover {\n border-bottom: none;\n }\n\n &::before {\n /* the dot before post title */\n content: '';\n display: inline-block;\n position: relative;\n border-radius: 50%;\n width: 8px;\n height: 8px;\n float: left;\n top: 1.35rem;\n left: 71px;\n background-color: var(--timeline-node-bg);\n box-shadow: 0 0 3px 0 #c2c6cc;\n z-index: 1;\n }\n }\n} /* #archives */\n\n@media all and (max-width: 576px) {\n #archives {\n margin-top: -1rem;\n\n ul {\n letter-spacing: 0;\n }\n }\n}\n","/*\n Style for Tab Categories\n*/\n\n%category-icon-color {\n color: gray;\n}\n\n.categories {\n margin-bottom: 2rem;\n border-color: var(--categories-border);\n\n &.card,\n .list-group {\n @extend %rounded;\n }\n\n .card-header {\n $radius: calc($base-radius - 1px);\n\n padding: 0.75rem;\n border-radius: $radius;\n border-bottom: 0;\n\n &.hide-border-bottom {\n border-bottom-left-radius: 0;\n border-bottom-right-radius: 0;\n }\n }\n\n i {\n @extend %category-icon-color;\n\n font-size: 86%; /* fontawesome icons */\n }\n\n .list-group-item {\n border-left: none;\n border-right: none;\n padding-left: 2rem;\n\n &:first-child {\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n }\n\n &:last-child {\n border-bottom: 0;\n }\n }\n} /* .categories */\n\n.category-trigger {\n width: 1.7rem;\n height: 1.7rem;\n border-radius: 50%;\n text-align: center;\n color: #6c757d !important;\n\n i {\n position: relative;\n height: 0.7rem;\n width: 1rem;\n transition: transform 300ms ease;\n }\n\n &:hover {\n i {\n color: var(--categories-icon-hover-color);\n }\n }\n}\n\n/* only works on desktop */\n@media (hover: hover) {\n .category-trigger:hover {\n background-color: var(--categories-hover-bg);\n }\n}\n\n.rotate {\n transform: rotate(-90deg);\n}\n","/*\n Style for page Category and Tag\n*/\n\n.dash {\n margin: 0 0.5rem 0.6rem 0.5rem;\n border-bottom: 2px dotted var(--dash-color);\n}\n\n#page-category,\n#page-tag {\n ul > li {\n line-height: 1.5rem;\n padding: 0.6rem 0;\n\n /* dot */\n &::before {\n background: #999999;\n width: 5px;\n height: 5px;\n border-radius: 50%;\n display: block;\n content: '';\n position: relative;\n top: 0.6rem;\n margin-right: 0.5rem;\n }\n\n /* post's title */\n > a {\n @extend %no-bottom-border;\n\n font-size: 1.1rem;\n }\n }\n}\n\n/* tag icon */\n#page-tag h1 > i {\n font-size: 1.2rem;\n}\n\n#page-category h1 > i {\n font-size: 1.25rem;\n}\n\n#page-category,\n#page-tag,\n#access-lastmod {\n a:hover {\n @extend %link-hover;\n\n margin-bottom: -1px; /* Avoid jumping */\n }\n}\n\n@media all and (max-width: 576px) {\n #page-category,\n #page-tag {\n ul > li {\n &::before {\n margin: 0 0.5rem;\n }\n\n > a {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n }\n }\n}\n"],"file":"jekyll-theme-chirpy.css"} \ No newline at end of file diff --git a/_site/assets/img/avatar/avatar.png b/_site/assets/img/avatar/avatar.png deleted file mode 100644 index 0f4d1c3..0000000 Binary files a/_site/assets/img/avatar/avatar.png and /dev/null differ diff --git a/_site/assets/img/favicons/android-chrome-192x192.png b/_site/assets/img/favicons/android-chrome-192x192.png deleted file mode 100644 index 6d60d6a..0000000 Binary files a/_site/assets/img/favicons/android-chrome-192x192.png and /dev/null differ diff --git a/_site/assets/img/favicons/android-chrome-512x512.png b/_site/assets/img/favicons/android-chrome-512x512.png deleted file mode 100644 index c40087c..0000000 Binary files a/_site/assets/img/favicons/android-chrome-512x512.png and /dev/null differ diff --git a/_site/assets/img/favicons/apple-touch-icon.png b/_site/assets/img/favicons/apple-touch-icon.png deleted file mode 100644 index 255221b..0000000 Binary files a/_site/assets/img/favicons/apple-touch-icon.png and /dev/null differ diff --git a/_site/assets/img/favicons/browserconfig.xml b/_site/assets/img/favicons/browserconfig.xml deleted file mode 100644 index a57a040..0000000 --- a/_site/assets/img/favicons/browserconfig.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - #da532c - - - - diff --git a/_site/assets/img/favicons/favicon-16x16.png b/_site/assets/img/favicons/favicon-16x16.png deleted file mode 100644 index eabc339..0000000 Binary files a/_site/assets/img/favicons/favicon-16x16.png and /dev/null differ diff --git a/_site/assets/img/favicons/favicon-32x32.png b/_site/assets/img/favicons/favicon-32x32.png deleted file mode 100644 index 4fd3486..0000000 Binary files a/_site/assets/img/favicons/favicon-32x32.png and /dev/null differ diff --git a/_site/assets/img/favicons/favicon.ico b/_site/assets/img/favicons/favicon.ico deleted file mode 100644 index 2bc6ac9..0000000 Binary files a/_site/assets/img/favicons/favicon.ico and /dev/null differ diff --git a/_site/assets/img/favicons/mstile-150x150.png b/_site/assets/img/favicons/mstile-150x150.png deleted file mode 100644 index df6525f..0000000 Binary files a/_site/assets/img/favicons/mstile-150x150.png and /dev/null differ diff --git a/_site/assets/img/favicons/safari-pinned-tab.svg b/_site/assets/img/favicons/safari-pinned-tab.svg deleted file mode 100644 index 1198115..0000000 --- a/_site/assets/img/favicons/safari-pinned-tab.svg +++ /dev/null @@ -1,640 +0,0 @@ - - - - -Created by potrace 1.14, written by Peter Selinger 2001-2017 - - - - - - diff --git a/_site/assets/img/favicons/site.webmanifest b/_site/assets/img/favicons/site.webmanifest deleted file mode 100644 index b4c9d1f..0000000 --- a/_site/assets/img/favicons/site.webmanifest +++ /dev/null @@ -1,23 +0,0 @@ - - -{ - "name": "Trever Ehrfurth", - "short_name": "Trever Ehrfurth", - "description": "A minimal, responsive and feature-rich Jekyll theme for technical writing.", - "icons": [ - { - "src": "/assets/img/favicons/android-chrome-192x192.png", - "sizes": "192x192", - "type": "image/png" - }, - { - "src": "/assets/img/favicons/android-chrome-512x512.png", - "sizes": "512x512", - "type": "image/png" - }], - "start_url": "/index.html", - "theme_color": "#2a1e6b", - "background_color": "#ffffff", - "display": "fullscreen" -} - diff --git a/_site/assets/img/trevandrach.jpg b/_site/assets/img/trevandrach.jpg deleted file mode 100644 index f9467ae..0000000 Binary files a/_site/assets/img/trevandrach.jpg and /dev/null differ diff --git a/_site/assets/index.html b/_site/assets/index.html deleted file mode 100644 index b983321..0000000 --- a/_site/assets/index.html +++ /dev/null @@ -1,11 +0,0 @@ - - - - Redirecting… - - - - -

Redirecting…

- Click here if you are not redirected. - diff --git a/_site/assets/js/data/mathjax.js b/_site/assets/js/data/mathjax.js deleted file mode 100644 index ba32dc5..0000000 --- a/_site/assets/js/data/mathjax.js +++ /dev/null @@ -1,11 +0,0 @@ -MathJax = { - tex: {inlineMath: [ - ['$', '$'], - ['\\(', '\\)'] - ],displayMath: [ - ['$$', '$$'], - ['\\[', '\\]'] - ],tags: 'ams' - } -}; - diff --git a/_site/assets/js/data/search.json b/_site/assets/js/data/search.json deleted file mode 100644 index d93db97..0000000 --- a/_site/assets/js/data/search.json +++ /dev/null @@ -1,157 +0,0 @@ -[ - - { - "title": "Obsidian Cheat Sheet", - "url": "/posts/Obsidian-Cheat-Sheet/", - "categories": "Cheat Sheets", - "tags": "obsidian, cheat sheet, commands", - "date": "2024-06-28 17:09:00 -0500", - - - - - - - - "snippet": "Quick TipsTo Search for a specific note: Use Ctrl + P (Cmd + P on Mac).For Internal Links: Use [[note name]] to create internal links to other notes.For External Links: Use [Text](URL) to create ex...", - "content": "Quick TipsTo Search for a specific note: Use Ctrl + P (Cmd + P on Mac).For Internal Links: Use [[note name]] to create internal links to other notes.For External Links: Use [Text](URL) to create external links.For Bullet Points: Use -, *, or 1.For Headings: Use # (e.g., # Heading 1, ## Heading 2).For Code Blocks: Wrap text in triple backticks (``)`.For Embeds: Use ![[note name]] to embed another note in your current note.Markdown Cheat SheetQuick Overview</em># Heading 1## Heading 2--- Spacer - Bullet Points- [x] Checklist**Bold***Italic****Italic Bold***==Highlights==```Coding Blocks```[[Links]](Sources)> Quotes/ BlockquotesTable Cell A | Table Cell B---- | ----Detailed Cheat Sheet</em># Heading 1# Heading 1Heading 2## Heading 2Line Break--- Bullet Points- Bullet Checklist- [x] list Bold**text** Italic *text*Italic Bold***text*** ==Highlights====this text is highlighted==Coding BlocksBy putting 3 (`) signs before and after the code. [[Links]][[link]](sources) Quotes/ Blockquotes> this is a quote. Table Cell A | Table Cell B—- | —-Table Cell A | Table Cell B---- | ----Shortcuts ⌨️General ShortcutsShortcut Key\t\t|\t\tFunctions:—————–:|—————–:Ctrl + S|Editor: Saves the fileCtrl + N| Creates a new noteCtrl + P| Open command palleteCtrl + O | Opens Quick SwitcherCtrl + Shift + F | Search in all filesCtrl + G | Opens graph viewCtrl + Alt + ← | Navigate BackCtrl + Alt + → | Navigate forthCtrl + F | Searches current fileCtrl + E | Toggle edit/preview modesCtrl + , | Open SettingsCtrl + Tab | Next tabCtrl + Shift + Tab | Previous tabAlt + Tab | Next AppAlt + Shift + Tab | Previous AppWin + Tab | Task ViewWin + Shift + Tab | Next WindowEditing ShortcutsShortcut Key\t\t|\t\tFunctions:—————–:|—————–:Ctrl + B | Bold Selected TextCtrl + I | Italicize Selected TextCtrl + K | Insert External Link to Selected TextCtrl + ] | IndentCtrl + [ | UnindentCtrl + D |Delete current lineCtrl + V | Duplicate current lineCtrl + Click | Open Note in Current Panel via Link\tCtrl + Shift + Click | Open Note in New Panel via Link\tCtrl + P (Cmd + P on Mac) | Quick SearchCtrl + N (Cmd + N on Mac) | New NoteCtrl + Shift + D (Cmd + Shift + D on Mac) | Create a Daily NoteCtrl + / (Cmd + / on Mac) | Toggle Command PaletteCtrl + E (Cmd + E on Mac) | Open Graph ViewCtrl + Click (Cmd + Click on Mac) | Open Link in New Pane" - }, - - { - "title": "Proxmox Cheat Sheet", - "url": "/posts/Proxmox-Commands/", - "categories": "Cheat Sheets", - "tags": "proxmox, cheat sheet, commands", - "date": "2024-06-24 19:31:00 -0500", - - - - - - - - "snippet": "VM Management Command Command Description qm list list VMs qm create <vm> Create or restore a virtual machine. qm start &l...", - "content": "VM Management Command Command Description qm list list VMs qm create <vm> Create or restore a virtual machine. qm start <vm> Start a VM qm suspend <vm> Suspend virtual machine. qm shutdown <vm> Shutdown a VM qm reboot <vm> Reboot a VM qm reset <vm> Reset a VM qm stop <vm> Stop a VM qm destroy <vm> Destroy the VM and all used/owned volumes. qm monitor <vm> Enter Qemu Monitor interface. qm pending <vm> Get the virtual machine configuration with both current and pending values. qm sendkey <vm> <key_event> Send key event to virtual machine. qm showcmd <vm> Show command line used to start the VM (debug info). qm unlock <vm> Unlock the VM qm clone <vm> <new_vm> Clone a VM qm migrate <vm> <node> Migrate a VM qm status <vm> Show VM status qm template <vm> Create a Template qm set <vm> Set virtual machine options (synchronous API) Cloudinit Command Command Description qm cloudinit dump <vm> <type> Get automatically generated cloudinit config. qm cloudinit pending <vm> Get the cloudinit configuration with both current and pending values. qm cloudinit update <vm> Regenerate and change cloudinit config drive. Disk Command Command Description qm disk import <vm> <source> <storage Import an external disk image as an unused disk in a VM. qm disk move <vm> <disk> Move volume to different storage or to a different VM. qm disk rescan Rescan all storages and update disk sizes and unused disk images. qm disk resize <vm> <disk> <size> Extend volume size. qm disk unlink <vm> --IDLIST <string> Unlink/delete disk images. qm rescan Rescan volumes. qemu-img convert <qcow2> <raw> Convert qcow2 to raw qemu-img convert -p -O qcow2 <raw> <qcow2> Convert back to qcow2 Snapshot Command Command Description qm listsnapshot <vm> List all snapshots. qm snapshot <vm> <snapshot> Snapshot a VM. qm delsnapshot <vm> <snapshot> Delete a snapshot. qm rollback <vm> <snapshot> Rollback a snapshot. qm terminal <vm> Open a terminal using a serial device. qm vncproxy <vm> Proxy VM VNC traffic to stdin/stdout. Misc Command Command Description qm guest cmd <vm> <command> Execute Qemu Guest Agent commands. qm guest exec <vm> Executes the given command via the guest agent. qm guest exec-status <vm> <pid> Gets the status of the given pid started by the guest-agent. qm guest passwd <vm> <user> Sets the password for the given user to the given password. PV, VG, LV Management Command Command Description pvcreate <disk> Create a PV pvremove <disk> Remove a PV pvs List all PVs vgcreate <vg> <disk> Create a VG vgremove <vg> Remove a VG vgs List all VGs lvcreate -L LV-SIZE -n <lv> <vg> Create a LV lvremove <vg>/<lv> Remove a LV lvs List all LVs Storage Management Command Command Description pvesm add TYPE <storage> Create a new storage pvesm alloc <storage> <vm> <file> <size> Allocate disk images pvesm free <volume> Delete volume pvesm remove <storage> Delete storage configuration pvesm list <storage> List storage content pvesm lvmscan An alias for pvesm scan lvm pvesm lvmthinscan An alias for pvesm scan lvmthin pvesm scan lvm List local LVM volume groups pvesm scan lvmthin VG List local LVM Thin Pools pvesm status Get status for all datastores Template Management Command Command Description pveam available List all templates pveam list <storage> List all templates pveam download <storage> <template> Download appliance templates pveam remove <template> Remove a template pveam update Update Container Template Database Container Management Command Command Description pct list List containers pct create <vm> OSTEMPLATE Create or restore a container pct start <vm> Start the container pct clone <vm> <new_vm> Create a container clone/copy pct suspend <vm> Suspend the container. This is experimental. pct resume <vm> Resume the container pct stop <vm> Stop the container. This will abruptly stop all processes running in the container. pct shutdown <vm> Shutdown the container. This will trigger a clean shutdown of the container. pct destroy <vm> Destroy the container (also delete all uses files) pct status <vm> Show CT status pct migrate <vm> <target> Migrate the container to another node. Creates a new migration task. pct config <vm> Get container configuration pct cpusets Print the list of assigned CPU sets pct pending <vm> Get container configuration, including pending changes pct reboot <vm> Reboot the container by shutting it down and starting it again. Applies pending changes. pct restore <vm> <template> Create or restore a container pct set <vm> Set container options pct template <vm> Create a Template pct unlock <vm> Unlock the VM Container Disks Command Command Description pct df <vm> Get the container’s current disk usage pct fsck <vm> Run a filesystem check (fsck) on a container volume pct fstrim <vm> Run fstrim on a chosen CT and its mountpoints pct mount <vm> Mount the container’s filesystem on the host pct move-volume <vm> <volume> Move a rootfs-/mp-volume to a different storage or to a different container pct unmount <vm> Unmount the container’s filesystem pct resize <vm> <disk> <size> Resize a container mount point pct rescan Rescan all storages and update disk sizes and unused disk images pct enter <vm> Connect to container pct console <vm> Launch a console for the specified container pct exec <vm> Launch a command inside the specified container pct pull <vm> <source> <destination> Copy a file from the container to the local system pct push <vm> <source> <destination> Copy a local file to the container Web GUI Command Command Description service pveproxy restart Restart the Proxmox web GUI " - }, - - { - "title": "Terraform Cheat Sheet", - "url": "/posts/Terraform-Commands/", - "categories": "Cheat Sheets", - "tags": "terraform, cheat sheet, commands", - "date": "2024-06-24 12:51:00 -0500", - - - - - - - - "snippet": "Format and Validate Command Description terraform fmt Reformat your configuration in the standard style terraform validate Check whether the ...", - "content": "Format and Validate Command Description terraform fmt Reformat your configuration in the standard style terraform validate Check whether the configuration is valid Initialize Working Directory Command Description terraform init Prepare your working directory for other commands Plan, Deploy and Cleanup Command Description terraform apply --auto-approve Create or update infrastructure without confirmation prompt terraform destroy --auto-approve Destroy previously-created infrastructure without confirmation prompt terraform plan -out plan.out Output the deployment plan to plan.out terraform apply plan.out Use the plan.out to deploy infrastructure terraform plan -destroy Outputs a destroy plan terraform apply -target=aws_instance.myinstance Only apply/deploy changes to targeted resource terraform apply -var myregion=us-east-1 Pass a variable via CLI while applying a configuration terraform apply -lock=true Lock the state file so it can’t be modified terraform apply refresh=false Do not reconcile state file with real-world resources terraform apply --parallelism=5 Number of simultaneous resource operations terraform refresh Reconcile the state in Terraform state file with real-world resources terraform providers Get informatino about providers used in the current configuration Workspaces Command Description terraform workspace new <workspace> Create a new workspace terraform workspace select default Change to a workspace terraform workspace list List all workspaces State Manipulation Command Description terraform state show aws_instance.myinstance Show details stored in the Terraform state file terraform state pull > terraform.tfstate Output Terraform state to a file terraform state mv aws_iam_role.my_ssm_role module.mymodule Move a resource tracked via state to different module terraform state replace-provider hashicorp/aws registry.custom.com/aws Replace an existing provider with another terraform state list List all resources tracked in the Terraform state file terraform state rm aws_instance.myinstance Unmanage a resource, delete it from the Terraform state file Import and Outputs Command Description terraform import <resource_type>.<resource> <id> Import a Resource terraform output List all outputs terraform output <output> List a specific output terraform output -json List all outputs in JSON format Terraform Cloud Command Description terraform login Login to Terraform Cloud with an API token terraform logout Logout from Terraform Cloud " - }, - - { - "title": "Kubectl Cheat Sheet", - "url": "/posts/Kubectl-Commands/", - "categories": "Cheat Sheets", - "tags": "kubectl, cheat sheet, commands", - "date": "2024-06-24 12:51:00 -0500", - - - - - - - - "snippet": "Contexts and Configuration Command Description kubectl config view Show the current kubeconfig file kubectl config get-contexts List all cont...", - "content": "Contexts and Configuration Command Description kubectl config view Show the current kubeconfig file kubectl config get-contexts List all contexts in the kubeconfig file kubectl config current-context Show the current context kubectl config use-context <context> Change the current context kubectl config set-context <context> --namespace=<namespace> Set the namespace for a context kubectl config set-context <context> --cluster=<cluster> Set the cluster for a context kubectl config set-context <context> --user=<user> Set the user for a context kubectl config set-context <context> --namespace=<namespace> --cluster=<cluster> --user=<user> Set all context properties Cluster Management Command Description kubectl cluster-info Display addresses of the master and services kubectl get nodes List all nodes in the cluster kubectl get pods List all pods in the cluster kubectl get services List all services in the cluster kubectl get deployments List all deployments in the cluster kubectl get namespaces List all namespaces in the cluster kubectl get events List all events in the cluster Resource Management Command Description kubectl apply -f <file> Apply a configuration file kubectl delete -f <file> Delete a configuration file kubectl get <resource> List all resources of a type kubectl describe <resource> <name> Describe a resource kubectl edit <resource> <name> Edit a resource kubectl exec -it <pod> -- <command> Execute a command in a pod Pod Management Command Description kubectl run <name> --image=<image> Create a new pod kubectl delete pod <name> Delete a pod kubectl get pod <name> Get details of a pod kubectl describe pod <name> Describe a pod kubectl logs <name> Show logs of a pod kubectl exec -it <name> -- /bin/bash Execute a command in a pod kubectl cp <pod>:<source> <destination> Copy files from a pod kubectl top node Show metrics for all nodes kubectl top pod Show metrics for all pods kubectl top pod <name> Show metrics for a specific pod Service Management Command Description kubectl expose pod <name> --port=444 --target-port=555 Expose a pod as a service kubectl delete service <name> Delete a service kubectl get service <name> Get details of a service kubectl describe service <name> Describe a service Deployment Management Command Description kubectl create deployment <name> --image=<image> Create a new deployment kubectl delete deployment <name> Delete a deployment kubectl get deployment <name> Get details of a deployment kubectl describe deployment <name> Describe a deployment kubectl scale deployment <name> --replicas=3 Scale a deployment to 3 replicas kubectl rollout status deployment/<name> Check the status of a deployment rollout kubectl rollout history deployment/<name> Show the history of a deployment rollout kubectl rollout undo deployment/<name> Rollback a deployment to the previous version kubectl rollout undo deployment/<name> --to-revision=1 Rollback a deployment to a specific revision Namespace Management Command Description kubectl create namespace <name> Create a new namespace kubectl delete namespace <name> Delete a namespace kubectl get namespace <name> Get details of a namespace kubectl describe namespace <name> Describe a namespace " - }, - - { - "title": "Helm Cheat Sheet", - "url": "/posts/Helm-Commands/", - "categories": "Cheat Sheets", - "tags": "helm, cheat sheet, commands", - "date": "2024-06-24 12:51:00 -0500", - - - - - - - - "snippet": "Repository Management Command Description helm repo list List Helm repositories helm repo update Update list of Helm charts from repositories...", - "content": "Repository Management Command Description helm repo list List Helm repositories helm repo update Update list of Helm charts from repositories Chart Management Command Description helm search List all installed charts helm search <chart> Search for a chart helm ls List all installed Helm charts helm ls --deleted List all deleted Helm charts helm ls --all List installed and deleted Helm charts helm inspect values <repo>/<chart> Inspect the variables in a chart Install/Delete Helm Charts Command Description helm install --name <name> <repo>/<chart> Install a Helm chart helm install --name <name> --values <VALUES.YML> <repo>/<chart> Install a Helm chart and override variables helm status <name> Show status of Helm chart being installed helm delete --purge <name> Delete a Helm chart Upgrading Helm Charts Command Description helm get values <name> Return the variables for a release helm upgrade --values <file> <name> <repo>/<chart> Upgrade the chart or variables in a release helm history <name> List release numbers helm rollback <name> 1 Rollback to a previous release number Creating Helm Charts Command Description helm create <name> Create a blank chart helm lint <name> Lint the chart helm package <name> Package the chart into foo.tgz helm dependency update Install chart dependencies " - }, - - { - "title": "Docker Cheat Sheet", - "url": "/posts/Docker-Commands/", - "categories": "Cheat Sheets", - "tags": "docker, cheat sheet, commands", - "date": "2024-06-24 12:50:00 -0500", - - - - - - - - "snippet": "Running Containers COMMAND DESCRIPTION docker run <image> Start a new container from an image docker run -it <image> Start a new ...", - "content": "Running Containers COMMAND DESCRIPTION docker run <image> Start a new container from an image docker run -it <image> Start a new container in interactive mode docker run --rm <image> Start a new container and remove it when it exits docker create <image> Create a new container docker start <container> Start a container docker stop <container> Graceful stop a container docker kill <container> Kill (SIGKILL) a container docker restart <container> Graceful stop and restart a container docker pause <container> Suspend a container docker unpause <container> Resume a container docker rm <container> Destroy a container Container Bulk Management COMMAND DESCRIPTION docker stop $(docker ps -q) To stop all the running containers docker stop $(docker ps -a -q) To stop all the stopped and running containers docker kill $(docker ps -q) To kill all the running containers docker kill $(docker ps -a -q) To kill all the stopped and running containers docker restart $(docker ps -q) To restart all running containers docker restart $(docker ps -a -q) To restart all the stopped and running containers docker rm $(docker ps -q) To destroy all running containers docker rm $(docker ps -a -q) To destroy all the stopped and running containers docker pause $(docker ps -q) To pause all running containers docker pause $(docker ps -a -q) To pause all the stopped and running containers docker start $(docker ps -q) To start all running containers docker start $(docker ps -a -q) To start all the stopped and running containers docker rm -vf $(docker ps -a -q) To delete all containers including its volumes use docker rmi -f $(docker images -a -q) To delete all the images docker system prune To delete all dangling and unused images, containers, cache and volumes docker system prune -a To delete all used and unused images docker system prune --volumes To delete all docker volumes Inspect Containers COMMAND DESCRIPTION docker ps List running containers docker ps --all List all containers, including stopped docker logs <container> Show a container output docker logs -f <container> Follow a container output docker top <container> List the processes running in a container docker diff Show the differences with the image (modified files) docker inspect Show information of a container (json formatted) Executing Commands COMMAND DESCRIPTION docker attach <container> Attach to a container docker cp <container>:<container-path> <host-path> Copy files from the container docker cp <host-path> <container>:<container-path> Copy files into the container docker export <container> Export the content of the container (tar archive) docker exec <container> Run a command inside a container docker exec -it <container> /bin/bash Open an interactive shell inside a container (there is no bash in some images, use /bin/sh) docker wait <container> Wait until the container terminates and return the exit code Images COMMAND DESCRIPTION docker image ls List all local images docker history <image> Show the image history docker inspect <image> Show information (json formatted) docker tag <image> <tag> Tag an image docker commit <container> <image> Create an image (from a container) docker import <url> Create an image (from a tarball) docker rmi <image> Delete images docker pull <user>/<repository>:<tag> Pull an image from a registry docker push <user>/<repository>:<tag> Push and image to a registry docker search <test> Search an image on the official registry docker login Login to a registry docker logout Logout from a registry docker save <user>/<repository>:<tag> Export an image/repo as a tarball docker load Load images from a tarball Volumes COMMAND DESCRIPTION docker volume ls List all vol1umes docker volume create <volume> Create a volume docker volume inspect <volume> Show information (json formatted) docker volume rm <volume> Destroy a volume docker volume ls --filter=\"dangling=true\" List all dangling volumes (not referenced by any container) docker volume prune Delete all volumes (not referenced by any container) docker run --rm --volumes-from <container> -v $(pwd):/backup busybox tar cvfz /backup/backup.tar <container-path> Backup a container docker run --rm --volumes-from <container> -v $(pwd):/backup busybox sh -c \"cd <container-path> && tar xvf /backup/backup.tar --strip 1\" Restore a container from backup " - }, - - { - "title": "Git Cheat Sheet", - "url": "/posts/Git-Commands/", - "categories": "Cheat Sheets", - "tags": "git, cheat sheet, commands", - "date": "2024-06-24 12:25:00 -0500", - - - - - - - - "snippet": "Repository Management Command Description git init Initialize a new Git repository git clone <url> Clone a remote repository ...", - "content": "Repository Management Command Description git init Initialize a new Git repository git clone <url> Clone a remote repository git status Show the working tree status git add <file> Add a file to the staging area git commit -m <message> Commit changes to the repository git push Push changes to the remote repository git pull Pull changes from the remote repository git fetch Fetch changes from the remote repository git merge <branch> Merge a branch into the current branch git branch List all branches git branch <branch> Create a new branch git checkout <branch> Switch to a branch git checkout -b <branch> Create and switch to a new branch git branch -d <branch> Delete a branch git log Show commit logs git diff Show changes between commits git blame <file> Show who changed each line in a file git reflog Show a log of changes to HEAD git reset --hard <commit> Reset the repository to a commit git revert <commit> Revert a commit git stash Stash changes in the working directory git stash pop Apply stashed changes to the working directory git tag <tag> Create a tag for a commit Configuration Command Description git config --global user.name <user> Set the user name for Git git config --global user.email <email> Set the user email for Git git config --global core.editor <editor> Set the default text editor for Git git config --global color.ui auto Enable colored output for Git Remote Repositories Command Description git remote add <repository> <url> Add a remote repository git remote -v List remote repositories git remote show <repository> Show information about a remote repository git remote rename <repository> <new_repository> Rename a remote repository git remote remove <repository> Remove a remote repository " - }, - - { - "title": "Kubernetes NFS Mount Setup for Persistent Storage", - "url": "/posts/Kubernetes-NFS-Share/", - "categories": "Kubernetes, NFS", - "tags": "kubernetes, nfs, persistent storage", - "date": "2024-06-23 19:13:00 -0500", - - - - - - - - "snippet": "Requirements Install nfs-common on all kubernetes nodes sudo apt install -y nfs-common Install NFS CSI driver An NFS share setup from something like TrueNAS, Synology, etc.Setup ...", - "content": "Requirements Install nfs-common on all kubernetes nodes sudo apt install -y nfs-common Install NFS CSI driver An NFS share setup from something like TrueNAS, Synology, etc.Setup persistent volume Create a yaml file called nfs-pv.yaml with the following: apiVersion: v1 kind: PersistentVolume metadata: name: nfs spec: capacity: storage: 20Gi accessModes: - ReadWriteMany storageClassName: nfs nfs: server: 192.168.1.24 # IP of NFS Server path: \"/mnt/TREPOOL/TRESHARE\" # NFS mount path Apply file kubectl apply -f nfs-pv.yaml Setup persistent volume claim Create a yaml file called nfs-pvc.yaml with the following: apiVersion: v1 kind: PersistentVolumeClaim metadata: name: nfs spec: accessModes: - ReadWriteMany storageClassName: nfs resources: requests: storage: 20Gi Apply file kubectl apply -f nfs-pvc.yaml Test with NGINX web server Create a yaml file called nfs-web.yaml with the following: apiVersion: apps/v1 kind: Deployment metadata: name: nfs-web spec: replicas: 1 selector: matchLabels: app: nfs-web template: metadata: labels: app: nfs-web spec: containers: - name: nfs-web image: nginx ports: - name: web containerPort: 80 volumeMounts: - name: nfs mountPath: /usr/share/nginx/html # NFS path in pod volumes: - name: nfs persistentVolumeClaim: claimName: nfs Apply file kubectl apply -f nfs-web.yaml Get the name of the pod. eg: nfs-web-7bc97bcf48-5brq6 kubectl get pods Exec into the pod to verify nfs is mounted and files are available. kubectl exec -it nfs-web-7bc97bcf48-5brq6 -- /bin/bash cd into NFS path from the deployment and list the directory to verify files. cd /usr/share/nginx/html " - }, - - { - "title": "My Homelab", - "url": "/posts/My-Homelab/", - "categories": "Homelab, Overview", - "tags": "homelab", - "date": "2024-06-20 12:00:00 -0500", - - - - - - - - "snippet": "A lot of years, money and sleepless nights later, this homelab has gone through two or three major iterationsWhats in the Rack: UDM-PRO - networking and security cams for inside and outside my hou...", - "content": "A lot of years, money and sleepless nights later, this homelab has gone through two or three major iterationsWhats in the Rack: UDM-PRO - networking and security cams for inside and outside my house. USW-16-POE TP-Link 24 port gigabyte switch Patchbox Plus + Cat 6a 48-Port blank Keystone CyberPower Pure Sine Wave UPS Kinan 8-port KVM console Supermicro 847 36 Bay chassis for TrueNAS Scale 12 x 10 TB (2 x RaidZ2)12 x 14 TB (2 x RaidZ2)6 x 1TB SSD (RaidZ2)Xenon W-1290P | 128 GB DDR4-3200 ECC RAMServers:Running 5 servers in a High Available cluster All are from old gaming rigs. Every 3 years or so I buy a new gaming rig and toss the previous moba, ram, cpu, and psu into Rosewill 4U chassis.Server 1: i7-12700K | GTX 1080TIServer 2: i7-9700K | GTX 980TIServer 3: i7-6700KServer 4: i7-4790KServer 5: AMD Ryzen 5 3600As you can see from my Homepage dashboard, I run a bunch of services across multiple VM’s with high availability. If I ever take any server down, the VM’s are spun up on the remaining nodes in the cluster. Here are some of my services starting with the coolest.ServiesClusterplex: I took plex onestep further and deployed clusterplex by pabloromeo on github. This amazing developer created add-on is a way to distribute transcode jobs from one Plex server across multiple VM’s or workers. This has allowed me to scale out plex without ever taking up too much processing on any given server/VM. It is meant for Kubernetes and docker swarm but can be configured to work in normal docker containers.Also using Tautulli for better metrics and observability of PlexWazuh: A wonderful SIEM solution I have deployed on all servers and computers on the network with active response rules, alerts to discord and vulnerability monitoring.Uptime-Kuma: Super easy and quick uptime monitor for all services with notifications linked to discord for any outages.Not shown on dashboard: Pterodactyl Game serverNGINX Proxy Manager: Reverse proxy for ip’sAutomated eBook and Audiobook library using Calibre, Readarr and Calibre-Web. (Account with myanonymouse)Vaultwarden: selfhosted BitwardenImmich: Photo/Video backup Solution" - } - -] - diff --git a/_site/assets/js/data/swconf.js b/_site/assets/js/data/swconf.js deleted file mode 100644 index dc9e1ec..0000000 --- a/_site/assets/js/data/swconf.js +++ /dev/null @@ -1,31 +0,0 @@ -const swconf = { - - cacheName: 'chirpy-1726523625',resources: [ - '/assets/css/jekyll-theme-chirpy.css', - '/', - - '/categories/', - - '/tags/', - - '/archives/', - - '/about/', - - - - - '/assets/js/dist/app.min.js', - '/assets/js/dist/categories.min.js', - '/assets/js/dist/commons.min.js', - '/assets/js/dist/home.min.js', - '/assets/js/dist/misc.min.js', - '/assets/js/dist/page.min.js', - '/assets/js/dist/post.min.js' - ],denyPaths: [ - - ], - purge: false - -}; - diff --git a/_site/assets/js/dist/app.min.js b/_site/assets/js/dist/app.min.js deleted file mode 100644 index 252e458..0000000 --- a/_site/assets/js/dist/app.min.js +++ /dev/null @@ -1,4 +0,0 @@ -/*! - * Chirpy v7.0.1 | © 2019 Cotes Chung | MIT Licensed | https://github.com/cotes2020/jekyll-theme-chirpy/ - */ -!function(){"use strict";const e=new Map;var t={set(t,n,o){e.has(t)||e.set(t,new Map);const r=e.get(t);r.has(n)||0===r.size?r.set(n,o):console.error("Bootstrap doesn't allow more than one instance per element. Bound instance: ".concat(Array.from(r.keys())[0],"."))},get:(t,n)=>e.has(t)&&e.get(t).get(n)||null,remove(t,n){if(!e.has(t))return;const o=e.get(t);o.delete(n),0===o.size&&e.delete(t)}};const n="transitionend",o=e=>(e&&window.CSS&&window.CSS.escape&&(e=e.replace(/#([^\s"#']+)/g,((e,t)=>"#".concat(CSS.escape(t))))),e),r=e=>!(!e||"object"!=typeof e)&&(void 0!==e.jquery&&(e=e[0]),void 0!==e.nodeType),i=e=>r(e)?e.jquery?e[0]:e:"string"==typeof e&&e.length>0?document.querySelector(o(e)):null,s=e=>!e||e.nodeType!==Node.ELEMENT_NODE||(!!e.classList.contains("disabled")||(void 0!==e.disabled?e.disabled:e.hasAttribute("disabled")&&"false"!==e.getAttribute("disabled"))),c=()=>window.jQuery&&!document.body.hasAttribute("data-bs-no-jquery")?window.jQuery:null,a=[],l=function(e){let t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:e;return"function"==typeof e?e(...arguments.length>1&&void 0!==arguments[1]?arguments[1]:[]):t},u=function(e,t){if(!(!(arguments.length>2&&void 0!==arguments[2])||arguments[2]))return void l(e);const o=(e=>{if(!e)return 0;let{transitionDuration:t,transitionDelay:n}=window.getComputedStyle(e);const o=Number.parseFloat(t),r=Number.parseFloat(n);return o||r?(t=t.split(",")[0],n=n.split(",")[0],1e3*(Number.parseFloat(t)+Number.parseFloat(n))):0})(t)+5;let r=!1;const i=o=>{let{target:s}=o;s===t&&(r=!0,t.removeEventListener(n,i),l(e))};t.addEventListener(n,i),setTimeout((()=>{r||t.dispatchEvent(new Event(n))}),o)},d=/[^.]*(?=\..*)\.|.*/,f=/\..*/,h=/::\d+$/,g={};let m=1;const p={mouseenter:"mouseover",mouseleave:"mouseout"},b=new Set(["click","dblclick","mouseup","mousedown","contextmenu","mousewheel","DOMMouseScroll","mouseover","mouseout","mousemove","selectstart","selectend","keydown","keypress","keyup","orientationchange","touchstart","touchmove","touchend","touchcancel","pointerdown","pointermove","pointerup","pointerleave","pointercancel","gesturestart","gesturechange","gestureend","focus","blur","change","reset","select","submit","focusin","focusout","load","unload","beforeunload","resize","move","DOMContentLoaded","readystatechange","error","abort","scroll"]);function v(e,t){return t&&"".concat(t,"::").concat(m++)||e.uidEvent||m++}function _(e){const t=v(e);return e.uidEvent=t,g[t]=g[t]||{},g[t]}function y(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;return Object.values(e).find((e=>e.callable===t&&e.delegationSelector===n))}function E(e,t,n){const o="string"==typeof t,r=o?n:t||n;let i=C(e);return b.has(i)||(i=e),[o,r,i]}function w(e,t,n,o,r){if("string"!=typeof t||!e)return;let[i,s,c]=E(t,n,o);if(t in p){const e=e=>function(t){if(!t.relatedTarget||t.relatedTarget!==t.delegateTarget&&!t.delegateTarget.contains(t.relatedTarget))return e.call(this,t)};s=e(s)}const a=_(e),l=a[c]||(a[c]={}),u=y(l,s,i?n:null);if(u)return void(u.oneOff=u.oneOff&&r);const f=v(s,t.replace(d,"")),h=i?function(e,t,n){return function o(r){const i=e.querySelectorAll(t);for(let{target:s}=r;s&&s!==this;s=s.parentNode)for(const c of i)if(c===s)return T(r,{delegateTarget:s}),o.oneOff&&O.off(e,r.type,t,n),n.apply(s,[r])}}(e,n,s):function(e,t){return function n(o){return T(o,{delegateTarget:e}),n.oneOff&&O.off(e,o.type,t),t.apply(e,[o])}}(e,s);h.delegationSelector=i?n:null,h.callable=s,h.oneOff=r,h.uidEvent=f,l[f]=h,e.addEventListener(c,h,i)}function A(e,t,n,o,r){const i=y(t[n],o,r);i&&(e.removeEventListener(n,i,Boolean(r)),delete t[n][i.uidEvent])}function S(e,t,n,o){const r=t[n]||{};for(const[i,s]of Object.entries(r))i.includes(o)&&A(e,t,n,s.callable,s.delegationSelector)}function C(e){return e=e.replace(f,""),p[e]||e}const O={on(e,t,n,o){w(e,t,n,o,!1)},one(e,t,n,o){w(e,t,n,o,!0)},off(e,t,n,o){if("string"!=typeof t||!e)return;const[r,i,s]=E(t,n,o),c=s!==t,a=_(e),l=a[s]||{},u=t.startsWith(".");if(void 0===i){if(u)for(const n of Object.keys(a))S(e,a,n,t.slice(1));for(const[n,o]of Object.entries(l)){const r=n.replace(h,"");c&&!t.includes(r)||A(e,a,s,o.callable,o.delegationSelector)}}else{if(!Object.keys(l).length)return;A(e,a,s,i,r?n:null)}},trigger(e,t,n){if("string"!=typeof t||!e)return null;const o=c();let r=null,i=!0,s=!0,a=!1;t!==C(t)&&o&&(r=o.Event(t,n),o(e).trigger(r),i=!r.isPropagationStopped(),s=!r.isImmediatePropagationStopped(),a=r.isDefaultPrevented());const l=T(new Event(t,{bubbles:i,cancelable:!0}),n);return a&&l.preventDefault(),s&&e.dispatchEvent(l),l.defaultPrevented&&r&&r.preventDefault(),l}};function T(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};for(const[n,o]of Object.entries(t))try{e[n]=o}catch{Object.defineProperty(e,n,{configurable:!0,get:()=>o})}return e}function N(e){if("true"===e)return!0;if("false"===e)return!1;if(e===Number(e).toString())return Number(e);if(""===e||"null"===e)return null;if("string"!=typeof e)return e;try{return JSON.parse(decodeURIComponent(e))}catch{return e}}function j(e){return e.replace(/[A-Z]/g,(e=>"-".concat(e.toLowerCase())))}const D={setDataAttribute(e,t,n){e.setAttribute("data-bs-".concat(j(t)),n)},removeDataAttribute(e,t){e.removeAttribute("data-bs-".concat(j(t)))},getDataAttributes(e){if(!e)return{};const t={},n=Object.keys(e.dataset).filter((e=>e.startsWith("bs")&&!e.startsWith("bsConfig")));for(const o of n){let n=o.replace(/^bs/,"");n=n.charAt(0).toLowerCase()+n.slice(1,n.length),t[n]=N(e.dataset[o])}return t},getDataAttribute:(e,t)=>N(e.getAttribute("data-bs-".concat(j(t))))};class I{static get Default(){return{}}static get DefaultType(){return{}}static get NAME(){throw new Error('You have to implement the static method "NAME", for each component!')}_getConfig(e){return e=this._mergeConfigObj(e),e=this._configAfterMerge(e),this._typeCheckConfig(e),e}_configAfterMerge(e){return e}_mergeConfigObj(e,t){const n=r(t)?D.getDataAttribute(t,"config"):{};return{...this.constructor.Default,..."object"==typeof n?n:{},...r(t)?D.getDataAttributes(t):{},..."object"==typeof e?e:{}}}_typeCheckConfig(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.constructor.DefaultType;for(const[o,i]of Object.entries(t)){const t=e[o],s=r(t)?"element":null==(n=t)?"".concat(n):Object.prototype.toString.call(n).match(/\s([a-z]+)/i)[1].toLowerCase();if(!new RegExp(i).test(s))throw new TypeError("".concat(this.constructor.NAME.toUpperCase(),': Option "').concat(o,'" provided type "').concat(s,'" but expected type "').concat(i,'".'))}var n}}class L extends I{constructor(e,n){super(),(e=i(e))&&(this._element=e,this._config=this._getConfig(n),t.set(this._element,this.constructor.DATA_KEY,this))}dispose(){t.remove(this._element,this.constructor.DATA_KEY),O.off(this._element,this.constructor.EVENT_KEY);for(const e of Object.getOwnPropertyNames(this))this[e]=null}_queueCallback(e,t){u(e,t,!(arguments.length>2&&void 0!==arguments[2])||arguments[2])}_getConfig(e){return e=this._mergeConfigObj(e,this._element),e=this._configAfterMerge(e),this._typeCheckConfig(e),e}static getInstance(e){return t.get(i(e),this.DATA_KEY)}static getOrCreateInstance(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.getInstance(e)||new this(e,"object"==typeof t?t:null)}static get VERSION(){return"5.3.3"}static get DATA_KEY(){return"bs.".concat(this.NAME)}static get EVENT_KEY(){return".".concat(this.DATA_KEY)}static eventName(e){return"".concat(e).concat(this.EVENT_KEY)}}const k=e=>{let t=e.getAttribute("data-bs-target");if(!t||"#"===t){let n=e.getAttribute("href");if(!n||!n.includes("#")&&!n.startsWith("."))return null;n.includes("#")&&!n.startsWith("#")&&(n="#".concat(n.split("#")[1])),t=n&&"#"!==n?n.trim():null}return t?t.split(",").map((e=>o(e))).join(","):null},M={find(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:document.documentElement;return[].concat(...Element.prototype.querySelectorAll.call(t,e))},findOne(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:document.documentElement;return Element.prototype.querySelector.call(t,e)},children:(e,t)=>[].concat(...e.children).filter((e=>e.matches(t))),parents(e,t){const n=[];let o=e.parentNode.closest(t);for(;o;)n.push(o),o=o.parentNode.closest(t);return n},prev(e,t){let n=e.previousElementSibling;for(;n;){if(n.matches(t))return[n];n=n.previousElementSibling}return[]},next(e,t){let n=e.nextElementSibling;for(;n;){if(n.matches(t))return[n];n=n.nextElementSibling}return[]},focusableChildren(e){const t=["a","button","input","textarea","select","details","[tabindex]",'[contenteditable="true"]'].map((e=>"".concat(e,':not([tabindex^="-"])'))).join(",");return this.find(t,e).filter((e=>!s(e)&&(e=>{if(!r(e)||0===e.getClientRects().length)return!1;const t="visible"===getComputedStyle(e).getPropertyValue("visibility"),n=e.closest("details:not([open])");if(!n)return t;if(n!==e){const t=e.closest("summary");if(t&&t.parentNode!==n)return!1;if(null===t)return!1}return t})(e)))},getSelectorFromElement(e){const t=k(e);return t&&M.findOne(t)?t:null},getElementFromSelector(e){const t=k(e);return t?M.findOne(t):null},getMultipleElementsFromSelector(e){const t=k(e);return t?M.find(t):[]}},K=".".concat("bs.toast"),q="mouseover".concat(K),x="mouseout".concat(K),P="focusin".concat(K),W="focusout".concat(K),Y="hide".concat(K),F="hidden".concat(K),V="show".concat(K),Q="shown".concat(K),R="hide",z="show",B="showing",H={animation:"boolean",autohide:"boolean",delay:"number"},U={animation:!0,autohide:!0,delay:5e3};class G extends L{constructor(e,t){super(e,t),this._timeout=null,this._hasMouseInteraction=!1,this._hasKeyboardInteraction=!1,this._setListeners()}static get Default(){return U}static get DefaultType(){return H}static get NAME(){return"toast"}show(){if(O.trigger(this._element,V).defaultPrevented)return;this._clearTimeout(),this._config.animation&&this._element.classList.add("fade");this._element.classList.remove(R),this._element.offsetHeight,this._element.classList.add(z,B),this._queueCallback((()=>{this._element.classList.remove(B),O.trigger(this._element,Q),this._maybeScheduleHide()}),this._element,this._config.animation)}hide(){if(!this.isShown())return;if(O.trigger(this._element,Y).defaultPrevented)return;this._element.classList.add(B),this._queueCallback((()=>{this._element.classList.add(R),this._element.classList.remove(B,z),O.trigger(this._element,F)}),this._element,this._config.animation)}dispose(){this._clearTimeout(),this.isShown()&&this._element.classList.remove(z),super.dispose()}isShown(){return this._element.classList.contains(z)}_maybeScheduleHide(){this._config.autohide&&(this._hasMouseInteraction||this._hasKeyboardInteraction||(this._timeout=setTimeout((()=>{this.hide()}),this._config.delay)))}_onInteraction(e,t){switch(e.type){case"mouseover":case"mouseout":this._hasMouseInteraction=t;break;case"focusin":case"focusout":this._hasKeyboardInteraction=t}if(t)return void this._clearTimeout();const n=e.relatedTarget;this._element===n||this._element.contains(n)||this._maybeScheduleHide()}_setListeners(){O.on(this._element,q,(e=>this._onInteraction(e,!0))),O.on(this._element,x,(e=>this._onInteraction(e,!1))),O.on(this._element,P,(e=>this._onInteraction(e,!0))),O.on(this._element,W,(e=>this._onInteraction(e,!1)))}_clearTimeout(){clearTimeout(this._timeout),this._timeout=null}static jQueryInterface(e){return this.each((function(){const t=G.getOrCreateInstance(this,e);if("string"==typeof e){if(void 0===t[e])throw new TypeError('No method named "'.concat(e,'"'));t[e](this)}}))}}var J,Z;if(function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"hide";const n="click.dismiss".concat(e.EVENT_KEY),o=e.NAME;O.on(document,n,'[data-bs-dismiss="'.concat(o,'"]'),(function(n){if(["A","AREA"].includes(this.tagName)&&n.preventDefault(),s(this))return;const r=M.getElementFromSelector(this)||this.closest(".".concat(o));e.getOrCreateInstance(r)[t]()}))}(G),J=G,Z=()=>{const e=c();if(e){const t=J.NAME,n=e.fn[t];e.fn[t]=J.jQueryInterface,e.fn[t].Constructor=J,e.fn[t].noConflict=()=>(e.fn[t]=n,J.jQueryInterface)}},"loading"===document.readyState?(a.length||document.addEventListener("DOMContentLoaded",(()=>{for(const e of a)e()})),a.push(Z)):Z(),"serviceWorker"in navigator){const e="".concat("","/sw.min.js"),t=document.getElementById("notification"),n=t.querySelector(".toast-body>button"),o=G.getOrCreateInstance(t);navigator.serviceWorker.register(e).then((e=>{e.waiting&&o.show(),e.addEventListener("updatefound",(()=>{e.installing.addEventListener("statechange",(()=>{e.waiting&&navigator.serviceWorker.controller&&o.show()}))})),n.addEventListener("click",(()=>{e.waiting&&e.waiting.postMessage("SKIP_WAITING"),o.hide()}))}));let r=!1;navigator.serviceWorker.addEventListener("controllerchange",(()=>{r||(window.location.reload(),r=!0)}))}}(); diff --git a/_site/assets/js/dist/categories.min.js b/_site/assets/js/dist/categories.min.js deleted file mode 100644 index c91b7d5..0000000 --- a/_site/assets/js/dist/categories.min.js +++ /dev/null @@ -1,4 +0,0 @@ -/*! - * Chirpy v7.0.1 | © 2019 Cotes Chung | MIT Licensed | https://github.com/cotes2020/jekyll-theme-chirpy/ - */ -!function(){"use strict";var e="top",t="bottom",n="right",i="left",o="auto",r=[e,t,n,i],s="start",a="end",c="clippingParents",l="viewport",f="popper",u="reference",d=r.reduce((function(e,t){return e.concat([t+"-"+s,t+"-"+a])}),[]),p=[].concat(r,[o]).reduce((function(e,t){return e.concat([t,t+"-"+s,t+"-"+a])}),[]),h="beforeRead",m="read",g="afterRead",v="beforeMain",b="main",y="afterMain",_="beforeWrite",w="write",E="afterWrite",O=[h,m,g,v,b,y,_,w,E];function x(e){return e?(e.nodeName||"").toLowerCase():null}function A(e){if(null==e)return window;if("[object Window]"!==e.toString()){var t=e.ownerDocument;return t&&t.defaultView||window}return e}function C(e){return e instanceof A(e).Element||e instanceof Element}function L(e){return e instanceof A(e).HTMLElement||e instanceof HTMLElement}function T(e){return"undefined"!=typeof ShadowRoot&&(e instanceof A(e).ShadowRoot||e instanceof ShadowRoot)}var j={name:"applyStyles",enabled:!0,phase:"write",fn:function(e){var t=e.state;Object.keys(t.elements).forEach((function(e){var n=t.styles[e]||{},i=t.attributes[e]||{},o=t.elements[e];L(o)&&x(o)&&(Object.assign(o.style,n),Object.keys(i).forEach((function(e){var t=i[e];!1===t?o.removeAttribute(e):o.setAttribute(e,!0===t?"":t)})))}))},effect:function(e){var t=e.state,n={popper:{position:t.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(t.elements.popper.style,n.popper),t.styles=n,t.elements.arrow&&Object.assign(t.elements.arrow.style,n.arrow),function(){Object.keys(t.elements).forEach((function(e){var i=t.elements[e],o=t.attributes[e]||{},r=Object.keys(t.styles.hasOwnProperty(e)?t.styles[e]:n[e]).reduce((function(e,t){return e[t]="",e}),{});L(i)&&x(i)&&(Object.assign(i.style,r),Object.keys(o).forEach((function(e){i.removeAttribute(e)})))}))}},requires:["computeStyles"]};function S(e){return e.split("-")[0]}var D=Math.max,k=Math.min,P=Math.round;function N(){var e=navigator.userAgentData;return null!=e&&e.brands&&Array.isArray(e.brands)?e.brands.map((function(e){return e.brand+"/"+e.version})).join(" "):navigator.userAgent}function M(){return!/^((?!chrome|android).)*safari/i.test(N())}function B(e,t,n){void 0===t&&(t=!1),void 0===n&&(n=!1);var i=e.getBoundingClientRect(),o=1,r=1;t&&L(e)&&(o=e.offsetWidth>0&&P(i.width)/e.offsetWidth||1,r=e.offsetHeight>0&&P(i.height)/e.offsetHeight||1);var s=(C(e)?A(e):window).visualViewport,a=!M()&&n,c=(i.left+(a&&s?s.offsetLeft:0))/o,l=(i.top+(a&&s?s.offsetTop:0))/r,f=i.width/o,u=i.height/r;return{width:f,height:u,top:l,right:c+f,bottom:l+u,left:c,x:c,y:l}}function F(e){var t=B(e),n=e.offsetWidth,i=e.offsetHeight;return Math.abs(t.width-n)<=1&&(n=t.width),Math.abs(t.height-i)<=1&&(i=t.height),{x:e.offsetLeft,y:e.offsetTop,width:n,height:i}}function H(e,t){var n=t.getRootNode&&t.getRootNode();if(e.contains(t))return!0;if(n&&T(n)){var i=t;do{if(i&&e.isSameNode(i))return!0;i=i.parentNode||i.host}while(i)}return!1}function I(e){return A(e).getComputedStyle(e)}function W(e){return["table","td","th"].indexOf(x(e))>=0}function z(e){return((C(e)?e.ownerDocument:e.document)||window.document).documentElement}function q(e){return"html"===x(e)?e:e.assignedSlot||e.parentNode||(T(e)?e.host:null)||z(e)}function R(e){return L(e)&&"fixed"!==I(e).position?e.offsetParent:null}function V(e){for(var t=A(e),n=R(e);n&&W(n)&&"static"===I(n).position;)n=R(n);return n&&("html"===x(n)||"body"===x(n)&&"static"===I(n).position)?t:n||function(e){var t=/firefox/i.test(N());if(/Trident/i.test(N())&&L(e)&&"fixed"===I(e).position)return null;var n=q(e);for(T(n)&&(n=n.host);L(n)&&["html","body"].indexOf(x(n))<0;){var i=I(n);if("none"!==i.transform||"none"!==i.perspective||"paint"===i.contain||-1!==["transform","perspective"].indexOf(i.willChange)||t&&"filter"===i.willChange||t&&i.filter&&"none"!==i.filter)return n;n=n.parentNode}return null}(e)||t}function Y(e){return["top","bottom"].indexOf(e)>=0?"x":"y"}function U(e,t,n){return D(e,k(t,n))}function K(e){return Object.assign({},{top:0,right:0,bottom:0,left:0},e)}function Q(e,t){return t.reduce((function(t,n){return t[n]=e,t}),{})}var $={name:"arrow",enabled:!0,phase:"main",fn:function(o){var s,a=o.state,c=o.name,l=o.options,f=a.elements.arrow,u=a.modifiersData.popperOffsets,d=S(a.placement),p=Y(d),h=[i,n].indexOf(d)>=0?"height":"width";if(f&&u){var m=function(e,t){return K("number"!=typeof(e="function"==typeof e?e(Object.assign({},t.rects,{placement:t.placement})):e)?e:Q(e,r))}(l.padding,a),g=F(f),v="y"===p?e:i,b="y"===p?t:n,y=a.rects.reference[h]+a.rects.reference[p]-u[p]-a.rects.popper[h],_=u[p]-a.rects.reference[p],w=V(f),E=w?"y"===p?w.clientHeight||0:w.clientWidth||0:0,O=y/2-_/2,x=m[v],A=E-g[h]-m[b],C=E/2-g[h]/2+O,L=U(x,C,A),T=p;a.modifiersData[c]=((s={})[T]=L,s.centerOffset=L-C,s)}},effect:function(e){var t=e.state,n=e.options.element,i=void 0===n?"[data-popper-arrow]":n;null!=i&&("string"!=typeof i||(i=t.elements.popper.querySelector(i)))&&H(t.elements.popper,i)&&(t.elements.arrow=i)},requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function G(e){return e.split("-")[1]}var X={top:"auto",right:"auto",bottom:"auto",left:"auto"};function J(o){var r,s=o.popper,c=o.popperRect,l=o.placement,f=o.variation,u=o.offsets,d=o.position,p=o.gpuAcceleration,h=o.adaptive,m=o.roundOffsets,g=o.isFixed,v=u.x,b=void 0===v?0:v,y=u.y,_=void 0===y?0:y,w="function"==typeof m?m({x:b,y:_}):{x:b,y:_};b=w.x,_=w.y;var E=u.hasOwnProperty("x"),O=u.hasOwnProperty("y"),x=i,C=e,L=window;if(h){var T=V(s),j="clientHeight",S="clientWidth";if(T===A(s)&&"static"!==I(T=z(s)).position&&"absolute"===d&&(j="scrollHeight",S="scrollWidth"),l===e||(l===i||l===n)&&f===a)C=t,_-=(g&&T===L&&L.visualViewport?L.visualViewport.height:T[j])-c.height,_*=p?1:-1;if(l===i||(l===e||l===t)&&f===a)x=n,b-=(g&&T===L&&L.visualViewport?L.visualViewport.width:T[S])-c.width,b*=p?1:-1}var D,k=Object.assign({position:d},h&&X),N=!0===m?function(e,t){var n=e.x,i=e.y,o=t.devicePixelRatio||1;return{x:P(n*o)/o||0,y:P(i*o)/o||0}}({x:b,y:_},A(s)):{x:b,y:_};return b=N.x,_=N.y,p?Object.assign({},k,((D={})[C]=O?"0":"",D[x]=E?"0":"",D.transform=(L.devicePixelRatio||1)<=1?"translate("+b+"px, "+_+"px)":"translate3d("+b+"px, "+_+"px, 0)",D)):Object.assign({},k,((r={})[C]=O?_+"px":"",r[x]=E?b+"px":"",r.transform="",r))}var Z={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:function(e){var t=e.state,n=e.options,i=n.gpuAcceleration,o=void 0===i||i,r=n.adaptive,s=void 0===r||r,a=n.roundOffsets,c=void 0===a||a,l={placement:S(t.placement),variation:G(t.placement),popper:t.elements.popper,popperRect:t.rects.popper,gpuAcceleration:o,isFixed:"fixed"===t.options.strategy};null!=t.modifiersData.popperOffsets&&(t.styles.popper=Object.assign({},t.styles.popper,J(Object.assign({},l,{offsets:t.modifiersData.popperOffsets,position:t.options.strategy,adaptive:s,roundOffsets:c})))),null!=t.modifiersData.arrow&&(t.styles.arrow=Object.assign({},t.styles.arrow,J(Object.assign({},l,{offsets:t.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:c})))),t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-placement":t.placement})},data:{}},ee={passive:!0};var te={name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:function(e){var t=e.state,n=e.instance,i=e.options,o=i.scroll,r=void 0===o||o,s=i.resize,a=void 0===s||s,c=A(t.elements.popper),l=[].concat(t.scrollParents.reference,t.scrollParents.popper);return r&&l.forEach((function(e){e.addEventListener("scroll",n.update,ee)})),a&&c.addEventListener("resize",n.update,ee),function(){r&&l.forEach((function(e){e.removeEventListener("scroll",n.update,ee)})),a&&c.removeEventListener("resize",n.update,ee)}},data:{}},ne={left:"right",right:"left",bottom:"top",top:"bottom"};function ie(e){return e.replace(/left|right|bottom|top/g,(function(e){return ne[e]}))}var oe={start:"end",end:"start"};function re(e){return e.replace(/start|end/g,(function(e){return oe[e]}))}function se(e){var t=A(e);return{scrollLeft:t.pageXOffset,scrollTop:t.pageYOffset}}function ae(e){return B(z(e)).left+se(e).scrollLeft}function ce(e){var t=I(e),n=t.overflow,i=t.overflowX,o=t.overflowY;return/auto|scroll|overlay|hidden/.test(n+o+i)}function le(e){return["html","body","#document"].indexOf(x(e))>=0?e.ownerDocument.body:L(e)&&ce(e)?e:le(q(e))}function fe(e,t){var n;void 0===t&&(t=[]);var i=le(e),o=i===(null==(n=e.ownerDocument)?void 0:n.body),r=A(i),s=o?[r].concat(r.visualViewport||[],ce(i)?i:[]):i,a=t.concat(s);return o?a:a.concat(fe(q(s)))}function ue(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}function de(e,t,n){return t===l?ue(function(e,t){var n=A(e),i=z(e),o=n.visualViewport,r=i.clientWidth,s=i.clientHeight,a=0,c=0;if(o){r=o.width,s=o.height;var l=M();(l||!l&&"fixed"===t)&&(a=o.offsetLeft,c=o.offsetTop)}return{width:r,height:s,x:a+ae(e),y:c}}(e,n)):C(t)?function(e,t){var n=B(e,!1,"fixed"===t);return n.top=n.top+e.clientTop,n.left=n.left+e.clientLeft,n.bottom=n.top+e.clientHeight,n.right=n.left+e.clientWidth,n.width=e.clientWidth,n.height=e.clientHeight,n.x=n.left,n.y=n.top,n}(t,n):ue(function(e){var t,n=z(e),i=se(e),o=null==(t=e.ownerDocument)?void 0:t.body,r=D(n.scrollWidth,n.clientWidth,o?o.scrollWidth:0,o?o.clientWidth:0),s=D(n.scrollHeight,n.clientHeight,o?o.scrollHeight:0,o?o.clientHeight:0),a=-i.scrollLeft+ae(e),c=-i.scrollTop;return"rtl"===I(o||n).direction&&(a+=D(n.clientWidth,o?o.clientWidth:0)-r),{width:r,height:s,x:a,y:c}}(z(e)))}function pe(e,t,n,i){var o="clippingParents"===t?function(e){var t=fe(q(e)),n=["absolute","fixed"].indexOf(I(e).position)>=0&&L(e)?V(e):e;return C(n)?t.filter((function(e){return C(e)&&H(e,n)&&"body"!==x(e)})):[]}(e):[].concat(t),r=[].concat(o,[n]),s=r[0],a=r.reduce((function(t,n){var o=de(e,n,i);return t.top=D(o.top,t.top),t.right=k(o.right,t.right),t.bottom=k(o.bottom,t.bottom),t.left=D(o.left,t.left),t}),de(e,s,i));return a.width=a.right-a.left,a.height=a.bottom-a.top,a.x=a.left,a.y=a.top,a}function he(o){var r,c=o.reference,l=o.element,f=o.placement,u=f?S(f):null,d=f?G(f):null,p=c.x+c.width/2-l.width/2,h=c.y+c.height/2-l.height/2;switch(u){case e:r={x:p,y:c.y-l.height};break;case t:r={x:p,y:c.y+c.height};break;case n:r={x:c.x+c.width,y:h};break;case i:r={x:c.x-l.width,y:h};break;default:r={x:c.x,y:c.y}}var m=u?Y(u):null;if(null!=m){var g="y"===m?"height":"width";switch(d){case s:r[m]=r[m]-(c[g]/2-l[g]/2);break;case a:r[m]=r[m]+(c[g]/2-l[g]/2)}}return r}function me(i,o){void 0===o&&(o={});var s=o,a=s.placement,d=void 0===a?i.placement:a,p=s.strategy,h=void 0===p?i.strategy:p,m=s.boundary,g=void 0===m?c:m,v=s.rootBoundary,b=void 0===v?l:v,y=s.elementContext,_=void 0===y?f:y,w=s.altBoundary,E=void 0!==w&&w,O=s.padding,x=void 0===O?0:O,A=K("number"!=typeof x?x:Q(x,r)),L=_===f?u:f,T=i.rects.popper,j=i.elements[E?L:_],S=pe(C(j)?j:j.contextElement||z(i.elements.popper),g,b,h),D=B(i.elements.reference),k=he({reference:D,element:T,strategy:"absolute",placement:d}),P=ue(Object.assign({},T,k)),N=_===f?P:D,M={top:S.top-N.top+A.top,bottom:N.bottom-S.bottom+A.bottom,left:S.left-N.left+A.left,right:N.right-S.right+A.right},F=i.modifiersData.offset;if(_===f&&F){var H=F[d];Object.keys(M).forEach((function(i){var o=[n,t].indexOf(i)>=0?1:-1,r=[e,t].indexOf(i)>=0?"y":"x";M[i]+=H[r]*o}))}return M}function ge(e,t){void 0===t&&(t={});var n=t,i=n.placement,o=n.boundary,s=n.rootBoundary,a=n.padding,c=n.flipVariations,l=n.allowedAutoPlacements,f=void 0===l?p:l,u=G(i),h=u?c?d:d.filter((function(e){return G(e)===u})):r,m=h.filter((function(e){return f.indexOf(e)>=0}));0===m.length&&(m=h);var g=m.reduce((function(t,n){return t[n]=me(e,{placement:n,boundary:o,rootBoundary:s,padding:a})[S(n)],t}),{});return Object.keys(g).sort((function(e,t){return g[e]-g[t]}))}var ve={name:"flip",enabled:!0,phase:"main",fn:function(r){var a=r.state,c=r.options,l=r.name;if(!a.modifiersData[l]._skip){for(var f=c.mainAxis,u=void 0===f||f,d=c.altAxis,p=void 0===d||d,h=c.fallbackPlacements,m=c.padding,g=c.boundary,v=c.rootBoundary,b=c.altBoundary,y=c.flipVariations,_=void 0===y||y,w=c.allowedAutoPlacements,E=a.options.placement,O=S(E),x=h||(O===E||!_?[ie(E)]:function(e){if(S(e)===o)return[];var t=ie(e);return[re(e),t,re(t)]}(E)),A=[E].concat(x).reduce((function(e,t){return e.concat(S(t)===o?ge(a,{placement:t,boundary:g,rootBoundary:v,padding:m,flipVariations:_,allowedAutoPlacements:w}):t)}),[]),C=a.rects.reference,L=a.rects.popper,T=new Map,j=!0,D=A[0],k=0;k=0,F=B?"width":"height",H=me(a,{placement:P,boundary:g,rootBoundary:v,altBoundary:b,padding:m}),I=B?M?n:i:M?t:e;C[F]>L[F]&&(I=ie(I));var W=ie(I),z=[];if(u&&z.push(H[N]<=0),p&&z.push(H[I]<=0,H[W]<=0),z.every((function(e){return e}))){D=P,j=!1;break}T.set(P,z)}if(j)for(var q=function(e){var t=A.find((function(t){var n=T.get(t);if(n)return n.slice(0,e).every((function(e){return e}))}));if(t)return D=t,"break"},R=_?3:1;R>0;R--){if("break"===q(R))break}a.placement!==D&&(a.modifiersData[l]._skip=!0,a.placement=D,a.reset=!0)}},requiresIfExists:["offset"],data:{_skip:!1}};function be(e,t,n){return void 0===n&&(n={x:0,y:0}),{top:e.top-t.height-n.y,right:e.right-t.width+n.x,bottom:e.bottom-t.height+n.y,left:e.left-t.width-n.x}}function ye(o){return[e,n,t,i].some((function(e){return o[e]>=0}))}var _e={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:function(e){var t=e.state,n=e.name,i=t.rects.reference,o=t.rects.popper,r=t.modifiersData.preventOverflow,s=me(t,{elementContext:"reference"}),a=me(t,{altBoundary:!0}),c=be(s,i),l=be(a,o,r),f=ye(c),u=ye(l);t.modifiersData[n]={referenceClippingOffsets:c,popperEscapeOffsets:l,isReferenceHidden:f,hasPopperEscaped:u},t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-reference-hidden":f,"data-popper-escaped":u})}};var we={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:function(t){var o=t.state,r=t.options,s=t.name,a=r.offset,c=void 0===a?[0,0]:a,l=p.reduce((function(t,r){return t[r]=function(t,o,r){var s=S(t),a=[i,e].indexOf(s)>=0?-1:1,c="function"==typeof r?r(Object.assign({},o,{placement:t})):r,l=c[0],f=c[1];return l=l||0,f=(f||0)*a,[i,n].indexOf(s)>=0?{x:f,y:l}:{x:l,y:f}}(r,o.rects,c),t}),{}),f=l[o.placement],u=f.x,d=f.y;null!=o.modifiersData.popperOffsets&&(o.modifiersData.popperOffsets.x+=u,o.modifiersData.popperOffsets.y+=d),o.modifiersData[s]=l}};var Ee={name:"popperOffsets",enabled:!0,phase:"read",fn:function(e){var t=e.state,n=e.name;t.modifiersData[n]=he({reference:t.rects.reference,element:t.rects.popper,strategy:"absolute",placement:t.placement})},data:{}};var Oe={name:"preventOverflow",enabled:!0,phase:"main",fn:function(o){var r=o.state,a=o.options,c=o.name,l=a.mainAxis,f=void 0===l||l,u=a.altAxis,d=void 0!==u&&u,p=a.boundary,h=a.rootBoundary,m=a.altBoundary,g=a.padding,v=a.tether,b=void 0===v||v,y=a.tetherOffset,_=void 0===y?0:y,w=me(r,{boundary:p,rootBoundary:h,padding:g,altBoundary:m}),E=S(r.placement),O=G(r.placement),x=!O,A=Y(E),C="x"===A?"y":"x",L=r.modifiersData.popperOffsets,T=r.rects.reference,j=r.rects.popper,P="function"==typeof _?_(Object.assign({},r.rects,{placement:r.placement})):_,N="number"==typeof P?{mainAxis:P,altAxis:P}:Object.assign({mainAxis:0,altAxis:0},P),M=r.modifiersData.offset?r.modifiersData.offset[r.placement]:null,B={x:0,y:0};if(L){if(f){var H,I="y"===A?e:i,W="y"===A?t:n,z="y"===A?"height":"width",q=L[A],R=q+w[I],K=q-w[W],Q=b?-j[z]/2:0,$=O===s?T[z]:j[z],X=O===s?-j[z]:-T[z],J=r.elements.arrow,Z=b&&J?F(J):{width:0,height:0},ee=r.modifiersData["arrow#persistent"]?r.modifiersData["arrow#persistent"].padding:{top:0,right:0,bottom:0,left:0},te=ee[I],ne=ee[W],ie=U(0,T[z],Z[z]),oe=x?T[z]/2-Q-ie-te-N.mainAxis:$-ie-te-N.mainAxis,re=x?-T[z]/2+Q+ie+ne+N.mainAxis:X+ie+ne+N.mainAxis,se=r.elements.arrow&&V(r.elements.arrow),ae=se?"y"===A?se.clientTop||0:se.clientLeft||0:0,ce=null!=(H=null==M?void 0:M[A])?H:0,le=q+re-ce,fe=U(b?k(R,q+oe-ce-ae):R,q,b?D(K,le):K);L[A]=fe,B[A]=fe-q}if(d){var ue,de="x"===A?e:i,pe="x"===A?t:n,he=L[C],ge="y"===C?"height":"width",ve=he+w[de],be=he-w[pe],ye=-1!==[e,i].indexOf(E),_e=null!=(ue=null==M?void 0:M[C])?ue:0,we=ye?ve:he-T[ge]-j[ge]-_e+N.altAxis,Ee=ye?he+T[ge]+j[ge]-_e-N.altAxis:be,Oe=b&&ye?function(e,t,n){var i=U(e,t,n);return i>n?n:i}(we,he,Ee):U(b?we:ve,he,b?Ee:be);L[C]=Oe,B[C]=Oe-he}r.modifiersData[c]=B}},requiresIfExists:["offset"]};function xe(e,t,n){void 0===n&&(n=!1);var i,o,r=L(t),s=L(t)&&function(e){var t=e.getBoundingClientRect(),n=P(t.width)/e.offsetWidth||1,i=P(t.height)/e.offsetHeight||1;return 1!==n||1!==i}(t),a=z(t),c=B(e,s,n),l={scrollLeft:0,scrollTop:0},f={x:0,y:0};return(r||!r&&!n)&&(("body"!==x(t)||ce(a))&&(l=(i=t)!==A(i)&&L(i)?{scrollLeft:(o=i).scrollLeft,scrollTop:o.scrollTop}:se(i)),L(t)?((f=B(t,!0)).x+=t.clientLeft,f.y+=t.clientTop):a&&(f.x=ae(a))),{x:c.left+l.scrollLeft-f.x,y:c.top+l.scrollTop-f.y,width:c.width,height:c.height}}function Ae(e){var t=new Map,n=new Set,i=[];function o(e){n.add(e.name),[].concat(e.requires||[],e.requiresIfExists||[]).forEach((function(e){if(!n.has(e)){var i=t.get(e);i&&o(i)}})),i.push(e)}return e.forEach((function(e){t.set(e.name,e)})),e.forEach((function(e){n.has(e.name)||o(e)})),i}var Ce={placement:"bottom",modifiers:[],strategy:"absolute"};function Le(){for(var e=arguments.length,t=new Array(e),n=0;nPe.has(e)&&Pe.get(e).get(t)||null,remove(e,t){if(!Pe.has(e))return;const n=Pe.get(e);n.delete(t),0===n.size&&Pe.delete(e)}};const Me="transitionend",Be=e=>(e&&window.CSS&&window.CSS.escape&&(e=e.replace(/#([^\s"#']+)/g,((e,t)=>"#".concat(CSS.escape(t))))),e),Fe=e=>!(!e||"object"!=typeof e)&&(void 0!==e.jquery&&(e=e[0]),void 0!==e.nodeType),He=e=>Fe(e)?e.jquery?e[0]:e:"string"==typeof e&&e.length>0?document.querySelector(Be(e)):null,Ie=e=>{if(!document.documentElement.attachShadow)return null;if("function"==typeof e.getRootNode){const t=e.getRootNode();return t instanceof ShadowRoot?t:null}return e instanceof ShadowRoot?e:e.parentNode?Ie(e.parentNode):null},We=()=>{},ze=()=>window.jQuery&&!document.body.hasAttribute("data-bs-no-jquery")?window.jQuery:null,qe=[],Re=()=>"rtl"===document.documentElement.dir,Ve=e=>{var t;t=()=>{const t=ze();if(t){const n=e.NAME,i=t.fn[n];t.fn[n]=e.jQueryInterface,t.fn[n].Constructor=e,t.fn[n].noConflict=()=>(t.fn[n]=i,e.jQueryInterface)}},"loading"===document.readyState?(qe.length||document.addEventListener("DOMContentLoaded",(()=>{for(const e of qe)e()})),qe.push(t)):t()},Ye=function(e){let t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:e;return"function"==typeof e?e(...arguments.length>1&&void 0!==arguments[1]?arguments[1]:[]):t},Ue=function(e,t){if(!(!(arguments.length>2&&void 0!==arguments[2])||arguments[2]))return void Ye(e);const n=(e=>{if(!e)return 0;let{transitionDuration:t,transitionDelay:n}=window.getComputedStyle(e);const i=Number.parseFloat(t),o=Number.parseFloat(n);return i||o?(t=t.split(",")[0],n=n.split(",")[0],1e3*(Number.parseFloat(t)+Number.parseFloat(n))):0})(t)+5;let i=!1;const o=n=>{let{target:r}=n;r===t&&(i=!0,t.removeEventListener(Me,o),Ye(e))};t.addEventListener(Me,o),setTimeout((()=>{i||t.dispatchEvent(new Event(Me))}),n)},Ke=/[^.]*(?=\..*)\.|.*/,Qe=/\..*/,$e=/::\d+$/,Ge={};let Xe=1;const Je={mouseenter:"mouseover",mouseleave:"mouseout"},Ze=new Set(["click","dblclick","mouseup","mousedown","contextmenu","mousewheel","DOMMouseScroll","mouseover","mouseout","mousemove","selectstart","selectend","keydown","keypress","keyup","orientationchange","touchstart","touchmove","touchend","touchcancel","pointerdown","pointermove","pointerup","pointerleave","pointercancel","gesturestart","gesturechange","gestureend","focus","blur","change","reset","select","submit","focusin","focusout","load","unload","beforeunload","resize","move","DOMContentLoaded","readystatechange","error","abort","scroll"]);function et(e,t){return t&&"".concat(t,"::").concat(Xe++)||e.uidEvent||Xe++}function tt(e){const t=et(e);return e.uidEvent=t,Ge[t]=Ge[t]||{},Ge[t]}function nt(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;return Object.values(e).find((e=>e.callable===t&&e.delegationSelector===n))}function it(e,t,n){const i="string"==typeof t,o=i?n:t||n;let r=at(e);return Ze.has(r)||(r=e),[i,o,r]}function ot(e,t,n,i,o){if("string"!=typeof t||!e)return;let[r,s,a]=it(t,n,i);if(t in Je){const e=e=>function(t){if(!t.relatedTarget||t.relatedTarget!==t.delegateTarget&&!t.delegateTarget.contains(t.relatedTarget))return e.call(this,t)};s=e(s)}const c=tt(e),l=c[a]||(c[a]={}),f=nt(l,s,r?n:null);if(f)return void(f.oneOff=f.oneOff&&o);const u=et(s,t.replace(Ke,"")),d=r?function(e,t,n){return function i(o){const r=e.querySelectorAll(t);for(let{target:s}=o;s&&s!==this;s=s.parentNode)for(const a of r)if(a===s)return lt(o,{delegateTarget:s}),i.oneOff&&ct.off(e,o.type,t,n),n.apply(s,[o])}}(e,n,s):function(e,t){return function n(i){return lt(i,{delegateTarget:e}),n.oneOff&&ct.off(e,i.type,t),t.apply(e,[i])}}(e,s);d.delegationSelector=r?n:null,d.callable=s,d.oneOff=o,d.uidEvent=u,l[u]=d,e.addEventListener(a,d,r)}function rt(e,t,n,i,o){const r=nt(t[n],i,o);r&&(e.removeEventListener(n,r,Boolean(o)),delete t[n][r.uidEvent])}function st(e,t,n,i){const o=t[n]||{};for(const[r,s]of Object.entries(o))r.includes(i)&&rt(e,t,n,s.callable,s.delegationSelector)}function at(e){return e=e.replace(Qe,""),Je[e]||e}const ct={on(e,t,n,i){ot(e,t,n,i,!1)},one(e,t,n,i){ot(e,t,n,i,!0)},off(e,t,n,i){if("string"!=typeof t||!e)return;const[o,r,s]=it(t,n,i),a=s!==t,c=tt(e),l=c[s]||{},f=t.startsWith(".");if(void 0===r){if(f)for(const n of Object.keys(c))st(e,c,n,t.slice(1));for(const[n,i]of Object.entries(l)){const o=n.replace($e,"");a&&!t.includes(o)||rt(e,c,s,i.callable,i.delegationSelector)}}else{if(!Object.keys(l).length)return;rt(e,c,s,r,o?n:null)}},trigger(e,t,n){if("string"!=typeof t||!e)return null;const i=ze();let o=null,r=!0,s=!0,a=!1;t!==at(t)&&i&&(o=i.Event(t,n),i(e).trigger(o),r=!o.isPropagationStopped(),s=!o.isImmediatePropagationStopped(),a=o.isDefaultPrevented());const c=lt(new Event(t,{bubbles:r,cancelable:!0}),n);return a&&c.preventDefault(),s&&e.dispatchEvent(c),c.defaultPrevented&&o&&o.preventDefault(),c}};function lt(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};for(const[n,i]of Object.entries(t))try{e[n]=i}catch{Object.defineProperty(e,n,{configurable:!0,get:()=>i})}return e}function ft(e){if("true"===e)return!0;if("false"===e)return!1;if(e===Number(e).toString())return Number(e);if(""===e||"null"===e)return null;if("string"!=typeof e)return e;try{return JSON.parse(decodeURIComponent(e))}catch{return e}}function ut(e){return e.replace(/[A-Z]/g,(e=>"-".concat(e.toLowerCase())))}const dt={setDataAttribute(e,t,n){e.setAttribute("data-bs-".concat(ut(t)),n)},removeDataAttribute(e,t){e.removeAttribute("data-bs-".concat(ut(t)))},getDataAttributes(e){if(!e)return{};const t={},n=Object.keys(e.dataset).filter((e=>e.startsWith("bs")&&!e.startsWith("bsConfig")));for(const i of n){let n=i.replace(/^bs/,"");n=n.charAt(0).toLowerCase()+n.slice(1,n.length),t[n]=ft(e.dataset[i])}return t},getDataAttribute:(e,t)=>ft(e.getAttribute("data-bs-".concat(ut(t))))};class pt{static get Default(){return{}}static get DefaultType(){return{}}static get NAME(){throw new Error('You have to implement the static method "NAME", for each component!')}_getConfig(e){return e=this._mergeConfigObj(e),e=this._configAfterMerge(e),this._typeCheckConfig(e),e}_configAfterMerge(e){return e}_mergeConfigObj(e,t){const n=Fe(t)?dt.getDataAttribute(t,"config"):{};return{...this.constructor.Default,..."object"==typeof n?n:{},...Fe(t)?dt.getDataAttributes(t):{},..."object"==typeof e?e:{}}}_typeCheckConfig(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.constructor.DefaultType;for(const[i,o]of Object.entries(t)){const t=e[i],r=Fe(t)?"element":null==(n=t)?"".concat(n):Object.prototype.toString.call(n).match(/\s([a-z]+)/i)[1].toLowerCase();if(!new RegExp(o).test(r))throw new TypeError("".concat(this.constructor.NAME.toUpperCase(),': Option "').concat(i,'" provided type "').concat(r,'" but expected type "').concat(o,'".'))}var n}}class ht extends pt{constructor(e,t){super(),(e=He(e))&&(this._element=e,this._config=this._getConfig(t),Ne.set(this._element,this.constructor.DATA_KEY,this))}dispose(){Ne.remove(this._element,this.constructor.DATA_KEY),ct.off(this._element,this.constructor.EVENT_KEY);for(const e of Object.getOwnPropertyNames(this))this[e]=null}_queueCallback(e,t){Ue(e,t,!(arguments.length>2&&void 0!==arguments[2])||arguments[2])}_getConfig(e){return e=this._mergeConfigObj(e,this._element),e=this._configAfterMerge(e),this._typeCheckConfig(e),e}static getInstance(e){return Ne.get(He(e),this.DATA_KEY)}static getOrCreateInstance(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.getInstance(e)||new this(e,"object"==typeof t?t:null)}static get VERSION(){return"5.3.3"}static get DATA_KEY(){return"bs.".concat(this.NAME)}static get EVENT_KEY(){return".".concat(this.DATA_KEY)}static eventName(e){return"".concat(e).concat(this.EVENT_KEY)}}const mt={"*":["class","dir","id","lang","role",/^aria-[\w-]*$/i],a:["target","href","title","rel"],area:[],b:[],br:[],col:[],code:[],dd:[],div:[],dl:[],dt:[],em:[],hr:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],i:[],img:["src","srcset","alt","title","width","height"],li:[],ol:[],p:[],pre:[],s:[],small:[],span:[],sub:[],sup:[],strong:[],u:[],ul:[]},gt=new Set(["background","cite","href","itemtype","longdesc","poster","src","xlink:href"]),vt=/^(?!javascript:)(?:[a-z0-9+.-]+:|[^&:/?#]*(?:[/?#]|$))/i,bt=(e,t)=>{const n=e.nodeName.toLowerCase();return t.includes(n)?!gt.has(n)||Boolean(vt.test(e.nodeValue)):t.filter((e=>e instanceof RegExp)).some((e=>e.test(n)))};const yt=e=>{let t=e.getAttribute("data-bs-target");if(!t||"#"===t){let n=e.getAttribute("href");if(!n||!n.includes("#")&&!n.startsWith("."))return null;n.includes("#")&&!n.startsWith("#")&&(n="#".concat(n.split("#")[1])),t=n&&"#"!==n?n.trim():null}return t?t.split(",").map((e=>Be(e))).join(","):null},_t={find(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:document.documentElement;return[].concat(...Element.prototype.querySelectorAll.call(t,e))},findOne(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:document.documentElement;return Element.prototype.querySelector.call(t,e)},children:(e,t)=>[].concat(...e.children).filter((e=>e.matches(t))),parents(e,t){const n=[];let i=e.parentNode.closest(t);for(;i;)n.push(i),i=i.parentNode.closest(t);return n},prev(e,t){let n=e.previousElementSibling;for(;n;){if(n.matches(t))return[n];n=n.previousElementSibling}return[]},next(e,t){let n=e.nextElementSibling;for(;n;){if(n.matches(t))return[n];n=n.nextElementSibling}return[]},focusableChildren(e){const t=["a","button","input","textarea","select","details","[tabindex]",'[contenteditable="true"]'].map((e=>"".concat(e,':not([tabindex^="-"])'))).join(",");return this.find(t,e).filter((e=>!(e=>!e||e.nodeType!==Node.ELEMENT_NODE||!!e.classList.contains("disabled")||(void 0!==e.disabled?e.disabled:e.hasAttribute("disabled")&&"false"!==e.getAttribute("disabled")))(e)&&(e=>{if(!Fe(e)||0===e.getClientRects().length)return!1;const t="visible"===getComputedStyle(e).getPropertyValue("visibility"),n=e.closest("details:not([open])");if(!n)return t;if(n!==e){const t=e.closest("summary");if(t&&t.parentNode!==n)return!1;if(null===t)return!1}return t})(e)))},getSelectorFromElement(e){const t=yt(e);return t&&_t.findOne(t)?t:null},getElementFromSelector(e){const t=yt(e);return t?_t.findOne(t):null},getMultipleElementsFromSelector(e){const t=yt(e);return t?_t.find(t):[]}},wt={allowList:mt,content:{},extraClass:"",html:!1,sanitize:!0,sanitizeFn:null,template:"
"},Et={allowList:"object",content:"object",extraClass:"(string|function)",html:"boolean",sanitize:"boolean",sanitizeFn:"(null|function)",template:"string"},Ot={entry:"(string|element|function|null)",selector:"(string|element)"};class xt extends pt{constructor(e){super(),this._config=this._getConfig(e)}static get Default(){return wt}static get DefaultType(){return Et}static get NAME(){return"TemplateFactory"}getContent(){return Object.values(this._config.content).map((e=>this._resolvePossibleFunction(e))).filter(Boolean)}hasContent(){return this.getContent().length>0}changeContent(e){return this._checkContent(e),this._config.content={...this._config.content,...e},this}toHtml(){const e=document.createElement("div");e.innerHTML=this._maybeSanitize(this._config.template);for(const[t,n]of Object.entries(this._config.content))this._setContent(e,n,t);const t=e.children[0],n=this._resolvePossibleFunction(this._config.extraClass);return n&&t.classList.add(...n.split(" ")),t}_typeCheckConfig(e){super._typeCheckConfig(e),this._checkContent(e.content)}_checkContent(e){for(const[t,n]of Object.entries(e))super._typeCheckConfig({selector:t,entry:n},Ot)}_setContent(e,t,n){const i=_t.findOne(n,e);i&&((t=this._resolvePossibleFunction(t))?Fe(t)?this._putElementInTemplate(He(t),i):this._config.html?i.innerHTML=this._maybeSanitize(t):i.textContent=t:i.remove())}_maybeSanitize(e){return this._config.sanitize?function(e,t,n){if(!e.length)return e;if(n&&"function"==typeof n)return n(e);const i=(new window.DOMParser).parseFromString(e,"text/html"),o=[].concat(...i.body.querySelectorAll("*"));for(const e of o){const n=e.nodeName.toLowerCase();if(!Object.keys(t).includes(n)){e.remove();continue}const i=[].concat(...e.attributes),o=[].concat(t["*"]||[],t[n]||[]);for(const t of i)bt(t,o)||e.removeAttribute(t.nodeName)}return i.body.innerHTML}(e,this._config.allowList,this._config.sanitizeFn):e}_resolvePossibleFunction(e){return Ye(e,[this])}_putElementInTemplate(e,t){if(this._config.html)return t.innerHTML="",void t.append(e);t.textContent=e.textContent}}const At=new Set(["sanitize","allowList","sanitizeFn"]),Ct="fade",Lt="show",Tt=".tooltip-inner",jt=".".concat("modal"),St="hide.bs.modal",Dt="hover",kt="focus",Pt={AUTO:"auto",TOP:"top",RIGHT:Re()?"left":"right",BOTTOM:"bottom",LEFT:Re()?"right":"left"},Nt={allowList:mt,animation:!0,boundary:"clippingParents",container:!1,customClass:"",delay:0,fallbackPlacements:["top","right","bottom","left"],html:!1,offset:[0,6],placement:"top",popperConfig:null,sanitize:!0,sanitizeFn:null,selector:!1,template:'',title:"",trigger:"hover focus"},Mt={allowList:"object",animation:"boolean",boundary:"(string|element)",container:"(string|element|boolean)",customClass:"(string|function)",delay:"(number|object)",fallbackPlacements:"array",html:"boolean",offset:"(array|string|function)",placement:"(string|function)",popperConfig:"(null|object|function)",sanitize:"boolean",sanitizeFn:"(null|function)",selector:"(string|boolean)",template:"string",title:"(string|element|function)",trigger:"string"};class Bt extends ht{constructor(e,t){if(void 0===ke)throw new TypeError("Bootstrap's tooltips require Popper (https://popper.js.org)");super(e,t),this._isEnabled=!0,this._timeout=0,this._isHovered=null,this._activeTrigger={},this._popper=null,this._templateFactory=null,this._newContent=null,this.tip=null,this._setListeners(),this._config.selector||this._fixTitle()}static get Default(){return Nt}static get DefaultType(){return Mt}static get NAME(){return"tooltip"}enable(){this._isEnabled=!0}disable(){this._isEnabled=!1}toggleEnabled(){this._isEnabled=!this._isEnabled}toggle(){this._isEnabled&&(this._activeTrigger.click=!this._activeTrigger.click,this._isShown()?this._leave():this._enter())}dispose(){clearTimeout(this._timeout),ct.off(this._element.closest(jt),St,this._hideModalHandler),this._element.getAttribute("data-bs-original-title")&&this._element.setAttribute("title",this._element.getAttribute("data-bs-original-title")),this._disposePopper(),super.dispose()}show(){if("none"===this._element.style.display)throw new Error("Please use show on visible elements");if(!this._isWithContent()||!this._isEnabled)return;const e=ct.trigger(this._element,this.constructor.eventName("show")),t=(Ie(this._element)||this._element.ownerDocument.documentElement).contains(this._element);if(e.defaultPrevented||!t)return;this._disposePopper();const n=this._getTipElement();this._element.setAttribute("aria-describedby",n.getAttribute("id"));const{container:i}=this._config;if(this._element.ownerDocument.documentElement.contains(this.tip)||(i.append(n),ct.trigger(this._element,this.constructor.eventName("inserted"))),this._popper=this._createPopper(n),n.classList.add(Lt),"ontouchstart"in document.documentElement)for(const e of[].concat(...document.body.children))ct.on(e,"mouseover",We);this._queueCallback((()=>{ct.trigger(this._element,this.constructor.eventName("shown")),!1===this._isHovered&&this._leave(),this._isHovered=!1}),this.tip,this._isAnimated())}hide(){if(!this._isShown())return;if(ct.trigger(this._element,this.constructor.eventName("hide")).defaultPrevented)return;if(this._getTipElement().classList.remove(Lt),"ontouchstart"in document.documentElement)for(const e of[].concat(...document.body.children))ct.off(e,"mouseover",We);this._activeTrigger.click=!1,this._activeTrigger[kt]=!1,this._activeTrigger[Dt]=!1,this._isHovered=null;this._queueCallback((()=>{this._isWithActiveTrigger()||(this._isHovered||this._disposePopper(),this._element.removeAttribute("aria-describedby"),ct.trigger(this._element,this.constructor.eventName("hidden")))}),this.tip,this._isAnimated())}update(){this._popper&&this._popper.update()}_isWithContent(){return Boolean(this._getTitle())}_getTipElement(){return this.tip||(this.tip=this._createTipElement(this._newContent||this._getContentForTemplate())),this.tip}_createTipElement(e){const t=this._getTemplateFactory(e).toHtml();if(!t)return null;t.classList.remove(Ct,Lt),t.classList.add("bs-".concat(this.constructor.NAME,"-auto"));const n=(e=>{do{e+=Math.floor(1e6*Math.random())}while(document.getElementById(e));return e})(this.constructor.NAME).toString();return t.setAttribute("id",n),this._isAnimated()&&t.classList.add(Ct),t}setContent(e){this._newContent=e,this._isShown()&&(this._disposePopper(),this.show())}_getTemplateFactory(e){return this._templateFactory?this._templateFactory.changeContent(e):this._templateFactory=new xt({...this._config,content:e,extraClass:this._resolvePossibleFunction(this._config.customClass)}),this._templateFactory}_getContentForTemplate(){return{[Tt]:this._getTitle()}}_getTitle(){return this._resolvePossibleFunction(this._config.title)||this._element.getAttribute("data-bs-original-title")}_initializeOnDelegatedTarget(e){return this.constructor.getOrCreateInstance(e.delegateTarget,this._getDelegateConfig())}_isAnimated(){return this._config.animation||this.tip&&this.tip.classList.contains(Ct)}_isShown(){return this.tip&&this.tip.classList.contains(Lt)}_createPopper(e){const t=Ye(this._config.placement,[this,e,this._element]),n=Pt[t.toUpperCase()];return De(this._element,e,this._getPopperConfig(n))}_getOffset(){const{offset:e}=this._config;return"string"==typeof e?e.split(",").map((e=>Number.parseInt(e,10))):"function"==typeof e?t=>e(t,this._element):e}_resolvePossibleFunction(e){return Ye(e,[this._element])}_getPopperConfig(e){const t={placement:e,modifiers:[{name:"flip",options:{fallbackPlacements:this._config.fallbackPlacements}},{name:"offset",options:{offset:this._getOffset()}},{name:"preventOverflow",options:{boundary:this._config.boundary}},{name:"arrow",options:{element:".".concat(this.constructor.NAME,"-arrow")}},{name:"preSetPlacement",enabled:!0,phase:"beforeMain",fn:e=>{this._getTipElement().setAttribute("data-popper-placement",e.state.placement)}}]};return{...t,...Ye(this._config.popperConfig,[t])}}_setListeners(){const e=this._config.trigger.split(" ");for(const t of e)if("click"===t)ct.on(this._element,this.constructor.eventName("click"),this._config.selector,(e=>{this._initializeOnDelegatedTarget(e).toggle()}));else if("manual"!==t){const e=t===Dt?this.constructor.eventName("mouseenter"):this.constructor.eventName("focusin"),n=t===Dt?this.constructor.eventName("mouseleave"):this.constructor.eventName("focusout");ct.on(this._element,e,this._config.selector,(e=>{const t=this._initializeOnDelegatedTarget(e);t._activeTrigger["focusin"===e.type?kt:Dt]=!0,t._enter()})),ct.on(this._element,n,this._config.selector,(e=>{const t=this._initializeOnDelegatedTarget(e);t._activeTrigger["focusout"===e.type?kt:Dt]=t._element.contains(e.relatedTarget),t._leave()}))}this._hideModalHandler=()=>{this._element&&this.hide()},ct.on(this._element.closest(jt),St,this._hideModalHandler)}_fixTitle(){const e=this._element.getAttribute("title");e&&(this._element.getAttribute("aria-label")||this._element.textContent.trim()||this._element.setAttribute("aria-label",e),this._element.setAttribute("data-bs-original-title",e),this._element.removeAttribute("title"))}_enter(){this._isShown()||this._isHovered?this._isHovered=!0:(this._isHovered=!0,this._setTimeout((()=>{this._isHovered&&this.show()}),this._config.delay.show))}_leave(){this._isWithActiveTrigger()||(this._isHovered=!1,this._setTimeout((()=>{this._isHovered||this.hide()}),this._config.delay.hide))}_setTimeout(e,t){clearTimeout(this._timeout),this._timeout=setTimeout(e,t)}_isWithActiveTrigger(){return Object.values(this._activeTrigger).includes(!0)}_getConfig(e){const t=dt.getDataAttributes(this._element);for(const e of Object.keys(t))At.has(e)&&delete t[e];return e={...t,..."object"==typeof e&&e?e:{}},e=this._mergeConfigObj(e),e=this._configAfterMerge(e),this._typeCheckConfig(e),e}_configAfterMerge(e){return e.container=!1===e.container?document.body:He(e.container),"number"==typeof e.delay&&(e.delay={show:e.delay,hide:e.delay}),"number"==typeof e.title&&(e.title=e.title.toString()),"number"==typeof e.content&&(e.content=e.content.toString()),e}_getDelegateConfig(){const e={};for(const[t,n]of Object.entries(this._config))this.constructor.Default[t]!==n&&(e[t]=n);return e.selector=!1,e.trigger="manual",e}_disposePopper(){this._popper&&(this._popper.destroy(),this._popper=null),this.tip&&(this.tip.remove(),this.tip=null)}static jQueryInterface(e){return this.each((function(){const t=Bt.getOrCreateInstance(this,e);if("string"==typeof e){if(void 0===t[e])throw new TypeError('No method named "'.concat(e,'"'));t[e]()}}))}}Ve(Bt);const Ft=document.getElementById("mode-toggle");function Ht(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var i=n.call(e,t||"default");if("object"!=typeof i)return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:t+""}function It(e,t,n){return(t=Ht(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}const Wt="sidebar-display";class zt{static toggle(){!1===zt.isExpanded?document.body.setAttribute(Wt,""):document.body.removeAttribute(Wt),zt.isExpanded=!zt.isExpanded}}It(zt,"isExpanded",!1);const qt=document.getElementById("sidebar-trigger"),Rt=document.getElementById("search-trigger"),Vt=document.getElementById("search-cancel"),Yt=document.querySelectorAll("#main-wrapper>.container>.row"),Ut=document.getElementById("topbar-title"),Kt=document.getElementById("search"),Qt=document.getElementById("search-result-wrapper"),$t=document.getElementById("search-results"),Gt=document.getElementById("search-input"),Xt=document.getElementById("search-hints"),Jt="d-block",Zt="d-none",en="input-focus",tn="d-flex";class nn{static on(){qt.classList.add(Zt),Ut.classList.add(Zt),Rt.classList.add(Zt),Kt.classList.add(tn),Vt.classList.add(Jt)}static off(){Vt.classList.remove(Jt),Kt.classList.remove(tn),qt.classList.remove(Zt),Ut.classList.remove(Zt),Rt.classList.remove(Zt)}}class on{static on(){this.resultVisible||(Qt.classList.remove(Zt),Yt.forEach((e=>{e.classList.add(Zt)})),this.resultVisible=!0)}static off(){this.resultVisible&&($t.innerHTML="",Xt.classList.contains(Zt)&&Xt.classList.remove(Zt),Qt.classList.add(Zt),Yt.forEach((e=>{e.classList.remove(Zt)})),Gt.textContent="",this.resultVisible=!1)}}function rn(){return Vt.classList.contains(Jt)}It(on,"resultVisible",!1);const sn=".".concat("bs.collapse"),an="show".concat(sn),cn="shown".concat(sn),ln="hide".concat(sn),fn="hidden".concat(sn),un="click".concat(sn).concat(".data-api"),dn="show",pn="collapse",hn="collapsing",mn=":scope .".concat(pn," .").concat(pn),gn='[data-bs-toggle="collapse"]',vn={parent:null,toggle:!0},bn={parent:"(null|element)",toggle:"boolean"};class yn extends ht{constructor(e,t){super(e,t),this._isTransitioning=!1,this._triggerArray=[];const n=_t.find(gn);for(const e of n){const t=_t.getSelectorFromElement(e),n=_t.find(t).filter((e=>e===this._element));null!==t&&n.length&&this._triggerArray.push(e)}this._initializeChildren(),this._config.parent||this._addAriaAndCollapsedClass(this._triggerArray,this._isShown()),this._config.toggle&&this.toggle()}static get Default(){return vn}static get DefaultType(){return bn}static get NAME(){return"collapse"}toggle(){this._isShown()?this.hide():this.show()}show(){if(this._isTransitioning||this._isShown())return;let e=[];if(this._config.parent&&(e=this._getFirstLevelChildren(".collapse.show, .collapse.collapsing").filter((e=>e!==this._element)).map((e=>yn.getOrCreateInstance(e,{toggle:!1})))),e.length&&e[0]._isTransitioning)return;if(ct.trigger(this._element,an).defaultPrevented)return;for(const t of e)t.hide();const t=this._getDimension();this._element.classList.remove(pn),this._element.classList.add(hn),this._element.style[t]=0,this._addAriaAndCollapsedClass(this._triggerArray,!0),this._isTransitioning=!0;const n=t[0].toUpperCase()+t.slice(1),i="scroll".concat(n);this._queueCallback((()=>{this._isTransitioning=!1,this._element.classList.remove(hn),this._element.classList.add(pn,dn),this._element.style[t]="",ct.trigger(this._element,cn)}),this._element,!0),this._element.style[t]="".concat(this._element[i],"px")}hide(){if(this._isTransitioning||!this._isShown())return;if(ct.trigger(this._element,ln).defaultPrevented)return;const e=this._getDimension();this._element.style[e]="".concat(this._element.getBoundingClientRect()[e],"px"),this._element.offsetHeight,this._element.classList.add(hn),this._element.classList.remove(pn,dn);for(const e of this._triggerArray){const t=_t.getElementFromSelector(e);t&&!this._isShown(t)&&this._addAriaAndCollapsedClass([e],!1)}this._isTransitioning=!0;this._element.style[e]="",this._queueCallback((()=>{this._isTransitioning=!1,this._element.classList.remove(hn),this._element.classList.add(pn),ct.trigger(this._element,fn)}),this._element,!0)}_isShown(){return(arguments.length>0&&void 0!==arguments[0]?arguments[0]:this._element).classList.contains(dn)}_configAfterMerge(e){return e.toggle=Boolean(e.toggle),e.parent=He(e.parent),e}_getDimension(){return this._element.classList.contains("collapse-horizontal")?"width":"height"}_initializeChildren(){if(!this._config.parent)return;const e=this._getFirstLevelChildren(gn);for(const t of e){const e=_t.getElementFromSelector(t);e&&this._addAriaAndCollapsedClass([t],this._isShown(e))}}_getFirstLevelChildren(e){const t=_t.find(mn,this._config.parent);return _t.find(e,this._config.parent).filter((e=>!t.includes(e)))}_addAriaAndCollapsedClass(e,t){if(e.length)for(const n of e)n.classList.toggle("collapsed",!t),n.setAttribute("aria-expanded",t)}static jQueryInterface(e){const t={};return"string"==typeof e&&/show|hide/.test(e)&&(t.toggle=!1),this.each((function(){const n=yn.getOrCreateInstance(this,t);if("string"==typeof e){if(void 0===n[e])throw new TypeError('No method named "'.concat(e,'"'));n[e]()}}))}}ct.on(document,un,gn,(function(e){("A"===e.target.tagName||e.delegateTarget&&"A"===e.delegateTarget.tagName)&&e.preventDefault();for(const e of _t.getMultipleElementsFromSelector(this))yn.getOrCreateInstance(e,{toggle:!1}).toggle()})),Ve(yn);const _n=document.getElementsByClassName("collapse");!function(){const e=document.getElementById("back-to-top");window.addEventListener("scroll",(()=>{window.scrollY>50?e.classList.add("show"):e.classList.remove("show")})),e.addEventListener("click",(()=>{window.scrollTo({top:0})}))}(),[...document.querySelectorAll('[data-bs-toggle="tooltip"]')].map((e=>new Bt(e))),Ft&&Ft.addEventListener("click",(()=>{modeToggle.flipMode()})),document.getElementById("sidebar-trigger").addEventListener("click",zt.toggle),document.getElementById("mask").addEventListener("click",zt.toggle),Rt.addEventListener("click",(()=>{nn.on(),on.on(),Gt.focus()})),Vt.addEventListener("click",(()=>{nn.off(),on.off()})),Gt.addEventListener("focus",(()=>{Kt.classList.add(en)})),Gt.addEventListener("focusout",(()=>{Kt.classList.remove(en)})),Gt.addEventListener("input",(()=>{""===Gt.value?rn()?Xt.classList.remove(Zt):on.off():(on.on(),rn()&&Xt.classList.add(Zt))})),[..._n].forEach((e=>{const t="h_"+e.id.substring(2),n=document.getElementById(t);e.addEventListener("hide.bs.collapse",(()=>{n&&(n.querySelector(".far.fa-folder-open").className="far fa-folder fa-fw",n.querySelector(".fas.fa-angle-down").classList.add("rotate"),n.classList.remove("hide-border-bottom"))})),e.addEventListener("show.bs.collapse",(()=>{n&&(n.querySelector(".far.fa-folder").className="far fa-folder-open fa-fw",n.querySelector(".fas.fa-angle-down").classList.remove("rotate"),n.classList.add("hide-border-bottom"))}))}))}(); diff --git a/_site/assets/js/dist/commons.min.js b/_site/assets/js/dist/commons.min.js deleted file mode 100644 index 499ae3d..0000000 --- a/_site/assets/js/dist/commons.min.js +++ /dev/null @@ -1,4 +0,0 @@ -/*! - * Chirpy v7.0.1 | © 2019 Cotes Chung | MIT Licensed | https://github.com/cotes2020/jekyll-theme-chirpy/ - */ -!function(){"use strict";var e="top",t="bottom",n="right",i="left",o="auto",r=[e,t,n,i],s="start",a="end",c="clippingParents",l="viewport",u="popper",f="reference",d=r.reduce((function(e,t){return e.concat([t+"-"+s,t+"-"+a])}),[]),p=[].concat(r,[o]).reduce((function(e,t){return e.concat([t,t+"-"+s,t+"-"+a])}),[]),h="beforeRead",m="read",g="afterRead",v="beforeMain",b="main",y="afterMain",_="beforeWrite",w="write",E="afterWrite",O=[h,m,g,v,b,y,_,w,E];function x(e){return e?(e.nodeName||"").toLowerCase():null}function A(e){if(null==e)return window;if("[object Window]"!==e.toString()){var t=e.ownerDocument;return t&&t.defaultView||window}return e}function T(e){return e instanceof A(e).Element||e instanceof Element}function C(e){return e instanceof A(e).HTMLElement||e instanceof HTMLElement}function L(e){return"undefined"!=typeof ShadowRoot&&(e instanceof A(e).ShadowRoot||e instanceof ShadowRoot)}var j={name:"applyStyles",enabled:!0,phase:"write",fn:function(e){var t=e.state;Object.keys(t.elements).forEach((function(e){var n=t.styles[e]||{},i=t.attributes[e]||{},o=t.elements[e];C(o)&&x(o)&&(Object.assign(o.style,n),Object.keys(i).forEach((function(e){var t=i[e];!1===t?o.removeAttribute(e):o.setAttribute(e,!0===t?"":t)})))}))},effect:function(e){var t=e.state,n={popper:{position:t.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(t.elements.popper.style,n.popper),t.styles=n,t.elements.arrow&&Object.assign(t.elements.arrow.style,n.arrow),function(){Object.keys(t.elements).forEach((function(e){var i=t.elements[e],o=t.attributes[e]||{},r=Object.keys(t.styles.hasOwnProperty(e)?t.styles[e]:n[e]).reduce((function(e,t){return e[t]="",e}),{});C(i)&&x(i)&&(Object.assign(i.style,r),Object.keys(o).forEach((function(e){i.removeAttribute(e)})))}))}},requires:["computeStyles"]};function D(e){return e.split("-")[0]}var S=Math.max,k=Math.min,P=Math.round;function M(){var e=navigator.userAgentData;return null!=e&&e.brands&&Array.isArray(e.brands)?e.brands.map((function(e){return e.brand+"/"+e.version})).join(" "):navigator.userAgent}function N(){return!/^((?!chrome|android).)*safari/i.test(M())}function B(e,t,n){void 0===t&&(t=!1),void 0===n&&(n=!1);var i=e.getBoundingClientRect(),o=1,r=1;t&&C(e)&&(o=e.offsetWidth>0&&P(i.width)/e.offsetWidth||1,r=e.offsetHeight>0&&P(i.height)/e.offsetHeight||1);var s=(T(e)?A(e):window).visualViewport,a=!N()&&n,c=(i.left+(a&&s?s.offsetLeft:0))/o,l=(i.top+(a&&s?s.offsetTop:0))/r,u=i.width/o,f=i.height/r;return{width:u,height:f,top:l,right:c+u,bottom:l+f,left:c,x:c,y:l}}function H(e){var t=B(e),n=e.offsetWidth,i=e.offsetHeight;return Math.abs(t.width-n)<=1&&(n=t.width),Math.abs(t.height-i)<=1&&(i=t.height),{x:e.offsetLeft,y:e.offsetTop,width:n,height:i}}function F(e,t){var n=t.getRootNode&&t.getRootNode();if(e.contains(t))return!0;if(n&&L(n)){var i=t;do{if(i&&e.isSameNode(i))return!0;i=i.parentNode||i.host}while(i)}return!1}function I(e){return A(e).getComputedStyle(e)}function W(e){return["table","td","th"].indexOf(x(e))>=0}function z(e){return((T(e)?e.ownerDocument:e.document)||window.document).documentElement}function R(e){return"html"===x(e)?e:e.assignedSlot||e.parentNode||(L(e)?e.host:null)||z(e)}function q(e){return C(e)&&"fixed"!==I(e).position?e.offsetParent:null}function V(e){for(var t=A(e),n=q(e);n&&W(n)&&"static"===I(n).position;)n=q(n);return n&&("html"===x(n)||"body"===x(n)&&"static"===I(n).position)?t:n||function(e){var t=/firefox/i.test(M());if(/Trident/i.test(M())&&C(e)&&"fixed"===I(e).position)return null;var n=R(e);for(L(n)&&(n=n.host);C(n)&&["html","body"].indexOf(x(n))<0;){var i=I(n);if("none"!==i.transform||"none"!==i.perspective||"paint"===i.contain||-1!==["transform","perspective"].indexOf(i.willChange)||t&&"filter"===i.willChange||t&&i.filter&&"none"!==i.filter)return n;n=n.parentNode}return null}(e)||t}function Y(e){return["top","bottom"].indexOf(e)>=0?"x":"y"}function K(e,t,n){return S(e,k(t,n))}function U(e){return Object.assign({},{top:0,right:0,bottom:0,left:0},e)}function Q(e,t){return t.reduce((function(t,n){return t[n]=e,t}),{})}var $={name:"arrow",enabled:!0,phase:"main",fn:function(o){var s,a=o.state,c=o.name,l=o.options,u=a.elements.arrow,f=a.modifiersData.popperOffsets,d=D(a.placement),p=Y(d),h=[i,n].indexOf(d)>=0?"height":"width";if(u&&f){var m=function(e,t){return U("number"!=typeof(e="function"==typeof e?e(Object.assign({},t.rects,{placement:t.placement})):e)?e:Q(e,r))}(l.padding,a),g=H(u),v="y"===p?e:i,b="y"===p?t:n,y=a.rects.reference[h]+a.rects.reference[p]-f[p]-a.rects.popper[h],_=f[p]-a.rects.reference[p],w=V(u),E=w?"y"===p?w.clientHeight||0:w.clientWidth||0:0,O=y/2-_/2,x=m[v],A=E-g[h]-m[b],T=E/2-g[h]/2+O,C=K(x,T,A),L=p;a.modifiersData[c]=((s={})[L]=C,s.centerOffset=C-T,s)}},effect:function(e){var t=e.state,n=e.options.element,i=void 0===n?"[data-popper-arrow]":n;null!=i&&("string"!=typeof i||(i=t.elements.popper.querySelector(i)))&&F(t.elements.popper,i)&&(t.elements.arrow=i)},requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function G(e){return e.split("-")[1]}var X={top:"auto",right:"auto",bottom:"auto",left:"auto"};function J(o){var r,s=o.popper,c=o.popperRect,l=o.placement,u=o.variation,f=o.offsets,d=o.position,p=o.gpuAcceleration,h=o.adaptive,m=o.roundOffsets,g=o.isFixed,v=f.x,b=void 0===v?0:v,y=f.y,_=void 0===y?0:y,w="function"==typeof m?m({x:b,y:_}):{x:b,y:_};b=w.x,_=w.y;var E=f.hasOwnProperty("x"),O=f.hasOwnProperty("y"),x=i,T=e,C=window;if(h){var L=V(s),j="clientHeight",D="clientWidth";if(L===A(s)&&"static"!==I(L=z(s)).position&&"absolute"===d&&(j="scrollHeight",D="scrollWidth"),l===e||(l===i||l===n)&&u===a)T=t,_-=(g&&L===C&&C.visualViewport?C.visualViewport.height:L[j])-c.height,_*=p?1:-1;if(l===i||(l===e||l===t)&&u===a)x=n,b-=(g&&L===C&&C.visualViewport?C.visualViewport.width:L[D])-c.width,b*=p?1:-1}var S,k=Object.assign({position:d},h&&X),M=!0===m?function(e,t){var n=e.x,i=e.y,o=t.devicePixelRatio||1;return{x:P(n*o)/o||0,y:P(i*o)/o||0}}({x:b,y:_},A(s)):{x:b,y:_};return b=M.x,_=M.y,p?Object.assign({},k,((S={})[T]=O?"0":"",S[x]=E?"0":"",S.transform=(C.devicePixelRatio||1)<=1?"translate("+b+"px, "+_+"px)":"translate3d("+b+"px, "+_+"px, 0)",S)):Object.assign({},k,((r={})[T]=O?_+"px":"",r[x]=E?b+"px":"",r.transform="",r))}var Z={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:function(e){var t=e.state,n=e.options,i=n.gpuAcceleration,o=void 0===i||i,r=n.adaptive,s=void 0===r||r,a=n.roundOffsets,c=void 0===a||a,l={placement:D(t.placement),variation:G(t.placement),popper:t.elements.popper,popperRect:t.rects.popper,gpuAcceleration:o,isFixed:"fixed"===t.options.strategy};null!=t.modifiersData.popperOffsets&&(t.styles.popper=Object.assign({},t.styles.popper,J(Object.assign({},l,{offsets:t.modifiersData.popperOffsets,position:t.options.strategy,adaptive:s,roundOffsets:c})))),null!=t.modifiersData.arrow&&(t.styles.arrow=Object.assign({},t.styles.arrow,J(Object.assign({},l,{offsets:t.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:c})))),t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-placement":t.placement})},data:{}},ee={passive:!0};var te={name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:function(e){var t=e.state,n=e.instance,i=e.options,o=i.scroll,r=void 0===o||o,s=i.resize,a=void 0===s||s,c=A(t.elements.popper),l=[].concat(t.scrollParents.reference,t.scrollParents.popper);return r&&l.forEach((function(e){e.addEventListener("scroll",n.update,ee)})),a&&c.addEventListener("resize",n.update,ee),function(){r&&l.forEach((function(e){e.removeEventListener("scroll",n.update,ee)})),a&&c.removeEventListener("resize",n.update,ee)}},data:{}},ne={left:"right",right:"left",bottom:"top",top:"bottom"};function ie(e){return e.replace(/left|right|bottom|top/g,(function(e){return ne[e]}))}var oe={start:"end",end:"start"};function re(e){return e.replace(/start|end/g,(function(e){return oe[e]}))}function se(e){var t=A(e);return{scrollLeft:t.pageXOffset,scrollTop:t.pageYOffset}}function ae(e){return B(z(e)).left+se(e).scrollLeft}function ce(e){var t=I(e),n=t.overflow,i=t.overflowX,o=t.overflowY;return/auto|scroll|overlay|hidden/.test(n+o+i)}function le(e){return["html","body","#document"].indexOf(x(e))>=0?e.ownerDocument.body:C(e)&&ce(e)?e:le(R(e))}function ue(e,t){var n;void 0===t&&(t=[]);var i=le(e),o=i===(null==(n=e.ownerDocument)?void 0:n.body),r=A(i),s=o?[r].concat(r.visualViewport||[],ce(i)?i:[]):i,a=t.concat(s);return o?a:a.concat(ue(R(s)))}function fe(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}function de(e,t,n){return t===l?fe(function(e,t){var n=A(e),i=z(e),o=n.visualViewport,r=i.clientWidth,s=i.clientHeight,a=0,c=0;if(o){r=o.width,s=o.height;var l=N();(l||!l&&"fixed"===t)&&(a=o.offsetLeft,c=o.offsetTop)}return{width:r,height:s,x:a+ae(e),y:c}}(e,n)):T(t)?function(e,t){var n=B(e,!1,"fixed"===t);return n.top=n.top+e.clientTop,n.left=n.left+e.clientLeft,n.bottom=n.top+e.clientHeight,n.right=n.left+e.clientWidth,n.width=e.clientWidth,n.height=e.clientHeight,n.x=n.left,n.y=n.top,n}(t,n):fe(function(e){var t,n=z(e),i=se(e),o=null==(t=e.ownerDocument)?void 0:t.body,r=S(n.scrollWidth,n.clientWidth,o?o.scrollWidth:0,o?o.clientWidth:0),s=S(n.scrollHeight,n.clientHeight,o?o.scrollHeight:0,o?o.clientHeight:0),a=-i.scrollLeft+ae(e),c=-i.scrollTop;return"rtl"===I(o||n).direction&&(a+=S(n.clientWidth,o?o.clientWidth:0)-r),{width:r,height:s,x:a,y:c}}(z(e)))}function pe(e,t,n,i){var o="clippingParents"===t?function(e){var t=ue(R(e)),n=["absolute","fixed"].indexOf(I(e).position)>=0&&C(e)?V(e):e;return T(n)?t.filter((function(e){return T(e)&&F(e,n)&&"body"!==x(e)})):[]}(e):[].concat(t),r=[].concat(o,[n]),s=r[0],a=r.reduce((function(t,n){var o=de(e,n,i);return t.top=S(o.top,t.top),t.right=k(o.right,t.right),t.bottom=k(o.bottom,t.bottom),t.left=S(o.left,t.left),t}),de(e,s,i));return a.width=a.right-a.left,a.height=a.bottom-a.top,a.x=a.left,a.y=a.top,a}function he(o){var r,c=o.reference,l=o.element,u=o.placement,f=u?D(u):null,d=u?G(u):null,p=c.x+c.width/2-l.width/2,h=c.y+c.height/2-l.height/2;switch(f){case e:r={x:p,y:c.y-l.height};break;case t:r={x:p,y:c.y+c.height};break;case n:r={x:c.x+c.width,y:h};break;case i:r={x:c.x-l.width,y:h};break;default:r={x:c.x,y:c.y}}var m=f?Y(f):null;if(null!=m){var g="y"===m?"height":"width";switch(d){case s:r[m]=r[m]-(c[g]/2-l[g]/2);break;case a:r[m]=r[m]+(c[g]/2-l[g]/2)}}return r}function me(i,o){void 0===o&&(o={});var s=o,a=s.placement,d=void 0===a?i.placement:a,p=s.strategy,h=void 0===p?i.strategy:p,m=s.boundary,g=void 0===m?c:m,v=s.rootBoundary,b=void 0===v?l:v,y=s.elementContext,_=void 0===y?u:y,w=s.altBoundary,E=void 0!==w&&w,O=s.padding,x=void 0===O?0:O,A=U("number"!=typeof x?x:Q(x,r)),C=_===u?f:u,L=i.rects.popper,j=i.elements[E?C:_],D=pe(T(j)?j:j.contextElement||z(i.elements.popper),g,b,h),S=B(i.elements.reference),k=he({reference:S,element:L,strategy:"absolute",placement:d}),P=fe(Object.assign({},L,k)),M=_===u?P:S,N={top:D.top-M.top+A.top,bottom:M.bottom-D.bottom+A.bottom,left:D.left-M.left+A.left,right:M.right-D.right+A.right},H=i.modifiersData.offset;if(_===u&&H){var F=H[d];Object.keys(N).forEach((function(i){var o=[n,t].indexOf(i)>=0?1:-1,r=[e,t].indexOf(i)>=0?"y":"x";N[i]+=F[r]*o}))}return N}function ge(e,t){void 0===t&&(t={});var n=t,i=n.placement,o=n.boundary,s=n.rootBoundary,a=n.padding,c=n.flipVariations,l=n.allowedAutoPlacements,u=void 0===l?p:l,f=G(i),h=f?c?d:d.filter((function(e){return G(e)===f})):r,m=h.filter((function(e){return u.indexOf(e)>=0}));0===m.length&&(m=h);var g=m.reduce((function(t,n){return t[n]=me(e,{placement:n,boundary:o,rootBoundary:s,padding:a})[D(n)],t}),{});return Object.keys(g).sort((function(e,t){return g[e]-g[t]}))}var ve={name:"flip",enabled:!0,phase:"main",fn:function(r){var a=r.state,c=r.options,l=r.name;if(!a.modifiersData[l]._skip){for(var u=c.mainAxis,f=void 0===u||u,d=c.altAxis,p=void 0===d||d,h=c.fallbackPlacements,m=c.padding,g=c.boundary,v=c.rootBoundary,b=c.altBoundary,y=c.flipVariations,_=void 0===y||y,w=c.allowedAutoPlacements,E=a.options.placement,O=D(E),x=h||(O===E||!_?[ie(E)]:function(e){if(D(e)===o)return[];var t=ie(e);return[re(e),t,re(t)]}(E)),A=[E].concat(x).reduce((function(e,t){return e.concat(D(t)===o?ge(a,{placement:t,boundary:g,rootBoundary:v,padding:m,flipVariations:_,allowedAutoPlacements:w}):t)}),[]),T=a.rects.reference,C=a.rects.popper,L=new Map,j=!0,S=A[0],k=0;k=0,H=B?"width":"height",F=me(a,{placement:P,boundary:g,rootBoundary:v,altBoundary:b,padding:m}),I=B?N?n:i:N?t:e;T[H]>C[H]&&(I=ie(I));var W=ie(I),z=[];if(f&&z.push(F[M]<=0),p&&z.push(F[I]<=0,F[W]<=0),z.every((function(e){return e}))){S=P,j=!1;break}L.set(P,z)}if(j)for(var R=function(e){var t=A.find((function(t){var n=L.get(t);if(n)return n.slice(0,e).every((function(e){return e}))}));if(t)return S=t,"break"},q=_?3:1;q>0;q--){if("break"===R(q))break}a.placement!==S&&(a.modifiersData[l]._skip=!0,a.placement=S,a.reset=!0)}},requiresIfExists:["offset"],data:{_skip:!1}};function be(e,t,n){return void 0===n&&(n={x:0,y:0}),{top:e.top-t.height-n.y,right:e.right-t.width+n.x,bottom:e.bottom-t.height+n.y,left:e.left-t.width-n.x}}function ye(o){return[e,n,t,i].some((function(e){return o[e]>=0}))}var _e={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:function(e){var t=e.state,n=e.name,i=t.rects.reference,o=t.rects.popper,r=t.modifiersData.preventOverflow,s=me(t,{elementContext:"reference"}),a=me(t,{altBoundary:!0}),c=be(s,i),l=be(a,o,r),u=ye(c),f=ye(l);t.modifiersData[n]={referenceClippingOffsets:c,popperEscapeOffsets:l,isReferenceHidden:u,hasPopperEscaped:f},t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-reference-hidden":u,"data-popper-escaped":f})}};var we={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:function(t){var o=t.state,r=t.options,s=t.name,a=r.offset,c=void 0===a?[0,0]:a,l=p.reduce((function(t,r){return t[r]=function(t,o,r){var s=D(t),a=[i,e].indexOf(s)>=0?-1:1,c="function"==typeof r?r(Object.assign({},o,{placement:t})):r,l=c[0],u=c[1];return l=l||0,u=(u||0)*a,[i,n].indexOf(s)>=0?{x:u,y:l}:{x:l,y:u}}(r,o.rects,c),t}),{}),u=l[o.placement],f=u.x,d=u.y;null!=o.modifiersData.popperOffsets&&(o.modifiersData.popperOffsets.x+=f,o.modifiersData.popperOffsets.y+=d),o.modifiersData[s]=l}};var Ee={name:"popperOffsets",enabled:!0,phase:"read",fn:function(e){var t=e.state,n=e.name;t.modifiersData[n]=he({reference:t.rects.reference,element:t.rects.popper,strategy:"absolute",placement:t.placement})},data:{}};var Oe={name:"preventOverflow",enabled:!0,phase:"main",fn:function(o){var r=o.state,a=o.options,c=o.name,l=a.mainAxis,u=void 0===l||l,f=a.altAxis,d=void 0!==f&&f,p=a.boundary,h=a.rootBoundary,m=a.altBoundary,g=a.padding,v=a.tether,b=void 0===v||v,y=a.tetherOffset,_=void 0===y?0:y,w=me(r,{boundary:p,rootBoundary:h,padding:g,altBoundary:m}),E=D(r.placement),O=G(r.placement),x=!O,A=Y(E),T="x"===A?"y":"x",C=r.modifiersData.popperOffsets,L=r.rects.reference,j=r.rects.popper,P="function"==typeof _?_(Object.assign({},r.rects,{placement:r.placement})):_,M="number"==typeof P?{mainAxis:P,altAxis:P}:Object.assign({mainAxis:0,altAxis:0},P),N=r.modifiersData.offset?r.modifiersData.offset[r.placement]:null,B={x:0,y:0};if(C){if(u){var F,I="y"===A?e:i,W="y"===A?t:n,z="y"===A?"height":"width",R=C[A],q=R+w[I],U=R-w[W],Q=b?-j[z]/2:0,$=O===s?L[z]:j[z],X=O===s?-j[z]:-L[z],J=r.elements.arrow,Z=b&&J?H(J):{width:0,height:0},ee=r.modifiersData["arrow#persistent"]?r.modifiersData["arrow#persistent"].padding:{top:0,right:0,bottom:0,left:0},te=ee[I],ne=ee[W],ie=K(0,L[z],Z[z]),oe=x?L[z]/2-Q-ie-te-M.mainAxis:$-ie-te-M.mainAxis,re=x?-L[z]/2+Q+ie+ne+M.mainAxis:X+ie+ne+M.mainAxis,se=r.elements.arrow&&V(r.elements.arrow),ae=se?"y"===A?se.clientTop||0:se.clientLeft||0:0,ce=null!=(F=null==N?void 0:N[A])?F:0,le=R+re-ce,ue=K(b?k(q,R+oe-ce-ae):q,R,b?S(U,le):U);C[A]=ue,B[A]=ue-R}if(d){var fe,de="x"===A?e:i,pe="x"===A?t:n,he=C[T],ge="y"===T?"height":"width",ve=he+w[de],be=he-w[pe],ye=-1!==[e,i].indexOf(E),_e=null!=(fe=null==N?void 0:N[T])?fe:0,we=ye?ve:he-L[ge]-j[ge]-_e+M.altAxis,Ee=ye?he+L[ge]+j[ge]-_e-M.altAxis:be,Oe=b&&ye?function(e,t,n){var i=K(e,t,n);return i>n?n:i}(we,he,Ee):K(b?we:ve,he,b?Ee:be);C[T]=Oe,B[T]=Oe-he}r.modifiersData[c]=B}},requiresIfExists:["offset"]};function xe(e,t,n){void 0===n&&(n=!1);var i,o,r=C(t),s=C(t)&&function(e){var t=e.getBoundingClientRect(),n=P(t.width)/e.offsetWidth||1,i=P(t.height)/e.offsetHeight||1;return 1!==n||1!==i}(t),a=z(t),c=B(e,s,n),l={scrollLeft:0,scrollTop:0},u={x:0,y:0};return(r||!r&&!n)&&(("body"!==x(t)||ce(a))&&(l=(i=t)!==A(i)&&C(i)?{scrollLeft:(o=i).scrollLeft,scrollTop:o.scrollTop}:se(i)),C(t)?((u=B(t,!0)).x+=t.clientLeft,u.y+=t.clientTop):a&&(u.x=ae(a))),{x:c.left+l.scrollLeft-u.x,y:c.top+l.scrollTop-u.y,width:c.width,height:c.height}}function Ae(e){var t=new Map,n=new Set,i=[];function o(e){n.add(e.name),[].concat(e.requires||[],e.requiresIfExists||[]).forEach((function(e){if(!n.has(e)){var i=t.get(e);i&&o(i)}})),i.push(e)}return e.forEach((function(e){t.set(e.name,e)})),e.forEach((function(e){n.has(e.name)||o(e)})),i}var Te={placement:"bottom",modifiers:[],strategy:"absolute"};function Ce(){for(var e=arguments.length,t=new Array(e),n=0;nPe.has(e)&&Pe.get(e).get(t)||null,remove(e,t){if(!Pe.has(e))return;const n=Pe.get(e);n.delete(t),0===n.size&&Pe.delete(e)}};const Ne="transitionend",Be=e=>(e&&window.CSS&&window.CSS.escape&&(e=e.replace(/#([^\s"#']+)/g,((e,t)=>"#".concat(CSS.escape(t))))),e),He=e=>!(!e||"object"!=typeof e)&&(void 0!==e.jquery&&(e=e[0]),void 0!==e.nodeType),Fe=e=>He(e)?e.jquery?e[0]:e:"string"==typeof e&&e.length>0?document.querySelector(Be(e)):null,Ie=e=>{if(!document.documentElement.attachShadow)return null;if("function"==typeof e.getRootNode){const t=e.getRootNode();return t instanceof ShadowRoot?t:null}return e instanceof ShadowRoot?e:e.parentNode?Ie(e.parentNode):null},We=()=>{},ze=()=>window.jQuery&&!document.body.hasAttribute("data-bs-no-jquery")?window.jQuery:null,Re=[],qe=()=>"rtl"===document.documentElement.dir,Ve=function(e){let t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:e;return"function"==typeof e?e(...arguments.length>1&&void 0!==arguments[1]?arguments[1]:[]):t},Ye=function(e,t){if(!(!(arguments.length>2&&void 0!==arguments[2])||arguments[2]))return void Ve(e);const n=(e=>{if(!e)return 0;let{transitionDuration:t,transitionDelay:n}=window.getComputedStyle(e);const i=Number.parseFloat(t),o=Number.parseFloat(n);return i||o?(t=t.split(",")[0],n=n.split(",")[0],1e3*(Number.parseFloat(t)+Number.parseFloat(n))):0})(t)+5;let i=!1;const o=n=>{let{target:r}=n;r===t&&(i=!0,t.removeEventListener(Ne,o),Ve(e))};t.addEventListener(Ne,o),setTimeout((()=>{i||t.dispatchEvent(new Event(Ne))}),n)},Ke=/[^.]*(?=\..*)\.|.*/,Ue=/\..*/,Qe=/::\d+$/,$e={};let Ge=1;const Xe={mouseenter:"mouseover",mouseleave:"mouseout"},Je=new Set(["click","dblclick","mouseup","mousedown","contextmenu","mousewheel","DOMMouseScroll","mouseover","mouseout","mousemove","selectstart","selectend","keydown","keypress","keyup","orientationchange","touchstart","touchmove","touchend","touchcancel","pointerdown","pointermove","pointerup","pointerleave","pointercancel","gesturestart","gesturechange","gestureend","focus","blur","change","reset","select","submit","focusin","focusout","load","unload","beforeunload","resize","move","DOMContentLoaded","readystatechange","error","abort","scroll"]);function Ze(e,t){return t&&"".concat(t,"::").concat(Ge++)||e.uidEvent||Ge++}function et(e){const t=Ze(e);return e.uidEvent=t,$e[t]=$e[t]||{},$e[t]}function tt(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;return Object.values(e).find((e=>e.callable===t&&e.delegationSelector===n))}function nt(e,t,n){const i="string"==typeof t,o=i?n:t||n;let r=st(e);return Je.has(r)||(r=e),[i,o,r]}function it(e,t,n,i,o){if("string"!=typeof t||!e)return;let[r,s,a]=nt(t,n,i);if(t in Xe){const e=e=>function(t){if(!t.relatedTarget||t.relatedTarget!==t.delegateTarget&&!t.delegateTarget.contains(t.relatedTarget))return e.call(this,t)};s=e(s)}const c=et(e),l=c[a]||(c[a]={}),u=tt(l,s,r?n:null);if(u)return void(u.oneOff=u.oneOff&&o);const f=Ze(s,t.replace(Ke,"")),d=r?function(e,t,n){return function i(o){const r=e.querySelectorAll(t);for(let{target:s}=o;s&&s!==this;s=s.parentNode)for(const a of r)if(a===s)return ct(o,{delegateTarget:s}),i.oneOff&&at.off(e,o.type,t,n),n.apply(s,[o])}}(e,n,s):function(e,t){return function n(i){return ct(i,{delegateTarget:e}),n.oneOff&&at.off(e,i.type,t),t.apply(e,[i])}}(e,s);d.delegationSelector=r?n:null,d.callable=s,d.oneOff=o,d.uidEvent=f,l[f]=d,e.addEventListener(a,d,r)}function ot(e,t,n,i,o){const r=tt(t[n],i,o);r&&(e.removeEventListener(n,r,Boolean(o)),delete t[n][r.uidEvent])}function rt(e,t,n,i){const o=t[n]||{};for(const[r,s]of Object.entries(o))r.includes(i)&&ot(e,t,n,s.callable,s.delegationSelector)}function st(e){return e=e.replace(Ue,""),Xe[e]||e}const at={on(e,t,n,i){it(e,t,n,i,!1)},one(e,t,n,i){it(e,t,n,i,!0)},off(e,t,n,i){if("string"!=typeof t||!e)return;const[o,r,s]=nt(t,n,i),a=s!==t,c=et(e),l=c[s]||{},u=t.startsWith(".");if(void 0===r){if(u)for(const n of Object.keys(c))rt(e,c,n,t.slice(1));for(const[n,i]of Object.entries(l)){const o=n.replace(Qe,"");a&&!t.includes(o)||ot(e,c,s,i.callable,i.delegationSelector)}}else{if(!Object.keys(l).length)return;ot(e,c,s,r,o?n:null)}},trigger(e,t,n){if("string"!=typeof t||!e)return null;const i=ze();let o=null,r=!0,s=!0,a=!1;t!==st(t)&&i&&(o=i.Event(t,n),i(e).trigger(o),r=!o.isPropagationStopped(),s=!o.isImmediatePropagationStopped(),a=o.isDefaultPrevented());const c=ct(new Event(t,{bubbles:r,cancelable:!0}),n);return a&&c.preventDefault(),s&&e.dispatchEvent(c),c.defaultPrevented&&o&&o.preventDefault(),c}};function ct(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};for(const[n,i]of Object.entries(t))try{e[n]=i}catch{Object.defineProperty(e,n,{configurable:!0,get:()=>i})}return e}function lt(e){if("true"===e)return!0;if("false"===e)return!1;if(e===Number(e).toString())return Number(e);if(""===e||"null"===e)return null;if("string"!=typeof e)return e;try{return JSON.parse(decodeURIComponent(e))}catch{return e}}function ut(e){return e.replace(/[A-Z]/g,(e=>"-".concat(e.toLowerCase())))}const ft={setDataAttribute(e,t,n){e.setAttribute("data-bs-".concat(ut(t)),n)},removeDataAttribute(e,t){e.removeAttribute("data-bs-".concat(ut(t)))},getDataAttributes(e){if(!e)return{};const t={},n=Object.keys(e.dataset).filter((e=>e.startsWith("bs")&&!e.startsWith("bsConfig")));for(const i of n){let n=i.replace(/^bs/,"");n=n.charAt(0).toLowerCase()+n.slice(1,n.length),t[n]=lt(e.dataset[i])}return t},getDataAttribute:(e,t)=>lt(e.getAttribute("data-bs-".concat(ut(t))))};class dt{static get Default(){return{}}static get DefaultType(){return{}}static get NAME(){throw new Error('You have to implement the static method "NAME", for each component!')}_getConfig(e){return e=this._mergeConfigObj(e),e=this._configAfterMerge(e),this._typeCheckConfig(e),e}_configAfterMerge(e){return e}_mergeConfigObj(e,t){const n=He(t)?ft.getDataAttribute(t,"config"):{};return{...this.constructor.Default,..."object"==typeof n?n:{},...He(t)?ft.getDataAttributes(t):{},..."object"==typeof e?e:{}}}_typeCheckConfig(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.constructor.DefaultType;for(const[i,o]of Object.entries(t)){const t=e[i],r=He(t)?"element":null==(n=t)?"".concat(n):Object.prototype.toString.call(n).match(/\s([a-z]+)/i)[1].toLowerCase();if(!new RegExp(o).test(r))throw new TypeError("".concat(this.constructor.NAME.toUpperCase(),': Option "').concat(i,'" provided type "').concat(r,'" but expected type "').concat(o,'".'))}var n}}class pt extends dt{constructor(e,t){super(),(e=Fe(e))&&(this._element=e,this._config=this._getConfig(t),Me.set(this._element,this.constructor.DATA_KEY,this))}dispose(){Me.remove(this._element,this.constructor.DATA_KEY),at.off(this._element,this.constructor.EVENT_KEY);for(const e of Object.getOwnPropertyNames(this))this[e]=null}_queueCallback(e,t){Ye(e,t,!(arguments.length>2&&void 0!==arguments[2])||arguments[2])}_getConfig(e){return e=this._mergeConfigObj(e,this._element),e=this._configAfterMerge(e),this._typeCheckConfig(e),e}static getInstance(e){return Me.get(Fe(e),this.DATA_KEY)}static getOrCreateInstance(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.getInstance(e)||new this(e,"object"==typeof t?t:null)}static get VERSION(){return"5.3.3"}static get DATA_KEY(){return"bs.".concat(this.NAME)}static get EVENT_KEY(){return".".concat(this.DATA_KEY)}static eventName(e){return"".concat(e).concat(this.EVENT_KEY)}}const ht={"*":["class","dir","id","lang","role",/^aria-[\w-]*$/i],a:["target","href","title","rel"],area:[],b:[],br:[],col:[],code:[],dd:[],div:[],dl:[],dt:[],em:[],hr:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],i:[],img:["src","srcset","alt","title","width","height"],li:[],ol:[],p:[],pre:[],s:[],small:[],span:[],sub:[],sup:[],strong:[],u:[],ul:[]},mt=new Set(["background","cite","href","itemtype","longdesc","poster","src","xlink:href"]),gt=/^(?!javascript:)(?:[a-z0-9+.-]+:|[^&:/?#]*(?:[/?#]|$))/i,vt=(e,t)=>{const n=e.nodeName.toLowerCase();return t.includes(n)?!mt.has(n)||Boolean(gt.test(e.nodeValue)):t.filter((e=>e instanceof RegExp)).some((e=>e.test(n)))};const bt=e=>{let t=e.getAttribute("data-bs-target");if(!t||"#"===t){let n=e.getAttribute("href");if(!n||!n.includes("#")&&!n.startsWith("."))return null;n.includes("#")&&!n.startsWith("#")&&(n="#".concat(n.split("#")[1])),t=n&&"#"!==n?n.trim():null}return t?t.split(",").map((e=>Be(e))).join(","):null},yt={find(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:document.documentElement;return[].concat(...Element.prototype.querySelectorAll.call(t,e))},findOne(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:document.documentElement;return Element.prototype.querySelector.call(t,e)},children:(e,t)=>[].concat(...e.children).filter((e=>e.matches(t))),parents(e,t){const n=[];let i=e.parentNode.closest(t);for(;i;)n.push(i),i=i.parentNode.closest(t);return n},prev(e,t){let n=e.previousElementSibling;for(;n;){if(n.matches(t))return[n];n=n.previousElementSibling}return[]},next(e,t){let n=e.nextElementSibling;for(;n;){if(n.matches(t))return[n];n=n.nextElementSibling}return[]},focusableChildren(e){const t=["a","button","input","textarea","select","details","[tabindex]",'[contenteditable="true"]'].map((e=>"".concat(e,':not([tabindex^="-"])'))).join(",");return this.find(t,e).filter((e=>!(e=>!e||e.nodeType!==Node.ELEMENT_NODE||!!e.classList.contains("disabled")||(void 0!==e.disabled?e.disabled:e.hasAttribute("disabled")&&"false"!==e.getAttribute("disabled")))(e)&&(e=>{if(!He(e)||0===e.getClientRects().length)return!1;const t="visible"===getComputedStyle(e).getPropertyValue("visibility"),n=e.closest("details:not([open])");if(!n)return t;if(n!==e){const t=e.closest("summary");if(t&&t.parentNode!==n)return!1;if(null===t)return!1}return t})(e)))},getSelectorFromElement(e){const t=bt(e);return t&&yt.findOne(t)?t:null},getElementFromSelector(e){const t=bt(e);return t?yt.findOne(t):null},getMultipleElementsFromSelector(e){const t=bt(e);return t?yt.find(t):[]}},_t={allowList:ht,content:{},extraClass:"",html:!1,sanitize:!0,sanitizeFn:null,template:"
"},wt={allowList:"object",content:"object",extraClass:"(string|function)",html:"boolean",sanitize:"boolean",sanitizeFn:"(null|function)",template:"string"},Et={entry:"(string|element|function|null)",selector:"(string|element)"};class Ot extends dt{constructor(e){super(),this._config=this._getConfig(e)}static get Default(){return _t}static get DefaultType(){return wt}static get NAME(){return"TemplateFactory"}getContent(){return Object.values(this._config.content).map((e=>this._resolvePossibleFunction(e))).filter(Boolean)}hasContent(){return this.getContent().length>0}changeContent(e){return this._checkContent(e),this._config.content={...this._config.content,...e},this}toHtml(){const e=document.createElement("div");e.innerHTML=this._maybeSanitize(this._config.template);for(const[t,n]of Object.entries(this._config.content))this._setContent(e,n,t);const t=e.children[0],n=this._resolvePossibleFunction(this._config.extraClass);return n&&t.classList.add(...n.split(" ")),t}_typeCheckConfig(e){super._typeCheckConfig(e),this._checkContent(e.content)}_checkContent(e){for(const[t,n]of Object.entries(e))super._typeCheckConfig({selector:t,entry:n},Et)}_setContent(e,t,n){const i=yt.findOne(n,e);i&&((t=this._resolvePossibleFunction(t))?He(t)?this._putElementInTemplate(Fe(t),i):this._config.html?i.innerHTML=this._maybeSanitize(t):i.textContent=t:i.remove())}_maybeSanitize(e){return this._config.sanitize?function(e,t,n){if(!e.length)return e;if(n&&"function"==typeof n)return n(e);const i=(new window.DOMParser).parseFromString(e,"text/html"),o=[].concat(...i.body.querySelectorAll("*"));for(const e of o){const n=e.nodeName.toLowerCase();if(!Object.keys(t).includes(n)){e.remove();continue}const i=[].concat(...e.attributes),o=[].concat(t["*"]||[],t[n]||[]);for(const t of i)vt(t,o)||e.removeAttribute(t.nodeName)}return i.body.innerHTML}(e,this._config.allowList,this._config.sanitizeFn):e}_resolvePossibleFunction(e){return Ve(e,[this])}_putElementInTemplate(e,t){if(this._config.html)return t.innerHTML="",void t.append(e);t.textContent=e.textContent}}const xt=new Set(["sanitize","allowList","sanitizeFn"]),At="fade",Tt="show",Ct=".tooltip-inner",Lt=".".concat("modal"),jt="hide.bs.modal",Dt="hover",St="focus",kt={AUTO:"auto",TOP:"top",RIGHT:qe()?"left":"right",BOTTOM:"bottom",LEFT:qe()?"right":"left"},Pt={allowList:ht,animation:!0,boundary:"clippingParents",container:!1,customClass:"",delay:0,fallbackPlacements:["top","right","bottom","left"],html:!1,offset:[0,6],placement:"top",popperConfig:null,sanitize:!0,sanitizeFn:null,selector:!1,template:'',title:"",trigger:"hover focus"},Mt={allowList:"object",animation:"boolean",boundary:"(string|element)",container:"(string|element|boolean)",customClass:"(string|function)",delay:"(number|object)",fallbackPlacements:"array",html:"boolean",offset:"(array|string|function)",placement:"(string|function)",popperConfig:"(null|object|function)",sanitize:"boolean",sanitizeFn:"(null|function)",selector:"(string|boolean)",template:"string",title:"(string|element|function)",trigger:"string"};class Nt extends pt{constructor(e,t){if(void 0===ke)throw new TypeError("Bootstrap's tooltips require Popper (https://popper.js.org)");super(e,t),this._isEnabled=!0,this._timeout=0,this._isHovered=null,this._activeTrigger={},this._popper=null,this._templateFactory=null,this._newContent=null,this.tip=null,this._setListeners(),this._config.selector||this._fixTitle()}static get Default(){return Pt}static get DefaultType(){return Mt}static get NAME(){return"tooltip"}enable(){this._isEnabled=!0}disable(){this._isEnabled=!1}toggleEnabled(){this._isEnabled=!this._isEnabled}toggle(){this._isEnabled&&(this._activeTrigger.click=!this._activeTrigger.click,this._isShown()?this._leave():this._enter())}dispose(){clearTimeout(this._timeout),at.off(this._element.closest(Lt),jt,this._hideModalHandler),this._element.getAttribute("data-bs-original-title")&&this._element.setAttribute("title",this._element.getAttribute("data-bs-original-title")),this._disposePopper(),super.dispose()}show(){if("none"===this._element.style.display)throw new Error("Please use show on visible elements");if(!this._isWithContent()||!this._isEnabled)return;const e=at.trigger(this._element,this.constructor.eventName("show")),t=(Ie(this._element)||this._element.ownerDocument.documentElement).contains(this._element);if(e.defaultPrevented||!t)return;this._disposePopper();const n=this._getTipElement();this._element.setAttribute("aria-describedby",n.getAttribute("id"));const{container:i}=this._config;if(this._element.ownerDocument.documentElement.contains(this.tip)||(i.append(n),at.trigger(this._element,this.constructor.eventName("inserted"))),this._popper=this._createPopper(n),n.classList.add(Tt),"ontouchstart"in document.documentElement)for(const e of[].concat(...document.body.children))at.on(e,"mouseover",We);this._queueCallback((()=>{at.trigger(this._element,this.constructor.eventName("shown")),!1===this._isHovered&&this._leave(),this._isHovered=!1}),this.tip,this._isAnimated())}hide(){if(!this._isShown())return;if(at.trigger(this._element,this.constructor.eventName("hide")).defaultPrevented)return;if(this._getTipElement().classList.remove(Tt),"ontouchstart"in document.documentElement)for(const e of[].concat(...document.body.children))at.off(e,"mouseover",We);this._activeTrigger.click=!1,this._activeTrigger[St]=!1,this._activeTrigger[Dt]=!1,this._isHovered=null;this._queueCallback((()=>{this._isWithActiveTrigger()||(this._isHovered||this._disposePopper(),this._element.removeAttribute("aria-describedby"),at.trigger(this._element,this.constructor.eventName("hidden")))}),this.tip,this._isAnimated())}update(){this._popper&&this._popper.update()}_isWithContent(){return Boolean(this._getTitle())}_getTipElement(){return this.tip||(this.tip=this._createTipElement(this._newContent||this._getContentForTemplate())),this.tip}_createTipElement(e){const t=this._getTemplateFactory(e).toHtml();if(!t)return null;t.classList.remove(At,Tt),t.classList.add("bs-".concat(this.constructor.NAME,"-auto"));const n=(e=>{do{e+=Math.floor(1e6*Math.random())}while(document.getElementById(e));return e})(this.constructor.NAME).toString();return t.setAttribute("id",n),this._isAnimated()&&t.classList.add(At),t}setContent(e){this._newContent=e,this._isShown()&&(this._disposePopper(),this.show())}_getTemplateFactory(e){return this._templateFactory?this._templateFactory.changeContent(e):this._templateFactory=new Ot({...this._config,content:e,extraClass:this._resolvePossibleFunction(this._config.customClass)}),this._templateFactory}_getContentForTemplate(){return{[Ct]:this._getTitle()}}_getTitle(){return this._resolvePossibleFunction(this._config.title)||this._element.getAttribute("data-bs-original-title")}_initializeOnDelegatedTarget(e){return this.constructor.getOrCreateInstance(e.delegateTarget,this._getDelegateConfig())}_isAnimated(){return this._config.animation||this.tip&&this.tip.classList.contains(At)}_isShown(){return this.tip&&this.tip.classList.contains(Tt)}_createPopper(e){const t=Ve(this._config.placement,[this,e,this._element]),n=kt[t.toUpperCase()];return Se(this._element,e,this._getPopperConfig(n))}_getOffset(){const{offset:e}=this._config;return"string"==typeof e?e.split(",").map((e=>Number.parseInt(e,10))):"function"==typeof e?t=>e(t,this._element):e}_resolvePossibleFunction(e){return Ve(e,[this._element])}_getPopperConfig(e){const t={placement:e,modifiers:[{name:"flip",options:{fallbackPlacements:this._config.fallbackPlacements}},{name:"offset",options:{offset:this._getOffset()}},{name:"preventOverflow",options:{boundary:this._config.boundary}},{name:"arrow",options:{element:".".concat(this.constructor.NAME,"-arrow")}},{name:"preSetPlacement",enabled:!0,phase:"beforeMain",fn:e=>{this._getTipElement().setAttribute("data-popper-placement",e.state.placement)}}]};return{...t,...Ve(this._config.popperConfig,[t])}}_setListeners(){const e=this._config.trigger.split(" ");for(const t of e)if("click"===t)at.on(this._element,this.constructor.eventName("click"),this._config.selector,(e=>{this._initializeOnDelegatedTarget(e).toggle()}));else if("manual"!==t){const e=t===Dt?this.constructor.eventName("mouseenter"):this.constructor.eventName("focusin"),n=t===Dt?this.constructor.eventName("mouseleave"):this.constructor.eventName("focusout");at.on(this._element,e,this._config.selector,(e=>{const t=this._initializeOnDelegatedTarget(e);t._activeTrigger["focusin"===e.type?St:Dt]=!0,t._enter()})),at.on(this._element,n,this._config.selector,(e=>{const t=this._initializeOnDelegatedTarget(e);t._activeTrigger["focusout"===e.type?St:Dt]=t._element.contains(e.relatedTarget),t._leave()}))}this._hideModalHandler=()=>{this._element&&this.hide()},at.on(this._element.closest(Lt),jt,this._hideModalHandler)}_fixTitle(){const e=this._element.getAttribute("title");e&&(this._element.getAttribute("aria-label")||this._element.textContent.trim()||this._element.setAttribute("aria-label",e),this._element.setAttribute("data-bs-original-title",e),this._element.removeAttribute("title"))}_enter(){this._isShown()||this._isHovered?this._isHovered=!0:(this._isHovered=!0,this._setTimeout((()=>{this._isHovered&&this.show()}),this._config.delay.show))}_leave(){this._isWithActiveTrigger()||(this._isHovered=!1,this._setTimeout((()=>{this._isHovered||this.hide()}),this._config.delay.hide))}_setTimeout(e,t){clearTimeout(this._timeout),this._timeout=setTimeout(e,t)}_isWithActiveTrigger(){return Object.values(this._activeTrigger).includes(!0)}_getConfig(e){const t=ft.getDataAttributes(this._element);for(const e of Object.keys(t))xt.has(e)&&delete t[e];return e={...t,..."object"==typeof e&&e?e:{}},e=this._mergeConfigObj(e),e=this._configAfterMerge(e),this._typeCheckConfig(e),e}_configAfterMerge(e){return e.container=!1===e.container?document.body:Fe(e.container),"number"==typeof e.delay&&(e.delay={show:e.delay,hide:e.delay}),"number"==typeof e.title&&(e.title=e.title.toString()),"number"==typeof e.content&&(e.content=e.content.toString()),e}_getDelegateConfig(){const e={};for(const[t,n]of Object.entries(this._config))this.constructor.Default[t]!==n&&(e[t]=n);return e.selector=!1,e.trigger="manual",e}_disposePopper(){this._popper&&(this._popper.destroy(),this._popper=null),this.tip&&(this.tip.remove(),this.tip=null)}static jQueryInterface(e){return this.each((function(){const t=Nt.getOrCreateInstance(this,e);if("string"==typeof e){if(void 0===t[e])throw new TypeError('No method named "'.concat(e,'"'));t[e]()}}))}}var Bt,Ht;Bt=Nt,Ht=()=>{const e=ze();if(e){const t=Bt.NAME,n=e.fn[t];e.fn[t]=Bt.jQueryInterface,e.fn[t].Constructor=Bt,e.fn[t].noConflict=()=>(e.fn[t]=n,Bt.jQueryInterface)}},"loading"===document.readyState?(Re.length||document.addEventListener("DOMContentLoaded",(()=>{for(const e of Re)e()})),Re.push(Ht)):Ht();const Ft=document.getElementById("mode-toggle");function It(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var i=n.call(e,t||"default");if("object"!=typeof i)return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:t+""}function Wt(e,t,n){return(t=It(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}const zt="sidebar-display";class Rt{static toggle(){!1===Rt.isExpanded?document.body.setAttribute(zt,""):document.body.removeAttribute(zt),Rt.isExpanded=!Rt.isExpanded}}Wt(Rt,"isExpanded",!1);const qt=document.getElementById("sidebar-trigger"),Vt=document.getElementById("search-trigger"),Yt=document.getElementById("search-cancel"),Kt=document.querySelectorAll("#main-wrapper>.container>.row"),Ut=document.getElementById("topbar-title"),Qt=document.getElementById("search"),$t=document.getElementById("search-result-wrapper"),Gt=document.getElementById("search-results"),Xt=document.getElementById("search-input"),Jt=document.getElementById("search-hints"),Zt="d-block",en="d-none",tn="input-focus",nn="d-flex";class on{static on(){qt.classList.add(en),Ut.classList.add(en),Vt.classList.add(en),Qt.classList.add(nn),Yt.classList.add(Zt)}static off(){Yt.classList.remove(Zt),Qt.classList.remove(nn),qt.classList.remove(en),Ut.classList.remove(en),Vt.classList.remove(en)}}class rn{static on(){this.resultVisible||($t.classList.remove(en),Kt.forEach((e=>{e.classList.add(en)})),this.resultVisible=!0)}static off(){this.resultVisible&&(Gt.innerHTML="",Jt.classList.contains(en)&&Jt.classList.remove(en),$t.classList.add(en),Kt.forEach((e=>{e.classList.remove(en)})),Xt.textContent="",this.resultVisible=!1)}}function sn(){return Yt.classList.contains(Zt)}Wt(rn,"resultVisible",!1),Ft&&Ft.addEventListener("click",(()=>{modeToggle.flipMode()})),document.getElementById("sidebar-trigger").addEventListener("click",Rt.toggle),document.getElementById("mask").addEventListener("click",Rt.toggle),Vt.addEventListener("click",(()=>{on.on(),rn.on(),Xt.focus()})),Yt.addEventListener("click",(()=>{on.off(),rn.off()})),Xt.addEventListener("focus",(()=>{Qt.classList.add(tn)})),Xt.addEventListener("focusout",(()=>{Qt.classList.remove(tn)})),Xt.addEventListener("input",(()=>{""===Xt.value?sn()?Jt.classList.remove(en):rn.off():(rn.on(),sn()&&Jt.classList.add(en))})),function(){const e=document.getElementById("back-to-top");window.addEventListener("scroll",(()=>{window.scrollY>50?e.classList.add("show"):e.classList.remove("show")})),e.addEventListener("click",(()=>{window.scrollTo({top:0})}))}(),[...document.querySelectorAll('[data-bs-toggle="tooltip"]')].map((e=>new Nt(e)))}(); diff --git a/_site/assets/js/dist/home.min.js b/_site/assets/js/dist/home.min.js deleted file mode 100644 index fd3d92c..0000000 --- a/_site/assets/js/dist/home.min.js +++ /dev/null @@ -1,4 +0,0 @@ -/*! - * Chirpy v7.0.1 | © 2019 Cotes Chung | MIT Licensed | https://github.com/cotes2020/jekyll-theme-chirpy/ - */ -!function(){"use strict";var t="top",e="bottom",n="right",i="left",o="auto",r=[t,e,n,i],s="start",a="end",c="clippingParents",l="viewport",u="popper",f="reference",d=r.reduce((function(t,e){return t.concat([e+"-"+s,e+"-"+a])}),[]),p=[].concat(r,[o]).reduce((function(t,e){return t.concat([e,e+"-"+s,e+"-"+a])}),[]),h="beforeRead",m="read",g="afterRead",v="beforeMain",b="main",y="afterMain",_="beforeWrite",w="write",E="afterWrite",x=[h,m,g,v,b,y,_,w,E];function O(t){return t?(t.nodeName||"").toLowerCase():null}function A(t){if(null==t)return window;if("[object Window]"!==t.toString()){var e=t.ownerDocument;return e&&e.defaultView||window}return t}function C(t){return t instanceof A(t).Element||t instanceof Element}function T(t){return t instanceof A(t).HTMLElement||t instanceof HTMLElement}function L(t){return"undefined"!=typeof ShadowRoot&&(t instanceof A(t).ShadowRoot||t instanceof ShadowRoot)}var j={name:"applyStyles",enabled:!0,phase:"write",fn:function(t){var e=t.state;Object.keys(e.elements).forEach((function(t){var n=e.styles[t]||{},i=e.attributes[t]||{},o=e.elements[t];T(o)&&O(o)&&(Object.assign(o.style,n),Object.keys(i).forEach((function(t){var e=i[t];!1===e?o.removeAttribute(t):o.setAttribute(t,!0===e?"":e)})))}))},effect:function(t){var e=t.state,n={popper:{position:e.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(e.elements.popper.style,n.popper),e.styles=n,e.elements.arrow&&Object.assign(e.elements.arrow.style,n.arrow),function(){Object.keys(e.elements).forEach((function(t){var i=e.elements[t],o=e.attributes[t]||{},r=Object.keys(e.styles.hasOwnProperty(t)?e.styles[t]:n[t]).reduce((function(t,e){return t[e]="",t}),{});T(i)&&O(i)&&(Object.assign(i.style,r),Object.keys(o).forEach((function(t){i.removeAttribute(t)})))}))}},requires:["computeStyles"]};function S(t){return t.split("-")[0]}var D=Math.max,k=Math.min,M=Math.round;function P(){var t=navigator.userAgentData;return null!=t&&t.brands&&Array.isArray(t.brands)?t.brands.map((function(t){return t.brand+"/"+t.version})).join(" "):navigator.userAgent}function N(){return!/^((?!chrome|android).)*safari/i.test(P())}function F(t,e,n){void 0===e&&(e=!1),void 0===n&&(n=!1);var i=t.getBoundingClientRect(),o=1,r=1;e&&T(t)&&(o=t.offsetWidth>0&&M(i.width)/t.offsetWidth||1,r=t.offsetHeight>0&&M(i.height)/t.offsetHeight||1);var s=(C(t)?A(t):window).visualViewport,a=!N()&&n,c=(i.left+(a&&s?s.offsetLeft:0))/o,l=(i.top+(a&&s?s.offsetTop:0))/r,u=i.width/o,f=i.height/r;return{width:u,height:f,top:l,right:c+u,bottom:l+f,left:c,x:c,y:l}}function B(t){var e=F(t),n=t.offsetWidth,i=t.offsetHeight;return Math.abs(e.width-n)<=1&&(n=e.width),Math.abs(e.height-i)<=1&&(i=e.height),{x:t.offsetLeft,y:t.offsetTop,width:n,height:i}}function H(t,e){var n=e.getRootNode&&e.getRootNode();if(t.contains(e))return!0;if(n&&L(n)){var i=e;do{if(i&&t.isSameNode(i))return!0;i=i.parentNode||i.host}while(i)}return!1}function I(t){return A(t).getComputedStyle(t)}function R(t){return["table","td","th"].indexOf(O(t))>=0}function z(t){return((C(t)?t.ownerDocument:t.document)||window.document).documentElement}function W(t){return"html"===O(t)?t:t.assignedSlot||t.parentNode||(L(t)?t.host:null)||z(t)}function q(t){return T(t)&&"fixed"!==I(t).position?t.offsetParent:null}function V(t){for(var e=A(t),n=q(t);n&&R(n)&&"static"===I(n).position;)n=q(n);return n&&("html"===O(n)||"body"===O(n)&&"static"===I(n).position)?e:n||function(t){var e=/firefox/i.test(P());if(/Trident/i.test(P())&&T(t)&&"fixed"===I(t).position)return null;var n=W(t);for(L(n)&&(n=n.host);T(n)&&["html","body"].indexOf(O(n))<0;){var i=I(n);if("none"!==i.transform||"none"!==i.perspective||"paint"===i.contain||-1!==["transform","perspective"].indexOf(i.willChange)||e&&"filter"===i.willChange||e&&i.filter&&"none"!==i.filter)return n;n=n.parentNode}return null}(t)||e}function U(t){return["top","bottom"].indexOf(t)>=0?"x":"y"}function Y(t,e,n){return D(t,k(e,n))}function K(t){return Object.assign({},{top:0,right:0,bottom:0,left:0},t)}function Q(t,e){return e.reduce((function(e,n){return e[n]=t,e}),{})}var $={name:"arrow",enabled:!0,phase:"main",fn:function(o){var s,a=o.state,c=o.name,l=o.options,u=a.elements.arrow,f=a.modifiersData.popperOffsets,d=S(a.placement),p=U(d),h=[i,n].indexOf(d)>=0?"height":"width";if(u&&f){var m=function(t,e){return K("number"!=typeof(t="function"==typeof t?t(Object.assign({},e.rects,{placement:e.placement})):t)?t:Q(t,r))}(l.padding,a),g=B(u),v="y"===p?t:i,b="y"===p?e:n,y=a.rects.reference[h]+a.rects.reference[p]-f[p]-a.rects.popper[h],_=f[p]-a.rects.reference[p],w=V(u),E=w?"y"===p?w.clientHeight||0:w.clientWidth||0:0,x=y/2-_/2,O=m[v],A=E-g[h]-m[b],C=E/2-g[h]/2+x,T=Y(O,C,A),L=p;a.modifiersData[c]=((s={})[L]=T,s.centerOffset=T-C,s)}},effect:function(t){var e=t.state,n=t.options.element,i=void 0===n?"[data-popper-arrow]":n;null!=i&&("string"!=typeof i||(i=e.elements.popper.querySelector(i)))&&H(e.elements.popper,i)&&(e.elements.arrow=i)},requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function G(t){return t.split("-")[1]}var X={top:"auto",right:"auto",bottom:"auto",left:"auto"};function J(o){var r,s=o.popper,c=o.popperRect,l=o.placement,u=o.variation,f=o.offsets,d=o.position,p=o.gpuAcceleration,h=o.adaptive,m=o.roundOffsets,g=o.isFixed,v=f.x,b=void 0===v?0:v,y=f.y,_=void 0===y?0:y,w="function"==typeof m?m({x:b,y:_}):{x:b,y:_};b=w.x,_=w.y;var E=f.hasOwnProperty("x"),x=f.hasOwnProperty("y"),O=i,C=t,T=window;if(h){var L=V(s),j="clientHeight",S="clientWidth";if(L===A(s)&&"static"!==I(L=z(s)).position&&"absolute"===d&&(j="scrollHeight",S="scrollWidth"),l===t||(l===i||l===n)&&u===a)C=e,_-=(g&&L===T&&T.visualViewport?T.visualViewport.height:L[j])-c.height,_*=p?1:-1;if(l===i||(l===t||l===e)&&u===a)O=n,b-=(g&&L===T&&T.visualViewport?T.visualViewport.width:L[S])-c.width,b*=p?1:-1}var D,k=Object.assign({position:d},h&&X),P=!0===m?function(t,e){var n=t.x,i=t.y,o=e.devicePixelRatio||1;return{x:M(n*o)/o||0,y:M(i*o)/o||0}}({x:b,y:_},A(s)):{x:b,y:_};return b=P.x,_=P.y,p?Object.assign({},k,((D={})[C]=x?"0":"",D[O]=E?"0":"",D.transform=(T.devicePixelRatio||1)<=1?"translate("+b+"px, "+_+"px)":"translate3d("+b+"px, "+_+"px, 0)",D)):Object.assign({},k,((r={})[C]=x?_+"px":"",r[O]=E?b+"px":"",r.transform="",r))}var Z={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:function(t){var e=t.state,n=t.options,i=n.gpuAcceleration,o=void 0===i||i,r=n.adaptive,s=void 0===r||r,a=n.roundOffsets,c=void 0===a||a,l={placement:S(e.placement),variation:G(e.placement),popper:e.elements.popper,popperRect:e.rects.popper,gpuAcceleration:o,isFixed:"fixed"===e.options.strategy};null!=e.modifiersData.popperOffsets&&(e.styles.popper=Object.assign({},e.styles.popper,J(Object.assign({},l,{offsets:e.modifiersData.popperOffsets,position:e.options.strategy,adaptive:s,roundOffsets:c})))),null!=e.modifiersData.arrow&&(e.styles.arrow=Object.assign({},e.styles.arrow,J(Object.assign({},l,{offsets:e.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:c})))),e.attributes.popper=Object.assign({},e.attributes.popper,{"data-popper-placement":e.placement})},data:{}},tt={passive:!0};var et={name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:function(t){var e=t.state,n=t.instance,i=t.options,o=i.scroll,r=void 0===o||o,s=i.resize,a=void 0===s||s,c=A(e.elements.popper),l=[].concat(e.scrollParents.reference,e.scrollParents.popper);return r&&l.forEach((function(t){t.addEventListener("scroll",n.update,tt)})),a&&c.addEventListener("resize",n.update,tt),function(){r&&l.forEach((function(t){t.removeEventListener("scroll",n.update,tt)})),a&&c.removeEventListener("resize",n.update,tt)}},data:{}},nt={left:"right",right:"left",bottom:"top",top:"bottom"};function it(t){return t.replace(/left|right|bottom|top/g,(function(t){return nt[t]}))}var ot={start:"end",end:"start"};function rt(t){return t.replace(/start|end/g,(function(t){return ot[t]}))}function st(t){var e=A(t);return{scrollLeft:e.pageXOffset,scrollTop:e.pageYOffset}}function at(t){return F(z(t)).left+st(t).scrollLeft}function ct(t){var e=I(t),n=e.overflow,i=e.overflowX,o=e.overflowY;return/auto|scroll|overlay|hidden/.test(n+o+i)}function lt(t){return["html","body","#document"].indexOf(O(t))>=0?t.ownerDocument.body:T(t)&&ct(t)?t:lt(W(t))}function ut(t,e){var n;void 0===e&&(e=[]);var i=lt(t),o=i===(null==(n=t.ownerDocument)?void 0:n.body),r=A(i),s=o?[r].concat(r.visualViewport||[],ct(i)?i:[]):i,a=e.concat(s);return o?a:a.concat(ut(W(s)))}function ft(t){return Object.assign({},t,{left:t.x,top:t.y,right:t.x+t.width,bottom:t.y+t.height})}function dt(t,e,n){return e===l?ft(function(t,e){var n=A(t),i=z(t),o=n.visualViewport,r=i.clientWidth,s=i.clientHeight,a=0,c=0;if(o){r=o.width,s=o.height;var l=N();(l||!l&&"fixed"===e)&&(a=o.offsetLeft,c=o.offsetTop)}return{width:r,height:s,x:a+at(t),y:c}}(t,n)):C(e)?function(t,e){var n=F(t,!1,"fixed"===e);return n.top=n.top+t.clientTop,n.left=n.left+t.clientLeft,n.bottom=n.top+t.clientHeight,n.right=n.left+t.clientWidth,n.width=t.clientWidth,n.height=t.clientHeight,n.x=n.left,n.y=n.top,n}(e,n):ft(function(t){var e,n=z(t),i=st(t),o=null==(e=t.ownerDocument)?void 0:e.body,r=D(n.scrollWidth,n.clientWidth,o?o.scrollWidth:0,o?o.clientWidth:0),s=D(n.scrollHeight,n.clientHeight,o?o.scrollHeight:0,o?o.clientHeight:0),a=-i.scrollLeft+at(t),c=-i.scrollTop;return"rtl"===I(o||n).direction&&(a+=D(n.clientWidth,o?o.clientWidth:0)-r),{width:r,height:s,x:a,y:c}}(z(t)))}function pt(t,e,n,i){var o="clippingParents"===e?function(t){var e=ut(W(t)),n=["absolute","fixed"].indexOf(I(t).position)>=0&&T(t)?V(t):t;return C(n)?e.filter((function(t){return C(t)&&H(t,n)&&"body"!==O(t)})):[]}(t):[].concat(e),r=[].concat(o,[n]),s=r[0],a=r.reduce((function(e,n){var o=dt(t,n,i);return e.top=D(o.top,e.top),e.right=k(o.right,e.right),e.bottom=k(o.bottom,e.bottom),e.left=D(o.left,e.left),e}),dt(t,s,i));return a.width=a.right-a.left,a.height=a.bottom-a.top,a.x=a.left,a.y=a.top,a}function ht(o){var r,c=o.reference,l=o.element,u=o.placement,f=u?S(u):null,d=u?G(u):null,p=c.x+c.width/2-l.width/2,h=c.y+c.height/2-l.height/2;switch(f){case t:r={x:p,y:c.y-l.height};break;case e:r={x:p,y:c.y+c.height};break;case n:r={x:c.x+c.width,y:h};break;case i:r={x:c.x-l.width,y:h};break;default:r={x:c.x,y:c.y}}var m=f?U(f):null;if(null!=m){var g="y"===m?"height":"width";switch(d){case s:r[m]=r[m]-(c[g]/2-l[g]/2);break;case a:r[m]=r[m]+(c[g]/2-l[g]/2)}}return r}function mt(i,o){void 0===o&&(o={});var s=o,a=s.placement,d=void 0===a?i.placement:a,p=s.strategy,h=void 0===p?i.strategy:p,m=s.boundary,g=void 0===m?c:m,v=s.rootBoundary,b=void 0===v?l:v,y=s.elementContext,_=void 0===y?u:y,w=s.altBoundary,E=void 0!==w&&w,x=s.padding,O=void 0===x?0:x,A=K("number"!=typeof O?O:Q(O,r)),T=_===u?f:u,L=i.rects.popper,j=i.elements[E?T:_],S=pt(C(j)?j:j.contextElement||z(i.elements.popper),g,b,h),D=F(i.elements.reference),k=ht({reference:D,element:L,strategy:"absolute",placement:d}),M=ft(Object.assign({},L,k)),P=_===u?M:D,N={top:S.top-P.top+A.top,bottom:P.bottom-S.bottom+A.bottom,left:S.left-P.left+A.left,right:P.right-S.right+A.right},B=i.modifiersData.offset;if(_===u&&B){var H=B[d];Object.keys(N).forEach((function(i){var o=[n,e].indexOf(i)>=0?1:-1,r=[t,e].indexOf(i)>=0?"y":"x";N[i]+=H[r]*o}))}return N}function gt(t,e){void 0===e&&(e={});var n=e,i=n.placement,o=n.boundary,s=n.rootBoundary,a=n.padding,c=n.flipVariations,l=n.allowedAutoPlacements,u=void 0===l?p:l,f=G(i),h=f?c?d:d.filter((function(t){return G(t)===f})):r,m=h.filter((function(t){return u.indexOf(t)>=0}));0===m.length&&(m=h);var g=m.reduce((function(e,n){return e[n]=mt(t,{placement:n,boundary:o,rootBoundary:s,padding:a})[S(n)],e}),{});return Object.keys(g).sort((function(t,e){return g[t]-g[e]}))}var vt={name:"flip",enabled:!0,phase:"main",fn:function(r){var a=r.state,c=r.options,l=r.name;if(!a.modifiersData[l]._skip){for(var u=c.mainAxis,f=void 0===u||u,d=c.altAxis,p=void 0===d||d,h=c.fallbackPlacements,m=c.padding,g=c.boundary,v=c.rootBoundary,b=c.altBoundary,y=c.flipVariations,_=void 0===y||y,w=c.allowedAutoPlacements,E=a.options.placement,x=S(E),O=h||(x===E||!_?[it(E)]:function(t){if(S(t)===o)return[];var e=it(t);return[rt(t),e,rt(e)]}(E)),A=[E].concat(O).reduce((function(t,e){return t.concat(S(e)===o?gt(a,{placement:e,boundary:g,rootBoundary:v,padding:m,flipVariations:_,allowedAutoPlacements:w}):e)}),[]),C=a.rects.reference,T=a.rects.popper,L=new Map,j=!0,D=A[0],k=0;k=0,B=F?"width":"height",H=mt(a,{placement:M,boundary:g,rootBoundary:v,altBoundary:b,padding:m}),I=F?N?n:i:N?e:t;C[B]>T[B]&&(I=it(I));var R=it(I),z=[];if(f&&z.push(H[P]<=0),p&&z.push(H[I]<=0,H[R]<=0),z.every((function(t){return t}))){D=M,j=!1;break}L.set(M,z)}if(j)for(var W=function(t){var e=A.find((function(e){var n=L.get(e);if(n)return n.slice(0,t).every((function(t){return t}))}));if(e)return D=e,"break"},q=_?3:1;q>0;q--){if("break"===W(q))break}a.placement!==D&&(a.modifiersData[l]._skip=!0,a.placement=D,a.reset=!0)}},requiresIfExists:["offset"],data:{_skip:!1}};function bt(t,e,n){return void 0===n&&(n={x:0,y:0}),{top:t.top-e.height-n.y,right:t.right-e.width+n.x,bottom:t.bottom-e.height+n.y,left:t.left-e.width-n.x}}function yt(o){return[t,n,e,i].some((function(t){return o[t]>=0}))}var _t={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:function(t){var e=t.state,n=t.name,i=e.rects.reference,o=e.rects.popper,r=e.modifiersData.preventOverflow,s=mt(e,{elementContext:"reference"}),a=mt(e,{altBoundary:!0}),c=bt(s,i),l=bt(a,o,r),u=yt(c),f=yt(l);e.modifiersData[n]={referenceClippingOffsets:c,popperEscapeOffsets:l,isReferenceHidden:u,hasPopperEscaped:f},e.attributes.popper=Object.assign({},e.attributes.popper,{"data-popper-reference-hidden":u,"data-popper-escaped":f})}};var wt={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:function(e){var o=e.state,r=e.options,s=e.name,a=r.offset,c=void 0===a?[0,0]:a,l=p.reduce((function(e,r){return e[r]=function(e,o,r){var s=S(e),a=[i,t].indexOf(s)>=0?-1:1,c="function"==typeof r?r(Object.assign({},o,{placement:e})):r,l=c[0],u=c[1];return l=l||0,u=(u||0)*a,[i,n].indexOf(s)>=0?{x:u,y:l}:{x:l,y:u}}(r,o.rects,c),e}),{}),u=l[o.placement],f=u.x,d=u.y;null!=o.modifiersData.popperOffsets&&(o.modifiersData.popperOffsets.x+=f,o.modifiersData.popperOffsets.y+=d),o.modifiersData[s]=l}};var Et={name:"popperOffsets",enabled:!0,phase:"read",fn:function(t){var e=t.state,n=t.name;e.modifiersData[n]=ht({reference:e.rects.reference,element:e.rects.popper,strategy:"absolute",placement:e.placement})},data:{}};var xt={name:"preventOverflow",enabled:!0,phase:"main",fn:function(o){var r=o.state,a=o.options,c=o.name,l=a.mainAxis,u=void 0===l||l,f=a.altAxis,d=void 0!==f&&f,p=a.boundary,h=a.rootBoundary,m=a.altBoundary,g=a.padding,v=a.tether,b=void 0===v||v,y=a.tetherOffset,_=void 0===y?0:y,w=mt(r,{boundary:p,rootBoundary:h,padding:g,altBoundary:m}),E=S(r.placement),x=G(r.placement),O=!x,A=U(E),C="x"===A?"y":"x",T=r.modifiersData.popperOffsets,L=r.rects.reference,j=r.rects.popper,M="function"==typeof _?_(Object.assign({},r.rects,{placement:r.placement})):_,P="number"==typeof M?{mainAxis:M,altAxis:M}:Object.assign({mainAxis:0,altAxis:0},M),N=r.modifiersData.offset?r.modifiersData.offset[r.placement]:null,F={x:0,y:0};if(T){if(u){var H,I="y"===A?t:i,R="y"===A?e:n,z="y"===A?"height":"width",W=T[A],q=W+w[I],K=W-w[R],Q=b?-j[z]/2:0,$=x===s?L[z]:j[z],X=x===s?-j[z]:-L[z],J=r.elements.arrow,Z=b&&J?B(J):{width:0,height:0},tt=r.modifiersData["arrow#persistent"]?r.modifiersData["arrow#persistent"].padding:{top:0,right:0,bottom:0,left:0},et=tt[I],nt=tt[R],it=Y(0,L[z],Z[z]),ot=O?L[z]/2-Q-it-et-P.mainAxis:$-it-et-P.mainAxis,rt=O?-L[z]/2+Q+it+nt+P.mainAxis:X+it+nt+P.mainAxis,st=r.elements.arrow&&V(r.elements.arrow),at=st?"y"===A?st.clientTop||0:st.clientLeft||0:0,ct=null!=(H=null==N?void 0:N[A])?H:0,lt=W+rt-ct,ut=Y(b?k(q,W+ot-ct-at):q,W,b?D(K,lt):K);T[A]=ut,F[A]=ut-W}if(d){var ft,dt="x"===A?t:i,pt="x"===A?e:n,ht=T[C],gt="y"===C?"height":"width",vt=ht+w[dt],bt=ht-w[pt],yt=-1!==[t,i].indexOf(E),_t=null!=(ft=null==N?void 0:N[C])?ft:0,wt=yt?vt:ht-L[gt]-j[gt]-_t+P.altAxis,Et=yt?ht+L[gt]+j[gt]-_t-P.altAxis:bt,xt=b&&yt?function(t,e,n){var i=Y(t,e,n);return i>n?n:i}(wt,ht,Et):Y(b?wt:vt,ht,b?Et:bt);T[C]=xt,F[C]=xt-ht}r.modifiersData[c]=F}},requiresIfExists:["offset"]};function Ot(t,e,n){void 0===n&&(n=!1);var i,o,r=T(e),s=T(e)&&function(t){var e=t.getBoundingClientRect(),n=M(e.width)/t.offsetWidth||1,i=M(e.height)/t.offsetHeight||1;return 1!==n||1!==i}(e),a=z(e),c=F(t,s,n),l={scrollLeft:0,scrollTop:0},u={x:0,y:0};return(r||!r&&!n)&&(("body"!==O(e)||ct(a))&&(l=(i=e)!==A(i)&&T(i)?{scrollLeft:(o=i).scrollLeft,scrollTop:o.scrollTop}:st(i)),T(e)?((u=F(e,!0)).x+=e.clientLeft,u.y+=e.clientTop):a&&(u.x=at(a))),{x:c.left+l.scrollLeft-u.x,y:c.top+l.scrollTop-u.y,width:c.width,height:c.height}}function At(t){var e=new Map,n=new Set,i=[];function o(t){n.add(t.name),[].concat(t.requires||[],t.requiresIfExists||[]).forEach((function(t){if(!n.has(t)){var i=e.get(t);i&&o(i)}})),i.push(t)}return t.forEach((function(t){e.set(t.name,t)})),t.forEach((function(t){n.has(t.name)||o(t)})),i}var Ct={placement:"bottom",modifiers:[],strategy:"absolute"};function Tt(){for(var t=arguments.length,e=new Array(t),n=0;nMt.has(t)&&Mt.get(t).get(e)||null,remove(t,e){if(!Mt.has(t))return;const n=Mt.get(t);n.delete(e),0===n.size&&Mt.delete(t)}};const Nt="transitionend",Ft=t=>(t&&window.CSS&&window.CSS.escape&&(t=t.replace(/#([^\s"#']+)/g,((t,e)=>"#".concat(CSS.escape(e))))),t),Bt=t=>!(!t||"object"!=typeof t)&&(void 0!==t.jquery&&(t=t[0]),void 0!==t.nodeType),Ht=t=>Bt(t)?t.jquery?t[0]:t:"string"==typeof t&&t.length>0?document.querySelector(Ft(t)):null,It=t=>{if(!document.documentElement.attachShadow)return null;if("function"==typeof t.getRootNode){const e=t.getRootNode();return e instanceof ShadowRoot?e:null}return t instanceof ShadowRoot?t:t.parentNode?It(t.parentNode):null},Rt=()=>{},zt=()=>window.jQuery&&!document.body.hasAttribute("data-bs-no-jquery")?window.jQuery:null,Wt=[],qt=()=>"rtl"===document.documentElement.dir,Vt=t=>{var e;e=()=>{const e=zt();if(e){const n=t.NAME,i=e.fn[n];e.fn[n]=t.jQueryInterface,e.fn[n].Constructor=t,e.fn[n].noConflict=()=>(e.fn[n]=i,t.jQueryInterface)}},"loading"===document.readyState?(Wt.length||document.addEventListener("DOMContentLoaded",(()=>{for(const t of Wt)t()})),Wt.push(e)):e()},Ut=function(t){let e=arguments.length>2&&void 0!==arguments[2]?arguments[2]:t;return"function"==typeof t?t(...arguments.length>1&&void 0!==arguments[1]?arguments[1]:[]):e},Yt=function(t,e){if(!(!(arguments.length>2&&void 0!==arguments[2])||arguments[2]))return void Ut(t);const n=(t=>{if(!t)return 0;let{transitionDuration:e,transitionDelay:n}=window.getComputedStyle(t);const i=Number.parseFloat(e),o=Number.parseFloat(n);return i||o?(e=e.split(",")[0],n=n.split(",")[0],1e3*(Number.parseFloat(e)+Number.parseFloat(n))):0})(e)+5;let i=!1;const o=n=>{let{target:r}=n;r===e&&(i=!0,e.removeEventListener(Nt,o),Ut(t))};e.addEventListener(Nt,o),setTimeout((()=>{i||e.dispatchEvent(new Event(Nt))}),n)},Kt=/[^.]*(?=\..*)\.|.*/,Qt=/\..*/,$t=/::\d+$/,Gt={};let Xt=1;const Jt={mouseenter:"mouseover",mouseleave:"mouseout"},Zt=new Set(["click","dblclick","mouseup","mousedown","contextmenu","mousewheel","DOMMouseScroll","mouseover","mouseout","mousemove","selectstart","selectend","keydown","keypress","keyup","orientationchange","touchstart","touchmove","touchend","touchcancel","pointerdown","pointermove","pointerup","pointerleave","pointercancel","gesturestart","gesturechange","gestureend","focus","blur","change","reset","select","submit","focusin","focusout","load","unload","beforeunload","resize","move","DOMContentLoaded","readystatechange","error","abort","scroll"]);function te(t,e){return e&&"".concat(e,"::").concat(Xt++)||t.uidEvent||Xt++}function ee(t){const e=te(t);return t.uidEvent=e,Gt[e]=Gt[e]||{},Gt[e]}function ne(t,e){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;return Object.values(t).find((t=>t.callable===e&&t.delegationSelector===n))}function ie(t,e,n){const i="string"==typeof e,o=i?n:e||n;let r=ae(t);return Zt.has(r)||(r=t),[i,o,r]}function oe(t,e,n,i,o){if("string"!=typeof e||!t)return;let[r,s,a]=ie(e,n,i);if(e in Jt){const t=t=>function(e){if(!e.relatedTarget||e.relatedTarget!==e.delegateTarget&&!e.delegateTarget.contains(e.relatedTarget))return t.call(this,e)};s=t(s)}const c=ee(t),l=c[a]||(c[a]={}),u=ne(l,s,r?n:null);if(u)return void(u.oneOff=u.oneOff&&o);const f=te(s,e.replace(Kt,"")),d=r?function(t,e,n){return function i(o){const r=t.querySelectorAll(e);for(let{target:s}=o;s&&s!==this;s=s.parentNode)for(const a of r)if(a===s)return le(o,{delegateTarget:s}),i.oneOff&&ce.off(t,o.type,e,n),n.apply(s,[o])}}(t,n,s):function(t,e){return function n(i){return le(i,{delegateTarget:t}),n.oneOff&&ce.off(t,i.type,e),e.apply(t,[i])}}(t,s);d.delegationSelector=r?n:null,d.callable=s,d.oneOff=o,d.uidEvent=f,l[f]=d,t.addEventListener(a,d,r)}function re(t,e,n,i,o){const r=ne(e[n],i,o);r&&(t.removeEventListener(n,r,Boolean(o)),delete e[n][r.uidEvent])}function se(t,e,n,i){const o=e[n]||{};for(const[r,s]of Object.entries(o))r.includes(i)&&re(t,e,n,s.callable,s.delegationSelector)}function ae(t){return t=t.replace(Qt,""),Jt[t]||t}const ce={on(t,e,n,i){oe(t,e,n,i,!1)},one(t,e,n,i){oe(t,e,n,i,!0)},off(t,e,n,i){if("string"!=typeof e||!t)return;const[o,r,s]=ie(e,n,i),a=s!==e,c=ee(t),l=c[s]||{},u=e.startsWith(".");if(void 0===r){if(u)for(const n of Object.keys(c))se(t,c,n,e.slice(1));for(const[n,i]of Object.entries(l)){const o=n.replace($t,"");a&&!e.includes(o)||re(t,c,s,i.callable,i.delegationSelector)}}else{if(!Object.keys(l).length)return;re(t,c,s,r,o?n:null)}},trigger(t,e,n){if("string"!=typeof e||!t)return null;const i=zt();let o=null,r=!0,s=!0,a=!1;e!==ae(e)&&i&&(o=i.Event(e,n),i(t).trigger(o),r=!o.isPropagationStopped(),s=!o.isImmediatePropagationStopped(),a=o.isDefaultPrevented());const c=le(new Event(e,{bubbles:r,cancelable:!0}),n);return a&&c.preventDefault(),s&&t.dispatchEvent(c),c.defaultPrevented&&o&&o.preventDefault(),c}};function le(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};for(const[n,i]of Object.entries(e))try{t[n]=i}catch{Object.defineProperty(t,n,{configurable:!0,get:()=>i})}return t}function ue(t){if("true"===t)return!0;if("false"===t)return!1;if(t===Number(t).toString())return Number(t);if(""===t||"null"===t)return null;if("string"!=typeof t)return t;try{return JSON.parse(decodeURIComponent(t))}catch{return t}}function fe(t){return t.replace(/[A-Z]/g,(t=>"-".concat(t.toLowerCase())))}const de={setDataAttribute(t,e,n){t.setAttribute("data-bs-".concat(fe(e)),n)},removeDataAttribute(t,e){t.removeAttribute("data-bs-".concat(fe(e)))},getDataAttributes(t){if(!t)return{};const e={},n=Object.keys(t.dataset).filter((t=>t.startsWith("bs")&&!t.startsWith("bsConfig")));for(const i of n){let n=i.replace(/^bs/,"");n=n.charAt(0).toLowerCase()+n.slice(1,n.length),e[n]=ue(t.dataset[i])}return e},getDataAttribute:(t,e)=>ue(t.getAttribute("data-bs-".concat(fe(e))))};class pe{static get Default(){return{}}static get DefaultType(){return{}}static get NAME(){throw new Error('You have to implement the static method "NAME", for each component!')}_getConfig(t){return t=this._mergeConfigObj(t),t=this._configAfterMerge(t),this._typeCheckConfig(t),t}_configAfterMerge(t){return t}_mergeConfigObj(t,e){const n=Bt(e)?de.getDataAttribute(e,"config"):{};return{...this.constructor.Default,..."object"==typeof n?n:{},...Bt(e)?de.getDataAttributes(e):{},..."object"==typeof t?t:{}}}_typeCheckConfig(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.constructor.DefaultType;for(const[i,o]of Object.entries(e)){const e=t[i],r=Bt(e)?"element":null==(n=e)?"".concat(n):Object.prototype.toString.call(n).match(/\s([a-z]+)/i)[1].toLowerCase();if(!new RegExp(o).test(r))throw new TypeError("".concat(this.constructor.NAME.toUpperCase(),': Option "').concat(i,'" provided type "').concat(r,'" but expected type "').concat(o,'".'))}var n}}class he extends pe{constructor(t,e){super(),(t=Ht(t))&&(this._element=t,this._config=this._getConfig(e),Pt.set(this._element,this.constructor.DATA_KEY,this))}dispose(){Pt.remove(this._element,this.constructor.DATA_KEY),ce.off(this._element,this.constructor.EVENT_KEY);for(const t of Object.getOwnPropertyNames(this))this[t]=null}_queueCallback(t,e){Yt(t,e,!(arguments.length>2&&void 0!==arguments[2])||arguments[2])}_getConfig(t){return t=this._mergeConfigObj(t,this._element),t=this._configAfterMerge(t),this._typeCheckConfig(t),t}static getInstance(t){return Pt.get(Ht(t),this.DATA_KEY)}static getOrCreateInstance(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.getInstance(t)||new this(t,"object"==typeof e?e:null)}static get VERSION(){return"5.3.3"}static get DATA_KEY(){return"bs.".concat(this.NAME)}static get EVENT_KEY(){return".".concat(this.DATA_KEY)}static eventName(t){return"".concat(t).concat(this.EVENT_KEY)}}const me={"*":["class","dir","id","lang","role",/^aria-[\w-]*$/i],a:["target","href","title","rel"],area:[],b:[],br:[],col:[],code:[],dd:[],div:[],dl:[],dt:[],em:[],hr:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],i:[],img:["src","srcset","alt","title","width","height"],li:[],ol:[],p:[],pre:[],s:[],small:[],span:[],sub:[],sup:[],strong:[],u:[],ul:[]},ge=new Set(["background","cite","href","itemtype","longdesc","poster","src","xlink:href"]),ve=/^(?!javascript:)(?:[a-z0-9+.-]+:|[^&:/?#]*(?:[/?#]|$))/i,be=(t,e)=>{const n=t.nodeName.toLowerCase();return e.includes(n)?!ge.has(n)||Boolean(ve.test(t.nodeValue)):e.filter((t=>t instanceof RegExp)).some((t=>t.test(n)))};const ye=t=>{let e=t.getAttribute("data-bs-target");if(!e||"#"===e){let n=t.getAttribute("href");if(!n||!n.includes("#")&&!n.startsWith("."))return null;n.includes("#")&&!n.startsWith("#")&&(n="#".concat(n.split("#")[1])),e=n&&"#"!==n?n.trim():null}return e?e.split(",").map((t=>Ft(t))).join(","):null},_e={find(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:document.documentElement;return[].concat(...Element.prototype.querySelectorAll.call(e,t))},findOne(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:document.documentElement;return Element.prototype.querySelector.call(e,t)},children:(t,e)=>[].concat(...t.children).filter((t=>t.matches(e))),parents(t,e){const n=[];let i=t.parentNode.closest(e);for(;i;)n.push(i),i=i.parentNode.closest(e);return n},prev(t,e){let n=t.previousElementSibling;for(;n;){if(n.matches(e))return[n];n=n.previousElementSibling}return[]},next(t,e){let n=t.nextElementSibling;for(;n;){if(n.matches(e))return[n];n=n.nextElementSibling}return[]},focusableChildren(t){const e=["a","button","input","textarea","select","details","[tabindex]",'[contenteditable="true"]'].map((t=>"".concat(t,':not([tabindex^="-"])'))).join(",");return this.find(e,t).filter((t=>!(t=>!t||t.nodeType!==Node.ELEMENT_NODE||!!t.classList.contains("disabled")||(void 0!==t.disabled?t.disabled:t.hasAttribute("disabled")&&"false"!==t.getAttribute("disabled")))(t)&&(t=>{if(!Bt(t)||0===t.getClientRects().length)return!1;const e="visible"===getComputedStyle(t).getPropertyValue("visibility"),n=t.closest("details:not([open])");if(!n)return e;if(n!==t){const e=t.closest("summary");if(e&&e.parentNode!==n)return!1;if(null===e)return!1}return e})(t)))},getSelectorFromElement(t){const e=ye(t);return e&&_e.findOne(e)?e:null},getElementFromSelector(t){const e=ye(t);return e?_e.findOne(e):null},getMultipleElementsFromSelector(t){const e=ye(t);return e?_e.find(e):[]}},we={allowList:me,content:{},extraClass:"",html:!1,sanitize:!0,sanitizeFn:null,template:"
"},Ee={allowList:"object",content:"object",extraClass:"(string|function)",html:"boolean",sanitize:"boolean",sanitizeFn:"(null|function)",template:"string"},xe={entry:"(string|element|function|null)",selector:"(string|element)"};class Oe extends pe{constructor(t){super(),this._config=this._getConfig(t)}static get Default(){return we}static get DefaultType(){return Ee}static get NAME(){return"TemplateFactory"}getContent(){return Object.values(this._config.content).map((t=>this._resolvePossibleFunction(t))).filter(Boolean)}hasContent(){return this.getContent().length>0}changeContent(t){return this._checkContent(t),this._config.content={...this._config.content,...t},this}toHtml(){const t=document.createElement("div");t.innerHTML=this._maybeSanitize(this._config.template);for(const[e,n]of Object.entries(this._config.content))this._setContent(t,n,e);const e=t.children[0],n=this._resolvePossibleFunction(this._config.extraClass);return n&&e.classList.add(...n.split(" ")),e}_typeCheckConfig(t){super._typeCheckConfig(t),this._checkContent(t.content)}_checkContent(t){for(const[e,n]of Object.entries(t))super._typeCheckConfig({selector:e,entry:n},xe)}_setContent(t,e,n){const i=_e.findOne(n,t);i&&((e=this._resolvePossibleFunction(e))?Bt(e)?this._putElementInTemplate(Ht(e),i):this._config.html?i.innerHTML=this._maybeSanitize(e):i.textContent=e:i.remove())}_maybeSanitize(t){return this._config.sanitize?function(t,e,n){if(!t.length)return t;if(n&&"function"==typeof n)return n(t);const i=(new window.DOMParser).parseFromString(t,"text/html"),o=[].concat(...i.body.querySelectorAll("*"));for(const t of o){const n=t.nodeName.toLowerCase();if(!Object.keys(e).includes(n)){t.remove();continue}const i=[].concat(...t.attributes),o=[].concat(e["*"]||[],e[n]||[]);for(const e of i)be(e,o)||t.removeAttribute(e.nodeName)}return i.body.innerHTML}(t,this._config.allowList,this._config.sanitizeFn):t}_resolvePossibleFunction(t){return Ut(t,[this])}_putElementInTemplate(t,e){if(this._config.html)return e.innerHTML="",void e.append(t);e.textContent=t.textContent}}const Ae=new Set(["sanitize","allowList","sanitizeFn"]),Ce="fade",Te="show",Le=".tooltip-inner",je=".".concat("modal"),Se="hide.bs.modal",De="hover",ke="focus",Me={AUTO:"auto",TOP:"top",RIGHT:qt()?"left":"right",BOTTOM:"bottom",LEFT:qt()?"right":"left"},Pe={allowList:me,animation:!0,boundary:"clippingParents",container:!1,customClass:"",delay:0,fallbackPlacements:["top","right","bottom","left"],html:!1,offset:[0,6],placement:"top",popperConfig:null,sanitize:!0,sanitizeFn:null,selector:!1,template:'',title:"",trigger:"hover focus"},Ne={allowList:"object",animation:"boolean",boundary:"(string|element)",container:"(string|element|boolean)",customClass:"(string|function)",delay:"(number|object)",fallbackPlacements:"array",html:"boolean",offset:"(array|string|function)",placement:"(string|function)",popperConfig:"(null|object|function)",sanitize:"boolean",sanitizeFn:"(null|function)",selector:"(string|boolean)",template:"string",title:"(string|element|function)",trigger:"string"};class Fe extends he{constructor(t,e){if(void 0===kt)throw new TypeError("Bootstrap's tooltips require Popper (https://popper.js.org)");super(t,e),this._isEnabled=!0,this._timeout=0,this._isHovered=null,this._activeTrigger={},this._popper=null,this._templateFactory=null,this._newContent=null,this.tip=null,this._setListeners(),this._config.selector||this._fixTitle()}static get Default(){return Pe}static get DefaultType(){return Ne}static get NAME(){return"tooltip"}enable(){this._isEnabled=!0}disable(){this._isEnabled=!1}toggleEnabled(){this._isEnabled=!this._isEnabled}toggle(){this._isEnabled&&(this._activeTrigger.click=!this._activeTrigger.click,this._isShown()?this._leave():this._enter())}dispose(){clearTimeout(this._timeout),ce.off(this._element.closest(je),Se,this._hideModalHandler),this._element.getAttribute("data-bs-original-title")&&this._element.setAttribute("title",this._element.getAttribute("data-bs-original-title")),this._disposePopper(),super.dispose()}show(){if("none"===this._element.style.display)throw new Error("Please use show on visible elements");if(!this._isWithContent()||!this._isEnabled)return;const t=ce.trigger(this._element,this.constructor.eventName("show")),e=(It(this._element)||this._element.ownerDocument.documentElement).contains(this._element);if(t.defaultPrevented||!e)return;this._disposePopper();const n=this._getTipElement();this._element.setAttribute("aria-describedby",n.getAttribute("id"));const{container:i}=this._config;if(this._element.ownerDocument.documentElement.contains(this.tip)||(i.append(n),ce.trigger(this._element,this.constructor.eventName("inserted"))),this._popper=this._createPopper(n),n.classList.add(Te),"ontouchstart"in document.documentElement)for(const t of[].concat(...document.body.children))ce.on(t,"mouseover",Rt);this._queueCallback((()=>{ce.trigger(this._element,this.constructor.eventName("shown")),!1===this._isHovered&&this._leave(),this._isHovered=!1}),this.tip,this._isAnimated())}hide(){if(!this._isShown())return;if(ce.trigger(this._element,this.constructor.eventName("hide")).defaultPrevented)return;if(this._getTipElement().classList.remove(Te),"ontouchstart"in document.documentElement)for(const t of[].concat(...document.body.children))ce.off(t,"mouseover",Rt);this._activeTrigger.click=!1,this._activeTrigger[ke]=!1,this._activeTrigger[De]=!1,this._isHovered=null;this._queueCallback((()=>{this._isWithActiveTrigger()||(this._isHovered||this._disposePopper(),this._element.removeAttribute("aria-describedby"),ce.trigger(this._element,this.constructor.eventName("hidden")))}),this.tip,this._isAnimated())}update(){this._popper&&this._popper.update()}_isWithContent(){return Boolean(this._getTitle())}_getTipElement(){return this.tip||(this.tip=this._createTipElement(this._newContent||this._getContentForTemplate())),this.tip}_createTipElement(t){const e=this._getTemplateFactory(t).toHtml();if(!e)return null;e.classList.remove(Ce,Te),e.classList.add("bs-".concat(this.constructor.NAME,"-auto"));const n=(t=>{do{t+=Math.floor(1e6*Math.random())}while(document.getElementById(t));return t})(this.constructor.NAME).toString();return e.setAttribute("id",n),this._isAnimated()&&e.classList.add(Ce),e}setContent(t){this._newContent=t,this._isShown()&&(this._disposePopper(),this.show())}_getTemplateFactory(t){return this._templateFactory?this._templateFactory.changeContent(t):this._templateFactory=new Oe({...this._config,content:t,extraClass:this._resolvePossibleFunction(this._config.customClass)}),this._templateFactory}_getContentForTemplate(){return{[Le]:this._getTitle()}}_getTitle(){return this._resolvePossibleFunction(this._config.title)||this._element.getAttribute("data-bs-original-title")}_initializeOnDelegatedTarget(t){return this.constructor.getOrCreateInstance(t.delegateTarget,this._getDelegateConfig())}_isAnimated(){return this._config.animation||this.tip&&this.tip.classList.contains(Ce)}_isShown(){return this.tip&&this.tip.classList.contains(Te)}_createPopper(t){const e=Ut(this._config.placement,[this,t,this._element]),n=Me[e.toUpperCase()];return Dt(this._element,t,this._getPopperConfig(n))}_getOffset(){const{offset:t}=this._config;return"string"==typeof t?t.split(",").map((t=>Number.parseInt(t,10))):"function"==typeof t?e=>t(e,this._element):t}_resolvePossibleFunction(t){return Ut(t,[this._element])}_getPopperConfig(t){const e={placement:t,modifiers:[{name:"flip",options:{fallbackPlacements:this._config.fallbackPlacements}},{name:"offset",options:{offset:this._getOffset()}},{name:"preventOverflow",options:{boundary:this._config.boundary}},{name:"arrow",options:{element:".".concat(this.constructor.NAME,"-arrow")}},{name:"preSetPlacement",enabled:!0,phase:"beforeMain",fn:t=>{this._getTipElement().setAttribute("data-popper-placement",t.state.placement)}}]};return{...e,...Ut(this._config.popperConfig,[e])}}_setListeners(){const t=this._config.trigger.split(" ");for(const e of t)if("click"===e)ce.on(this._element,this.constructor.eventName("click"),this._config.selector,(t=>{this._initializeOnDelegatedTarget(t).toggle()}));else if("manual"!==e){const t=e===De?this.constructor.eventName("mouseenter"):this.constructor.eventName("focusin"),n=e===De?this.constructor.eventName("mouseleave"):this.constructor.eventName("focusout");ce.on(this._element,t,this._config.selector,(t=>{const e=this._initializeOnDelegatedTarget(t);e._activeTrigger["focusin"===t.type?ke:De]=!0,e._enter()})),ce.on(this._element,n,this._config.selector,(t=>{const e=this._initializeOnDelegatedTarget(t);e._activeTrigger["focusout"===t.type?ke:De]=e._element.contains(t.relatedTarget),e._leave()}))}this._hideModalHandler=()=>{this._element&&this.hide()},ce.on(this._element.closest(je),Se,this._hideModalHandler)}_fixTitle(){const t=this._element.getAttribute("title");t&&(this._element.getAttribute("aria-label")||this._element.textContent.trim()||this._element.setAttribute("aria-label",t),this._element.setAttribute("data-bs-original-title",t),this._element.removeAttribute("title"))}_enter(){this._isShown()||this._isHovered?this._isHovered=!0:(this._isHovered=!0,this._setTimeout((()=>{this._isHovered&&this.show()}),this._config.delay.show))}_leave(){this._isWithActiveTrigger()||(this._isHovered=!1,this._setTimeout((()=>{this._isHovered||this.hide()}),this._config.delay.hide))}_setTimeout(t,e){clearTimeout(this._timeout),this._timeout=setTimeout(t,e)}_isWithActiveTrigger(){return Object.values(this._activeTrigger).includes(!0)}_getConfig(t){const e=de.getDataAttributes(this._element);for(const t of Object.keys(e))Ae.has(t)&&delete e[t];return t={...e,..."object"==typeof t&&t?t:{}},t=this._mergeConfigObj(t),t=this._configAfterMerge(t),this._typeCheckConfig(t),t}_configAfterMerge(t){return t.container=!1===t.container?document.body:Ht(t.container),"number"==typeof t.delay&&(t.delay={show:t.delay,hide:t.delay}),"number"==typeof t.title&&(t.title=t.title.toString()),"number"==typeof t.content&&(t.content=t.content.toString()),t}_getDelegateConfig(){const t={};for(const[e,n]of Object.entries(this._config))this.constructor.Default[e]!==n&&(t[e]=n);return t.selector=!1,t.trigger="manual",t}_disposePopper(){this._popper&&(this._popper.destroy(),this._popper=null),this.tip&&(this.tip.remove(),this.tip=null)}static jQueryInterface(t){return this.each((function(){const e=Fe.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t])throw new TypeError('No method named "'.concat(t,'"'));e[t]()}}))}}Vt(Fe);const Be=document.getElementById("mode-toggle");function He(t){var e=function(t,e){if("object"!=typeof t||!t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var i=n.call(t,e||"default");if("object"!=typeof i)return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===e?String:Number)(t)}(t,"string");return"symbol"==typeof e?e:e+""}function Ie(t,e,n){return(e=He(e))in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}const Re="sidebar-display";class ze{static toggle(){!1===ze.isExpanded?document.body.setAttribute(Re,""):document.body.removeAttribute(Re),ze.isExpanded=!ze.isExpanded}}Ie(ze,"isExpanded",!1);const We=document.getElementById("sidebar-trigger"),qe=document.getElementById("search-trigger"),Ve=document.getElementById("search-cancel"),Ue=document.querySelectorAll("#main-wrapper>.container>.row"),Ye=document.getElementById("topbar-title"),Ke=document.getElementById("search"),Qe=document.getElementById("search-result-wrapper"),$e=document.getElementById("search-results"),Ge=document.getElementById("search-input"),Xe=document.getElementById("search-hints"),Je="d-block",Ze="d-none",tn="input-focus",en="d-flex";class nn{static on(){We.classList.add(Ze),Ye.classList.add(Ze),qe.classList.add(Ze),Ke.classList.add(en),Ve.classList.add(Je)}static off(){Ve.classList.remove(Je),Ke.classList.remove(en),We.classList.remove(Ze),Ye.classList.remove(Ze),qe.classList.remove(Ze)}}class on{static on(){this.resultVisible||(Qe.classList.remove(Ze),Ue.forEach((t=>{t.classList.add(Ze)})),this.resultVisible=!0)}static off(){this.resultVisible&&($e.innerHTML="",Xe.classList.contains(Ze)&&Xe.classList.remove(Ze),Qe.classList.add(Ze),Ue.forEach((t=>{t.classList.remove(Ze)})),Ge.textContent="",this.resultVisible=!1)}}function rn(){return Ve.classList.contains(Je)}Ie(on,"resultVisible",!1);const sn=".".concat("bs.collapse"),an="show".concat(sn),cn="shown".concat(sn),ln="hide".concat(sn),un="hidden".concat(sn),fn="click".concat(sn).concat(".data-api"),dn="show",pn="collapse",hn="collapsing",mn=":scope .".concat(pn," .").concat(pn),gn='[data-bs-toggle="collapse"]',vn={parent:null,toggle:!0},bn={parent:"(null|element)",toggle:"boolean"};class yn extends he{constructor(t,e){super(t,e),this._isTransitioning=!1,this._triggerArray=[];const n=_e.find(gn);for(const t of n){const e=_e.getSelectorFromElement(t),n=_e.find(e).filter((t=>t===this._element));null!==e&&n.length&&this._triggerArray.push(t)}this._initializeChildren(),this._config.parent||this._addAriaAndCollapsedClass(this._triggerArray,this._isShown()),this._config.toggle&&this.toggle()}static get Default(){return vn}static get DefaultType(){return bn}static get NAME(){return"collapse"}toggle(){this._isShown()?this.hide():this.show()}show(){if(this._isTransitioning||this._isShown())return;let t=[];if(this._config.parent&&(t=this._getFirstLevelChildren(".collapse.show, .collapse.collapsing").filter((t=>t!==this._element)).map((t=>yn.getOrCreateInstance(t,{toggle:!1})))),t.length&&t[0]._isTransitioning)return;if(ce.trigger(this._element,an).defaultPrevented)return;for(const e of t)e.hide();const e=this._getDimension();this._element.classList.remove(pn),this._element.classList.add(hn),this._element.style[e]=0,this._addAriaAndCollapsedClass(this._triggerArray,!0),this._isTransitioning=!0;const n=e[0].toUpperCase()+e.slice(1),i="scroll".concat(n);this._queueCallback((()=>{this._isTransitioning=!1,this._element.classList.remove(hn),this._element.classList.add(pn,dn),this._element.style[e]="",ce.trigger(this._element,cn)}),this._element,!0),this._element.style[e]="".concat(this._element[i],"px")}hide(){if(this._isTransitioning||!this._isShown())return;if(ce.trigger(this._element,ln).defaultPrevented)return;const t=this._getDimension();this._element.style[t]="".concat(this._element.getBoundingClientRect()[t],"px"),this._element.offsetHeight,this._element.classList.add(hn),this._element.classList.remove(pn,dn);for(const t of this._triggerArray){const e=_e.getElementFromSelector(t);e&&!this._isShown(e)&&this._addAriaAndCollapsedClass([t],!1)}this._isTransitioning=!0;this._element.style[t]="",this._queueCallback((()=>{this._isTransitioning=!1,this._element.classList.remove(hn),this._element.classList.add(pn),ce.trigger(this._element,un)}),this._element,!0)}_isShown(){return(arguments.length>0&&void 0!==arguments[0]?arguments[0]:this._element).classList.contains(dn)}_configAfterMerge(t){return t.toggle=Boolean(t.toggle),t.parent=Ht(t.parent),t}_getDimension(){return this._element.classList.contains("collapse-horizontal")?"width":"height"}_initializeChildren(){if(!this._config.parent)return;const t=this._getFirstLevelChildren(gn);for(const e of t){const t=_e.getElementFromSelector(e);t&&this._addAriaAndCollapsedClass([e],this._isShown(t))}}_getFirstLevelChildren(t){const e=_e.find(mn,this._config.parent);return _e.find(t,this._config.parent).filter((t=>!e.includes(t)))}_addAriaAndCollapsedClass(t,e){if(t.length)for(const n of t)n.classList.toggle("collapsed",!e),n.setAttribute("aria-expanded",e)}static jQueryInterface(t){const e={};return"string"==typeof t&&/show|hide/.test(t)&&(e.toggle=!1),this.each((function(){const n=yn.getOrCreateInstance(this,e);if("string"==typeof t){if(void 0===n[t])throw new TypeError('No method named "'.concat(t,'"'));n[t]()}}))}}ce.on(document,fn,gn,(function(t){("A"===t.target.tagName||t.delegateTarget&&"A"===t.delegateTarget.tagName)&&t.preventDefault();for(const t of _e.getMultipleElementsFromSelector(this))yn.getOrCreateInstance(t,{toggle:!1}).toggle()})),Vt(yn),document.getElementsByClassName("collapse");const _n="data-src",wn="data-lqip",En={SHIMMER:"shimmer",BLUR:"blur"};function xn(t){this.parentElement.classList.remove(t)}function On(){this.complete&&(this.hasAttribute(wn)?xn.call(this,En.BLUR):xn.call(this,En.SHIMMER))}function An(){const t=this.getAttribute(_n);this.setAttribute("src",encodeURI(t)),this.removeAttribute(_n)}class Cn{static get attrTimestamp(){return"data-ts"}static get attrDateFormat(){return"data-df"}static get locale(){return document.documentElement.getAttribute("lang").substring(0,2)}static getTimestamp(t){return Number(t.getAttribute(this.attrTimestamp))}static getDateFormat(t){return t.getAttribute(this.attrDateFormat)}}!function(){const t=document.querySelectorAll("article img");if(0===t.length)return;t.forEach((t=>{t.addEventListener("load",On)})),document.querySelectorAll('article img[loading="lazy"]').forEach((t=>{t.complete&&xn.call(t,En.SHIMMER)}));const e=document.querySelectorAll("article img[".concat(wn,'="true"]'));e.length&&e.forEach((t=>{An.call(t)}))}(),dayjs.locale(Cn.locale),dayjs.extend(window.dayjs_plugin_localizedFormat),document.querySelectorAll("[".concat(Cn.attrTimestamp,"]")).forEach((t=>{const e=dayjs.unix(Cn.getTimestamp(t)),n=e.format(Cn.getDateFormat(t));if(t.textContent=n,t.removeAttribute(Cn.attrTimestamp),t.removeAttribute(Cn.attrDateFormat),t.hasAttribute("data-bs-toggle")&&"tooltip"===t.getAttribute("data-bs-toggle")){const n=e.format("llll");t.setAttribute("data-bs-title",n)}})),Be&&Be.addEventListener("click",(()=>{modeToggle.flipMode()})),document.getElementById("sidebar-trigger").addEventListener("click",ze.toggle),document.getElementById("mask").addEventListener("click",ze.toggle),qe.addEventListener("click",(()=>{nn.on(),on.on(),Ge.focus()})),Ve.addEventListener("click",(()=>{nn.off(),on.off()})),Ge.addEventListener("focus",(()=>{Ke.classList.add(tn)})),Ge.addEventListener("focusout",(()=>{Ke.classList.remove(tn)})),Ge.addEventListener("input",(()=>{""===Ge.value?rn()?Xe.classList.remove(Ze):on.off():(on.on(),rn()&&Xe.classList.add(Ze))})),function(){const t=document.getElementById("back-to-top");window.addEventListener("scroll",(()=>{window.scrollY>50?t.classList.add("show"):t.classList.remove("show")})),t.addEventListener("click",(()=>{window.scrollTo({top:0})}))}(),[...document.querySelectorAll('[data-bs-toggle="tooltip"]')].map((t=>new Fe(t)))}(); diff --git a/_site/assets/js/dist/misc.min.js b/_site/assets/js/dist/misc.min.js deleted file mode 100644 index 630b016..0000000 --- a/_site/assets/js/dist/misc.min.js +++ /dev/null @@ -1,4 +0,0 @@ -/*! - * Chirpy v7.0.1 | © 2019 Cotes Chung | MIT Licensed | https://github.com/cotes2020/jekyll-theme-chirpy/ - */ -!function(){"use strict";var t="top",e="bottom",n="right",i="left",o="auto",r=[t,e,n,i],s="start",a="end",c="clippingParents",l="viewport",u="popper",f="reference",d=r.reduce((function(t,e){return t.concat([e+"-"+s,e+"-"+a])}),[]),p=[].concat(r,[o]).reduce((function(t,e){return t.concat([e,e+"-"+s,e+"-"+a])}),[]),h="beforeRead",m="read",g="afterRead",v="beforeMain",b="main",y="afterMain",_="beforeWrite",w="write",E="afterWrite",x=[h,m,g,v,b,y,_,w,E];function O(t){return t?(t.nodeName||"").toLowerCase():null}function A(t){if(null==t)return window;if("[object Window]"!==t.toString()){var e=t.ownerDocument;return e&&e.defaultView||window}return t}function C(t){return t instanceof A(t).Element||t instanceof Element}function T(t){return t instanceof A(t).HTMLElement||t instanceof HTMLElement}function L(t){return"undefined"!=typeof ShadowRoot&&(t instanceof A(t).ShadowRoot||t instanceof ShadowRoot)}var j={name:"applyStyles",enabled:!0,phase:"write",fn:function(t){var e=t.state;Object.keys(e.elements).forEach((function(t){var n=e.styles[t]||{},i=e.attributes[t]||{},o=e.elements[t];T(o)&&O(o)&&(Object.assign(o.style,n),Object.keys(i).forEach((function(t){var e=i[t];!1===e?o.removeAttribute(t):o.setAttribute(t,!0===e?"":e)})))}))},effect:function(t){var e=t.state,n={popper:{position:e.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(e.elements.popper.style,n.popper),e.styles=n,e.elements.arrow&&Object.assign(e.elements.arrow.style,n.arrow),function(){Object.keys(e.elements).forEach((function(t){var i=e.elements[t],o=e.attributes[t]||{},r=Object.keys(e.styles.hasOwnProperty(t)?e.styles[t]:n[t]).reduce((function(t,e){return t[e]="",t}),{});T(i)&&O(i)&&(Object.assign(i.style,r),Object.keys(o).forEach((function(t){i.removeAttribute(t)})))}))}},requires:["computeStyles"]};function S(t){return t.split("-")[0]}var D=Math.max,k=Math.min,P=Math.round;function N(){var t=navigator.userAgentData;return null!=t&&t.brands&&Array.isArray(t.brands)?t.brands.map((function(t){return t.brand+"/"+t.version})).join(" "):navigator.userAgent}function M(){return!/^((?!chrome|android).)*safari/i.test(N())}function F(t,e,n){void 0===e&&(e=!1),void 0===n&&(n=!1);var i=t.getBoundingClientRect(),o=1,r=1;e&&T(t)&&(o=t.offsetWidth>0&&P(i.width)/t.offsetWidth||1,r=t.offsetHeight>0&&P(i.height)/t.offsetHeight||1);var s=(C(t)?A(t):window).visualViewport,a=!M()&&n,c=(i.left+(a&&s?s.offsetLeft:0))/o,l=(i.top+(a&&s?s.offsetTop:0))/r,u=i.width/o,f=i.height/r;return{width:u,height:f,top:l,right:c+u,bottom:l+f,left:c,x:c,y:l}}function B(t){var e=F(t),n=t.offsetWidth,i=t.offsetHeight;return Math.abs(e.width-n)<=1&&(n=e.width),Math.abs(e.height-i)<=1&&(i=e.height),{x:t.offsetLeft,y:t.offsetTop,width:n,height:i}}function H(t,e){var n=e.getRootNode&&e.getRootNode();if(t.contains(e))return!0;if(n&&L(n)){var i=e;do{if(i&&t.isSameNode(i))return!0;i=i.parentNode||i.host}while(i)}return!1}function I(t){return A(t).getComputedStyle(t)}function z(t){return["table","td","th"].indexOf(O(t))>=0}function W(t){return((C(t)?t.ownerDocument:t.document)||window.document).documentElement}function R(t){return"html"===O(t)?t:t.assignedSlot||t.parentNode||(L(t)?t.host:null)||W(t)}function q(t){return T(t)&&"fixed"!==I(t).position?t.offsetParent:null}function V(t){for(var e=A(t),n=q(t);n&&z(n)&&"static"===I(n).position;)n=q(n);return n&&("html"===O(n)||"body"===O(n)&&"static"===I(n).position)?e:n||function(t){var e=/firefox/i.test(N());if(/Trident/i.test(N())&&T(t)&&"fixed"===I(t).position)return null;var n=R(t);for(L(n)&&(n=n.host);T(n)&&["html","body"].indexOf(O(n))<0;){var i=I(n);if("none"!==i.transform||"none"!==i.perspective||"paint"===i.contain||-1!==["transform","perspective"].indexOf(i.willChange)||e&&"filter"===i.willChange||e&&i.filter&&"none"!==i.filter)return n;n=n.parentNode}return null}(t)||e}function Y(t){return["top","bottom"].indexOf(t)>=0?"x":"y"}function U(t,e,n){return D(t,k(e,n))}function K(t){return Object.assign({},{top:0,right:0,bottom:0,left:0},t)}function Q(t,e){return e.reduce((function(e,n){return e[n]=t,e}),{})}var $={name:"arrow",enabled:!0,phase:"main",fn:function(o){var s,a=o.state,c=o.name,l=o.options,u=a.elements.arrow,f=a.modifiersData.popperOffsets,d=S(a.placement),p=Y(d),h=[i,n].indexOf(d)>=0?"height":"width";if(u&&f){var m=function(t,e){return K("number"!=typeof(t="function"==typeof t?t(Object.assign({},e.rects,{placement:e.placement})):t)?t:Q(t,r))}(l.padding,a),g=B(u),v="y"===p?t:i,b="y"===p?e:n,y=a.rects.reference[h]+a.rects.reference[p]-f[p]-a.rects.popper[h],_=f[p]-a.rects.reference[p],w=V(u),E=w?"y"===p?w.clientHeight||0:w.clientWidth||0:0,x=y/2-_/2,O=m[v],A=E-g[h]-m[b],C=E/2-g[h]/2+x,T=U(O,C,A),L=p;a.modifiersData[c]=((s={})[L]=T,s.centerOffset=T-C,s)}},effect:function(t){var e=t.state,n=t.options.element,i=void 0===n?"[data-popper-arrow]":n;null!=i&&("string"!=typeof i||(i=e.elements.popper.querySelector(i)))&&H(e.elements.popper,i)&&(e.elements.arrow=i)},requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function G(t){return t.split("-")[1]}var X={top:"auto",right:"auto",bottom:"auto",left:"auto"};function J(o){var r,s=o.popper,c=o.popperRect,l=o.placement,u=o.variation,f=o.offsets,d=o.position,p=o.gpuAcceleration,h=o.adaptive,m=o.roundOffsets,g=o.isFixed,v=f.x,b=void 0===v?0:v,y=f.y,_=void 0===y?0:y,w="function"==typeof m?m({x:b,y:_}):{x:b,y:_};b=w.x,_=w.y;var E=f.hasOwnProperty("x"),x=f.hasOwnProperty("y"),O=i,C=t,T=window;if(h){var L=V(s),j="clientHeight",S="clientWidth";if(L===A(s)&&"static"!==I(L=W(s)).position&&"absolute"===d&&(j="scrollHeight",S="scrollWidth"),l===t||(l===i||l===n)&&u===a)C=e,_-=(g&&L===T&&T.visualViewport?T.visualViewport.height:L[j])-c.height,_*=p?1:-1;if(l===i||(l===t||l===e)&&u===a)O=n,b-=(g&&L===T&&T.visualViewport?T.visualViewport.width:L[S])-c.width,b*=p?1:-1}var D,k=Object.assign({position:d},h&&X),N=!0===m?function(t,e){var n=t.x,i=t.y,o=e.devicePixelRatio||1;return{x:P(n*o)/o||0,y:P(i*o)/o||0}}({x:b,y:_},A(s)):{x:b,y:_};return b=N.x,_=N.y,p?Object.assign({},k,((D={})[C]=x?"0":"",D[O]=E?"0":"",D.transform=(T.devicePixelRatio||1)<=1?"translate("+b+"px, "+_+"px)":"translate3d("+b+"px, "+_+"px, 0)",D)):Object.assign({},k,((r={})[C]=x?_+"px":"",r[O]=E?b+"px":"",r.transform="",r))}var Z={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:function(t){var e=t.state,n=t.options,i=n.gpuAcceleration,o=void 0===i||i,r=n.adaptive,s=void 0===r||r,a=n.roundOffsets,c=void 0===a||a,l={placement:S(e.placement),variation:G(e.placement),popper:e.elements.popper,popperRect:e.rects.popper,gpuAcceleration:o,isFixed:"fixed"===e.options.strategy};null!=e.modifiersData.popperOffsets&&(e.styles.popper=Object.assign({},e.styles.popper,J(Object.assign({},l,{offsets:e.modifiersData.popperOffsets,position:e.options.strategy,adaptive:s,roundOffsets:c})))),null!=e.modifiersData.arrow&&(e.styles.arrow=Object.assign({},e.styles.arrow,J(Object.assign({},l,{offsets:e.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:c})))),e.attributes.popper=Object.assign({},e.attributes.popper,{"data-popper-placement":e.placement})},data:{}},tt={passive:!0};var et={name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:function(t){var e=t.state,n=t.instance,i=t.options,o=i.scroll,r=void 0===o||o,s=i.resize,a=void 0===s||s,c=A(e.elements.popper),l=[].concat(e.scrollParents.reference,e.scrollParents.popper);return r&&l.forEach((function(t){t.addEventListener("scroll",n.update,tt)})),a&&c.addEventListener("resize",n.update,tt),function(){r&&l.forEach((function(t){t.removeEventListener("scroll",n.update,tt)})),a&&c.removeEventListener("resize",n.update,tt)}},data:{}},nt={left:"right",right:"left",bottom:"top",top:"bottom"};function it(t){return t.replace(/left|right|bottom|top/g,(function(t){return nt[t]}))}var ot={start:"end",end:"start"};function rt(t){return t.replace(/start|end/g,(function(t){return ot[t]}))}function st(t){var e=A(t);return{scrollLeft:e.pageXOffset,scrollTop:e.pageYOffset}}function at(t){return F(W(t)).left+st(t).scrollLeft}function ct(t){var e=I(t),n=e.overflow,i=e.overflowX,o=e.overflowY;return/auto|scroll|overlay|hidden/.test(n+o+i)}function lt(t){return["html","body","#document"].indexOf(O(t))>=0?t.ownerDocument.body:T(t)&&ct(t)?t:lt(R(t))}function ut(t,e){var n;void 0===e&&(e=[]);var i=lt(t),o=i===(null==(n=t.ownerDocument)?void 0:n.body),r=A(i),s=o?[r].concat(r.visualViewport||[],ct(i)?i:[]):i,a=e.concat(s);return o?a:a.concat(ut(R(s)))}function ft(t){return Object.assign({},t,{left:t.x,top:t.y,right:t.x+t.width,bottom:t.y+t.height})}function dt(t,e,n){return e===l?ft(function(t,e){var n=A(t),i=W(t),o=n.visualViewport,r=i.clientWidth,s=i.clientHeight,a=0,c=0;if(o){r=o.width,s=o.height;var l=M();(l||!l&&"fixed"===e)&&(a=o.offsetLeft,c=o.offsetTop)}return{width:r,height:s,x:a+at(t),y:c}}(t,n)):C(e)?function(t,e){var n=F(t,!1,"fixed"===e);return n.top=n.top+t.clientTop,n.left=n.left+t.clientLeft,n.bottom=n.top+t.clientHeight,n.right=n.left+t.clientWidth,n.width=t.clientWidth,n.height=t.clientHeight,n.x=n.left,n.y=n.top,n}(e,n):ft(function(t){var e,n=W(t),i=st(t),o=null==(e=t.ownerDocument)?void 0:e.body,r=D(n.scrollWidth,n.clientWidth,o?o.scrollWidth:0,o?o.clientWidth:0),s=D(n.scrollHeight,n.clientHeight,o?o.scrollHeight:0,o?o.clientHeight:0),a=-i.scrollLeft+at(t),c=-i.scrollTop;return"rtl"===I(o||n).direction&&(a+=D(n.clientWidth,o?o.clientWidth:0)-r),{width:r,height:s,x:a,y:c}}(W(t)))}function pt(t,e,n,i){var o="clippingParents"===e?function(t){var e=ut(R(t)),n=["absolute","fixed"].indexOf(I(t).position)>=0&&T(t)?V(t):t;return C(n)?e.filter((function(t){return C(t)&&H(t,n)&&"body"!==O(t)})):[]}(t):[].concat(e),r=[].concat(o,[n]),s=r[0],a=r.reduce((function(e,n){var o=dt(t,n,i);return e.top=D(o.top,e.top),e.right=k(o.right,e.right),e.bottom=k(o.bottom,e.bottom),e.left=D(o.left,e.left),e}),dt(t,s,i));return a.width=a.right-a.left,a.height=a.bottom-a.top,a.x=a.left,a.y=a.top,a}function ht(o){var r,c=o.reference,l=o.element,u=o.placement,f=u?S(u):null,d=u?G(u):null,p=c.x+c.width/2-l.width/2,h=c.y+c.height/2-l.height/2;switch(f){case t:r={x:p,y:c.y-l.height};break;case e:r={x:p,y:c.y+c.height};break;case n:r={x:c.x+c.width,y:h};break;case i:r={x:c.x-l.width,y:h};break;default:r={x:c.x,y:c.y}}var m=f?Y(f):null;if(null!=m){var g="y"===m?"height":"width";switch(d){case s:r[m]=r[m]-(c[g]/2-l[g]/2);break;case a:r[m]=r[m]+(c[g]/2-l[g]/2)}}return r}function mt(i,o){void 0===o&&(o={});var s=o,a=s.placement,d=void 0===a?i.placement:a,p=s.strategy,h=void 0===p?i.strategy:p,m=s.boundary,g=void 0===m?c:m,v=s.rootBoundary,b=void 0===v?l:v,y=s.elementContext,_=void 0===y?u:y,w=s.altBoundary,E=void 0!==w&&w,x=s.padding,O=void 0===x?0:x,A=K("number"!=typeof O?O:Q(O,r)),T=_===u?f:u,L=i.rects.popper,j=i.elements[E?T:_],S=pt(C(j)?j:j.contextElement||W(i.elements.popper),g,b,h),D=F(i.elements.reference),k=ht({reference:D,element:L,strategy:"absolute",placement:d}),P=ft(Object.assign({},L,k)),N=_===u?P:D,M={top:S.top-N.top+A.top,bottom:N.bottom-S.bottom+A.bottom,left:S.left-N.left+A.left,right:N.right-S.right+A.right},B=i.modifiersData.offset;if(_===u&&B){var H=B[d];Object.keys(M).forEach((function(i){var o=[n,e].indexOf(i)>=0?1:-1,r=[t,e].indexOf(i)>=0?"y":"x";M[i]+=H[r]*o}))}return M}function gt(t,e){void 0===e&&(e={});var n=e,i=n.placement,o=n.boundary,s=n.rootBoundary,a=n.padding,c=n.flipVariations,l=n.allowedAutoPlacements,u=void 0===l?p:l,f=G(i),h=f?c?d:d.filter((function(t){return G(t)===f})):r,m=h.filter((function(t){return u.indexOf(t)>=0}));0===m.length&&(m=h);var g=m.reduce((function(e,n){return e[n]=mt(t,{placement:n,boundary:o,rootBoundary:s,padding:a})[S(n)],e}),{});return Object.keys(g).sort((function(t,e){return g[t]-g[e]}))}var vt={name:"flip",enabled:!0,phase:"main",fn:function(r){var a=r.state,c=r.options,l=r.name;if(!a.modifiersData[l]._skip){for(var u=c.mainAxis,f=void 0===u||u,d=c.altAxis,p=void 0===d||d,h=c.fallbackPlacements,m=c.padding,g=c.boundary,v=c.rootBoundary,b=c.altBoundary,y=c.flipVariations,_=void 0===y||y,w=c.allowedAutoPlacements,E=a.options.placement,x=S(E),O=h||(x===E||!_?[it(E)]:function(t){if(S(t)===o)return[];var e=it(t);return[rt(t),e,rt(e)]}(E)),A=[E].concat(O).reduce((function(t,e){return t.concat(S(e)===o?gt(a,{placement:e,boundary:g,rootBoundary:v,padding:m,flipVariations:_,allowedAutoPlacements:w}):e)}),[]),C=a.rects.reference,T=a.rects.popper,L=new Map,j=!0,D=A[0],k=0;k=0,B=F?"width":"height",H=mt(a,{placement:P,boundary:g,rootBoundary:v,altBoundary:b,padding:m}),I=F?M?n:i:M?e:t;C[B]>T[B]&&(I=it(I));var z=it(I),W=[];if(f&&W.push(H[N]<=0),p&&W.push(H[I]<=0,H[z]<=0),W.every((function(t){return t}))){D=P,j=!1;break}L.set(P,W)}if(j)for(var R=function(t){var e=A.find((function(e){var n=L.get(e);if(n)return n.slice(0,t).every((function(t){return t}))}));if(e)return D=e,"break"},q=_?3:1;q>0;q--){if("break"===R(q))break}a.placement!==D&&(a.modifiersData[l]._skip=!0,a.placement=D,a.reset=!0)}},requiresIfExists:["offset"],data:{_skip:!1}};function bt(t,e,n){return void 0===n&&(n={x:0,y:0}),{top:t.top-e.height-n.y,right:t.right-e.width+n.x,bottom:t.bottom-e.height+n.y,left:t.left-e.width-n.x}}function yt(o){return[t,n,e,i].some((function(t){return o[t]>=0}))}var _t={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:function(t){var e=t.state,n=t.name,i=e.rects.reference,o=e.rects.popper,r=e.modifiersData.preventOverflow,s=mt(e,{elementContext:"reference"}),a=mt(e,{altBoundary:!0}),c=bt(s,i),l=bt(a,o,r),u=yt(c),f=yt(l);e.modifiersData[n]={referenceClippingOffsets:c,popperEscapeOffsets:l,isReferenceHidden:u,hasPopperEscaped:f},e.attributes.popper=Object.assign({},e.attributes.popper,{"data-popper-reference-hidden":u,"data-popper-escaped":f})}};var wt={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:function(e){var o=e.state,r=e.options,s=e.name,a=r.offset,c=void 0===a?[0,0]:a,l=p.reduce((function(e,r){return e[r]=function(e,o,r){var s=S(e),a=[i,t].indexOf(s)>=0?-1:1,c="function"==typeof r?r(Object.assign({},o,{placement:e})):r,l=c[0],u=c[1];return l=l||0,u=(u||0)*a,[i,n].indexOf(s)>=0?{x:u,y:l}:{x:l,y:u}}(r,o.rects,c),e}),{}),u=l[o.placement],f=u.x,d=u.y;null!=o.modifiersData.popperOffsets&&(o.modifiersData.popperOffsets.x+=f,o.modifiersData.popperOffsets.y+=d),o.modifiersData[s]=l}};var Et={name:"popperOffsets",enabled:!0,phase:"read",fn:function(t){var e=t.state,n=t.name;e.modifiersData[n]=ht({reference:e.rects.reference,element:e.rects.popper,strategy:"absolute",placement:e.placement})},data:{}};var xt={name:"preventOverflow",enabled:!0,phase:"main",fn:function(o){var r=o.state,a=o.options,c=o.name,l=a.mainAxis,u=void 0===l||l,f=a.altAxis,d=void 0!==f&&f,p=a.boundary,h=a.rootBoundary,m=a.altBoundary,g=a.padding,v=a.tether,b=void 0===v||v,y=a.tetherOffset,_=void 0===y?0:y,w=mt(r,{boundary:p,rootBoundary:h,padding:g,altBoundary:m}),E=S(r.placement),x=G(r.placement),O=!x,A=Y(E),C="x"===A?"y":"x",T=r.modifiersData.popperOffsets,L=r.rects.reference,j=r.rects.popper,P="function"==typeof _?_(Object.assign({},r.rects,{placement:r.placement})):_,N="number"==typeof P?{mainAxis:P,altAxis:P}:Object.assign({mainAxis:0,altAxis:0},P),M=r.modifiersData.offset?r.modifiersData.offset[r.placement]:null,F={x:0,y:0};if(T){if(u){var H,I="y"===A?t:i,z="y"===A?e:n,W="y"===A?"height":"width",R=T[A],q=R+w[I],K=R-w[z],Q=b?-j[W]/2:0,$=x===s?L[W]:j[W],X=x===s?-j[W]:-L[W],J=r.elements.arrow,Z=b&&J?B(J):{width:0,height:0},tt=r.modifiersData["arrow#persistent"]?r.modifiersData["arrow#persistent"].padding:{top:0,right:0,bottom:0,left:0},et=tt[I],nt=tt[z],it=U(0,L[W],Z[W]),ot=O?L[W]/2-Q-it-et-N.mainAxis:$-it-et-N.mainAxis,rt=O?-L[W]/2+Q+it+nt+N.mainAxis:X+it+nt+N.mainAxis,st=r.elements.arrow&&V(r.elements.arrow),at=st?"y"===A?st.clientTop||0:st.clientLeft||0:0,ct=null!=(H=null==M?void 0:M[A])?H:0,lt=R+rt-ct,ut=U(b?k(q,R+ot-ct-at):q,R,b?D(K,lt):K);T[A]=ut,F[A]=ut-R}if(d){var ft,dt="x"===A?t:i,pt="x"===A?e:n,ht=T[C],gt="y"===C?"height":"width",vt=ht+w[dt],bt=ht-w[pt],yt=-1!==[t,i].indexOf(E),_t=null!=(ft=null==M?void 0:M[C])?ft:0,wt=yt?vt:ht-L[gt]-j[gt]-_t+N.altAxis,Et=yt?ht+L[gt]+j[gt]-_t-N.altAxis:bt,xt=b&&yt?function(t,e,n){var i=U(t,e,n);return i>n?n:i}(wt,ht,Et):U(b?wt:vt,ht,b?Et:bt);T[C]=xt,F[C]=xt-ht}r.modifiersData[c]=F}},requiresIfExists:["offset"]};function Ot(t,e,n){void 0===n&&(n=!1);var i,o,r=T(e),s=T(e)&&function(t){var e=t.getBoundingClientRect(),n=P(e.width)/t.offsetWidth||1,i=P(e.height)/t.offsetHeight||1;return 1!==n||1!==i}(e),a=W(e),c=F(t,s,n),l={scrollLeft:0,scrollTop:0},u={x:0,y:0};return(r||!r&&!n)&&(("body"!==O(e)||ct(a))&&(l=(i=e)!==A(i)&&T(i)?{scrollLeft:(o=i).scrollLeft,scrollTop:o.scrollTop}:st(i)),T(e)?((u=F(e,!0)).x+=e.clientLeft,u.y+=e.clientTop):a&&(u.x=at(a))),{x:c.left+l.scrollLeft-u.x,y:c.top+l.scrollTop-u.y,width:c.width,height:c.height}}function At(t){var e=new Map,n=new Set,i=[];function o(t){n.add(t.name),[].concat(t.requires||[],t.requiresIfExists||[]).forEach((function(t){if(!n.has(t)){var i=e.get(t);i&&o(i)}})),i.push(t)}return t.forEach((function(t){e.set(t.name,t)})),t.forEach((function(t){n.has(t.name)||o(t)})),i}var Ct={placement:"bottom",modifiers:[],strategy:"absolute"};function Tt(){for(var t=arguments.length,e=new Array(t),n=0;nPt.has(t)&&Pt.get(t).get(e)||null,remove(t,e){if(!Pt.has(t))return;const n=Pt.get(t);n.delete(e),0===n.size&&Pt.delete(t)}};const Mt="transitionend",Ft=t=>(t&&window.CSS&&window.CSS.escape&&(t=t.replace(/#([^\s"#']+)/g,((t,e)=>"#".concat(CSS.escape(e))))),t),Bt=t=>!(!t||"object"!=typeof t)&&(void 0!==t.jquery&&(t=t[0]),void 0!==t.nodeType),Ht=t=>Bt(t)?t.jquery?t[0]:t:"string"==typeof t&&t.length>0?document.querySelector(Ft(t)):null,It=t=>{if(!document.documentElement.attachShadow)return null;if("function"==typeof t.getRootNode){const e=t.getRootNode();return e instanceof ShadowRoot?e:null}return t instanceof ShadowRoot?t:t.parentNode?It(t.parentNode):null},zt=()=>{},Wt=()=>window.jQuery&&!document.body.hasAttribute("data-bs-no-jquery")?window.jQuery:null,Rt=[],qt=()=>"rtl"===document.documentElement.dir,Vt=t=>{var e;e=()=>{const e=Wt();if(e){const n=t.NAME,i=e.fn[n];e.fn[n]=t.jQueryInterface,e.fn[n].Constructor=t,e.fn[n].noConflict=()=>(e.fn[n]=i,t.jQueryInterface)}},"loading"===document.readyState?(Rt.length||document.addEventListener("DOMContentLoaded",(()=>{for(const t of Rt)t()})),Rt.push(e)):e()},Yt=function(t){let e=arguments.length>2&&void 0!==arguments[2]?arguments[2]:t;return"function"==typeof t?t(...arguments.length>1&&void 0!==arguments[1]?arguments[1]:[]):e},Ut=function(t,e){if(!(!(arguments.length>2&&void 0!==arguments[2])||arguments[2]))return void Yt(t);const n=(t=>{if(!t)return 0;let{transitionDuration:e,transitionDelay:n}=window.getComputedStyle(t);const i=Number.parseFloat(e),o=Number.parseFloat(n);return i||o?(e=e.split(",")[0],n=n.split(",")[0],1e3*(Number.parseFloat(e)+Number.parseFloat(n))):0})(e)+5;let i=!1;const o=n=>{let{target:r}=n;r===e&&(i=!0,e.removeEventListener(Mt,o),Yt(t))};e.addEventListener(Mt,o),setTimeout((()=>{i||e.dispatchEvent(new Event(Mt))}),n)},Kt=/[^.]*(?=\..*)\.|.*/,Qt=/\..*/,$t=/::\d+$/,Gt={};let Xt=1;const Jt={mouseenter:"mouseover",mouseleave:"mouseout"},Zt=new Set(["click","dblclick","mouseup","mousedown","contextmenu","mousewheel","DOMMouseScroll","mouseover","mouseout","mousemove","selectstart","selectend","keydown","keypress","keyup","orientationchange","touchstart","touchmove","touchend","touchcancel","pointerdown","pointermove","pointerup","pointerleave","pointercancel","gesturestart","gesturechange","gestureend","focus","blur","change","reset","select","submit","focusin","focusout","load","unload","beforeunload","resize","move","DOMContentLoaded","readystatechange","error","abort","scroll"]);function te(t,e){return e&&"".concat(e,"::").concat(Xt++)||t.uidEvent||Xt++}function ee(t){const e=te(t);return t.uidEvent=e,Gt[e]=Gt[e]||{},Gt[e]}function ne(t,e){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;return Object.values(t).find((t=>t.callable===e&&t.delegationSelector===n))}function ie(t,e,n){const i="string"==typeof e,o=i?n:e||n;let r=ae(t);return Zt.has(r)||(r=t),[i,o,r]}function oe(t,e,n,i,o){if("string"!=typeof e||!t)return;let[r,s,a]=ie(e,n,i);if(e in Jt){const t=t=>function(e){if(!e.relatedTarget||e.relatedTarget!==e.delegateTarget&&!e.delegateTarget.contains(e.relatedTarget))return t.call(this,e)};s=t(s)}const c=ee(t),l=c[a]||(c[a]={}),u=ne(l,s,r?n:null);if(u)return void(u.oneOff=u.oneOff&&o);const f=te(s,e.replace(Kt,"")),d=r?function(t,e,n){return function i(o){const r=t.querySelectorAll(e);for(let{target:s}=o;s&&s!==this;s=s.parentNode)for(const a of r)if(a===s)return le(o,{delegateTarget:s}),i.oneOff&&ce.off(t,o.type,e,n),n.apply(s,[o])}}(t,n,s):function(t,e){return function n(i){return le(i,{delegateTarget:t}),n.oneOff&&ce.off(t,i.type,e),e.apply(t,[i])}}(t,s);d.delegationSelector=r?n:null,d.callable=s,d.oneOff=o,d.uidEvent=f,l[f]=d,t.addEventListener(a,d,r)}function re(t,e,n,i,o){const r=ne(e[n],i,o);r&&(t.removeEventListener(n,r,Boolean(o)),delete e[n][r.uidEvent])}function se(t,e,n,i){const o=e[n]||{};for(const[r,s]of Object.entries(o))r.includes(i)&&re(t,e,n,s.callable,s.delegationSelector)}function ae(t){return t=t.replace(Qt,""),Jt[t]||t}const ce={on(t,e,n,i){oe(t,e,n,i,!1)},one(t,e,n,i){oe(t,e,n,i,!0)},off(t,e,n,i){if("string"!=typeof e||!t)return;const[o,r,s]=ie(e,n,i),a=s!==e,c=ee(t),l=c[s]||{},u=e.startsWith(".");if(void 0===r){if(u)for(const n of Object.keys(c))se(t,c,n,e.slice(1));for(const[n,i]of Object.entries(l)){const o=n.replace($t,"");a&&!e.includes(o)||re(t,c,s,i.callable,i.delegationSelector)}}else{if(!Object.keys(l).length)return;re(t,c,s,r,o?n:null)}},trigger(t,e,n){if("string"!=typeof e||!t)return null;const i=Wt();let o=null,r=!0,s=!0,a=!1;e!==ae(e)&&i&&(o=i.Event(e,n),i(t).trigger(o),r=!o.isPropagationStopped(),s=!o.isImmediatePropagationStopped(),a=o.isDefaultPrevented());const c=le(new Event(e,{bubbles:r,cancelable:!0}),n);return a&&c.preventDefault(),s&&t.dispatchEvent(c),c.defaultPrevented&&o&&o.preventDefault(),c}};function le(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};for(const[n,i]of Object.entries(e))try{t[n]=i}catch{Object.defineProperty(t,n,{configurable:!0,get:()=>i})}return t}function ue(t){if("true"===t)return!0;if("false"===t)return!1;if(t===Number(t).toString())return Number(t);if(""===t||"null"===t)return null;if("string"!=typeof t)return t;try{return JSON.parse(decodeURIComponent(t))}catch{return t}}function fe(t){return t.replace(/[A-Z]/g,(t=>"-".concat(t.toLowerCase())))}const de={setDataAttribute(t,e,n){t.setAttribute("data-bs-".concat(fe(e)),n)},removeDataAttribute(t,e){t.removeAttribute("data-bs-".concat(fe(e)))},getDataAttributes(t){if(!t)return{};const e={},n=Object.keys(t.dataset).filter((t=>t.startsWith("bs")&&!t.startsWith("bsConfig")));for(const i of n){let n=i.replace(/^bs/,"");n=n.charAt(0).toLowerCase()+n.slice(1,n.length),e[n]=ue(t.dataset[i])}return e},getDataAttribute:(t,e)=>ue(t.getAttribute("data-bs-".concat(fe(e))))};class pe{static get Default(){return{}}static get DefaultType(){return{}}static get NAME(){throw new Error('You have to implement the static method "NAME", for each component!')}_getConfig(t){return t=this._mergeConfigObj(t),t=this._configAfterMerge(t),this._typeCheckConfig(t),t}_configAfterMerge(t){return t}_mergeConfigObj(t,e){const n=Bt(e)?de.getDataAttribute(e,"config"):{};return{...this.constructor.Default,..."object"==typeof n?n:{},...Bt(e)?de.getDataAttributes(e):{},..."object"==typeof t?t:{}}}_typeCheckConfig(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.constructor.DefaultType;for(const[i,o]of Object.entries(e)){const e=t[i],r=Bt(e)?"element":null==(n=e)?"".concat(n):Object.prototype.toString.call(n).match(/\s([a-z]+)/i)[1].toLowerCase();if(!new RegExp(o).test(r))throw new TypeError("".concat(this.constructor.NAME.toUpperCase(),': Option "').concat(i,'" provided type "').concat(r,'" but expected type "').concat(o,'".'))}var n}}class he extends pe{constructor(t,e){super(),(t=Ht(t))&&(this._element=t,this._config=this._getConfig(e),Nt.set(this._element,this.constructor.DATA_KEY,this))}dispose(){Nt.remove(this._element,this.constructor.DATA_KEY),ce.off(this._element,this.constructor.EVENT_KEY);for(const t of Object.getOwnPropertyNames(this))this[t]=null}_queueCallback(t,e){Ut(t,e,!(arguments.length>2&&void 0!==arguments[2])||arguments[2])}_getConfig(t){return t=this._mergeConfigObj(t,this._element),t=this._configAfterMerge(t),this._typeCheckConfig(t),t}static getInstance(t){return Nt.get(Ht(t),this.DATA_KEY)}static getOrCreateInstance(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.getInstance(t)||new this(t,"object"==typeof e?e:null)}static get VERSION(){return"5.3.3"}static get DATA_KEY(){return"bs.".concat(this.NAME)}static get EVENT_KEY(){return".".concat(this.DATA_KEY)}static eventName(t){return"".concat(t).concat(this.EVENT_KEY)}}const me={"*":["class","dir","id","lang","role",/^aria-[\w-]*$/i],a:["target","href","title","rel"],area:[],b:[],br:[],col:[],code:[],dd:[],div:[],dl:[],dt:[],em:[],hr:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],i:[],img:["src","srcset","alt","title","width","height"],li:[],ol:[],p:[],pre:[],s:[],small:[],span:[],sub:[],sup:[],strong:[],u:[],ul:[]},ge=new Set(["background","cite","href","itemtype","longdesc","poster","src","xlink:href"]),ve=/^(?!javascript:)(?:[a-z0-9+.-]+:|[^&:/?#]*(?:[/?#]|$))/i,be=(t,e)=>{const n=t.nodeName.toLowerCase();return e.includes(n)?!ge.has(n)||Boolean(ve.test(t.nodeValue)):e.filter((t=>t instanceof RegExp)).some((t=>t.test(n)))};const ye=t=>{let e=t.getAttribute("data-bs-target");if(!e||"#"===e){let n=t.getAttribute("href");if(!n||!n.includes("#")&&!n.startsWith("."))return null;n.includes("#")&&!n.startsWith("#")&&(n="#".concat(n.split("#")[1])),e=n&&"#"!==n?n.trim():null}return e?e.split(",").map((t=>Ft(t))).join(","):null},_e={find(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:document.documentElement;return[].concat(...Element.prototype.querySelectorAll.call(e,t))},findOne(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:document.documentElement;return Element.prototype.querySelector.call(e,t)},children:(t,e)=>[].concat(...t.children).filter((t=>t.matches(e))),parents(t,e){const n=[];let i=t.parentNode.closest(e);for(;i;)n.push(i),i=i.parentNode.closest(e);return n},prev(t,e){let n=t.previousElementSibling;for(;n;){if(n.matches(e))return[n];n=n.previousElementSibling}return[]},next(t,e){let n=t.nextElementSibling;for(;n;){if(n.matches(e))return[n];n=n.nextElementSibling}return[]},focusableChildren(t){const e=["a","button","input","textarea","select","details","[tabindex]",'[contenteditable="true"]'].map((t=>"".concat(t,':not([tabindex^="-"])'))).join(",");return this.find(e,t).filter((t=>!(t=>!t||t.nodeType!==Node.ELEMENT_NODE||!!t.classList.contains("disabled")||(void 0!==t.disabled?t.disabled:t.hasAttribute("disabled")&&"false"!==t.getAttribute("disabled")))(t)&&(t=>{if(!Bt(t)||0===t.getClientRects().length)return!1;const e="visible"===getComputedStyle(t).getPropertyValue("visibility"),n=t.closest("details:not([open])");if(!n)return e;if(n!==t){const e=t.closest("summary");if(e&&e.parentNode!==n)return!1;if(null===e)return!1}return e})(t)))},getSelectorFromElement(t){const e=ye(t);return e&&_e.findOne(e)?e:null},getElementFromSelector(t){const e=ye(t);return e?_e.findOne(e):null},getMultipleElementsFromSelector(t){const e=ye(t);return e?_e.find(e):[]}},we={allowList:me,content:{},extraClass:"",html:!1,sanitize:!0,sanitizeFn:null,template:"
"},Ee={allowList:"object",content:"object",extraClass:"(string|function)",html:"boolean",sanitize:"boolean",sanitizeFn:"(null|function)",template:"string"},xe={entry:"(string|element|function|null)",selector:"(string|element)"};class Oe extends pe{constructor(t){super(),this._config=this._getConfig(t)}static get Default(){return we}static get DefaultType(){return Ee}static get NAME(){return"TemplateFactory"}getContent(){return Object.values(this._config.content).map((t=>this._resolvePossibleFunction(t))).filter(Boolean)}hasContent(){return this.getContent().length>0}changeContent(t){return this._checkContent(t),this._config.content={...this._config.content,...t},this}toHtml(){const t=document.createElement("div");t.innerHTML=this._maybeSanitize(this._config.template);for(const[e,n]of Object.entries(this._config.content))this._setContent(t,n,e);const e=t.children[0],n=this._resolvePossibleFunction(this._config.extraClass);return n&&e.classList.add(...n.split(" ")),e}_typeCheckConfig(t){super._typeCheckConfig(t),this._checkContent(t.content)}_checkContent(t){for(const[e,n]of Object.entries(t))super._typeCheckConfig({selector:e,entry:n},xe)}_setContent(t,e,n){const i=_e.findOne(n,t);i&&((e=this._resolvePossibleFunction(e))?Bt(e)?this._putElementInTemplate(Ht(e),i):this._config.html?i.innerHTML=this._maybeSanitize(e):i.textContent=e:i.remove())}_maybeSanitize(t){return this._config.sanitize?function(t,e,n){if(!t.length)return t;if(n&&"function"==typeof n)return n(t);const i=(new window.DOMParser).parseFromString(t,"text/html"),o=[].concat(...i.body.querySelectorAll("*"));for(const t of o){const n=t.nodeName.toLowerCase();if(!Object.keys(e).includes(n)){t.remove();continue}const i=[].concat(...t.attributes),o=[].concat(e["*"]||[],e[n]||[]);for(const e of i)be(e,o)||t.removeAttribute(e.nodeName)}return i.body.innerHTML}(t,this._config.allowList,this._config.sanitizeFn):t}_resolvePossibleFunction(t){return Yt(t,[this])}_putElementInTemplate(t,e){if(this._config.html)return e.innerHTML="",void e.append(t);e.textContent=t.textContent}}const Ae=new Set(["sanitize","allowList","sanitizeFn"]),Ce="fade",Te="show",Le=".tooltip-inner",je=".".concat("modal"),Se="hide.bs.modal",De="hover",ke="focus",Pe={AUTO:"auto",TOP:"top",RIGHT:qt()?"left":"right",BOTTOM:"bottom",LEFT:qt()?"right":"left"},Ne={allowList:me,animation:!0,boundary:"clippingParents",container:!1,customClass:"",delay:0,fallbackPlacements:["top","right","bottom","left"],html:!1,offset:[0,6],placement:"top",popperConfig:null,sanitize:!0,sanitizeFn:null,selector:!1,template:'',title:"",trigger:"hover focus"},Me={allowList:"object",animation:"boolean",boundary:"(string|element)",container:"(string|element|boolean)",customClass:"(string|function)",delay:"(number|object)",fallbackPlacements:"array",html:"boolean",offset:"(array|string|function)",placement:"(string|function)",popperConfig:"(null|object|function)",sanitize:"boolean",sanitizeFn:"(null|function)",selector:"(string|boolean)",template:"string",title:"(string|element|function)",trigger:"string"};class Fe extends he{constructor(t,e){if(void 0===kt)throw new TypeError("Bootstrap's tooltips require Popper (https://popper.js.org)");super(t,e),this._isEnabled=!0,this._timeout=0,this._isHovered=null,this._activeTrigger={},this._popper=null,this._templateFactory=null,this._newContent=null,this.tip=null,this._setListeners(),this._config.selector||this._fixTitle()}static get Default(){return Ne}static get DefaultType(){return Me}static get NAME(){return"tooltip"}enable(){this._isEnabled=!0}disable(){this._isEnabled=!1}toggleEnabled(){this._isEnabled=!this._isEnabled}toggle(){this._isEnabled&&(this._activeTrigger.click=!this._activeTrigger.click,this._isShown()?this._leave():this._enter())}dispose(){clearTimeout(this._timeout),ce.off(this._element.closest(je),Se,this._hideModalHandler),this._element.getAttribute("data-bs-original-title")&&this._element.setAttribute("title",this._element.getAttribute("data-bs-original-title")),this._disposePopper(),super.dispose()}show(){if("none"===this._element.style.display)throw new Error("Please use show on visible elements");if(!this._isWithContent()||!this._isEnabled)return;const t=ce.trigger(this._element,this.constructor.eventName("show")),e=(It(this._element)||this._element.ownerDocument.documentElement).contains(this._element);if(t.defaultPrevented||!e)return;this._disposePopper();const n=this._getTipElement();this._element.setAttribute("aria-describedby",n.getAttribute("id"));const{container:i}=this._config;if(this._element.ownerDocument.documentElement.contains(this.tip)||(i.append(n),ce.trigger(this._element,this.constructor.eventName("inserted"))),this._popper=this._createPopper(n),n.classList.add(Te),"ontouchstart"in document.documentElement)for(const t of[].concat(...document.body.children))ce.on(t,"mouseover",zt);this._queueCallback((()=>{ce.trigger(this._element,this.constructor.eventName("shown")),!1===this._isHovered&&this._leave(),this._isHovered=!1}),this.tip,this._isAnimated())}hide(){if(!this._isShown())return;if(ce.trigger(this._element,this.constructor.eventName("hide")).defaultPrevented)return;if(this._getTipElement().classList.remove(Te),"ontouchstart"in document.documentElement)for(const t of[].concat(...document.body.children))ce.off(t,"mouseover",zt);this._activeTrigger.click=!1,this._activeTrigger[ke]=!1,this._activeTrigger[De]=!1,this._isHovered=null;this._queueCallback((()=>{this._isWithActiveTrigger()||(this._isHovered||this._disposePopper(),this._element.removeAttribute("aria-describedby"),ce.trigger(this._element,this.constructor.eventName("hidden")))}),this.tip,this._isAnimated())}update(){this._popper&&this._popper.update()}_isWithContent(){return Boolean(this._getTitle())}_getTipElement(){return this.tip||(this.tip=this._createTipElement(this._newContent||this._getContentForTemplate())),this.tip}_createTipElement(t){const e=this._getTemplateFactory(t).toHtml();if(!e)return null;e.classList.remove(Ce,Te),e.classList.add("bs-".concat(this.constructor.NAME,"-auto"));const n=(t=>{do{t+=Math.floor(1e6*Math.random())}while(document.getElementById(t));return t})(this.constructor.NAME).toString();return e.setAttribute("id",n),this._isAnimated()&&e.classList.add(Ce),e}setContent(t){this._newContent=t,this._isShown()&&(this._disposePopper(),this.show())}_getTemplateFactory(t){return this._templateFactory?this._templateFactory.changeContent(t):this._templateFactory=new Oe({...this._config,content:t,extraClass:this._resolvePossibleFunction(this._config.customClass)}),this._templateFactory}_getContentForTemplate(){return{[Le]:this._getTitle()}}_getTitle(){return this._resolvePossibleFunction(this._config.title)||this._element.getAttribute("data-bs-original-title")}_initializeOnDelegatedTarget(t){return this.constructor.getOrCreateInstance(t.delegateTarget,this._getDelegateConfig())}_isAnimated(){return this._config.animation||this.tip&&this.tip.classList.contains(Ce)}_isShown(){return this.tip&&this.tip.classList.contains(Te)}_createPopper(t){const e=Yt(this._config.placement,[this,t,this._element]),n=Pe[e.toUpperCase()];return Dt(this._element,t,this._getPopperConfig(n))}_getOffset(){const{offset:t}=this._config;return"string"==typeof t?t.split(",").map((t=>Number.parseInt(t,10))):"function"==typeof t?e=>t(e,this._element):t}_resolvePossibleFunction(t){return Yt(t,[this._element])}_getPopperConfig(t){const e={placement:t,modifiers:[{name:"flip",options:{fallbackPlacements:this._config.fallbackPlacements}},{name:"offset",options:{offset:this._getOffset()}},{name:"preventOverflow",options:{boundary:this._config.boundary}},{name:"arrow",options:{element:".".concat(this.constructor.NAME,"-arrow")}},{name:"preSetPlacement",enabled:!0,phase:"beforeMain",fn:t=>{this._getTipElement().setAttribute("data-popper-placement",t.state.placement)}}]};return{...e,...Yt(this._config.popperConfig,[e])}}_setListeners(){const t=this._config.trigger.split(" ");for(const e of t)if("click"===e)ce.on(this._element,this.constructor.eventName("click"),this._config.selector,(t=>{this._initializeOnDelegatedTarget(t).toggle()}));else if("manual"!==e){const t=e===De?this.constructor.eventName("mouseenter"):this.constructor.eventName("focusin"),n=e===De?this.constructor.eventName("mouseleave"):this.constructor.eventName("focusout");ce.on(this._element,t,this._config.selector,(t=>{const e=this._initializeOnDelegatedTarget(t);e._activeTrigger["focusin"===t.type?ke:De]=!0,e._enter()})),ce.on(this._element,n,this._config.selector,(t=>{const e=this._initializeOnDelegatedTarget(t);e._activeTrigger["focusout"===t.type?ke:De]=e._element.contains(t.relatedTarget),e._leave()}))}this._hideModalHandler=()=>{this._element&&this.hide()},ce.on(this._element.closest(je),Se,this._hideModalHandler)}_fixTitle(){const t=this._element.getAttribute("title");t&&(this._element.getAttribute("aria-label")||this._element.textContent.trim()||this._element.setAttribute("aria-label",t),this._element.setAttribute("data-bs-original-title",t),this._element.removeAttribute("title"))}_enter(){this._isShown()||this._isHovered?this._isHovered=!0:(this._isHovered=!0,this._setTimeout((()=>{this._isHovered&&this.show()}),this._config.delay.show))}_leave(){this._isWithActiveTrigger()||(this._isHovered=!1,this._setTimeout((()=>{this._isHovered||this.hide()}),this._config.delay.hide))}_setTimeout(t,e){clearTimeout(this._timeout),this._timeout=setTimeout(t,e)}_isWithActiveTrigger(){return Object.values(this._activeTrigger).includes(!0)}_getConfig(t){const e=de.getDataAttributes(this._element);for(const t of Object.keys(e))Ae.has(t)&&delete e[t];return t={...e,..."object"==typeof t&&t?t:{}},t=this._mergeConfigObj(t),t=this._configAfterMerge(t),this._typeCheckConfig(t),t}_configAfterMerge(t){return t.container=!1===t.container?document.body:Ht(t.container),"number"==typeof t.delay&&(t.delay={show:t.delay,hide:t.delay}),"number"==typeof t.title&&(t.title=t.title.toString()),"number"==typeof t.content&&(t.content=t.content.toString()),t}_getDelegateConfig(){const t={};for(const[e,n]of Object.entries(this._config))this.constructor.Default[e]!==n&&(t[e]=n);return t.selector=!1,t.trigger="manual",t}_disposePopper(){this._popper&&(this._popper.destroy(),this._popper=null),this.tip&&(this.tip.remove(),this.tip=null)}static jQueryInterface(t){return this.each((function(){const e=Fe.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t])throw new TypeError('No method named "'.concat(t,'"'));e[t]()}}))}}Vt(Fe);const Be=document.getElementById("mode-toggle");function He(t){var e=function(t,e){if("object"!=typeof t||!t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var i=n.call(t,e||"default");if("object"!=typeof i)return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===e?String:Number)(t)}(t,"string");return"symbol"==typeof e?e:e+""}function Ie(t,e,n){return(e=He(e))in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}const ze="sidebar-display";class We{static toggle(){!1===We.isExpanded?document.body.setAttribute(ze,""):document.body.removeAttribute(ze),We.isExpanded=!We.isExpanded}}Ie(We,"isExpanded",!1);const Re=document.getElementById("sidebar-trigger"),qe=document.getElementById("search-trigger"),Ve=document.getElementById("search-cancel"),Ye=document.querySelectorAll("#main-wrapper>.container>.row"),Ue=document.getElementById("topbar-title"),Ke=document.getElementById("search"),Qe=document.getElementById("search-result-wrapper"),$e=document.getElementById("search-results"),Ge=document.getElementById("search-input"),Xe=document.getElementById("search-hints"),Je="d-block",Ze="d-none",tn="input-focus",en="d-flex";class nn{static on(){Re.classList.add(Ze),Ue.classList.add(Ze),qe.classList.add(Ze),Ke.classList.add(en),Ve.classList.add(Je)}static off(){Ve.classList.remove(Je),Ke.classList.remove(en),Re.classList.remove(Ze),Ue.classList.remove(Ze),qe.classList.remove(Ze)}}class on{static on(){this.resultVisible||(Qe.classList.remove(Ze),Ye.forEach((t=>{t.classList.add(Ze)})),this.resultVisible=!0)}static off(){this.resultVisible&&($e.innerHTML="",Xe.classList.contains(Ze)&&Xe.classList.remove(Ze),Qe.classList.add(Ze),Ye.forEach((t=>{t.classList.remove(Ze)})),Ge.textContent="",this.resultVisible=!1)}}function rn(){return Ve.classList.contains(Je)}Ie(on,"resultVisible",!1);const sn=".".concat("bs.collapse"),an="show".concat(sn),cn="shown".concat(sn),ln="hide".concat(sn),un="hidden".concat(sn),fn="click".concat(sn).concat(".data-api"),dn="show",pn="collapse",hn="collapsing",mn=":scope .".concat(pn," .").concat(pn),gn='[data-bs-toggle="collapse"]',vn={parent:null,toggle:!0},bn={parent:"(null|element)",toggle:"boolean"};class yn extends he{constructor(t,e){super(t,e),this._isTransitioning=!1,this._triggerArray=[];const n=_e.find(gn);for(const t of n){const e=_e.getSelectorFromElement(t),n=_e.find(e).filter((t=>t===this._element));null!==e&&n.length&&this._triggerArray.push(t)}this._initializeChildren(),this._config.parent||this._addAriaAndCollapsedClass(this._triggerArray,this._isShown()),this._config.toggle&&this.toggle()}static get Default(){return vn}static get DefaultType(){return bn}static get NAME(){return"collapse"}toggle(){this._isShown()?this.hide():this.show()}show(){if(this._isTransitioning||this._isShown())return;let t=[];if(this._config.parent&&(t=this._getFirstLevelChildren(".collapse.show, .collapse.collapsing").filter((t=>t!==this._element)).map((t=>yn.getOrCreateInstance(t,{toggle:!1})))),t.length&&t[0]._isTransitioning)return;if(ce.trigger(this._element,an).defaultPrevented)return;for(const e of t)e.hide();const e=this._getDimension();this._element.classList.remove(pn),this._element.classList.add(hn),this._element.style[e]=0,this._addAriaAndCollapsedClass(this._triggerArray,!0),this._isTransitioning=!0;const n=e[0].toUpperCase()+e.slice(1),i="scroll".concat(n);this._queueCallback((()=>{this._isTransitioning=!1,this._element.classList.remove(hn),this._element.classList.add(pn,dn),this._element.style[e]="",ce.trigger(this._element,cn)}),this._element,!0),this._element.style[e]="".concat(this._element[i],"px")}hide(){if(this._isTransitioning||!this._isShown())return;if(ce.trigger(this._element,ln).defaultPrevented)return;const t=this._getDimension();this._element.style[t]="".concat(this._element.getBoundingClientRect()[t],"px"),this._element.offsetHeight,this._element.classList.add(hn),this._element.classList.remove(pn,dn);for(const t of this._triggerArray){const e=_e.getElementFromSelector(t);e&&!this._isShown(e)&&this._addAriaAndCollapsedClass([t],!1)}this._isTransitioning=!0;this._element.style[t]="",this._queueCallback((()=>{this._isTransitioning=!1,this._element.classList.remove(hn),this._element.classList.add(pn),ce.trigger(this._element,un)}),this._element,!0)}_isShown(){return(arguments.length>0&&void 0!==arguments[0]?arguments[0]:this._element).classList.contains(dn)}_configAfterMerge(t){return t.toggle=Boolean(t.toggle),t.parent=Ht(t.parent),t}_getDimension(){return this._element.classList.contains("collapse-horizontal")?"width":"height"}_initializeChildren(){if(!this._config.parent)return;const t=this._getFirstLevelChildren(gn);for(const e of t){const t=_e.getElementFromSelector(e);t&&this._addAriaAndCollapsedClass([e],this._isShown(t))}}_getFirstLevelChildren(t){const e=_e.find(mn,this._config.parent);return _e.find(t,this._config.parent).filter((t=>!e.includes(t)))}_addAriaAndCollapsedClass(t,e){if(t.length)for(const n of t)n.classList.toggle("collapsed",!e),n.setAttribute("aria-expanded",e)}static jQueryInterface(t){const e={};return"string"==typeof t&&/show|hide/.test(t)&&(e.toggle=!1),this.each((function(){const n=yn.getOrCreateInstance(this,e);if("string"==typeof t){if(void 0===n[t])throw new TypeError('No method named "'.concat(t,'"'));n[t]()}}))}}ce.on(document,fn,gn,(function(t){("A"===t.target.tagName||t.delegateTarget&&"A"===t.delegateTarget.tagName)&&t.preventDefault();for(const t of _e.getMultipleElementsFromSelector(this))yn.getOrCreateInstance(t,{toggle:!1}).toggle()})),Vt(yn),document.getElementsByClassName("collapse");class _n{static get attrTimestamp(){return"data-ts"}static get attrDateFormat(){return"data-df"}static get locale(){return document.documentElement.getAttribute("lang").substring(0,2)}static getTimestamp(t){return Number(t.getAttribute(this.attrTimestamp))}static getDateFormat(t){return t.getAttribute(this.attrDateFormat)}}Be&&Be.addEventListener("click",(()=>{modeToggle.flipMode()})),document.getElementById("sidebar-trigger").addEventListener("click",We.toggle),document.getElementById("mask").addEventListener("click",We.toggle),qe.addEventListener("click",(()=>{nn.on(),on.on(),Ge.focus()})),Ve.addEventListener("click",(()=>{nn.off(),on.off()})),Ge.addEventListener("focus",(()=>{Ke.classList.add(tn)})),Ge.addEventListener("focusout",(()=>{Ke.classList.remove(tn)})),Ge.addEventListener("input",(()=>{""===Ge.value?rn()?Xe.classList.remove(Ze):on.off():(on.on(),rn()&&Xe.classList.add(Ze))})),dayjs.locale(_n.locale),dayjs.extend(window.dayjs_plugin_localizedFormat),document.querySelectorAll("[".concat(_n.attrTimestamp,"]")).forEach((t=>{const e=dayjs.unix(_n.getTimestamp(t)),n=e.format(_n.getDateFormat(t));if(t.textContent=n,t.removeAttribute(_n.attrTimestamp),t.removeAttribute(_n.attrDateFormat),t.hasAttribute("data-bs-toggle")&&"tooltip"===t.getAttribute("data-bs-toggle")){const n=e.format("llll");t.setAttribute("data-bs-title",n)}})),function(){const t=document.getElementById("back-to-top");window.addEventListener("scroll",(()=>{window.scrollY>50?t.classList.add("show"):t.classList.remove("show")})),t.addEventListener("click",(()=>{window.scrollTo({top:0})}))}(),[...document.querySelectorAll('[data-bs-toggle="tooltip"]')].map((t=>new Fe(t)))}(); diff --git a/_site/assets/js/dist/page.min.js b/_site/assets/js/dist/page.min.js deleted file mode 100644 index 88ba01d..0000000 --- a/_site/assets/js/dist/page.min.js +++ /dev/null @@ -1,4 +0,0 @@ -/*! - * Chirpy v7.0.1 | © 2019 Cotes Chung | MIT Licensed | https://github.com/cotes2020/jekyll-theme-chirpy/ - */ -!function(){"use strict";var e="top",t="bottom",n="right",i="left",o="auto",r=[e,t,n,i],s="start",a="end",c="clippingParents",l="viewport",u="popper",f="reference",d=r.reduce((function(e,t){return e.concat([t+"-"+s,t+"-"+a])}),[]),p=[].concat(r,[o]).reduce((function(e,t){return e.concat([t,t+"-"+s,t+"-"+a])}),[]),h="beforeRead",m="read",g="afterRead",v="beforeMain",b="main",y="afterMain",_="beforeWrite",w="write",E="afterWrite",A=[h,m,g,v,b,y,_,w,E];function x(e){return e?(e.nodeName||"").toLowerCase():null}function O(e){if(null==e)return window;if("[object Window]"!==e.toString()){var t=e.ownerDocument;return t&&t.defaultView||window}return e}function C(e){return e instanceof O(e).Element||e instanceof Element}function L(e){return e instanceof O(e).HTMLElement||e instanceof HTMLElement}function T(e){return"undefined"!=typeof ShadowRoot&&(e instanceof O(e).ShadowRoot||e instanceof ShadowRoot)}var S={name:"applyStyles",enabled:!0,phase:"write",fn:function(e){var t=e.state;Object.keys(t.elements).forEach((function(e){var n=t.styles[e]||{},i=t.attributes[e]||{},o=t.elements[e];L(o)&&x(o)&&(Object.assign(o.style,n),Object.keys(i).forEach((function(e){var t=i[e];!1===t?o.removeAttribute(e):o.setAttribute(e,!0===t?"":t)})))}))},effect:function(e){var t=e.state,n={popper:{position:t.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(t.elements.popper.style,n.popper),t.styles=n,t.elements.arrow&&Object.assign(t.elements.arrow.style,n.arrow),function(){Object.keys(t.elements).forEach((function(e){var i=t.elements[e],o=t.attributes[e]||{},r=Object.keys(t.styles.hasOwnProperty(e)?t.styles[e]:n[e]).reduce((function(e,t){return e[t]="",e}),{});L(i)&&x(i)&&(Object.assign(i.style,r),Object.keys(o).forEach((function(e){i.removeAttribute(e)})))}))}},requires:["computeStyles"]};function j(e){return e.split("-")[0]}var D=Math.max,k=Math.min,M=Math.round;function P(){var e=navigator.userAgentData;return null!=e&&e.brands&&Array.isArray(e.brands)?e.brands.map((function(e){return e.brand+"/"+e.version})).join(" "):navigator.userAgent}function N(){return!/^((?!chrome|android).)*safari/i.test(P())}function B(e,t,n){void 0===t&&(t=!1),void 0===n&&(n=!1);var i=e.getBoundingClientRect(),o=1,r=1;t&&L(e)&&(o=e.offsetWidth>0&&M(i.width)/e.offsetWidth||1,r=e.offsetHeight>0&&M(i.height)/e.offsetHeight||1);var s=(C(e)?O(e):window).visualViewport,a=!N()&&n,c=(i.left+(a&&s?s.offsetLeft:0))/o,l=(i.top+(a&&s?s.offsetTop:0))/r,u=i.width/o,f=i.height/r;return{width:u,height:f,top:l,right:c+u,bottom:l+f,left:c,x:c,y:l}}function I(e){var t=B(e),n=e.offsetWidth,i=e.offsetHeight;return Math.abs(t.width-n)<=1&&(n=t.width),Math.abs(t.height-i)<=1&&(i=t.height),{x:e.offsetLeft,y:e.offsetTop,width:n,height:i}}function F(e,t){var n=t.getRootNode&&t.getRootNode();if(e.contains(t))return!0;if(n&&T(n)){var i=t;do{if(i&&e.isSameNode(i))return!0;i=i.parentNode||i.host}while(i)}return!1}function H(e){return O(e).getComputedStyle(e)}function R(e){return["table","td","th"].indexOf(x(e))>=0}function q(e){return((C(e)?e.ownerDocument:e.document)||window.document).documentElement}function z(e){return"html"===x(e)?e:e.assignedSlot||e.parentNode||(T(e)?e.host:null)||q(e)}function W(e){return L(e)&&"fixed"!==H(e).position?e.offsetParent:null}function V(e){for(var t=O(e),n=W(e);n&&R(n)&&"static"===H(n).position;)n=W(n);return n&&("html"===x(n)||"body"===x(n)&&"static"===H(n).position)?t:n||function(e){var t=/firefox/i.test(P());if(/Trident/i.test(P())&&L(e)&&"fixed"===H(e).position)return null;var n=z(e);for(T(n)&&(n=n.host);L(n)&&["html","body"].indexOf(x(n))<0;){var i=H(n);if("none"!==i.transform||"none"!==i.perspective||"paint"===i.contain||-1!==["transform","perspective"].indexOf(i.willChange)||t&&"filter"===i.willChange||t&&i.filter&&"none"!==i.filter)return n;n=n.parentNode}return null}(e)||t}function U(e){return["top","bottom"].indexOf(e)>=0?"x":"y"}function Y(e,t,n){return D(e,k(t,n))}function K(e){return Object.assign({},{top:0,right:0,bottom:0,left:0},e)}function Q(e,t){return t.reduce((function(t,n){return t[n]=e,t}),{})}var G={name:"arrow",enabled:!0,phase:"main",fn:function(o){var s,a=o.state,c=o.name,l=o.options,u=a.elements.arrow,f=a.modifiersData.popperOffsets,d=j(a.placement),p=U(d),h=[i,n].indexOf(d)>=0?"height":"width";if(u&&f){var m=function(e,t){return K("number"!=typeof(e="function"==typeof e?e(Object.assign({},t.rects,{placement:t.placement})):e)?e:Q(e,r))}(l.padding,a),g=I(u),v="y"===p?e:i,b="y"===p?t:n,y=a.rects.reference[h]+a.rects.reference[p]-f[p]-a.rects.popper[h],_=f[p]-a.rects.reference[p],w=V(u),E=w?"y"===p?w.clientHeight||0:w.clientWidth||0:0,A=y/2-_/2,x=m[v],O=E-g[h]-m[b],C=E/2-g[h]/2+A,L=Y(x,C,O),T=p;a.modifiersData[c]=((s={})[T]=L,s.centerOffset=L-C,s)}},effect:function(e){var t=e.state,n=e.options.element,i=void 0===n?"[data-popper-arrow]":n;null!=i&&("string"!=typeof i||(i=t.elements.popper.querySelector(i)))&&F(t.elements.popper,i)&&(t.elements.arrow=i)},requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function $(e){return e.split("-")[1]}var J={top:"auto",right:"auto",bottom:"auto",left:"auto"};function X(o){var r,s=o.popper,c=o.popperRect,l=o.placement,u=o.variation,f=o.offsets,d=o.position,p=o.gpuAcceleration,h=o.adaptive,m=o.roundOffsets,g=o.isFixed,v=f.x,b=void 0===v?0:v,y=f.y,_=void 0===y?0:y,w="function"==typeof m?m({x:b,y:_}):{x:b,y:_};b=w.x,_=w.y;var E=f.hasOwnProperty("x"),A=f.hasOwnProperty("y"),x=i,C=e,L=window;if(h){var T=V(s),S="clientHeight",j="clientWidth";if(T===O(s)&&"static"!==H(T=q(s)).position&&"absolute"===d&&(S="scrollHeight",j="scrollWidth"),l===e||(l===i||l===n)&&u===a)C=t,_-=(g&&T===L&&L.visualViewport?L.visualViewport.height:T[S])-c.height,_*=p?1:-1;if(l===i||(l===e||l===t)&&u===a)x=n,b-=(g&&T===L&&L.visualViewport?L.visualViewport.width:T[j])-c.width,b*=p?1:-1}var D,k=Object.assign({position:d},h&&J),P=!0===m?function(e,t){var n=e.x,i=e.y,o=t.devicePixelRatio||1;return{x:M(n*o)/o||0,y:M(i*o)/o||0}}({x:b,y:_},O(s)):{x:b,y:_};return b=P.x,_=P.y,p?Object.assign({},k,((D={})[C]=A?"0":"",D[x]=E?"0":"",D.transform=(L.devicePixelRatio||1)<=1?"translate("+b+"px, "+_+"px)":"translate3d("+b+"px, "+_+"px, 0)",D)):Object.assign({},k,((r={})[C]=A?_+"px":"",r[x]=E?b+"px":"",r.transform="",r))}var Z={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:function(e){var t=e.state,n=e.options,i=n.gpuAcceleration,o=void 0===i||i,r=n.adaptive,s=void 0===r||r,a=n.roundOffsets,c=void 0===a||a,l={placement:j(t.placement),variation:$(t.placement),popper:t.elements.popper,popperRect:t.rects.popper,gpuAcceleration:o,isFixed:"fixed"===t.options.strategy};null!=t.modifiersData.popperOffsets&&(t.styles.popper=Object.assign({},t.styles.popper,X(Object.assign({},l,{offsets:t.modifiersData.popperOffsets,position:t.options.strategy,adaptive:s,roundOffsets:c})))),null!=t.modifiersData.arrow&&(t.styles.arrow=Object.assign({},t.styles.arrow,X(Object.assign({},l,{offsets:t.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:c})))),t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-placement":t.placement})},data:{}},ee={passive:!0};var te={name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:function(e){var t=e.state,n=e.instance,i=e.options,o=i.scroll,r=void 0===o||o,s=i.resize,a=void 0===s||s,c=O(t.elements.popper),l=[].concat(t.scrollParents.reference,t.scrollParents.popper);return r&&l.forEach((function(e){e.addEventListener("scroll",n.update,ee)})),a&&c.addEventListener("resize",n.update,ee),function(){r&&l.forEach((function(e){e.removeEventListener("scroll",n.update,ee)})),a&&c.removeEventListener("resize",n.update,ee)}},data:{}},ne={left:"right",right:"left",bottom:"top",top:"bottom"};function ie(e){return e.replace(/left|right|bottom|top/g,(function(e){return ne[e]}))}var oe={start:"end",end:"start"};function re(e){return e.replace(/start|end/g,(function(e){return oe[e]}))}function se(e){var t=O(e);return{scrollLeft:t.pageXOffset,scrollTop:t.pageYOffset}}function ae(e){return B(q(e)).left+se(e).scrollLeft}function ce(e){var t=H(e),n=t.overflow,i=t.overflowX,o=t.overflowY;return/auto|scroll|overlay|hidden/.test(n+o+i)}function le(e){return["html","body","#document"].indexOf(x(e))>=0?e.ownerDocument.body:L(e)&&ce(e)?e:le(z(e))}function ue(e,t){var n;void 0===t&&(t=[]);var i=le(e),o=i===(null==(n=e.ownerDocument)?void 0:n.body),r=O(i),s=o?[r].concat(r.visualViewport||[],ce(i)?i:[]):i,a=t.concat(s);return o?a:a.concat(ue(z(s)))}function fe(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}function de(e,t,n){return t===l?fe(function(e,t){var n=O(e),i=q(e),o=n.visualViewport,r=i.clientWidth,s=i.clientHeight,a=0,c=0;if(o){r=o.width,s=o.height;var l=N();(l||!l&&"fixed"===t)&&(a=o.offsetLeft,c=o.offsetTop)}return{width:r,height:s,x:a+ae(e),y:c}}(e,n)):C(t)?function(e,t){var n=B(e,!1,"fixed"===t);return n.top=n.top+e.clientTop,n.left=n.left+e.clientLeft,n.bottom=n.top+e.clientHeight,n.right=n.left+e.clientWidth,n.width=e.clientWidth,n.height=e.clientHeight,n.x=n.left,n.y=n.top,n}(t,n):fe(function(e){var t,n=q(e),i=se(e),o=null==(t=e.ownerDocument)?void 0:t.body,r=D(n.scrollWidth,n.clientWidth,o?o.scrollWidth:0,o?o.clientWidth:0),s=D(n.scrollHeight,n.clientHeight,o?o.scrollHeight:0,o?o.clientHeight:0),a=-i.scrollLeft+ae(e),c=-i.scrollTop;return"rtl"===H(o||n).direction&&(a+=D(n.clientWidth,o?o.clientWidth:0)-r),{width:r,height:s,x:a,y:c}}(q(e)))}function pe(e,t,n,i){var o="clippingParents"===t?function(e){var t=ue(z(e)),n=["absolute","fixed"].indexOf(H(e).position)>=0&&L(e)?V(e):e;return C(n)?t.filter((function(e){return C(e)&&F(e,n)&&"body"!==x(e)})):[]}(e):[].concat(t),r=[].concat(o,[n]),s=r[0],a=r.reduce((function(t,n){var o=de(e,n,i);return t.top=D(o.top,t.top),t.right=k(o.right,t.right),t.bottom=k(o.bottom,t.bottom),t.left=D(o.left,t.left),t}),de(e,s,i));return a.width=a.right-a.left,a.height=a.bottom-a.top,a.x=a.left,a.y=a.top,a}function he(o){var r,c=o.reference,l=o.element,u=o.placement,f=u?j(u):null,d=u?$(u):null,p=c.x+c.width/2-l.width/2,h=c.y+c.height/2-l.height/2;switch(f){case e:r={x:p,y:c.y-l.height};break;case t:r={x:p,y:c.y+c.height};break;case n:r={x:c.x+c.width,y:h};break;case i:r={x:c.x-l.width,y:h};break;default:r={x:c.x,y:c.y}}var m=f?U(f):null;if(null!=m){var g="y"===m?"height":"width";switch(d){case s:r[m]=r[m]-(c[g]/2-l[g]/2);break;case a:r[m]=r[m]+(c[g]/2-l[g]/2)}}return r}function me(i,o){void 0===o&&(o={});var s=o,a=s.placement,d=void 0===a?i.placement:a,p=s.strategy,h=void 0===p?i.strategy:p,m=s.boundary,g=void 0===m?c:m,v=s.rootBoundary,b=void 0===v?l:v,y=s.elementContext,_=void 0===y?u:y,w=s.altBoundary,E=void 0!==w&&w,A=s.padding,x=void 0===A?0:A,O=K("number"!=typeof x?x:Q(x,r)),L=_===u?f:u,T=i.rects.popper,S=i.elements[E?L:_],j=pe(C(S)?S:S.contextElement||q(i.elements.popper),g,b,h),D=B(i.elements.reference),k=he({reference:D,element:T,strategy:"absolute",placement:d}),M=fe(Object.assign({},T,k)),P=_===u?M:D,N={top:j.top-P.top+O.top,bottom:P.bottom-j.bottom+O.bottom,left:j.left-P.left+O.left,right:P.right-j.right+O.right},I=i.modifiersData.offset;if(_===u&&I){var F=I[d];Object.keys(N).forEach((function(i){var o=[n,t].indexOf(i)>=0?1:-1,r=[e,t].indexOf(i)>=0?"y":"x";N[i]+=F[r]*o}))}return N}function ge(e,t){void 0===t&&(t={});var n=t,i=n.placement,o=n.boundary,s=n.rootBoundary,a=n.padding,c=n.flipVariations,l=n.allowedAutoPlacements,u=void 0===l?p:l,f=$(i),h=f?c?d:d.filter((function(e){return $(e)===f})):r,m=h.filter((function(e){return u.indexOf(e)>=0}));0===m.length&&(m=h);var g=m.reduce((function(t,n){return t[n]=me(e,{placement:n,boundary:o,rootBoundary:s,padding:a})[j(n)],t}),{});return Object.keys(g).sort((function(e,t){return g[e]-g[t]}))}var ve={name:"flip",enabled:!0,phase:"main",fn:function(r){var a=r.state,c=r.options,l=r.name;if(!a.modifiersData[l]._skip){for(var u=c.mainAxis,f=void 0===u||u,d=c.altAxis,p=void 0===d||d,h=c.fallbackPlacements,m=c.padding,g=c.boundary,v=c.rootBoundary,b=c.altBoundary,y=c.flipVariations,_=void 0===y||y,w=c.allowedAutoPlacements,E=a.options.placement,A=j(E),x=h||(A===E||!_?[ie(E)]:function(e){if(j(e)===o)return[];var t=ie(e);return[re(e),t,re(t)]}(E)),O=[E].concat(x).reduce((function(e,t){return e.concat(j(t)===o?ge(a,{placement:t,boundary:g,rootBoundary:v,padding:m,flipVariations:_,allowedAutoPlacements:w}):t)}),[]),C=a.rects.reference,L=a.rects.popper,T=new Map,S=!0,D=O[0],k=0;k=0,I=B?"width":"height",F=me(a,{placement:M,boundary:g,rootBoundary:v,altBoundary:b,padding:m}),H=B?N?n:i:N?t:e;C[I]>L[I]&&(H=ie(H));var R=ie(H),q=[];if(f&&q.push(F[P]<=0),p&&q.push(F[H]<=0,F[R]<=0),q.every((function(e){return e}))){D=M,S=!1;break}T.set(M,q)}if(S)for(var z=function(e){var t=O.find((function(t){var n=T.get(t);if(n)return n.slice(0,e).every((function(e){return e}))}));if(t)return D=t,"break"},W=_?3:1;W>0;W--){if("break"===z(W))break}a.placement!==D&&(a.modifiersData[l]._skip=!0,a.placement=D,a.reset=!0)}},requiresIfExists:["offset"],data:{_skip:!1}};function be(e,t,n){return void 0===n&&(n={x:0,y:0}),{top:e.top-t.height-n.y,right:e.right-t.width+n.x,bottom:e.bottom-t.height+n.y,left:e.left-t.width-n.x}}function ye(o){return[e,n,t,i].some((function(e){return o[e]>=0}))}var _e={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:function(e){var t=e.state,n=e.name,i=t.rects.reference,o=t.rects.popper,r=t.modifiersData.preventOverflow,s=me(t,{elementContext:"reference"}),a=me(t,{altBoundary:!0}),c=be(s,i),l=be(a,o,r),u=ye(c),f=ye(l);t.modifiersData[n]={referenceClippingOffsets:c,popperEscapeOffsets:l,isReferenceHidden:u,hasPopperEscaped:f},t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-reference-hidden":u,"data-popper-escaped":f})}};var we={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:function(t){var o=t.state,r=t.options,s=t.name,a=r.offset,c=void 0===a?[0,0]:a,l=p.reduce((function(t,r){return t[r]=function(t,o,r){var s=j(t),a=[i,e].indexOf(s)>=0?-1:1,c="function"==typeof r?r(Object.assign({},o,{placement:t})):r,l=c[0],u=c[1];return l=l||0,u=(u||0)*a,[i,n].indexOf(s)>=0?{x:u,y:l}:{x:l,y:u}}(r,o.rects,c),t}),{}),u=l[o.placement],f=u.x,d=u.y;null!=o.modifiersData.popperOffsets&&(o.modifiersData.popperOffsets.x+=f,o.modifiersData.popperOffsets.y+=d),o.modifiersData[s]=l}};var Ee={name:"popperOffsets",enabled:!0,phase:"read",fn:function(e){var t=e.state,n=e.name;t.modifiersData[n]=he({reference:t.rects.reference,element:t.rects.popper,strategy:"absolute",placement:t.placement})},data:{}};var Ae={name:"preventOverflow",enabled:!0,phase:"main",fn:function(o){var r=o.state,a=o.options,c=o.name,l=a.mainAxis,u=void 0===l||l,f=a.altAxis,d=void 0!==f&&f,p=a.boundary,h=a.rootBoundary,m=a.altBoundary,g=a.padding,v=a.tether,b=void 0===v||v,y=a.tetherOffset,_=void 0===y?0:y,w=me(r,{boundary:p,rootBoundary:h,padding:g,altBoundary:m}),E=j(r.placement),A=$(r.placement),x=!A,O=U(E),C="x"===O?"y":"x",L=r.modifiersData.popperOffsets,T=r.rects.reference,S=r.rects.popper,M="function"==typeof _?_(Object.assign({},r.rects,{placement:r.placement})):_,P="number"==typeof M?{mainAxis:M,altAxis:M}:Object.assign({mainAxis:0,altAxis:0},M),N=r.modifiersData.offset?r.modifiersData.offset[r.placement]:null,B={x:0,y:0};if(L){if(u){var F,H="y"===O?e:i,R="y"===O?t:n,q="y"===O?"height":"width",z=L[O],W=z+w[H],K=z-w[R],Q=b?-S[q]/2:0,G=A===s?T[q]:S[q],J=A===s?-S[q]:-T[q],X=r.elements.arrow,Z=b&&X?I(X):{width:0,height:0},ee=r.modifiersData["arrow#persistent"]?r.modifiersData["arrow#persistent"].padding:{top:0,right:0,bottom:0,left:0},te=ee[H],ne=ee[R],ie=Y(0,T[q],Z[q]),oe=x?T[q]/2-Q-ie-te-P.mainAxis:G-ie-te-P.mainAxis,re=x?-T[q]/2+Q+ie+ne+P.mainAxis:J+ie+ne+P.mainAxis,se=r.elements.arrow&&V(r.elements.arrow),ae=se?"y"===O?se.clientTop||0:se.clientLeft||0:0,ce=null!=(F=null==N?void 0:N[O])?F:0,le=z+re-ce,ue=Y(b?k(W,z+oe-ce-ae):W,z,b?D(K,le):K);L[O]=ue,B[O]=ue-z}if(d){var fe,de="x"===O?e:i,pe="x"===O?t:n,he=L[C],ge="y"===C?"height":"width",ve=he+w[de],be=he-w[pe],ye=-1!==[e,i].indexOf(E),_e=null!=(fe=null==N?void 0:N[C])?fe:0,we=ye?ve:he-T[ge]-S[ge]-_e+P.altAxis,Ee=ye?he+T[ge]+S[ge]-_e-P.altAxis:be,Ae=b&&ye?function(e,t,n){var i=Y(e,t,n);return i>n?n:i}(we,he,Ee):Y(b?we:ve,he,b?Ee:be);L[C]=Ae,B[C]=Ae-he}r.modifiersData[c]=B}},requiresIfExists:["offset"]};function xe(e,t,n){void 0===n&&(n=!1);var i,o,r=L(t),s=L(t)&&function(e){var t=e.getBoundingClientRect(),n=M(t.width)/e.offsetWidth||1,i=M(t.height)/e.offsetHeight||1;return 1!==n||1!==i}(t),a=q(t),c=B(e,s,n),l={scrollLeft:0,scrollTop:0},u={x:0,y:0};return(r||!r&&!n)&&(("body"!==x(t)||ce(a))&&(l=(i=t)!==O(i)&&L(i)?{scrollLeft:(o=i).scrollLeft,scrollTop:o.scrollTop}:se(i)),L(t)?((u=B(t,!0)).x+=t.clientLeft,u.y+=t.clientTop):a&&(u.x=ae(a))),{x:c.left+l.scrollLeft-u.x,y:c.top+l.scrollTop-u.y,width:c.width,height:c.height}}function Oe(e){var t=new Map,n=new Set,i=[];function o(e){n.add(e.name),[].concat(e.requires||[],e.requiresIfExists||[]).forEach((function(e){if(!n.has(e)){var i=t.get(e);i&&o(i)}})),i.push(e)}return e.forEach((function(e){t.set(e.name,e)})),e.forEach((function(e){n.has(e.name)||o(e)})),i}var Ce={placement:"bottom",modifiers:[],strategy:"absolute"};function Le(){for(var e=arguments.length,t=new Array(e),n=0;nMe.has(e)&&Me.get(e).get(t)||null,remove(e,t){if(!Me.has(e))return;const n=Me.get(e);n.delete(t),0===n.size&&Me.delete(e)}};const Ne="transitionend",Be=e=>(e&&window.CSS&&window.CSS.escape&&(e=e.replace(/#([^\s"#']+)/g,((e,t)=>"#".concat(CSS.escape(t))))),e),Ie=e=>!(!e||"object"!=typeof e)&&(void 0!==e.jquery&&(e=e[0]),void 0!==e.nodeType),Fe=e=>Ie(e)?e.jquery?e[0]:e:"string"==typeof e&&e.length>0?document.querySelector(Be(e)):null,He=e=>{if(!document.documentElement.attachShadow)return null;if("function"==typeof e.getRootNode){const t=e.getRootNode();return t instanceof ShadowRoot?t:null}return e instanceof ShadowRoot?e:e.parentNode?He(e.parentNode):null},Re=()=>{},qe=()=>window.jQuery&&!document.body.hasAttribute("data-bs-no-jquery")?window.jQuery:null,ze=[],We=()=>"rtl"===document.documentElement.dir,Ve=e=>{var t;t=()=>{const t=qe();if(t){const n=e.NAME,i=t.fn[n];t.fn[n]=e.jQueryInterface,t.fn[n].Constructor=e,t.fn[n].noConflict=()=>(t.fn[n]=i,e.jQueryInterface)}},"loading"===document.readyState?(ze.length||document.addEventListener("DOMContentLoaded",(()=>{for(const e of ze)e()})),ze.push(t)):t()},Ue=function(e){let t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:e;return"function"==typeof e?e(...arguments.length>1&&void 0!==arguments[1]?arguments[1]:[]):t},Ye=function(e,t){if(!(!(arguments.length>2&&void 0!==arguments[2])||arguments[2]))return void Ue(e);const n=(e=>{if(!e)return 0;let{transitionDuration:t,transitionDelay:n}=window.getComputedStyle(e);const i=Number.parseFloat(t),o=Number.parseFloat(n);return i||o?(t=t.split(",")[0],n=n.split(",")[0],1e3*(Number.parseFloat(t)+Number.parseFloat(n))):0})(t)+5;let i=!1;const o=n=>{let{target:r}=n;r===t&&(i=!0,t.removeEventListener(Ne,o),Ue(e))};t.addEventListener(Ne,o),setTimeout((()=>{i||t.dispatchEvent(new Event(Ne))}),n)},Ke=/[^.]*(?=\..*)\.|.*/,Qe=/\..*/,Ge=/::\d+$/,$e={};let Je=1;const Xe={mouseenter:"mouseover",mouseleave:"mouseout"},Ze=new Set(["click","dblclick","mouseup","mousedown","contextmenu","mousewheel","DOMMouseScroll","mouseover","mouseout","mousemove","selectstart","selectend","keydown","keypress","keyup","orientationchange","touchstart","touchmove","touchend","touchcancel","pointerdown","pointermove","pointerup","pointerleave","pointercancel","gesturestart","gesturechange","gestureend","focus","blur","change","reset","select","submit","focusin","focusout","load","unload","beforeunload","resize","move","DOMContentLoaded","readystatechange","error","abort","scroll"]);function et(e,t){return t&&"".concat(t,"::").concat(Je++)||e.uidEvent||Je++}function tt(e){const t=et(e);return e.uidEvent=t,$e[t]=$e[t]||{},$e[t]}function nt(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;return Object.values(e).find((e=>e.callable===t&&e.delegationSelector===n))}function it(e,t,n){const i="string"==typeof t,o=i?n:t||n;let r=at(e);return Ze.has(r)||(r=e),[i,o,r]}function ot(e,t,n,i,o){if("string"!=typeof t||!e)return;let[r,s,a]=it(t,n,i);if(t in Xe){const e=e=>function(t){if(!t.relatedTarget||t.relatedTarget!==t.delegateTarget&&!t.delegateTarget.contains(t.relatedTarget))return e.call(this,t)};s=e(s)}const c=tt(e),l=c[a]||(c[a]={}),u=nt(l,s,r?n:null);if(u)return void(u.oneOff=u.oneOff&&o);const f=et(s,t.replace(Ke,"")),d=r?function(e,t,n){return function i(o){const r=e.querySelectorAll(t);for(let{target:s}=o;s&&s!==this;s=s.parentNode)for(const a of r)if(a===s)return lt(o,{delegateTarget:s}),i.oneOff&&ct.off(e,o.type,t,n),n.apply(s,[o])}}(e,n,s):function(e,t){return function n(i){return lt(i,{delegateTarget:e}),n.oneOff&&ct.off(e,i.type,t),t.apply(e,[i])}}(e,s);d.delegationSelector=r?n:null,d.callable=s,d.oneOff=o,d.uidEvent=f,l[f]=d,e.addEventListener(a,d,r)}function rt(e,t,n,i,o){const r=nt(t[n],i,o);r&&(e.removeEventListener(n,r,Boolean(o)),delete t[n][r.uidEvent])}function st(e,t,n,i){const o=t[n]||{};for(const[r,s]of Object.entries(o))r.includes(i)&&rt(e,t,n,s.callable,s.delegationSelector)}function at(e){return e=e.replace(Qe,""),Xe[e]||e}const ct={on(e,t,n,i){ot(e,t,n,i,!1)},one(e,t,n,i){ot(e,t,n,i,!0)},off(e,t,n,i){if("string"!=typeof t||!e)return;const[o,r,s]=it(t,n,i),a=s!==t,c=tt(e),l=c[s]||{},u=t.startsWith(".");if(void 0===r){if(u)for(const n of Object.keys(c))st(e,c,n,t.slice(1));for(const[n,i]of Object.entries(l)){const o=n.replace(Ge,"");a&&!t.includes(o)||rt(e,c,s,i.callable,i.delegationSelector)}}else{if(!Object.keys(l).length)return;rt(e,c,s,r,o?n:null)}},trigger(e,t,n){if("string"!=typeof t||!e)return null;const i=qe();let o=null,r=!0,s=!0,a=!1;t!==at(t)&&i&&(o=i.Event(t,n),i(e).trigger(o),r=!o.isPropagationStopped(),s=!o.isImmediatePropagationStopped(),a=o.isDefaultPrevented());const c=lt(new Event(t,{bubbles:r,cancelable:!0}),n);return a&&c.preventDefault(),s&&e.dispatchEvent(c),c.defaultPrevented&&o&&o.preventDefault(),c}};function lt(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};for(const[n,i]of Object.entries(t))try{e[n]=i}catch{Object.defineProperty(e,n,{configurable:!0,get:()=>i})}return e}function ut(e){if("true"===e)return!0;if("false"===e)return!1;if(e===Number(e).toString())return Number(e);if(""===e||"null"===e)return null;if("string"!=typeof e)return e;try{return JSON.parse(decodeURIComponent(e))}catch{return e}}function ft(e){return e.replace(/[A-Z]/g,(e=>"-".concat(e.toLowerCase())))}const dt={setDataAttribute(e,t,n){e.setAttribute("data-bs-".concat(ft(t)),n)},removeDataAttribute(e,t){e.removeAttribute("data-bs-".concat(ft(t)))},getDataAttributes(e){if(!e)return{};const t={},n=Object.keys(e.dataset).filter((e=>e.startsWith("bs")&&!e.startsWith("bsConfig")));for(const i of n){let n=i.replace(/^bs/,"");n=n.charAt(0).toLowerCase()+n.slice(1,n.length),t[n]=ut(e.dataset[i])}return t},getDataAttribute:(e,t)=>ut(e.getAttribute("data-bs-".concat(ft(t))))};class pt{static get Default(){return{}}static get DefaultType(){return{}}static get NAME(){throw new Error('You have to implement the static method "NAME", for each component!')}_getConfig(e){return e=this._mergeConfigObj(e),e=this._configAfterMerge(e),this._typeCheckConfig(e),e}_configAfterMerge(e){return e}_mergeConfigObj(e,t){const n=Ie(t)?dt.getDataAttribute(t,"config"):{};return{...this.constructor.Default,..."object"==typeof n?n:{},...Ie(t)?dt.getDataAttributes(t):{},..."object"==typeof e?e:{}}}_typeCheckConfig(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.constructor.DefaultType;for(const[i,o]of Object.entries(t)){const t=e[i],r=Ie(t)?"element":null==(n=t)?"".concat(n):Object.prototype.toString.call(n).match(/\s([a-z]+)/i)[1].toLowerCase();if(!new RegExp(o).test(r))throw new TypeError("".concat(this.constructor.NAME.toUpperCase(),': Option "').concat(i,'" provided type "').concat(r,'" but expected type "').concat(o,'".'))}var n}}class ht extends pt{constructor(e,t){super(),(e=Fe(e))&&(this._element=e,this._config=this._getConfig(t),Pe.set(this._element,this.constructor.DATA_KEY,this))}dispose(){Pe.remove(this._element,this.constructor.DATA_KEY),ct.off(this._element,this.constructor.EVENT_KEY);for(const e of Object.getOwnPropertyNames(this))this[e]=null}_queueCallback(e,t){Ye(e,t,!(arguments.length>2&&void 0!==arguments[2])||arguments[2])}_getConfig(e){return e=this._mergeConfigObj(e,this._element),e=this._configAfterMerge(e),this._typeCheckConfig(e),e}static getInstance(e){return Pe.get(Fe(e),this.DATA_KEY)}static getOrCreateInstance(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.getInstance(e)||new this(e,"object"==typeof t?t:null)}static get VERSION(){return"5.3.3"}static get DATA_KEY(){return"bs.".concat(this.NAME)}static get EVENT_KEY(){return".".concat(this.DATA_KEY)}static eventName(e){return"".concat(e).concat(this.EVENT_KEY)}}const mt={"*":["class","dir","id","lang","role",/^aria-[\w-]*$/i],a:["target","href","title","rel"],area:[],b:[],br:[],col:[],code:[],dd:[],div:[],dl:[],dt:[],em:[],hr:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],i:[],img:["src","srcset","alt","title","width","height"],li:[],ol:[],p:[],pre:[],s:[],small:[],span:[],sub:[],sup:[],strong:[],u:[],ul:[]},gt=new Set(["background","cite","href","itemtype","longdesc","poster","src","xlink:href"]),vt=/^(?!javascript:)(?:[a-z0-9+.-]+:|[^&:/?#]*(?:[/?#]|$))/i,bt=(e,t)=>{const n=e.nodeName.toLowerCase();return t.includes(n)?!gt.has(n)||Boolean(vt.test(e.nodeValue)):t.filter((e=>e instanceof RegExp)).some((e=>e.test(n)))};const yt=e=>{let t=e.getAttribute("data-bs-target");if(!t||"#"===t){let n=e.getAttribute("href");if(!n||!n.includes("#")&&!n.startsWith("."))return null;n.includes("#")&&!n.startsWith("#")&&(n="#".concat(n.split("#")[1])),t=n&&"#"!==n?n.trim():null}return t?t.split(",").map((e=>Be(e))).join(","):null},_t={find(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:document.documentElement;return[].concat(...Element.prototype.querySelectorAll.call(t,e))},findOne(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:document.documentElement;return Element.prototype.querySelector.call(t,e)},children:(e,t)=>[].concat(...e.children).filter((e=>e.matches(t))),parents(e,t){const n=[];let i=e.parentNode.closest(t);for(;i;)n.push(i),i=i.parentNode.closest(t);return n},prev(e,t){let n=e.previousElementSibling;for(;n;){if(n.matches(t))return[n];n=n.previousElementSibling}return[]},next(e,t){let n=e.nextElementSibling;for(;n;){if(n.matches(t))return[n];n=n.nextElementSibling}return[]},focusableChildren(e){const t=["a","button","input","textarea","select","details","[tabindex]",'[contenteditable="true"]'].map((e=>"".concat(e,':not([tabindex^="-"])'))).join(",");return this.find(t,e).filter((e=>!(e=>!e||e.nodeType!==Node.ELEMENT_NODE||!!e.classList.contains("disabled")||(void 0!==e.disabled?e.disabled:e.hasAttribute("disabled")&&"false"!==e.getAttribute("disabled")))(e)&&(e=>{if(!Ie(e)||0===e.getClientRects().length)return!1;const t="visible"===getComputedStyle(e).getPropertyValue("visibility"),n=e.closest("details:not([open])");if(!n)return t;if(n!==e){const t=e.closest("summary");if(t&&t.parentNode!==n)return!1;if(null===t)return!1}return t})(e)))},getSelectorFromElement(e){const t=yt(e);return t&&_t.findOne(t)?t:null},getElementFromSelector(e){const t=yt(e);return t?_t.findOne(t):null},getMultipleElementsFromSelector(e){const t=yt(e);return t?_t.find(t):[]}},wt={allowList:mt,content:{},extraClass:"",html:!1,sanitize:!0,sanitizeFn:null,template:"
"},Et={allowList:"object",content:"object",extraClass:"(string|function)",html:"boolean",sanitize:"boolean",sanitizeFn:"(null|function)",template:"string"},At={entry:"(string|element|function|null)",selector:"(string|element)"};class xt extends pt{constructor(e){super(),this._config=this._getConfig(e)}static get Default(){return wt}static get DefaultType(){return Et}static get NAME(){return"TemplateFactory"}getContent(){return Object.values(this._config.content).map((e=>this._resolvePossibleFunction(e))).filter(Boolean)}hasContent(){return this.getContent().length>0}changeContent(e){return this._checkContent(e),this._config.content={...this._config.content,...e},this}toHtml(){const e=document.createElement("div");e.innerHTML=this._maybeSanitize(this._config.template);for(const[t,n]of Object.entries(this._config.content))this._setContent(e,n,t);const t=e.children[0],n=this._resolvePossibleFunction(this._config.extraClass);return n&&t.classList.add(...n.split(" ")),t}_typeCheckConfig(e){super._typeCheckConfig(e),this._checkContent(e.content)}_checkContent(e){for(const[t,n]of Object.entries(e))super._typeCheckConfig({selector:t,entry:n},At)}_setContent(e,t,n){const i=_t.findOne(n,e);i&&((t=this._resolvePossibleFunction(t))?Ie(t)?this._putElementInTemplate(Fe(t),i):this._config.html?i.innerHTML=this._maybeSanitize(t):i.textContent=t:i.remove())}_maybeSanitize(e){return this._config.sanitize?function(e,t,n){if(!e.length)return e;if(n&&"function"==typeof n)return n(e);const i=(new window.DOMParser).parseFromString(e,"text/html"),o=[].concat(...i.body.querySelectorAll("*"));for(const e of o){const n=e.nodeName.toLowerCase();if(!Object.keys(t).includes(n)){e.remove();continue}const i=[].concat(...e.attributes),o=[].concat(t["*"]||[],t[n]||[]);for(const t of i)bt(t,o)||e.removeAttribute(t.nodeName)}return i.body.innerHTML}(e,this._config.allowList,this._config.sanitizeFn):e}_resolvePossibleFunction(e){return Ue(e,[this])}_putElementInTemplate(e,t){if(this._config.html)return t.innerHTML="",void t.append(e);t.textContent=e.textContent}}const Ot=new Set(["sanitize","allowList","sanitizeFn"]),Ct="fade",Lt="show",Tt=".tooltip-inner",St=".".concat("modal"),jt="hide.bs.modal",Dt="hover",kt="focus",Mt={AUTO:"auto",TOP:"top",RIGHT:We()?"left":"right",BOTTOM:"bottom",LEFT:We()?"right":"left"},Pt={allowList:mt,animation:!0,boundary:"clippingParents",container:!1,customClass:"",delay:0,fallbackPlacements:["top","right","bottom","left"],html:!1,offset:[0,6],placement:"top",popperConfig:null,sanitize:!0,sanitizeFn:null,selector:!1,template:'',title:"",trigger:"hover focus"},Nt={allowList:"object",animation:"boolean",boundary:"(string|element)",container:"(string|element|boolean)",customClass:"(string|function)",delay:"(number|object)",fallbackPlacements:"array",html:"boolean",offset:"(array|string|function)",placement:"(string|function)",popperConfig:"(null|object|function)",sanitize:"boolean",sanitizeFn:"(null|function)",selector:"(string|boolean)",template:"string",title:"(string|element|function)",trigger:"string"};class Bt extends ht{constructor(e,t){if(void 0===ke)throw new TypeError("Bootstrap's tooltips require Popper (https://popper.js.org)");super(e,t),this._isEnabled=!0,this._timeout=0,this._isHovered=null,this._activeTrigger={},this._popper=null,this._templateFactory=null,this._newContent=null,this.tip=null,this._setListeners(),this._config.selector||this._fixTitle()}static get Default(){return Pt}static get DefaultType(){return Nt}static get NAME(){return"tooltip"}enable(){this._isEnabled=!0}disable(){this._isEnabled=!1}toggleEnabled(){this._isEnabled=!this._isEnabled}toggle(){this._isEnabled&&(this._activeTrigger.click=!this._activeTrigger.click,this._isShown()?this._leave():this._enter())}dispose(){clearTimeout(this._timeout),ct.off(this._element.closest(St),jt,this._hideModalHandler),this._element.getAttribute("data-bs-original-title")&&this._element.setAttribute("title",this._element.getAttribute("data-bs-original-title")),this._disposePopper(),super.dispose()}show(){if("none"===this._element.style.display)throw new Error("Please use show on visible elements");if(!this._isWithContent()||!this._isEnabled)return;const e=ct.trigger(this._element,this.constructor.eventName("show")),t=(He(this._element)||this._element.ownerDocument.documentElement).contains(this._element);if(e.defaultPrevented||!t)return;this._disposePopper();const n=this._getTipElement();this._element.setAttribute("aria-describedby",n.getAttribute("id"));const{container:i}=this._config;if(this._element.ownerDocument.documentElement.contains(this.tip)||(i.append(n),ct.trigger(this._element,this.constructor.eventName("inserted"))),this._popper=this._createPopper(n),n.classList.add(Lt),"ontouchstart"in document.documentElement)for(const e of[].concat(...document.body.children))ct.on(e,"mouseover",Re);this._queueCallback((()=>{ct.trigger(this._element,this.constructor.eventName("shown")),!1===this._isHovered&&this._leave(),this._isHovered=!1}),this.tip,this._isAnimated())}hide(){if(!this._isShown())return;if(ct.trigger(this._element,this.constructor.eventName("hide")).defaultPrevented)return;if(this._getTipElement().classList.remove(Lt),"ontouchstart"in document.documentElement)for(const e of[].concat(...document.body.children))ct.off(e,"mouseover",Re);this._activeTrigger.click=!1,this._activeTrigger[kt]=!1,this._activeTrigger[Dt]=!1,this._isHovered=null;this._queueCallback((()=>{this._isWithActiveTrigger()||(this._isHovered||this._disposePopper(),this._element.removeAttribute("aria-describedby"),ct.trigger(this._element,this.constructor.eventName("hidden")))}),this.tip,this._isAnimated())}update(){this._popper&&this._popper.update()}_isWithContent(){return Boolean(this._getTitle())}_getTipElement(){return this.tip||(this.tip=this._createTipElement(this._newContent||this._getContentForTemplate())),this.tip}_createTipElement(e){const t=this._getTemplateFactory(e).toHtml();if(!t)return null;t.classList.remove(Ct,Lt),t.classList.add("bs-".concat(this.constructor.NAME,"-auto"));const n=(e=>{do{e+=Math.floor(1e6*Math.random())}while(document.getElementById(e));return e})(this.constructor.NAME).toString();return t.setAttribute("id",n),this._isAnimated()&&t.classList.add(Ct),t}setContent(e){this._newContent=e,this._isShown()&&(this._disposePopper(),this.show())}_getTemplateFactory(e){return this._templateFactory?this._templateFactory.changeContent(e):this._templateFactory=new xt({...this._config,content:e,extraClass:this._resolvePossibleFunction(this._config.customClass)}),this._templateFactory}_getContentForTemplate(){return{[Tt]:this._getTitle()}}_getTitle(){return this._resolvePossibleFunction(this._config.title)||this._element.getAttribute("data-bs-original-title")}_initializeOnDelegatedTarget(e){return this.constructor.getOrCreateInstance(e.delegateTarget,this._getDelegateConfig())}_isAnimated(){return this._config.animation||this.tip&&this.tip.classList.contains(Ct)}_isShown(){return this.tip&&this.tip.classList.contains(Lt)}_createPopper(e){const t=Ue(this._config.placement,[this,e,this._element]),n=Mt[t.toUpperCase()];return De(this._element,e,this._getPopperConfig(n))}_getOffset(){const{offset:e}=this._config;return"string"==typeof e?e.split(",").map((e=>Number.parseInt(e,10))):"function"==typeof e?t=>e(t,this._element):e}_resolvePossibleFunction(e){return Ue(e,[this._element])}_getPopperConfig(e){const t={placement:e,modifiers:[{name:"flip",options:{fallbackPlacements:this._config.fallbackPlacements}},{name:"offset",options:{offset:this._getOffset()}},{name:"preventOverflow",options:{boundary:this._config.boundary}},{name:"arrow",options:{element:".".concat(this.constructor.NAME,"-arrow")}},{name:"preSetPlacement",enabled:!0,phase:"beforeMain",fn:e=>{this._getTipElement().setAttribute("data-popper-placement",e.state.placement)}}]};return{...t,...Ue(this._config.popperConfig,[t])}}_setListeners(){const e=this._config.trigger.split(" ");for(const t of e)if("click"===t)ct.on(this._element,this.constructor.eventName("click"),this._config.selector,(e=>{this._initializeOnDelegatedTarget(e).toggle()}));else if("manual"!==t){const e=t===Dt?this.constructor.eventName("mouseenter"):this.constructor.eventName("focusin"),n=t===Dt?this.constructor.eventName("mouseleave"):this.constructor.eventName("focusout");ct.on(this._element,e,this._config.selector,(e=>{const t=this._initializeOnDelegatedTarget(e);t._activeTrigger["focusin"===e.type?kt:Dt]=!0,t._enter()})),ct.on(this._element,n,this._config.selector,(e=>{const t=this._initializeOnDelegatedTarget(e);t._activeTrigger["focusout"===e.type?kt:Dt]=t._element.contains(e.relatedTarget),t._leave()}))}this._hideModalHandler=()=>{this._element&&this.hide()},ct.on(this._element.closest(St),jt,this._hideModalHandler)}_fixTitle(){const e=this._element.getAttribute("title");e&&(this._element.getAttribute("aria-label")||this._element.textContent.trim()||this._element.setAttribute("aria-label",e),this._element.setAttribute("data-bs-original-title",e),this._element.removeAttribute("title"))}_enter(){this._isShown()||this._isHovered?this._isHovered=!0:(this._isHovered=!0,this._setTimeout((()=>{this._isHovered&&this.show()}),this._config.delay.show))}_leave(){this._isWithActiveTrigger()||(this._isHovered=!1,this._setTimeout((()=>{this._isHovered||this.hide()}),this._config.delay.hide))}_setTimeout(e,t){clearTimeout(this._timeout),this._timeout=setTimeout(e,t)}_isWithActiveTrigger(){return Object.values(this._activeTrigger).includes(!0)}_getConfig(e){const t=dt.getDataAttributes(this._element);for(const e of Object.keys(t))Ot.has(e)&&delete t[e];return e={...t,..."object"==typeof e&&e?e:{}},e=this._mergeConfigObj(e),e=this._configAfterMerge(e),this._typeCheckConfig(e),e}_configAfterMerge(e){return e.container=!1===e.container?document.body:Fe(e.container),"number"==typeof e.delay&&(e.delay={show:e.delay,hide:e.delay}),"number"==typeof e.title&&(e.title=e.title.toString()),"number"==typeof e.content&&(e.content=e.content.toString()),e}_getDelegateConfig(){const e={};for(const[t,n]of Object.entries(this._config))this.constructor.Default[t]!==n&&(e[t]=n);return e.selector=!1,e.trigger="manual",e}_disposePopper(){this._popper&&(this._popper.destroy(),this._popper=null),this.tip&&(this.tip.remove(),this.tip=null)}static jQueryInterface(e){return this.each((function(){const t=Bt.getOrCreateInstance(this,e);if("string"==typeof e){if(void 0===t[e])throw new TypeError('No method named "'.concat(e,'"'));t[e]()}}))}}Ve(Bt);const It=document.getElementById("mode-toggle");function Ft(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var i=n.call(e,t||"default");if("object"!=typeof i)return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:t+""}function Ht(e,t,n){return(t=Ft(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}const Rt="sidebar-display";class qt{static toggle(){!1===qt.isExpanded?document.body.setAttribute(Rt,""):document.body.removeAttribute(Rt),qt.isExpanded=!qt.isExpanded}}Ht(qt,"isExpanded",!1);const zt=document.getElementById("sidebar-trigger"),Wt=document.getElementById("search-trigger"),Vt=document.getElementById("search-cancel"),Ut=document.querySelectorAll("#main-wrapper>.container>.row"),Yt=document.getElementById("topbar-title"),Kt=document.getElementById("search"),Qt=document.getElementById("search-result-wrapper"),Gt=document.getElementById("search-results"),$t=document.getElementById("search-input"),Jt=document.getElementById("search-hints"),Xt="d-block",Zt="d-none",en="input-focus",tn="d-flex";class nn{static on(){zt.classList.add(Zt),Yt.classList.add(Zt),Wt.classList.add(Zt),Kt.classList.add(tn),Vt.classList.add(Xt)}static off(){Vt.classList.remove(Xt),Kt.classList.remove(tn),zt.classList.remove(Zt),Yt.classList.remove(Zt),Wt.classList.remove(Zt)}}class on{static on(){this.resultVisible||(Qt.classList.remove(Zt),Ut.forEach((e=>{e.classList.add(Zt)})),this.resultVisible=!0)}static off(){this.resultVisible&&(Gt.innerHTML="",Jt.classList.contains(Zt)&&Jt.classList.remove(Zt),Qt.classList.add(Zt),Ut.forEach((e=>{e.classList.remove(Zt)})),$t.textContent="",this.resultVisible=!1)}}function rn(){return Vt.classList.contains(Xt)}Ht(on,"resultVisible",!1);const sn=".".concat("bs.collapse"),an="show".concat(sn),cn="shown".concat(sn),ln="hide".concat(sn),un="hidden".concat(sn),fn="click".concat(sn).concat(".data-api"),dn="show",pn="collapse",hn="collapsing",mn=":scope .".concat(pn," .").concat(pn),gn='[data-bs-toggle="collapse"]',vn={parent:null,toggle:!0},bn={parent:"(null|element)",toggle:"boolean"};class yn extends ht{constructor(e,t){super(e,t),this._isTransitioning=!1,this._triggerArray=[];const n=_t.find(gn);for(const e of n){const t=_t.getSelectorFromElement(e),n=_t.find(t).filter((e=>e===this._element));null!==t&&n.length&&this._triggerArray.push(e)}this._initializeChildren(),this._config.parent||this._addAriaAndCollapsedClass(this._triggerArray,this._isShown()),this._config.toggle&&this.toggle()}static get Default(){return vn}static get DefaultType(){return bn}static get NAME(){return"collapse"}toggle(){this._isShown()?this.hide():this.show()}show(){if(this._isTransitioning||this._isShown())return;let e=[];if(this._config.parent&&(e=this._getFirstLevelChildren(".collapse.show, .collapse.collapsing").filter((e=>e!==this._element)).map((e=>yn.getOrCreateInstance(e,{toggle:!1})))),e.length&&e[0]._isTransitioning)return;if(ct.trigger(this._element,an).defaultPrevented)return;for(const t of e)t.hide();const t=this._getDimension();this._element.classList.remove(pn),this._element.classList.add(hn),this._element.style[t]=0,this._addAriaAndCollapsedClass(this._triggerArray,!0),this._isTransitioning=!0;const n=t[0].toUpperCase()+t.slice(1),i="scroll".concat(n);this._queueCallback((()=>{this._isTransitioning=!1,this._element.classList.remove(hn),this._element.classList.add(pn,dn),this._element.style[t]="",ct.trigger(this._element,cn)}),this._element,!0),this._element.style[t]="".concat(this._element[i],"px")}hide(){if(this._isTransitioning||!this._isShown())return;if(ct.trigger(this._element,ln).defaultPrevented)return;const e=this._getDimension();this._element.style[e]="".concat(this._element.getBoundingClientRect()[e],"px"),this._element.offsetHeight,this._element.classList.add(hn),this._element.classList.remove(pn,dn);for(const e of this._triggerArray){const t=_t.getElementFromSelector(e);t&&!this._isShown(t)&&this._addAriaAndCollapsedClass([e],!1)}this._isTransitioning=!0;this._element.style[e]="",this._queueCallback((()=>{this._isTransitioning=!1,this._element.classList.remove(hn),this._element.classList.add(pn),ct.trigger(this._element,un)}),this._element,!0)}_isShown(){return(arguments.length>0&&void 0!==arguments[0]?arguments[0]:this._element).classList.contains(dn)}_configAfterMerge(e){return e.toggle=Boolean(e.toggle),e.parent=Fe(e.parent),e}_getDimension(){return this._element.classList.contains("collapse-horizontal")?"width":"height"}_initializeChildren(){if(!this._config.parent)return;const e=this._getFirstLevelChildren(gn);for(const t of e){const e=_t.getElementFromSelector(t);e&&this._addAriaAndCollapsedClass([t],this._isShown(e))}}_getFirstLevelChildren(e){const t=_t.find(mn,this._config.parent);return _t.find(e,this._config.parent).filter((e=>!t.includes(e)))}_addAriaAndCollapsedClass(e,t){if(e.length)for(const n of e)n.classList.toggle("collapsed",!t),n.setAttribute("aria-expanded",t)}static jQueryInterface(e){const t={};return"string"==typeof e&&/show|hide/.test(e)&&(t.toggle=!1),this.each((function(){const n=yn.getOrCreateInstance(this,t);if("string"==typeof e){if(void 0===n[e])throw new TypeError('No method named "'.concat(e,'"'));n[e]()}}))}}ct.on(document,fn,gn,(function(e){("A"===e.target.tagName||e.delegateTarget&&"A"===e.delegateTarget.tagName)&&e.preventDefault();for(const e of _t.getMultipleElementsFromSelector(this))yn.getOrCreateInstance(e,{toggle:!1}).toggle()})),Ve(yn),document.getElementsByClassName("collapse");const _n=".code-header>button",wn="far fa-clipboard",En="fas fa-check",An="timeout",xn="data-title-succeed",On="data-bs-original-title",Cn=2e3;function Ln(e){if(e.hasAttribute(An)){let t=e.getAttribute(An);if(Number(t)>Date.now())return!0}return!1}function Tn(e){e.setAttribute(An,Date.now()+Cn)}function Sn(e){e.removeAttribute(An)}function jn(){const e=document.querySelectorAll(_n);if(0===e.length)return;const t=new ClipboardJS(_n,{target:e=>e.parentNode.nextElementSibling.querySelector("code .rouge-code")});[...e].map((e=>new Bt(e,{placement:"left"}))),t.on("success",(e=>{const t=e.trigger;(e.clearSelection(),Ln(t))||(t.children[0].setAttribute("class",En),function(e){const t=e.getAttribute(xn);e.setAttribute(On,t),Bt.getInstance(e).show()}(t),Tn(t),setTimeout((()=>{!function(e){Bt.getInstance(e).hide(),e.removeAttribute(On)}(t),function(e){e.children[0].setAttribute("class",wn)}(t),Sn(t)}),Cn))}))}const Dn="data-src",kn="data-lqip",Mn={SHIMMER:"shimmer",BLUR:"blur"};function Pn(e){this.parentElement.classList.remove(e)}function Nn(){this.complete&&(this.hasAttribute(kn)?Pn.call(this,Mn.BLUR):Pn.call(this,Mn.SHIMMER))}function Bn(){const e=this.getAttribute(Dn);this.setAttribute("src",encodeURI(e)),this.removeAttribute(Dn)}const In="popup";!function(){const e=document.querySelectorAll("article img");if(0===e.length)return;e.forEach((e=>{e.addEventListener("load",Nn)})),document.querySelectorAll('article img[loading="lazy"]').forEach((e=>{e.complete&&Pn.call(e,Mn.SHIMMER)}));const t=document.querySelectorAll("article img[".concat(kn,'="true"]'));t.length&&t.forEach((e=>{Bn.call(e)}))}(),0!==document.getElementsByClassName(In).length&&GLightbox({selector:".".concat(In)}),It&&It.addEventListener("click",(()=>{modeToggle.flipMode()})),document.getElementById("sidebar-trigger").addEventListener("click",qt.toggle),document.getElementById("mask").addEventListener("click",qt.toggle),Wt.addEventListener("click",(()=>{nn.on(),on.on(),$t.focus()})),Vt.addEventListener("click",(()=>{nn.off(),on.off()})),$t.addEventListener("focus",(()=>{Kt.classList.add(en)})),$t.addEventListener("focusout",(()=>{Kt.classList.remove(en)})),$t.addEventListener("input",(()=>{""===$t.value?rn()?Jt.classList.remove(Zt):on.off():(on.on(),rn()&&Jt.classList.add(Zt))})),jn(),function(){const e=document.getElementById("copy-link");null!==e&&(e.addEventListener("click",(e=>{const t=e.target;Ln(t)||navigator.clipboard.writeText(window.location.href).then((()=>{const e=t.getAttribute(On),n=t.getAttribute(xn);t.setAttribute(On,n),Bt.getInstance(t).show(),Tn(t),setTimeout((()=>{t.setAttribute(On,e),Sn(t)}),Cn)}))})),e.addEventListener("mouseleave",(e=>{Bt.getInstance(e.target).hide()})))}(),function(){const e=document.getElementById("back-to-top");window.addEventListener("scroll",(()=>{window.scrollY>50?e.classList.add("show"):e.classList.remove("show")})),e.addEventListener("click",(()=>{window.scrollTo({top:0})}))}(),[...document.querySelectorAll('[data-bs-toggle="tooltip"]')].map((e=>new Bt(e)))}(); diff --git a/_site/assets/js/dist/post.min.js b/_site/assets/js/dist/post.min.js deleted file mode 100644 index e06f385..0000000 --- a/_site/assets/js/dist/post.min.js +++ /dev/null @@ -1,4 +0,0 @@ -/*! - * Chirpy v7.0.1 | © 2019 Cotes Chung | MIT Licensed | https://github.com/cotes2020/jekyll-theme-chirpy/ - */ -!function(){"use strict";var t="top",e="bottom",n="right",i="left",o="auto",r=[t,e,n,i],s="start",a="end",c="clippingParents",l="viewport",u="popper",f="reference",d=r.reduce((function(t,e){return t.concat([e+"-"+s,e+"-"+a])}),[]),p=[].concat(r,[o]).reduce((function(t,e){return t.concat([e,e+"-"+s,e+"-"+a])}),[]),h="beforeRead",m="read",g="afterRead",b="beforeMain",v="main",y="afterMain",_="beforeWrite",w="write",E="afterWrite",A=[h,m,g,b,v,y,_,w,E];function x(t){return t?(t.nodeName||"").toLowerCase():null}function O(t){if(null==t)return window;if("[object Window]"!==t.toString()){var e=t.ownerDocument;return e&&e.defaultView||window}return t}function C(t){return t instanceof O(t).Element||t instanceof Element}function T(t){return t instanceof O(t).HTMLElement||t instanceof HTMLElement}function L(t){return"undefined"!=typeof ShadowRoot&&(t instanceof O(t).ShadowRoot||t instanceof ShadowRoot)}var S={name:"applyStyles",enabled:!0,phase:"write",fn:function(t){var e=t.state;Object.keys(e.elements).forEach((function(t){var n=e.styles[t]||{},i=e.attributes[t]||{},o=e.elements[t];T(o)&&x(o)&&(Object.assign(o.style,n),Object.keys(i).forEach((function(t){var e=i[t];!1===e?o.removeAttribute(t):o.setAttribute(t,!0===e?"":e)})))}))},effect:function(t){var e=t.state,n={popper:{position:e.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(e.elements.popper.style,n.popper),e.styles=n,e.elements.arrow&&Object.assign(e.elements.arrow.style,n.arrow),function(){Object.keys(e.elements).forEach((function(t){var i=e.elements[t],o=e.attributes[t]||{},r=Object.keys(e.styles.hasOwnProperty(t)?e.styles[t]:n[t]).reduce((function(t,e){return t[e]="",t}),{});T(i)&&x(i)&&(Object.assign(i.style,r),Object.keys(o).forEach((function(t){i.removeAttribute(t)})))}))}},requires:["computeStyles"]};function j(t){return t.split("-")[0]}var D=Math.max,k=Math.min,M=Math.round;function N(){var t=navigator.userAgentData;return null!=t&&t.brands&&Array.isArray(t.brands)?t.brands.map((function(t){return t.brand+"/"+t.version})).join(" "):navigator.userAgent}function P(){return!/^((?!chrome|android).)*safari/i.test(N())}function F(t,e,n){void 0===e&&(e=!1),void 0===n&&(n=!1);var i=t.getBoundingClientRect(),o=1,r=1;e&&T(t)&&(o=t.offsetWidth>0&&M(i.width)/t.offsetWidth||1,r=t.offsetHeight>0&&M(i.height)/t.offsetHeight||1);var s=(C(t)?O(t):window).visualViewport,a=!P()&&n,c=(i.left+(a&&s?s.offsetLeft:0))/o,l=(i.top+(a&&s?s.offsetTop:0))/r,u=i.width/o,f=i.height/r;return{width:u,height:f,top:l,right:c+u,bottom:l+f,left:c,x:c,y:l}}function B(t){var e=F(t),n=t.offsetWidth,i=t.offsetHeight;return Math.abs(e.width-n)<=1&&(n=e.width),Math.abs(e.height-i)<=1&&(i=e.height),{x:t.offsetLeft,y:t.offsetTop,width:n,height:i}}function I(t,e){var n=e.getRootNode&&e.getRootNode();if(t.contains(e))return!0;if(n&&L(n)){var i=e;do{if(i&&t.isSameNode(i))return!0;i=i.parentNode||i.host}while(i)}return!1}function H(t){return O(t).getComputedStyle(t)}function q(t){return["table","td","th"].indexOf(x(t))>=0}function R(t){return((C(t)?t.ownerDocument:t.document)||window.document).documentElement}function z(t){return"html"===x(t)?t:t.assignedSlot||t.parentNode||(L(t)?t.host:null)||R(t)}function W(t){return T(t)&&"fixed"!==H(t).position?t.offsetParent:null}function V(t){for(var e=O(t),n=W(t);n&&q(n)&&"static"===H(n).position;)n=W(n);return n&&("html"===x(n)||"body"===x(n)&&"static"===H(n).position)?e:n||function(t){var e=/firefox/i.test(N());if(/Trident/i.test(N())&&T(t)&&"fixed"===H(t).position)return null;var n=z(t);for(L(n)&&(n=n.host);T(n)&&["html","body"].indexOf(x(n))<0;){var i=H(n);if("none"!==i.transform||"none"!==i.perspective||"paint"===i.contain||-1!==["transform","perspective"].indexOf(i.willChange)||e&&"filter"===i.willChange||e&&i.filter&&"none"!==i.filter)return n;n=n.parentNode}return null}(t)||e}function U(t){return["top","bottom"].indexOf(t)>=0?"x":"y"}function Y(t,e,n){return D(t,k(e,n))}function K(t){return Object.assign({},{top:0,right:0,bottom:0,left:0},t)}function Q(t,e){return e.reduce((function(e,n){return e[n]=t,e}),{})}var G={name:"arrow",enabled:!0,phase:"main",fn:function(o){var s,a=o.state,c=o.name,l=o.options,u=a.elements.arrow,f=a.modifiersData.popperOffsets,d=j(a.placement),p=U(d),h=[i,n].indexOf(d)>=0?"height":"width";if(u&&f){var m=function(t,e){return K("number"!=typeof(t="function"==typeof t?t(Object.assign({},e.rects,{placement:e.placement})):t)?t:Q(t,r))}(l.padding,a),g=B(u),b="y"===p?t:i,v="y"===p?e:n,y=a.rects.reference[h]+a.rects.reference[p]-f[p]-a.rects.popper[h],_=f[p]-a.rects.reference[p],w=V(u),E=w?"y"===p?w.clientHeight||0:w.clientWidth||0:0,A=y/2-_/2,x=m[b],O=E-g[h]-m[v],C=E/2-g[h]/2+A,T=Y(x,C,O),L=p;a.modifiersData[c]=((s={})[L]=T,s.centerOffset=T-C,s)}},effect:function(t){var e=t.state,n=t.options.element,i=void 0===n?"[data-popper-arrow]":n;null!=i&&("string"!=typeof i||(i=e.elements.popper.querySelector(i)))&&I(e.elements.popper,i)&&(e.elements.arrow=i)},requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function $(t){return t.split("-")[1]}var J={top:"auto",right:"auto",bottom:"auto",left:"auto"};function X(o){var r,s=o.popper,c=o.popperRect,l=o.placement,u=o.variation,f=o.offsets,d=o.position,p=o.gpuAcceleration,h=o.adaptive,m=o.roundOffsets,g=o.isFixed,b=f.x,v=void 0===b?0:b,y=f.y,_=void 0===y?0:y,w="function"==typeof m?m({x:v,y:_}):{x:v,y:_};v=w.x,_=w.y;var E=f.hasOwnProperty("x"),A=f.hasOwnProperty("y"),x=i,C=t,T=window;if(h){var L=V(s),S="clientHeight",j="clientWidth";if(L===O(s)&&"static"!==H(L=R(s)).position&&"absolute"===d&&(S="scrollHeight",j="scrollWidth"),l===t||(l===i||l===n)&&u===a)C=e,_-=(g&&L===T&&T.visualViewport?T.visualViewport.height:L[S])-c.height,_*=p?1:-1;if(l===i||(l===t||l===e)&&u===a)x=n,v-=(g&&L===T&&T.visualViewport?T.visualViewport.width:L[j])-c.width,v*=p?1:-1}var D,k=Object.assign({position:d},h&&J),N=!0===m?function(t,e){var n=t.x,i=t.y,o=e.devicePixelRatio||1;return{x:M(n*o)/o||0,y:M(i*o)/o||0}}({x:v,y:_},O(s)):{x:v,y:_};return v=N.x,_=N.y,p?Object.assign({},k,((D={})[C]=A?"0":"",D[x]=E?"0":"",D.transform=(T.devicePixelRatio||1)<=1?"translate("+v+"px, "+_+"px)":"translate3d("+v+"px, "+_+"px, 0)",D)):Object.assign({},k,((r={})[C]=A?_+"px":"",r[x]=E?v+"px":"",r.transform="",r))}var Z={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:function(t){var e=t.state,n=t.options,i=n.gpuAcceleration,o=void 0===i||i,r=n.adaptive,s=void 0===r||r,a=n.roundOffsets,c=void 0===a||a,l={placement:j(e.placement),variation:$(e.placement),popper:e.elements.popper,popperRect:e.rects.popper,gpuAcceleration:o,isFixed:"fixed"===e.options.strategy};null!=e.modifiersData.popperOffsets&&(e.styles.popper=Object.assign({},e.styles.popper,X(Object.assign({},l,{offsets:e.modifiersData.popperOffsets,position:e.options.strategy,adaptive:s,roundOffsets:c})))),null!=e.modifiersData.arrow&&(e.styles.arrow=Object.assign({},e.styles.arrow,X(Object.assign({},l,{offsets:e.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:c})))),e.attributes.popper=Object.assign({},e.attributes.popper,{"data-popper-placement":e.placement})},data:{}},tt={passive:!0};var et={name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:function(t){var e=t.state,n=t.instance,i=t.options,o=i.scroll,r=void 0===o||o,s=i.resize,a=void 0===s||s,c=O(e.elements.popper),l=[].concat(e.scrollParents.reference,e.scrollParents.popper);return r&&l.forEach((function(t){t.addEventListener("scroll",n.update,tt)})),a&&c.addEventListener("resize",n.update,tt),function(){r&&l.forEach((function(t){t.removeEventListener("scroll",n.update,tt)})),a&&c.removeEventListener("resize",n.update,tt)}},data:{}},nt={left:"right",right:"left",bottom:"top",top:"bottom"};function it(t){return t.replace(/left|right|bottom|top/g,(function(t){return nt[t]}))}var ot={start:"end",end:"start"};function rt(t){return t.replace(/start|end/g,(function(t){return ot[t]}))}function st(t){var e=O(t);return{scrollLeft:e.pageXOffset,scrollTop:e.pageYOffset}}function at(t){return F(R(t)).left+st(t).scrollLeft}function ct(t){var e=H(t),n=e.overflow,i=e.overflowX,o=e.overflowY;return/auto|scroll|overlay|hidden/.test(n+o+i)}function lt(t){return["html","body","#document"].indexOf(x(t))>=0?t.ownerDocument.body:T(t)&&ct(t)?t:lt(z(t))}function ut(t,e){var n;void 0===e&&(e=[]);var i=lt(t),o=i===(null==(n=t.ownerDocument)?void 0:n.body),r=O(i),s=o?[r].concat(r.visualViewport||[],ct(i)?i:[]):i,a=e.concat(s);return o?a:a.concat(ut(z(s)))}function ft(t){return Object.assign({},t,{left:t.x,top:t.y,right:t.x+t.width,bottom:t.y+t.height})}function dt(t,e,n){return e===l?ft(function(t,e){var n=O(t),i=R(t),o=n.visualViewport,r=i.clientWidth,s=i.clientHeight,a=0,c=0;if(o){r=o.width,s=o.height;var l=P();(l||!l&&"fixed"===e)&&(a=o.offsetLeft,c=o.offsetTop)}return{width:r,height:s,x:a+at(t),y:c}}(t,n)):C(e)?function(t,e){var n=F(t,!1,"fixed"===e);return n.top=n.top+t.clientTop,n.left=n.left+t.clientLeft,n.bottom=n.top+t.clientHeight,n.right=n.left+t.clientWidth,n.width=t.clientWidth,n.height=t.clientHeight,n.x=n.left,n.y=n.top,n}(e,n):ft(function(t){var e,n=R(t),i=st(t),o=null==(e=t.ownerDocument)?void 0:e.body,r=D(n.scrollWidth,n.clientWidth,o?o.scrollWidth:0,o?o.clientWidth:0),s=D(n.scrollHeight,n.clientHeight,o?o.scrollHeight:0,o?o.clientHeight:0),a=-i.scrollLeft+at(t),c=-i.scrollTop;return"rtl"===H(o||n).direction&&(a+=D(n.clientWidth,o?o.clientWidth:0)-r),{width:r,height:s,x:a,y:c}}(R(t)))}function pt(t,e,n,i){var o="clippingParents"===e?function(t){var e=ut(z(t)),n=["absolute","fixed"].indexOf(H(t).position)>=0&&T(t)?V(t):t;return C(n)?e.filter((function(t){return C(t)&&I(t,n)&&"body"!==x(t)})):[]}(t):[].concat(e),r=[].concat(o,[n]),s=r[0],a=r.reduce((function(e,n){var o=dt(t,n,i);return e.top=D(o.top,e.top),e.right=k(o.right,e.right),e.bottom=k(o.bottom,e.bottom),e.left=D(o.left,e.left),e}),dt(t,s,i));return a.width=a.right-a.left,a.height=a.bottom-a.top,a.x=a.left,a.y=a.top,a}function ht(o){var r,c=o.reference,l=o.element,u=o.placement,f=u?j(u):null,d=u?$(u):null,p=c.x+c.width/2-l.width/2,h=c.y+c.height/2-l.height/2;switch(f){case t:r={x:p,y:c.y-l.height};break;case e:r={x:p,y:c.y+c.height};break;case n:r={x:c.x+c.width,y:h};break;case i:r={x:c.x-l.width,y:h};break;default:r={x:c.x,y:c.y}}var m=f?U(f):null;if(null!=m){var g="y"===m?"height":"width";switch(d){case s:r[m]=r[m]-(c[g]/2-l[g]/2);break;case a:r[m]=r[m]+(c[g]/2-l[g]/2)}}return r}function mt(i,o){void 0===o&&(o={});var s=o,a=s.placement,d=void 0===a?i.placement:a,p=s.strategy,h=void 0===p?i.strategy:p,m=s.boundary,g=void 0===m?c:m,b=s.rootBoundary,v=void 0===b?l:b,y=s.elementContext,_=void 0===y?u:y,w=s.altBoundary,E=void 0!==w&&w,A=s.padding,x=void 0===A?0:A,O=K("number"!=typeof x?x:Q(x,r)),T=_===u?f:u,L=i.rects.popper,S=i.elements[E?T:_],j=pt(C(S)?S:S.contextElement||R(i.elements.popper),g,v,h),D=F(i.elements.reference),k=ht({reference:D,element:L,strategy:"absolute",placement:d}),M=ft(Object.assign({},L,k)),N=_===u?M:D,P={top:j.top-N.top+O.top,bottom:N.bottom-j.bottom+O.bottom,left:j.left-N.left+O.left,right:N.right-j.right+O.right},B=i.modifiersData.offset;if(_===u&&B){var I=B[d];Object.keys(P).forEach((function(i){var o=[n,e].indexOf(i)>=0?1:-1,r=[t,e].indexOf(i)>=0?"y":"x";P[i]+=I[r]*o}))}return P}function gt(t,e){void 0===e&&(e={});var n=e,i=n.placement,o=n.boundary,s=n.rootBoundary,a=n.padding,c=n.flipVariations,l=n.allowedAutoPlacements,u=void 0===l?p:l,f=$(i),h=f?c?d:d.filter((function(t){return $(t)===f})):r,m=h.filter((function(t){return u.indexOf(t)>=0}));0===m.length&&(m=h);var g=m.reduce((function(e,n){return e[n]=mt(t,{placement:n,boundary:o,rootBoundary:s,padding:a})[j(n)],e}),{});return Object.keys(g).sort((function(t,e){return g[t]-g[e]}))}var bt={name:"flip",enabled:!0,phase:"main",fn:function(r){var a=r.state,c=r.options,l=r.name;if(!a.modifiersData[l]._skip){for(var u=c.mainAxis,f=void 0===u||u,d=c.altAxis,p=void 0===d||d,h=c.fallbackPlacements,m=c.padding,g=c.boundary,b=c.rootBoundary,v=c.altBoundary,y=c.flipVariations,_=void 0===y||y,w=c.allowedAutoPlacements,E=a.options.placement,A=j(E),x=h||(A===E||!_?[it(E)]:function(t){if(j(t)===o)return[];var e=it(t);return[rt(t),e,rt(e)]}(E)),O=[E].concat(x).reduce((function(t,e){return t.concat(j(e)===o?gt(a,{placement:e,boundary:g,rootBoundary:b,padding:m,flipVariations:_,allowedAutoPlacements:w}):e)}),[]),C=a.rects.reference,T=a.rects.popper,L=new Map,S=!0,D=O[0],k=0;k=0,B=F?"width":"height",I=mt(a,{placement:M,boundary:g,rootBoundary:b,altBoundary:v,padding:m}),H=F?P?n:i:P?e:t;C[B]>T[B]&&(H=it(H));var q=it(H),R=[];if(f&&R.push(I[N]<=0),p&&R.push(I[H]<=0,I[q]<=0),R.every((function(t){return t}))){D=M,S=!1;break}L.set(M,R)}if(S)for(var z=function(t){var e=O.find((function(e){var n=L.get(e);if(n)return n.slice(0,t).every((function(t){return t}))}));if(e)return D=e,"break"},W=_?3:1;W>0;W--){if("break"===z(W))break}a.placement!==D&&(a.modifiersData[l]._skip=!0,a.placement=D,a.reset=!0)}},requiresIfExists:["offset"],data:{_skip:!1}};function vt(t,e,n){return void 0===n&&(n={x:0,y:0}),{top:t.top-e.height-n.y,right:t.right-e.width+n.x,bottom:t.bottom-e.height+n.y,left:t.left-e.width-n.x}}function yt(o){return[t,n,e,i].some((function(t){return o[t]>=0}))}var _t={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:function(t){var e=t.state,n=t.name,i=e.rects.reference,o=e.rects.popper,r=e.modifiersData.preventOverflow,s=mt(e,{elementContext:"reference"}),a=mt(e,{altBoundary:!0}),c=vt(s,i),l=vt(a,o,r),u=yt(c),f=yt(l);e.modifiersData[n]={referenceClippingOffsets:c,popperEscapeOffsets:l,isReferenceHidden:u,hasPopperEscaped:f},e.attributes.popper=Object.assign({},e.attributes.popper,{"data-popper-reference-hidden":u,"data-popper-escaped":f})}};var wt={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:function(e){var o=e.state,r=e.options,s=e.name,a=r.offset,c=void 0===a?[0,0]:a,l=p.reduce((function(e,r){return e[r]=function(e,o,r){var s=j(e),a=[i,t].indexOf(s)>=0?-1:1,c="function"==typeof r?r(Object.assign({},o,{placement:e})):r,l=c[0],u=c[1];return l=l||0,u=(u||0)*a,[i,n].indexOf(s)>=0?{x:u,y:l}:{x:l,y:u}}(r,o.rects,c),e}),{}),u=l[o.placement],f=u.x,d=u.y;null!=o.modifiersData.popperOffsets&&(o.modifiersData.popperOffsets.x+=f,o.modifiersData.popperOffsets.y+=d),o.modifiersData[s]=l}};var Et={name:"popperOffsets",enabled:!0,phase:"read",fn:function(t){var e=t.state,n=t.name;e.modifiersData[n]=ht({reference:e.rects.reference,element:e.rects.popper,strategy:"absolute",placement:e.placement})},data:{}};var At={name:"preventOverflow",enabled:!0,phase:"main",fn:function(o){var r=o.state,a=o.options,c=o.name,l=a.mainAxis,u=void 0===l||l,f=a.altAxis,d=void 0!==f&&f,p=a.boundary,h=a.rootBoundary,m=a.altBoundary,g=a.padding,b=a.tether,v=void 0===b||b,y=a.tetherOffset,_=void 0===y?0:y,w=mt(r,{boundary:p,rootBoundary:h,padding:g,altBoundary:m}),E=j(r.placement),A=$(r.placement),x=!A,O=U(E),C="x"===O?"y":"x",T=r.modifiersData.popperOffsets,L=r.rects.reference,S=r.rects.popper,M="function"==typeof _?_(Object.assign({},r.rects,{placement:r.placement})):_,N="number"==typeof M?{mainAxis:M,altAxis:M}:Object.assign({mainAxis:0,altAxis:0},M),P=r.modifiersData.offset?r.modifiersData.offset[r.placement]:null,F={x:0,y:0};if(T){if(u){var I,H="y"===O?t:i,q="y"===O?e:n,R="y"===O?"height":"width",z=T[O],W=z+w[H],K=z-w[q],Q=v?-S[R]/2:0,G=A===s?L[R]:S[R],J=A===s?-S[R]:-L[R],X=r.elements.arrow,Z=v&&X?B(X):{width:0,height:0},tt=r.modifiersData["arrow#persistent"]?r.modifiersData["arrow#persistent"].padding:{top:0,right:0,bottom:0,left:0},et=tt[H],nt=tt[q],it=Y(0,L[R],Z[R]),ot=x?L[R]/2-Q-it-et-N.mainAxis:G-it-et-N.mainAxis,rt=x?-L[R]/2+Q+it+nt+N.mainAxis:J+it+nt+N.mainAxis,st=r.elements.arrow&&V(r.elements.arrow),at=st?"y"===O?st.clientTop||0:st.clientLeft||0:0,ct=null!=(I=null==P?void 0:P[O])?I:0,lt=z+rt-ct,ut=Y(v?k(W,z+ot-ct-at):W,z,v?D(K,lt):K);T[O]=ut,F[O]=ut-z}if(d){var ft,dt="x"===O?t:i,pt="x"===O?e:n,ht=T[C],gt="y"===C?"height":"width",bt=ht+w[dt],vt=ht-w[pt],yt=-1!==[t,i].indexOf(E),_t=null!=(ft=null==P?void 0:P[C])?ft:0,wt=yt?bt:ht-L[gt]-S[gt]-_t+N.altAxis,Et=yt?ht+L[gt]+S[gt]-_t-N.altAxis:vt,At=v&&yt?function(t,e,n){var i=Y(t,e,n);return i>n?n:i}(wt,ht,Et):Y(v?wt:bt,ht,v?Et:vt);T[C]=At,F[C]=At-ht}r.modifiersData[c]=F}},requiresIfExists:["offset"]};function xt(t,e,n){void 0===n&&(n=!1);var i,o,r=T(e),s=T(e)&&function(t){var e=t.getBoundingClientRect(),n=M(e.width)/t.offsetWidth||1,i=M(e.height)/t.offsetHeight||1;return 1!==n||1!==i}(e),a=R(e),c=F(t,s,n),l={scrollLeft:0,scrollTop:0},u={x:0,y:0};return(r||!r&&!n)&&(("body"!==x(e)||ct(a))&&(l=(i=e)!==O(i)&&T(i)?{scrollLeft:(o=i).scrollLeft,scrollTop:o.scrollTop}:st(i)),T(e)?((u=F(e,!0)).x+=e.clientLeft,u.y+=e.clientTop):a&&(u.x=at(a))),{x:c.left+l.scrollLeft-u.x,y:c.top+l.scrollTop-u.y,width:c.width,height:c.height}}function Ot(t){var e=new Map,n=new Set,i=[];function o(t){n.add(t.name),[].concat(t.requires||[],t.requiresIfExists||[]).forEach((function(t){if(!n.has(t)){var i=e.get(t);i&&o(i)}})),i.push(t)}return t.forEach((function(t){e.set(t.name,t)})),t.forEach((function(t){n.has(t.name)||o(t)})),i}var Ct={placement:"bottom",modifiers:[],strategy:"absolute"};function Tt(){for(var t=arguments.length,e=new Array(t),n=0;nMt.has(t)&&Mt.get(t).get(e)||null,remove(t,e){if(!Mt.has(t))return;const n=Mt.get(t);n.delete(e),0===n.size&&Mt.delete(t)}};const Pt="transitionend",Ft=t=>(t&&window.CSS&&window.CSS.escape&&(t=t.replace(/#([^\s"#']+)/g,((t,e)=>"#".concat(CSS.escape(e))))),t),Bt=t=>!(!t||"object"!=typeof t)&&(void 0!==t.jquery&&(t=t[0]),void 0!==t.nodeType),It=t=>Bt(t)?t.jquery?t[0]:t:"string"==typeof t&&t.length>0?document.querySelector(Ft(t)):null,Ht=t=>{if(!document.documentElement.attachShadow)return null;if("function"==typeof t.getRootNode){const e=t.getRootNode();return e instanceof ShadowRoot?e:null}return t instanceof ShadowRoot?t:t.parentNode?Ht(t.parentNode):null},qt=()=>{},Rt=()=>window.jQuery&&!document.body.hasAttribute("data-bs-no-jquery")?window.jQuery:null,zt=[],Wt=()=>"rtl"===document.documentElement.dir,Vt=t=>{var e;e=()=>{const e=Rt();if(e){const n=t.NAME,i=e.fn[n];e.fn[n]=t.jQueryInterface,e.fn[n].Constructor=t,e.fn[n].noConflict=()=>(e.fn[n]=i,t.jQueryInterface)}},"loading"===document.readyState?(zt.length||document.addEventListener("DOMContentLoaded",(()=>{for(const t of zt)t()})),zt.push(e)):e()},Ut=function(t){let e=arguments.length>2&&void 0!==arguments[2]?arguments[2]:t;return"function"==typeof t?t(...arguments.length>1&&void 0!==arguments[1]?arguments[1]:[]):e},Yt=function(t,e){if(!(!(arguments.length>2&&void 0!==arguments[2])||arguments[2]))return void Ut(t);const n=(t=>{if(!t)return 0;let{transitionDuration:e,transitionDelay:n}=window.getComputedStyle(t);const i=Number.parseFloat(e),o=Number.parseFloat(n);return i||o?(e=e.split(",")[0],n=n.split(",")[0],1e3*(Number.parseFloat(e)+Number.parseFloat(n))):0})(e)+5;let i=!1;const o=n=>{let{target:r}=n;r===e&&(i=!0,e.removeEventListener(Pt,o),Ut(t))};e.addEventListener(Pt,o),setTimeout((()=>{i||e.dispatchEvent(new Event(Pt))}),n)},Kt=/[^.]*(?=\..*)\.|.*/,Qt=/\..*/,Gt=/::\d+$/,$t={};let Jt=1;const Xt={mouseenter:"mouseover",mouseleave:"mouseout"},Zt=new Set(["click","dblclick","mouseup","mousedown","contextmenu","mousewheel","DOMMouseScroll","mouseover","mouseout","mousemove","selectstart","selectend","keydown","keypress","keyup","orientationchange","touchstart","touchmove","touchend","touchcancel","pointerdown","pointermove","pointerup","pointerleave","pointercancel","gesturestart","gesturechange","gestureend","focus","blur","change","reset","select","submit","focusin","focusout","load","unload","beforeunload","resize","move","DOMContentLoaded","readystatechange","error","abort","scroll"]);function te(t,e){return e&&"".concat(e,"::").concat(Jt++)||t.uidEvent||Jt++}function ee(t){const e=te(t);return t.uidEvent=e,$t[e]=$t[e]||{},$t[e]}function ne(t,e){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;return Object.values(t).find((t=>t.callable===e&&t.delegationSelector===n))}function ie(t,e,n){const i="string"==typeof e,o=i?n:e||n;let r=ae(t);return Zt.has(r)||(r=t),[i,o,r]}function oe(t,e,n,i,o){if("string"!=typeof e||!t)return;let[r,s,a]=ie(e,n,i);if(e in Xt){const t=t=>function(e){if(!e.relatedTarget||e.relatedTarget!==e.delegateTarget&&!e.delegateTarget.contains(e.relatedTarget))return t.call(this,e)};s=t(s)}const c=ee(t),l=c[a]||(c[a]={}),u=ne(l,s,r?n:null);if(u)return void(u.oneOff=u.oneOff&&o);const f=te(s,e.replace(Kt,"")),d=r?function(t,e,n){return function i(o){const r=t.querySelectorAll(e);for(let{target:s}=o;s&&s!==this;s=s.parentNode)for(const a of r)if(a===s)return le(o,{delegateTarget:s}),i.oneOff&&ce.off(t,o.type,e,n),n.apply(s,[o])}}(t,n,s):function(t,e){return function n(i){return le(i,{delegateTarget:t}),n.oneOff&&ce.off(t,i.type,e),e.apply(t,[i])}}(t,s);d.delegationSelector=r?n:null,d.callable=s,d.oneOff=o,d.uidEvent=f,l[f]=d,t.addEventListener(a,d,r)}function re(t,e,n,i,o){const r=ne(e[n],i,o);r&&(t.removeEventListener(n,r,Boolean(o)),delete e[n][r.uidEvent])}function se(t,e,n,i){const o=e[n]||{};for(const[r,s]of Object.entries(o))r.includes(i)&&re(t,e,n,s.callable,s.delegationSelector)}function ae(t){return t=t.replace(Qt,""),Xt[t]||t}const ce={on(t,e,n,i){oe(t,e,n,i,!1)},one(t,e,n,i){oe(t,e,n,i,!0)},off(t,e,n,i){if("string"!=typeof e||!t)return;const[o,r,s]=ie(e,n,i),a=s!==e,c=ee(t),l=c[s]||{},u=e.startsWith(".");if(void 0===r){if(u)for(const n of Object.keys(c))se(t,c,n,e.slice(1));for(const[n,i]of Object.entries(l)){const o=n.replace(Gt,"");a&&!e.includes(o)||re(t,c,s,i.callable,i.delegationSelector)}}else{if(!Object.keys(l).length)return;re(t,c,s,r,o?n:null)}},trigger(t,e,n){if("string"!=typeof e||!t)return null;const i=Rt();let o=null,r=!0,s=!0,a=!1;e!==ae(e)&&i&&(o=i.Event(e,n),i(t).trigger(o),r=!o.isPropagationStopped(),s=!o.isImmediatePropagationStopped(),a=o.isDefaultPrevented());const c=le(new Event(e,{bubbles:r,cancelable:!0}),n);return a&&c.preventDefault(),s&&t.dispatchEvent(c),c.defaultPrevented&&o&&o.preventDefault(),c}};function le(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};for(const[n,i]of Object.entries(e))try{t[n]=i}catch{Object.defineProperty(t,n,{configurable:!0,get:()=>i})}return t}function ue(t){if("true"===t)return!0;if("false"===t)return!1;if(t===Number(t).toString())return Number(t);if(""===t||"null"===t)return null;if("string"!=typeof t)return t;try{return JSON.parse(decodeURIComponent(t))}catch{return t}}function fe(t){return t.replace(/[A-Z]/g,(t=>"-".concat(t.toLowerCase())))}const de={setDataAttribute(t,e,n){t.setAttribute("data-bs-".concat(fe(e)),n)},removeDataAttribute(t,e){t.removeAttribute("data-bs-".concat(fe(e)))},getDataAttributes(t){if(!t)return{};const e={},n=Object.keys(t.dataset).filter((t=>t.startsWith("bs")&&!t.startsWith("bsConfig")));for(const i of n){let n=i.replace(/^bs/,"");n=n.charAt(0).toLowerCase()+n.slice(1,n.length),e[n]=ue(t.dataset[i])}return e},getDataAttribute:(t,e)=>ue(t.getAttribute("data-bs-".concat(fe(e))))};class pe{static get Default(){return{}}static get DefaultType(){return{}}static get NAME(){throw new Error('You have to implement the static method "NAME", for each component!')}_getConfig(t){return t=this._mergeConfigObj(t),t=this._configAfterMerge(t),this._typeCheckConfig(t),t}_configAfterMerge(t){return t}_mergeConfigObj(t,e){const n=Bt(e)?de.getDataAttribute(e,"config"):{};return{...this.constructor.Default,..."object"==typeof n?n:{},...Bt(e)?de.getDataAttributes(e):{},..."object"==typeof t?t:{}}}_typeCheckConfig(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.constructor.DefaultType;for(const[i,o]of Object.entries(e)){const e=t[i],r=Bt(e)?"element":null==(n=e)?"".concat(n):Object.prototype.toString.call(n).match(/\s([a-z]+)/i)[1].toLowerCase();if(!new RegExp(o).test(r))throw new TypeError("".concat(this.constructor.NAME.toUpperCase(),': Option "').concat(i,'" provided type "').concat(r,'" but expected type "').concat(o,'".'))}var n}}class he extends pe{constructor(t,e){super(),(t=It(t))&&(this._element=t,this._config=this._getConfig(e),Nt.set(this._element,this.constructor.DATA_KEY,this))}dispose(){Nt.remove(this._element,this.constructor.DATA_KEY),ce.off(this._element,this.constructor.EVENT_KEY);for(const t of Object.getOwnPropertyNames(this))this[t]=null}_queueCallback(t,e){Yt(t,e,!(arguments.length>2&&void 0!==arguments[2])||arguments[2])}_getConfig(t){return t=this._mergeConfigObj(t,this._element),t=this._configAfterMerge(t),this._typeCheckConfig(t),t}static getInstance(t){return Nt.get(It(t),this.DATA_KEY)}static getOrCreateInstance(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.getInstance(t)||new this(t,"object"==typeof e?e:null)}static get VERSION(){return"5.3.3"}static get DATA_KEY(){return"bs.".concat(this.NAME)}static get EVENT_KEY(){return".".concat(this.DATA_KEY)}static eventName(t){return"".concat(t).concat(this.EVENT_KEY)}}const me={"*":["class","dir","id","lang","role",/^aria-[\w-]*$/i],a:["target","href","title","rel"],area:[],b:[],br:[],col:[],code:[],dd:[],div:[],dl:[],dt:[],em:[],hr:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],i:[],img:["src","srcset","alt","title","width","height"],li:[],ol:[],p:[],pre:[],s:[],small:[],span:[],sub:[],sup:[],strong:[],u:[],ul:[]},ge=new Set(["background","cite","href","itemtype","longdesc","poster","src","xlink:href"]),be=/^(?!javascript:)(?:[a-z0-9+.-]+:|[^&:/?#]*(?:[/?#]|$))/i,ve=(t,e)=>{const n=t.nodeName.toLowerCase();return e.includes(n)?!ge.has(n)||Boolean(be.test(t.nodeValue)):e.filter((t=>t instanceof RegExp)).some((t=>t.test(n)))};const ye=t=>{let e=t.getAttribute("data-bs-target");if(!e||"#"===e){let n=t.getAttribute("href");if(!n||!n.includes("#")&&!n.startsWith("."))return null;n.includes("#")&&!n.startsWith("#")&&(n="#".concat(n.split("#")[1])),e=n&&"#"!==n?n.trim():null}return e?e.split(",").map((t=>Ft(t))).join(","):null},_e={find(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:document.documentElement;return[].concat(...Element.prototype.querySelectorAll.call(e,t))},findOne(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:document.documentElement;return Element.prototype.querySelector.call(e,t)},children:(t,e)=>[].concat(...t.children).filter((t=>t.matches(e))),parents(t,e){const n=[];let i=t.parentNode.closest(e);for(;i;)n.push(i),i=i.parentNode.closest(e);return n},prev(t,e){let n=t.previousElementSibling;for(;n;){if(n.matches(e))return[n];n=n.previousElementSibling}return[]},next(t,e){let n=t.nextElementSibling;for(;n;){if(n.matches(e))return[n];n=n.nextElementSibling}return[]},focusableChildren(t){const e=["a","button","input","textarea","select","details","[tabindex]",'[contenteditable="true"]'].map((t=>"".concat(t,':not([tabindex^="-"])'))).join(",");return this.find(e,t).filter((t=>!(t=>!t||t.nodeType!==Node.ELEMENT_NODE||!!t.classList.contains("disabled")||(void 0!==t.disabled?t.disabled:t.hasAttribute("disabled")&&"false"!==t.getAttribute("disabled")))(t)&&(t=>{if(!Bt(t)||0===t.getClientRects().length)return!1;const e="visible"===getComputedStyle(t).getPropertyValue("visibility"),n=t.closest("details:not([open])");if(!n)return e;if(n!==t){const e=t.closest("summary");if(e&&e.parentNode!==n)return!1;if(null===e)return!1}return e})(t)))},getSelectorFromElement(t){const e=ye(t);return e&&_e.findOne(e)?e:null},getElementFromSelector(t){const e=ye(t);return e?_e.findOne(e):null},getMultipleElementsFromSelector(t){const e=ye(t);return e?_e.find(e):[]}},we={allowList:me,content:{},extraClass:"",html:!1,sanitize:!0,sanitizeFn:null,template:"
"},Ee={allowList:"object",content:"object",extraClass:"(string|function)",html:"boolean",sanitize:"boolean",sanitizeFn:"(null|function)",template:"string"},Ae={entry:"(string|element|function|null)",selector:"(string|element)"};class xe extends pe{constructor(t){super(),this._config=this._getConfig(t)}static get Default(){return we}static get DefaultType(){return Ee}static get NAME(){return"TemplateFactory"}getContent(){return Object.values(this._config.content).map((t=>this._resolvePossibleFunction(t))).filter(Boolean)}hasContent(){return this.getContent().length>0}changeContent(t){return this._checkContent(t),this._config.content={...this._config.content,...t},this}toHtml(){const t=document.createElement("div");t.innerHTML=this._maybeSanitize(this._config.template);for(const[e,n]of Object.entries(this._config.content))this._setContent(t,n,e);const e=t.children[0],n=this._resolvePossibleFunction(this._config.extraClass);return n&&e.classList.add(...n.split(" ")),e}_typeCheckConfig(t){super._typeCheckConfig(t),this._checkContent(t.content)}_checkContent(t){for(const[e,n]of Object.entries(t))super._typeCheckConfig({selector:e,entry:n},Ae)}_setContent(t,e,n){const i=_e.findOne(n,t);i&&((e=this._resolvePossibleFunction(e))?Bt(e)?this._putElementInTemplate(It(e),i):this._config.html?i.innerHTML=this._maybeSanitize(e):i.textContent=e:i.remove())}_maybeSanitize(t){return this._config.sanitize?function(t,e,n){if(!t.length)return t;if(n&&"function"==typeof n)return n(t);const i=(new window.DOMParser).parseFromString(t,"text/html"),o=[].concat(...i.body.querySelectorAll("*"));for(const t of o){const n=t.nodeName.toLowerCase();if(!Object.keys(e).includes(n)){t.remove();continue}const i=[].concat(...t.attributes),o=[].concat(e["*"]||[],e[n]||[]);for(const e of i)ve(e,o)||t.removeAttribute(e.nodeName)}return i.body.innerHTML}(t,this._config.allowList,this._config.sanitizeFn):t}_resolvePossibleFunction(t){return Ut(t,[this])}_putElementInTemplate(t,e){if(this._config.html)return e.innerHTML="",void e.append(t);e.textContent=t.textContent}}const Oe=new Set(["sanitize","allowList","sanitizeFn"]),Ce="fade",Te="show",Le=".tooltip-inner",Se=".".concat("modal"),je="hide.bs.modal",De="hover",ke="focus",Me={AUTO:"auto",TOP:"top",RIGHT:Wt()?"left":"right",BOTTOM:"bottom",LEFT:Wt()?"right":"left"},Ne={allowList:me,animation:!0,boundary:"clippingParents",container:!1,customClass:"",delay:0,fallbackPlacements:["top","right","bottom","left"],html:!1,offset:[0,6],placement:"top",popperConfig:null,sanitize:!0,sanitizeFn:null,selector:!1,template:'',title:"",trigger:"hover focus"},Pe={allowList:"object",animation:"boolean",boundary:"(string|element)",container:"(string|element|boolean)",customClass:"(string|function)",delay:"(number|object)",fallbackPlacements:"array",html:"boolean",offset:"(array|string|function)",placement:"(string|function)",popperConfig:"(null|object|function)",sanitize:"boolean",sanitizeFn:"(null|function)",selector:"(string|boolean)",template:"string",title:"(string|element|function)",trigger:"string"};class Fe extends he{constructor(t,e){if(void 0===kt)throw new TypeError("Bootstrap's tooltips require Popper (https://popper.js.org)");super(t,e),this._isEnabled=!0,this._timeout=0,this._isHovered=null,this._activeTrigger={},this._popper=null,this._templateFactory=null,this._newContent=null,this.tip=null,this._setListeners(),this._config.selector||this._fixTitle()}static get Default(){return Ne}static get DefaultType(){return Pe}static get NAME(){return"tooltip"}enable(){this._isEnabled=!0}disable(){this._isEnabled=!1}toggleEnabled(){this._isEnabled=!this._isEnabled}toggle(){this._isEnabled&&(this._activeTrigger.click=!this._activeTrigger.click,this._isShown()?this._leave():this._enter())}dispose(){clearTimeout(this._timeout),ce.off(this._element.closest(Se),je,this._hideModalHandler),this._element.getAttribute("data-bs-original-title")&&this._element.setAttribute("title",this._element.getAttribute("data-bs-original-title")),this._disposePopper(),super.dispose()}show(){if("none"===this._element.style.display)throw new Error("Please use show on visible elements");if(!this._isWithContent()||!this._isEnabled)return;const t=ce.trigger(this._element,this.constructor.eventName("show")),e=(Ht(this._element)||this._element.ownerDocument.documentElement).contains(this._element);if(t.defaultPrevented||!e)return;this._disposePopper();const n=this._getTipElement();this._element.setAttribute("aria-describedby",n.getAttribute("id"));const{container:i}=this._config;if(this._element.ownerDocument.documentElement.contains(this.tip)||(i.append(n),ce.trigger(this._element,this.constructor.eventName("inserted"))),this._popper=this._createPopper(n),n.classList.add(Te),"ontouchstart"in document.documentElement)for(const t of[].concat(...document.body.children))ce.on(t,"mouseover",qt);this._queueCallback((()=>{ce.trigger(this._element,this.constructor.eventName("shown")),!1===this._isHovered&&this._leave(),this._isHovered=!1}),this.tip,this._isAnimated())}hide(){if(!this._isShown())return;if(ce.trigger(this._element,this.constructor.eventName("hide")).defaultPrevented)return;if(this._getTipElement().classList.remove(Te),"ontouchstart"in document.documentElement)for(const t of[].concat(...document.body.children))ce.off(t,"mouseover",qt);this._activeTrigger.click=!1,this._activeTrigger[ke]=!1,this._activeTrigger[De]=!1,this._isHovered=null;this._queueCallback((()=>{this._isWithActiveTrigger()||(this._isHovered||this._disposePopper(),this._element.removeAttribute("aria-describedby"),ce.trigger(this._element,this.constructor.eventName("hidden")))}),this.tip,this._isAnimated())}update(){this._popper&&this._popper.update()}_isWithContent(){return Boolean(this._getTitle())}_getTipElement(){return this.tip||(this.tip=this._createTipElement(this._newContent||this._getContentForTemplate())),this.tip}_createTipElement(t){const e=this._getTemplateFactory(t).toHtml();if(!e)return null;e.classList.remove(Ce,Te),e.classList.add("bs-".concat(this.constructor.NAME,"-auto"));const n=(t=>{do{t+=Math.floor(1e6*Math.random())}while(document.getElementById(t));return t})(this.constructor.NAME).toString();return e.setAttribute("id",n),this._isAnimated()&&e.classList.add(Ce),e}setContent(t){this._newContent=t,this._isShown()&&(this._disposePopper(),this.show())}_getTemplateFactory(t){return this._templateFactory?this._templateFactory.changeContent(t):this._templateFactory=new xe({...this._config,content:t,extraClass:this._resolvePossibleFunction(this._config.customClass)}),this._templateFactory}_getContentForTemplate(){return{[Le]:this._getTitle()}}_getTitle(){return this._resolvePossibleFunction(this._config.title)||this._element.getAttribute("data-bs-original-title")}_initializeOnDelegatedTarget(t){return this.constructor.getOrCreateInstance(t.delegateTarget,this._getDelegateConfig())}_isAnimated(){return this._config.animation||this.tip&&this.tip.classList.contains(Ce)}_isShown(){return this.tip&&this.tip.classList.contains(Te)}_createPopper(t){const e=Ut(this._config.placement,[this,t,this._element]),n=Me[e.toUpperCase()];return Dt(this._element,t,this._getPopperConfig(n))}_getOffset(){const{offset:t}=this._config;return"string"==typeof t?t.split(",").map((t=>Number.parseInt(t,10))):"function"==typeof t?e=>t(e,this._element):t}_resolvePossibleFunction(t){return Ut(t,[this._element])}_getPopperConfig(t){const e={placement:t,modifiers:[{name:"flip",options:{fallbackPlacements:this._config.fallbackPlacements}},{name:"offset",options:{offset:this._getOffset()}},{name:"preventOverflow",options:{boundary:this._config.boundary}},{name:"arrow",options:{element:".".concat(this.constructor.NAME,"-arrow")}},{name:"preSetPlacement",enabled:!0,phase:"beforeMain",fn:t=>{this._getTipElement().setAttribute("data-popper-placement",t.state.placement)}}]};return{...e,...Ut(this._config.popperConfig,[e])}}_setListeners(){const t=this._config.trigger.split(" ");for(const e of t)if("click"===e)ce.on(this._element,this.constructor.eventName("click"),this._config.selector,(t=>{this._initializeOnDelegatedTarget(t).toggle()}));else if("manual"!==e){const t=e===De?this.constructor.eventName("mouseenter"):this.constructor.eventName("focusin"),n=e===De?this.constructor.eventName("mouseleave"):this.constructor.eventName("focusout");ce.on(this._element,t,this._config.selector,(t=>{const e=this._initializeOnDelegatedTarget(t);e._activeTrigger["focusin"===t.type?ke:De]=!0,e._enter()})),ce.on(this._element,n,this._config.selector,(t=>{const e=this._initializeOnDelegatedTarget(t);e._activeTrigger["focusout"===t.type?ke:De]=e._element.contains(t.relatedTarget),e._leave()}))}this._hideModalHandler=()=>{this._element&&this.hide()},ce.on(this._element.closest(Se),je,this._hideModalHandler)}_fixTitle(){const t=this._element.getAttribute("title");t&&(this._element.getAttribute("aria-label")||this._element.textContent.trim()||this._element.setAttribute("aria-label",t),this._element.setAttribute("data-bs-original-title",t),this._element.removeAttribute("title"))}_enter(){this._isShown()||this._isHovered?this._isHovered=!0:(this._isHovered=!0,this._setTimeout((()=>{this._isHovered&&this.show()}),this._config.delay.show))}_leave(){this._isWithActiveTrigger()||(this._isHovered=!1,this._setTimeout((()=>{this._isHovered||this.hide()}),this._config.delay.hide))}_setTimeout(t,e){clearTimeout(this._timeout),this._timeout=setTimeout(t,e)}_isWithActiveTrigger(){return Object.values(this._activeTrigger).includes(!0)}_getConfig(t){const e=de.getDataAttributes(this._element);for(const t of Object.keys(e))Oe.has(t)&&delete e[t];return t={...e,..."object"==typeof t&&t?t:{}},t=this._mergeConfigObj(t),t=this._configAfterMerge(t),this._typeCheckConfig(t),t}_configAfterMerge(t){return t.container=!1===t.container?document.body:It(t.container),"number"==typeof t.delay&&(t.delay={show:t.delay,hide:t.delay}),"number"==typeof t.title&&(t.title=t.title.toString()),"number"==typeof t.content&&(t.content=t.content.toString()),t}_getDelegateConfig(){const t={};for(const[e,n]of Object.entries(this._config))this.constructor.Default[e]!==n&&(t[e]=n);return t.selector=!1,t.trigger="manual",t}_disposePopper(){this._popper&&(this._popper.destroy(),this._popper=null),this.tip&&(this.tip.remove(),this.tip=null)}static jQueryInterface(t){return this.each((function(){const e=Fe.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t])throw new TypeError('No method named "'.concat(t,'"'));e[t]()}}))}}Vt(Fe);const Be=document.getElementById("mode-toggle");function Ie(t){var e=function(t,e){if("object"!=typeof t||!t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var i=n.call(t,e||"default");if("object"!=typeof i)return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===e?String:Number)(t)}(t,"string");return"symbol"==typeof e?e:e+""}function He(t,e,n){return(e=Ie(e))in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}const qe="sidebar-display";class Re{static toggle(){!1===Re.isExpanded?document.body.setAttribute(qe,""):document.body.removeAttribute(qe),Re.isExpanded=!Re.isExpanded}}He(Re,"isExpanded",!1);const ze=document.getElementById("sidebar-trigger"),We=document.getElementById("search-trigger"),Ve=document.getElementById("search-cancel"),Ue=document.querySelectorAll("#main-wrapper>.container>.row"),Ye=document.getElementById("topbar-title"),Ke=document.getElementById("search"),Qe=document.getElementById("search-result-wrapper"),Ge=document.getElementById("search-results"),$e=document.getElementById("search-input"),Je=document.getElementById("search-hints"),Xe="d-block",Ze="d-none",tn="input-focus",en="d-flex";class nn{static on(){ze.classList.add(Ze),Ye.classList.add(Ze),We.classList.add(Ze),Ke.classList.add(en),Ve.classList.add(Xe)}static off(){Ve.classList.remove(Xe),Ke.classList.remove(en),ze.classList.remove(Ze),Ye.classList.remove(Ze),We.classList.remove(Ze)}}class on{static on(){this.resultVisible||(Qe.classList.remove(Ze),Ue.forEach((t=>{t.classList.add(Ze)})),this.resultVisible=!0)}static off(){this.resultVisible&&(Ge.innerHTML="",Je.classList.contains(Ze)&&Je.classList.remove(Ze),Qe.classList.add(Ze),Ue.forEach((t=>{t.classList.remove(Ze)})),$e.textContent="",this.resultVisible=!1)}}function rn(){return Ve.classList.contains(Xe)}He(on,"resultVisible",!1);const sn=".".concat("bs.collapse"),an="show".concat(sn),cn="shown".concat(sn),ln="hide".concat(sn),un="hidden".concat(sn),fn="click".concat(sn).concat(".data-api"),dn="show",pn="collapse",hn="collapsing",mn=":scope .".concat(pn," .").concat(pn),gn='[data-bs-toggle="collapse"]',bn={parent:null,toggle:!0},vn={parent:"(null|element)",toggle:"boolean"};class yn extends he{constructor(t,e){super(t,e),this._isTransitioning=!1,this._triggerArray=[];const n=_e.find(gn);for(const t of n){const e=_e.getSelectorFromElement(t),n=_e.find(e).filter((t=>t===this._element));null!==e&&n.length&&this._triggerArray.push(t)}this._initializeChildren(),this._config.parent||this._addAriaAndCollapsedClass(this._triggerArray,this._isShown()),this._config.toggle&&this.toggle()}static get Default(){return bn}static get DefaultType(){return vn}static get NAME(){return"collapse"}toggle(){this._isShown()?this.hide():this.show()}show(){if(this._isTransitioning||this._isShown())return;let t=[];if(this._config.parent&&(t=this._getFirstLevelChildren(".collapse.show, .collapse.collapsing").filter((t=>t!==this._element)).map((t=>yn.getOrCreateInstance(t,{toggle:!1})))),t.length&&t[0]._isTransitioning)return;if(ce.trigger(this._element,an).defaultPrevented)return;for(const e of t)e.hide();const e=this._getDimension();this._element.classList.remove(pn),this._element.classList.add(hn),this._element.style[e]=0,this._addAriaAndCollapsedClass(this._triggerArray,!0),this._isTransitioning=!0;const n=e[0].toUpperCase()+e.slice(1),i="scroll".concat(n);this._queueCallback((()=>{this._isTransitioning=!1,this._element.classList.remove(hn),this._element.classList.add(pn,dn),this._element.style[e]="",ce.trigger(this._element,cn)}),this._element,!0),this._element.style[e]="".concat(this._element[i],"px")}hide(){if(this._isTransitioning||!this._isShown())return;if(ce.trigger(this._element,ln).defaultPrevented)return;const t=this._getDimension();this._element.style[t]="".concat(this._element.getBoundingClientRect()[t],"px"),this._element.offsetHeight,this._element.classList.add(hn),this._element.classList.remove(pn,dn);for(const t of this._triggerArray){const e=_e.getElementFromSelector(t);e&&!this._isShown(e)&&this._addAriaAndCollapsedClass([t],!1)}this._isTransitioning=!0;this._element.style[t]="",this._queueCallback((()=>{this._isTransitioning=!1,this._element.classList.remove(hn),this._element.classList.add(pn),ce.trigger(this._element,un)}),this._element,!0)}_isShown(){return(arguments.length>0&&void 0!==arguments[0]?arguments[0]:this._element).classList.contains(dn)}_configAfterMerge(t){return t.toggle=Boolean(t.toggle),t.parent=It(t.parent),t}_getDimension(){return this._element.classList.contains("collapse-horizontal")?"width":"height"}_initializeChildren(){if(!this._config.parent)return;const t=this._getFirstLevelChildren(gn);for(const e of t){const t=_e.getElementFromSelector(e);t&&this._addAriaAndCollapsedClass([e],this._isShown(t))}}_getFirstLevelChildren(t){const e=_e.find(mn,this._config.parent);return _e.find(t,this._config.parent).filter((t=>!e.includes(t)))}_addAriaAndCollapsedClass(t,e){if(t.length)for(const n of t)n.classList.toggle("collapsed",!e),n.setAttribute("aria-expanded",e)}static jQueryInterface(t){const e={};return"string"==typeof t&&/show|hide/.test(t)&&(e.toggle=!1),this.each((function(){const n=yn.getOrCreateInstance(this,e);if("string"==typeof t){if(void 0===n[t])throw new TypeError('No method named "'.concat(t,'"'));n[t]()}}))}}ce.on(document,fn,gn,(function(t){("A"===t.target.tagName||t.delegateTarget&&"A"===t.delegateTarget.tagName)&&t.preventDefault();for(const t of _e.getMultipleElementsFromSelector(this))yn.getOrCreateInstance(t,{toggle:!1}).toggle()})),Vt(yn),document.getElementsByClassName("collapse");const _n=".code-header>button",wn="far fa-clipboard",En="fas fa-check",An="timeout",xn="data-title-succeed",On="data-bs-original-title",Cn=2e3;function Tn(t){if(t.hasAttribute(An)){let e=t.getAttribute(An);if(Number(e)>Date.now())return!0}return!1}function Ln(t){t.setAttribute(An,Date.now()+Cn)}function Sn(t){t.removeAttribute(An)}function jn(){const t=document.querySelectorAll(_n);if(0===t.length)return;const e=new ClipboardJS(_n,{target:t=>t.parentNode.nextElementSibling.querySelector("code .rouge-code")});[...t].map((t=>new Fe(t,{placement:"left"}))),e.on("success",(t=>{const e=t.trigger;(t.clearSelection(),Tn(e))||(e.children[0].setAttribute("class",En),function(t){const e=t.getAttribute(xn);t.setAttribute(On,e),Fe.getInstance(t).show()}(e),Ln(e),setTimeout((()=>{!function(t){Fe.getInstance(t).hide(),t.removeAttribute(On)}(e),function(t){t.children[0].setAttribute("class",wn)}(e),Sn(e)}),Cn))}))}const Dn="data-src",kn="data-lqip",Mn={SHIMMER:"shimmer",BLUR:"blur"};function Nn(t){this.parentElement.classList.remove(t)}function Pn(){this.complete&&(this.hasAttribute(kn)?Nn.call(this,Mn.BLUR):Nn.call(this,Mn.SHIMMER))}function Fn(){const t=this.getAttribute(Dn);this.setAttribute("src",encodeURI(t)),this.removeAttribute(Dn)}const Bn="popup";class In{static get attrTimestamp(){return"data-ts"}static get attrDateFormat(){return"data-df"}static get locale(){return document.documentElement.getAttribute("lang").substring(0,2)}static getTimestamp(t){return Number(t.getAttribute(this.attrTimestamp))}static getDateFormat(t){return t.getAttribute(this.attrDateFormat)}}!function(){const t=document.querySelectorAll("article img");if(0===t.length)return;t.forEach((t=>{t.addEventListener("load",Pn)})),document.querySelectorAll('article img[loading="lazy"]').forEach((t=>{t.complete&&Nn.call(t,Mn.SHIMMER)}));const e=document.querySelectorAll("article img[".concat(kn,'="true"]'));e.length&&e.forEach((t=>{Fn.call(t)}))}(),document.querySelector("main h2, main h3")&&(tocbot.init({tocSelector:"#toc",contentSelector:".content",ignoreSelector:"[data-toc-skip]",headingSelector:"h2, h3, h4",orderedList:!1,scrollSmooth:!1}),document.getElementById("toc-wrapper").classList.remove("d-none")),0!==document.getElementsByClassName(Bn).length&&GLightbox({selector:".".concat(Bn)}),Be&&Be.addEventListener("click",(()=>{modeToggle.flipMode()})),document.getElementById("sidebar-trigger").addEventListener("click",Re.toggle),document.getElementById("mask").addEventListener("click",Re.toggle),dayjs.locale(In.locale),dayjs.extend(window.dayjs_plugin_localizedFormat),document.querySelectorAll("[".concat(In.attrTimestamp,"]")).forEach((t=>{const e=dayjs.unix(In.getTimestamp(t)),n=e.format(In.getDateFormat(t));if(t.textContent=n,t.removeAttribute(In.attrTimestamp),t.removeAttribute(In.attrDateFormat),t.hasAttribute("data-bs-toggle")&&"tooltip"===t.getAttribute("data-bs-toggle")){const n=e.format("llll");t.setAttribute("data-bs-title",n)}})),jn(),function(){const t=document.getElementById("copy-link");null!==t&&(t.addEventListener("click",(t=>{const e=t.target;Tn(e)||navigator.clipboard.writeText(window.location.href).then((()=>{const t=e.getAttribute(On),n=e.getAttribute(xn);e.setAttribute(On,n),Fe.getInstance(e).show(),Ln(e),setTimeout((()=>{e.setAttribute(On,t),Sn(e)}),Cn)}))})),t.addEventListener("mouseleave",(t=>{Fe.getInstance(t.target).hide()})))}(),We.addEventListener("click",(()=>{nn.on(),on.on(),$e.focus()})),Ve.addEventListener("click",(()=>{nn.off(),on.off()})),$e.addEventListener("focus",(()=>{Ke.classList.add(tn)})),$e.addEventListener("focusout",(()=>{Ke.classList.remove(tn)})),$e.addEventListener("input",(()=>{""===$e.value?rn()?Je.classList.remove(Ze):on.off():(on.on(),rn()&&Je.classList.add(Ze))})),function(){const t=document.getElementById("back-to-top");window.addEventListener("scroll",(()=>{window.scrollY>50?t.classList.add("show"):t.classList.remove("show")})),t.addEventListener("click",(()=>{window.scrollTo({top:0})}))}(),[...document.querySelectorAll('[data-bs-toggle="tooltip"]')].map((t=>new Fe(t)))}(); diff --git a/_site/categories/cheat-sheets/index.html b/_site/categories/cheat-sheets/index.html deleted file mode 100644 index c85162b..0000000 --- a/_site/categories/cheat-sheets/index.html +++ /dev/null @@ -1,1832 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Cheat Sheets | Trever Ehrfurth - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - -
-
- - - - - -
- Category -
- - - - - - - - -
-
- - -
-
- - - - - - - - -
- - - -
- -
- -
- - - - - - -
-
- - - -
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

Trending Tags

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - -
-
-
-
- -
- - -
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/_site/categories/homelab/index.html b/_site/categories/homelab/index.html deleted file mode 100644 index 247a833..0000000 --- a/_site/categories/homelab/index.html +++ /dev/null @@ -1,1688 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Homelab | Trever Ehrfurth - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - -
-
- - - - - -
- Category -
- - - - - - - - -
-
- - -
-
- - - - - -
- - - - - -
-

- - Homelab - 1 -

- -
    - -
  • - My Homelab - - - - - - - - -
  • - -
-
- - -
- - -
- - - -
- -
- -
- - - - - - -
-
- - - -
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

Trending Tags

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - -
-
-
-
- -
- - -
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/_site/categories/index.html b/_site/categories/index.html deleted file mode 100644 index b87e322..0000000 --- a/_site/categories/index.html +++ /dev/null @@ -1,1875 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Categories | Trever Ehrfurth - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - -
-
- - - - - -
- Categories -
- - - - - - - - -
-
- - -
-
- - - - - -
- - - -

- Categories -

-
- - - - - - - - - - - - - - - - - - - - - - - - -
- -
- - - - - Cheat Sheets - - - - - - - 7 - - - posts - - - - - - - - - - -
- - - - -
- - - - - - - - - - - - - - - - - -
- -
- - - - - Homelab - - - - - - 1 - - category - , - - - 1 - - - post - - - - - - - - - - -
- - - - -
-
    - -
  • - - - - Overview - - - - 1 - - - post - - -
  • - -
-
- -
- - - - - - - - - - - - - - - - - -
- -
- - - - - Kubernetes - - - - - - 1 - - category - , - - - 1 - - - post - - - - - - - - - - -
- - - - -
-
    - -
  • - - - - NFS - - - - 1 - - - post - - -
  • - -
-
- -
- - - - - - - - - - - - - - - - - - -
- -
- - -
- - - -
- -
- -
- - - - - - -
-
- - - -
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

Trending Tags

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - -
-
-
-
- -
- - -
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/_site/categories/kubernetes/index.html b/_site/categories/kubernetes/index.html deleted file mode 100644 index 85a684b..0000000 --- a/_site/categories/kubernetes/index.html +++ /dev/null @@ -1,1688 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Kubernetes | Trever Ehrfurth - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - -
-
- - - - - -
- Category -
- - - - - - - - -
-
- - -
-
- - - - - - - - -
- - - -
- -
- -
- - - - - - -
-
- - - -
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

Trending Tags

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - -
-
-
-
- -
- - -
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/_site/categories/nfs/index.html b/_site/categories/nfs/index.html deleted file mode 100644 index 6c267ac..0000000 --- a/_site/categories/nfs/index.html +++ /dev/null @@ -1,1688 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - NFS | Trever Ehrfurth - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - -
-
- - - - - -
- Category -
- - - - - - - - -
-
- - -
-
- - - - - - - - -
- - - -
- -
- -
- - - - - - -
-
- - - -
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

Trending Tags

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - -
-
-
-
- -
- - -
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/_site/categories/overview/index.html b/_site/categories/overview/index.html deleted file mode 100644 index 7a6ba9d..0000000 --- a/_site/categories/overview/index.html +++ /dev/null @@ -1,1688 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Overview | Trever Ehrfurth - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - -
-
- - - - - -
- Category -
- - - - - - - - -
-
- - -
-
- - - - - -
- - - - - -
-

- - Overview - 1 -

- -
    - -
  • - My Homelab - - - - - - - - -
  • - -
-
- - -
- - -
- - - -
- -
- -
- - - - - - -
-
- - - -
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

Trending Tags

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - -
-
-
-
- -
- - -
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/_site/feed.xml b/_site/feed.xml deleted file mode 100644 index 2094db3..0000000 --- a/_site/feed.xml +++ /dev/null @@ -1,143 +0,0 @@ - - - - http://localhost:4000/ - Trever Ehrfurth - A minimal, responsive and feature-rich Jekyll theme for technical writing. - 2024-09-16T16:53:36-05:00 - - Trever Ehrfurth - http://localhost:4000/ - - - - Jekyll - © 2024 Trever Ehrfurth - /assets/img/favicons/favicon.ico - /assets/img/favicons/favicon-96x96.png - - - - - Obsidian Cheat Sheet - - 2024-06-28T17:09:00-05:00 - - 2024-06-28T17:09:00-05:00 - - http://localhost:4000/posts/Obsidian-Cheat-Sheet/ - - - Trever Ehrfurth - - - - - - - - - This repository contains all the basic cheatsheets you need to get started to make notes in obsidian. - - - - - - Proxmox Cheat Sheet - - 2024-06-24T19:31:00-05:00 - - 2024-06-24T19:31:00-05:00 - - http://localhost:4000/posts/Proxmox-Commands/ - - - Trever Ehrfurth - - - - - - - - - Helpful Proxmox commands to reference as a cheat sheet - - - - - - Terraform Cheat Sheet - - 2024-06-24T12:51:00-05:00 - - 2024-06-26T21:12:31-05:00 - - http://localhost:4000/posts/Terraform-Commands/ - - - Trever Ehrfurth - - - - - - - - - Helpful Terraform commands to reference as a cheat sheet - - - - - - Kubectl Cheat Sheet - - 2024-06-24T12:51:00-05:00 - - 2024-06-24T13:33:51-05:00 - - http://localhost:4000/posts/Kubectl-Commands/ - - - Trever Ehrfurth - - - - - - - - - Helpful Kubectl commands to reference as a cheat sheet - - - - - - Helm Cheat Sheet - - 2024-06-24T12:51:00-05:00 - - 2024-06-24T13:33:51-05:00 - - http://localhost:4000/posts/Helm-Commands/ - - - Trever Ehrfurth - - - - - - - - - Helpful Helm commands to reference as a cheat sheet - - - - - - diff --git a/_site/index.html b/_site/index.html deleted file mode 100644 index 4eb5e03..0000000 --- a/_site/index.html +++ /dev/null @@ -1,2229 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Trever Ehrfurth - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - -
-
- - - - - -
- Trever Ehrfurth -
- - - - - - - - -
-
- - -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - -
- - - - - - -
- - - -
- -
- -
- - - - - - -
-
- - - -
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

Trending Tags

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - -
-
-
-
- -
- - -
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/_site/norobots/index.html b/_site/norobots/index.html deleted file mode 100644 index b983321..0000000 --- a/_site/norobots/index.html +++ /dev/null @@ -1,11 +0,0 @@ - - - - Redirecting… - - - - -

Redirecting…

- Click here if you are not redirected. - diff --git a/_site/posts/Docker-Commands/index.html b/_site/posts/Docker-Commands/index.html deleted file mode 100644 index 8d9f5fa..0000000 --- a/_site/posts/Docker-Commands/index.html +++ /dev/null @@ -1,2698 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Docker Cheat Sheet | Trever Ehrfurth - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - -
-
- - - - - -
- Post -
- - - - - - - - -
-
- - -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-

Docker Cheat Sheet

- -

Helpful Docker commands to reference as a cheat sheet

- - - -
- -
-

Running Containers

- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
COMMANDDESCRIPTION
docker run <image>Start a new container from an image
docker run -it <image>Start a new container in interactive mode
docker run --rm <image>Start a new container and remove it when it exits
docker create <image>Create a new container
docker start <container>Start a container
docker stop <container>Graceful stop a container
docker kill <container>Kill (SIGKILL) a container
docker restart <container>Graceful stop and restart a container
docker pause <container>Suspend a container
docker unpause <container>Resume a container
docker rm <container>Destroy a container
- -

Container Bulk Management

- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
COMMANDDESCRIPTION
docker stop $(docker ps -q)To stop all the running containers
docker stop $(docker ps -a -q)To stop all the stopped and running containers
docker kill $(docker ps -q)To kill all the running containers
docker kill $(docker ps -a -q)To kill all the stopped and running containers
docker restart $(docker ps -q)To restart all running containers
docker restart $(docker ps -a -q)To restart all the stopped and running containers
docker rm $(docker ps -q)To destroy all running containers
docker rm $(docker ps -a -q)To destroy all the stopped and running containers
docker pause $(docker ps -q)To pause all running containers
docker pause $(docker ps -a -q)To pause all the stopped and running containers
docker start $(docker ps -q)To start all running containers
docker start $(docker ps -a -q)To start all the stopped and running containers
docker rm -vf $(docker ps -a -q)To delete all containers including its volumes use
docker rmi -f $(docker images -a -q)To delete all the images
docker system pruneTo delete all dangling and unused images, containers, cache and volumes
docker system prune -aTo delete all used and unused images
docker system prune --volumesTo delete all docker volumes
- -

Inspect Containers

- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
COMMANDDESCRIPTION
docker psList running containers
docker ps --allList all containers, including stopped
docker logs <container>Show a container output
docker logs -f <container>Follow a container output
docker top <container>List the processes running in a container
docker diffShow the differences with the image (modified files)
docker inspectShow information of a container (json formatted)
- -

Executing Commands

- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
COMMANDDESCRIPTION
docker attach <container>Attach to a container
docker cp <container>:<container-path> <host-path>Copy files from the container
docker cp <host-path> <container>:<container-path>Copy files into the container
docker export <container>Export the content of the container (tar archive)
docker exec <container>Run a command inside a container
docker exec -it <container> /bin/bashOpen an interactive shell inside a container (there is no bash in some images, use /bin/sh)
docker wait <container>Wait until the container terminates and return the exit code
- -

Images

- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
COMMANDDESCRIPTION
docker image lsList all local images
docker history <image>Show the image history
docker inspect <image>Show information (json formatted)
docker tag <image> <tag>Tag an image
docker commit <container> <image>Create an image (from a container)
docker import <url>Create an image (from a tarball)
docker rmi <image>Delete images
docker pull <user>/<repository>:<tag>Pull an image from a registry
docker push <user>/<repository>:<tag>Push and image to a registry
docker search <test>Search an image on the official registry
docker loginLogin to a registry
docker logoutLogout from a registry
docker save <user>/<repository>:<tag>Export an image/repo as a tarball
docker loadLoad images from a tarball
- -

Volumes

- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
COMMANDDESCRIPTION
docker volume lsList all vol1umes
docker volume create <volume>Create a volume
docker volume inspect <volume>Show information (json formatted)
docker volume rm <volume>Destroy a volume
docker volume ls --filter="dangling=true"List all dangling volumes (not referenced by any container)
docker volume pruneDelete all volumes (not referenced by any container)
docker run --rm --volumes-from <container> -v $(pwd):/backup busybox tar cvfz /backup/backup.tar <container-path>Backup a container
docker run --rm --volumes-from <container> -v $(pwd):/backup busybox sh -c "cd <container-path> && tar xvf /backup/backup.tar --strip 1"Restore a container from backup
- -
- -
- - - - - - - - - - -
-
- - - - This post is licensed under - - CC BY 4.0 - - by the author. - -
- - - - - -
- -
- -
- - - -
- - - -
- -
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - - -
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

Trending Tags

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - -
-
-
-
- -
- - -
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/_site/posts/Git-Commands/index.html b/_site/posts/Git-Commands/index.html deleted file mode 100644 index 56e7d31..0000000 --- a/_site/posts/Git-Commands/index.html +++ /dev/null @@ -1,2499 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Git Cheat Sheet | Trever Ehrfurth - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - -
-
- - - - - -
- Post -
- - - - - - - - -
-
- - -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-

Git Cheat Sheet

- -

Helpful Git commands to reference as a cheat sheet

- - - -
- -
-

Repository Management

- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
CommandDescription
git initInitialize a new Git repository
git clone <url>Clone a remote repository
git statusShow the working tree status
git add <file>Add a file to the staging area
git commit -m <message>Commit changes to the repository
git pushPush changes to the remote repository
git pullPull changes from the remote repository
git fetchFetch changes from the remote repository
git merge <branch>Merge a branch into the current branch
git branchList all branches
git branch <branch>Create a new branch
git checkout <branch>Switch to a branch
git checkout -b <branch>Create and switch to a new branch
git branch -d <branch>Delete a branch
git logShow commit logs
git diffShow changes between commits
git blame <file>Show who changed each line in a file
git reflogShow a log of changes to HEAD
git reset --hard <commit>Reset the repository to a commit
git revert <commit>Revert a commit
git stashStash changes in the working directory
git stash popApply stashed changes to the working directory
git tag <tag>Create a tag for a commit
- -

Configuration

- -
- - - - - - - - - - - - - - - - - - - - - - - - -
CommandDescription
git config --global user.name <user>Set the user name for Git
git config --global user.email <email>Set the user email for Git
git config --global core.editor <editor>Set the default text editor for Git
git config --global color.ui autoEnable colored output for Git
- -

Remote Repositories

- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - -
CommandDescription
git remote add <repository> <url>Add a remote repository
git remote -vList remote repositories
git remote show <repository>Show information about a remote repository
git remote rename <repository> <new_repository>Rename a remote repository
git remote remove <repository>Remove a remote repository
- - -
- -
- - - - - - - - - - -
-
- - - - This post is licensed under - - CC BY 4.0 - - by the author. - -
- - - - - -
- -
- -
- - - -
- - - -
- -
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - - -
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

Trending Tags

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - -
-
-
-
- -
- - -
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/_site/posts/Helm-Commands/index.html b/_site/posts/Helm-Commands/index.html deleted file mode 100644 index 946dc11..0000000 --- a/_site/posts/Helm-Commands/index.html +++ /dev/null @@ -1,2498 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Helm Cheat Sheet | Trever Ehrfurth - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - -
-
- - - - - -
- Post -
- - - - - - - - -
-
- - -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-

Helm Cheat Sheet

- -

Helpful Helm commands to reference as a cheat sheet

- - - -
- -
-

Repository Management

- -
- - - - - - - - - - - - - - - - -
CommandDescription
helm repo listList Helm repositories
helm repo updateUpdate list of Helm charts from repositories
- -

Chart Management

- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
CommandDescription
helm searchList all installed charts
helm search <chart>Search for a chart
helm lsList all installed Helm charts
helm ls --deletedList all deleted Helm charts
helm ls --allList installed and deleted Helm charts
helm inspect values <repo>/<chart>Inspect the variables in a chart
- -

Install/Delete Helm Charts

- -
- - - - - - - - - - - - - - - - - - - - - - - - -
CommandDescription
helm install --name <name> <repo>/<chart>Install a Helm chart
helm install --name <name> --values <VALUES.YML> <repo>/<chart>Install a Helm chart and override variables
helm status <name>Show status of Helm chart being installed
helm delete --purge <name>Delete a Helm chart
- -

Upgrading Helm Charts

- -
- - - - - - - - - - - - - - - - - - - - - - - - -
CommandDescription
helm get values <name>Return the variables for a release
helm upgrade --values <file> <name> <repo>/<chart>Upgrade the chart or variables in a release
helm history <name>List release numbers
helm rollback <name> 1Rollback to a previous release number
- -

Creating Helm Charts

- -
- - - - - - - - - - - - - - - - - - - - - - - - -
CommandDescription
helm create <name>Create a blank chart
helm lint <name>Lint the chart
helm package <name>Package the chart into foo.tgz
helm dependency updateInstall chart dependencies
- -
- -
- - - - - - - - - - -
-
- - - - This post is licensed under - - CC BY 4.0 - - by the author. - -
- - - - - -
- -
- -
- - - -
- - - -
- -
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - - -
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

Trending Tags

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - -
-
-
-
- -
- - -
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/_site/posts/Kubectl-Commands/index.html b/_site/posts/Kubectl-Commands/index.html deleted file mode 100644 index 81f7462..0000000 --- a/_site/posts/Kubectl-Commands/index.html +++ /dev/null @@ -1,2658 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Kubectl Cheat Sheet | Trever Ehrfurth - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - -
-
- - - - - -
- Post -
- - - - - - - - -
-
- - -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-

Kubectl Cheat Sheet

- -

Helpful Kubectl commands to reference as a cheat sheet

- - - -
- -
-

Contexts and Configuration

- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
CommandDescription
kubectl config viewShow the current kubeconfig file
kubectl config get-contextsList all contexts in the kubeconfig file
kubectl config current-contextShow the current context
kubectl config use-context <context>Change the current context
kubectl config set-context <context> --namespace=<namespace>Set the namespace for a context
kubectl config set-context <context> --cluster=<cluster>Set the cluster for a context
kubectl config set-context <context> --user=<user>Set the user for a context
kubectl config set-context <context> --namespace=<namespace> --cluster=<cluster> --user=<user>Set all context properties
- -

Cluster Management

- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
CommandDescription
kubectl cluster-infoDisplay addresses of the master and services
kubectl get nodesList all nodes in the cluster
kubectl get podsList all pods in the cluster
kubectl get servicesList all services in the cluster
kubectl get deploymentsList all deployments in the cluster
kubectl get namespacesList all namespaces in the cluster
kubectl get eventsList all events in the cluster
- -

Resource Management

- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
CommandDescription
kubectl apply -f <file>Apply a configuration file
kubectl delete -f <file>Delete a configuration file
kubectl get <resource>List all resources of a type
kubectl describe <resource> <name>Describe a resource
kubectl edit <resource> <name>Edit a resource
kubectl exec -it <pod> -- <command>Execute a command in a pod
- -

Pod Management

- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
CommandDescription
kubectl run <name> --image=<image>Create a new pod
kubectl delete pod <name>Delete a pod
kubectl get pod <name>Get details of a pod
kubectl describe pod <name>Describe a pod
kubectl logs <name>Show logs of a pod
kubectl exec -it <name> -- /bin/bashExecute a command in a pod
kubectl cp <pod>:<source> <destination>Copy files from a pod
kubectl top nodeShow metrics for all nodes
kubectl top podShow metrics for all pods
kubectl top pod <name>Show metrics for a specific pod
- -

Service Management

- -
- - - - - - - - - - - - - - - - - - - - - - - - -
CommandDescription
kubectl expose pod <name> --port=444 --target-port=555Expose a pod as a service
kubectl delete service <name>Delete a service
kubectl get service <name>Get details of a service
kubectl describe service <name>Describe a service
- -

Deployment Management

- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
CommandDescription
kubectl create deployment <name> --image=<image>Create a new deployment
kubectl delete deployment <name>Delete a deployment
kubectl get deployment <name>Get details of a deployment
kubectl describe deployment <name>Describe a deployment
kubectl scale deployment <name> --replicas=3Scale a deployment to 3 replicas
kubectl rollout status deployment/<name>Check the status of a deployment rollout
kubectl rollout history deployment/<name>Show the history of a deployment rollout
kubectl rollout undo deployment/<name>Rollback a deployment to the previous version
kubectl rollout undo deployment/<name> --to-revision=1Rollback a deployment to a specific revision
- -

Namespace Management

- -
- - - - - - - - - - - - - - - - - - - - - - - - -
CommandDescription
kubectl create namespace <name>Create a new namespace
kubectl delete namespace <name>Delete a namespace
kubectl get namespace <name>Get details of a namespace
kubectl describe namespace <name>Describe a namespace
- -
- -
- - - - - - - - - - -
-
- - - - This post is licensed under - - CC BY 4.0 - - by the author. - -
- - - - - -
- -
- -
- - - -
- - - -
- -
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - - -
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

Trending Tags

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - -
-
-
-
- -
- - -
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/_site/posts/Kubernetes-NFS-Share/index.html b/_site/posts/Kubernetes-NFS-Share/index.html deleted file mode 100644 index 78f9ce6..0000000 --- a/_site/posts/Kubernetes-NFS-Share/index.html +++ /dev/null @@ -1,2365 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Kubernetes NFS Mount Setup for Persistent Storage | Trever Ehrfurth - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - -
-
- - - - - -
- Post -
- - - - - - - - -
-
- - -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-

Kubernetes NFS Mount Setup for Persistent Storage

- -

Documentation on how to setup an NFS mount for persistent storage in any kubernetes deployment.

- - - -
- -
-

Requirements

-
    -
  1. Install nfs-common on all kubernetes nodes -
    - -
    1
    -
     sudo apt install -y nfs-common
    -
    -
  2. -
  3. -

    Install NFS CSI driver

    -
  4. -
  5. An NFS share setup from something like TrueNAS, Synology, etc.
  6. -
- -

Setup persistent volume

-
    -
  1. Create a yaml file called nfs-pv.yaml with the following: -
    - -
    1
    -2
    -3
    -4
    -5
    -6
    -7
    -8
    -9
    -10
    -11
    -12
    -13
    -
     apiVersion: v1
    - kind: PersistentVolume
    - metadata:
    - name: nfs
    - spec:
    - capacity:
    -     storage: 20Gi
    - accessModes:
    -     - ReadWriteMany
    - storageClassName: nfs
    - nfs:
    -     server: 192.168.1.24            # IP of NFS Server
    -     path: "/mnt/TREPOOL/TRESHARE"   # NFS mount path 
    -
    -
  2. -
  3. Apply file -
    - -
    1
    -
     kubectl apply -f nfs-pv.yaml
    -
    -
  4. -
- -

Setup persistent volume claim

-
    -
  1. Create a yaml file called nfs-pvc.yaml with the following: -
    - -
    1
    -2
    -3
    -4
    -5
    -6
    -7
    -8
    -9
    -10
    -11
    -
     apiVersion: v1
    - kind: PersistentVolumeClaim
    - metadata:
    - name: nfs
    - spec:
    - accessModes:
    -     - ReadWriteMany
    - storageClassName: nfs
    - resources:
    -     requests:
    -     storage: 20Gi
    -
    -
  2. -
  3. Apply file -
    - -
    1
    -
     kubectl apply -f nfs-pvc.yaml
    -
    -
  4. -
- -

Test with NGINX web server

-
    -
  1. Create a yaml file called nfs-web.yaml with the following: -
    - -
    1
    -2
    -3
    -4
    -5
    -6
    -7
    -8
    -9
    -10
    -11
    -12
    -13
    -14
    -15
    -16
    -17
    -18
    -19
    -20
    -21
    -22
    -23
    -24
    -25
    -26
    -27
    -
     apiVersion: apps/v1
    - kind: Deployment
    - metadata:
    - name: nfs-web
    - spec:
    - replicas: 1
    - selector:
    -     matchLabels: 
    -     app: nfs-web
    - template:
    -     metadata:
    -     labels:
    -         app: nfs-web
    -     spec:
    -     containers:
    -     - name: nfs-web
    -         image: nginx
    -         ports:
    -         - name: web
    -             containerPort: 80
    -         volumeMounts:
    -         - name: nfs
    -             mountPath: /usr/share/nginx/html    # NFS path in pod
    -     volumes:
    -     - name: nfs
    -         persistentVolumeClaim:
    -         claimName: nfs
    -
    -
  2. -
  3. Apply file -
    - -
    1
    -
     kubectl apply -f nfs-web.yaml
    -
    -
  4. -
  5. Get the name of the pod. eg: nfs-web-7bc97bcf48-5brq6 -
    - -
    1
    -
     kubectl get pods
    -
    -
  6. -
  7. Exec into the pod to verify nfs is mounted and files are available. -
    - -
    1
    -
     kubectl exec -it nfs-web-7bc97bcf48-5brq6 -- /bin/bash
    -
    -
  8. -
  9. cd into NFS path from the deployment and list the directory to verify files. -
    - -
    1
    -
     cd /usr/share/nginx/html
    -
    -
  10. -
- -
- -
- - - - - - - - - - -
-
- - - - This post is licensed under - - CC BY 4.0 - - by the author. - -
- - - - - -
- -
- -
- - - -
- - - -
- -
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - - -
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

Trending Tags

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - -
-
-
-
- -
- - -
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/_site/posts/My-Homelab/index.html b/_site/posts/My-Homelab/index.html deleted file mode 100644 index 6c824fc..0000000 --- a/_site/posts/My-Homelab/index.html +++ /dev/null @@ -1,2189 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - My Homelab | Trever Ehrfurth - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - -
-
- - - - - -
- Post -
- - - - - - - - -
-
- - -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-

My Homelab

- -

An overview of my current homelab including hardware, software, and networking.

- - - -
- -
-

A lot of years, money and sleepless nights later, this homelab has gone through two or three major iterations

- -

Whats in the Rack:

-
    -
  1. UDM-PRO - networking and security cams for inside and outside my house.
  2. -
  3. USW-16-POE
  4. -
  5. TP-Link 24 port gigabyte switch
  6. -
  7. Patchbox Plus + Cat 6a
  8. -
  9. 48-Port blank Keystone
  10. -
  11. CyberPower Pure Sine Wave UPS
  12. -
  13. Kinan 8-port KVM console
  14. -
  15. Supermicro 847 36 Bay chassis for TrueNAS Scale -12 x 10 TB (2 x RaidZ2) -12 x 14 TB (2 x RaidZ2) -6 x 1TB SSD (RaidZ2) -Xenon W-1290P | 128 GB DDR4-3200 ECC RAM
  16. -
- -

Servers: -Running 5 servers in a High Available cluster -All are from old gaming rigs. Every 3 years or so I buy a new gaming rig and toss the previous moba, ram, cpu, and psu into Rosewill 4U chassis. -Server 1: i7-12700K | GTX 1080TI -Server 2: i7-9700K | GTX 980TI -Server 3: i7-6700K -Server 4: i7-4790K -Server 5: AMD Ryzen 5 3600

- -

As you can see from my Homepage dashboard, I run a bunch of services across multiple VM’s with high availability. If I ever take any server down, the VM’s are spun up on the remaining nodes in the cluster. Here are some of my services starting with the coolest.

- -

Servies

-

Clusterplex: I took plex onestep further and deployed clusterplex by pabloromeo on github. This amazing developer created add-on is a way to distribute transcode jobs from one Plex server across multiple VM’s or workers. This has allowed me to scale out plex without ever taking up too much processing on any given server/VM. It is meant for Kubernetes and docker swarm but can be configured to work in normal docker containers. -Also using Tautulli for better metrics and observability of Plex -Wazuh: A wonderful SIEM solution I have deployed on all servers and computers on the network with active response rules, alerts to discord and vulnerability monitoring.

- -

Uptime-Kuma: Super easy and quick uptime monitor for all services with notifications linked to discord for any outages.

- -

Not shown on dashboard: Pterodactyl Game server

- -

NGINX Proxy Manager: Reverse proxy for ip’s

- -

Automated eBook and Audiobook library using Calibre, Readarr and Calibre-Web. (Account with myanonymouse)

- -

Vaultwarden: selfhosted Bitwarden

- -

Immich: Photo/Video backup Solution

- -
- -
- - - - - - - - - - -
-
- - - - This post is licensed under - - CC BY 4.0 - - by the author. - -
- - - - - -
- -
- -
- - - -
- - - -
- -
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - - -
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

Trending Tags

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - -
-
-
-
- -
- - -
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/_site/posts/Obsidian-Cheat-Sheet/index.html b/_site/posts/Obsidian-Cheat-Sheet/index.html deleted file mode 100644 index d6fd981..0000000 --- a/_site/posts/Obsidian-Cheat-Sheet/index.html +++ /dev/null @@ -1,2535 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Obsidian Cheat Sheet | Trever Ehrfurth - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - -
-
- - - - - -
- Post -
- - - - - - - - -
-
- - -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-

Obsidian Cheat Sheet

- -

This repository contains all the basic cheatsheets you need to get started to make notes in obsidian.

- - - -
- -
-

Quick Tips

-

To Search for a specific note: Use Ctrl + P (Cmd + P on Mac).

- -

For Internal Links: Use [[note name]] to create internal links to other notes.

- -

For External Links: Use [Text](URL) to create external links.

- -

For Bullet Points: Use -, *, or 1.

- -

For Headings: Use # (e.g., # Heading 1, ## Heading 2).

- -

For Code Blocks: Wrap text in triple backticks (``)`.

- -

For Embeds: Use ![[note name]] to embed another note in your current note.

- -
-

Markdown Cheat Sheet

-

Quick Overview</em>

- -
- -
1
-2
-3
-4
-5
-6
-7
-8
-9
-10
-11
-12
-13
-14
-15
-16
-17
-18
-19
-20
-21
-22
-23
-24
-25
-26
-27
-
# Heading 1
-
-## Heading 2
-
---- Spacer  
-
-- Bullet Points
-
-- [x] Checklist
-
-**Bold**
-
-*Italic*
-
-***Italic Bold***
-
-==Highlights==
-
-```Coding Blocks```
-
-[[Links]](Sources)
-
-> Quotes/ Blockquotes
-
-Table Cell A  |  Table Cell B
-----          |          ----
-
-
-

Detailed Cheat Sheet</em>

- -

# Heading 1

- -

# Heading 1

- -
- -

Heading 2

- -

## Heading 2

- -
- -

Line Break

- -

---

- -
- -
    -
  • Bullet Points
  • -
- -

- Bullet

- -
- -
    -
  • Checklist
  • -
- -

- [x] list

- -
- -

Bold

- -

**text**

- -
- -

Italic

- -

*text*

- -
- -

Italic Bold

- -

***text***

- -
- -

==Highlights==

- -

==this text is highlighted==

- -
- -

Coding Blocks

- -

By putting 3 (`) signs before and after the code.

- -
- -

[[Links]]

- -

[[link]](sources)

- -
- -
-

Quotes/ Blockquotes

-
- -

> this is a quote.

- -
- -

Table Cell A | Table Cell B -—- | —-

- -
- -
1
-2
-
Table Cell A  |  Table Cell B
-----          |          ----
-
- -
-

Shortcuts ⌨️

- -

General Shortcuts

-

Shortcut Key | Functions -:—————–:|—————–: -Ctrl + S|Editor: Saves the file -Ctrl + N| Creates a new note -Ctrl + P| Open command pallete -Ctrl + O | Opens Quick Switcher -Ctrl + Shift + F | Search in all files -Ctrl + G | Opens graph view -Ctrl + Alt + ← | Navigate Back -Ctrl + Alt + → | Navigate forth -Ctrl + F | Searches current file -Ctrl + E | Toggle edit/preview modes -Ctrl + , | Open Settings -Ctrl + Tab | Next tab -Ctrl + Shift + Tab | Previous tab -Alt + Tab | Next App -Alt + Shift + Tab | Previous App -Win + Tab | Task View -Win + Shift + Tab | Next Window

- -

Editing Shortcuts

-

Shortcut Key | Functions -:—————–:|—————–: -Ctrl + B | Bold Selected Text -Ctrl + I | Italicize Selected Text -Ctrl + K | Insert External Link to Selected Text -Ctrl + ] | Indent -Ctrl + [ | Unindent -Ctrl + D |Delete current line -Ctrl + V | Duplicate current line -Ctrl + Click | Open Note in Current Panel via Link -Ctrl + Shift + Click | Open Note in New Panel via Link -Ctrl + P (Cmd + P on Mac) | Quick Search -Ctrl + N (Cmd + N on Mac) | New Note -Ctrl + Shift + D (Cmd + Shift + D on Mac) | Create a Daily Note -Ctrl + / (Cmd + / on Mac) | Toggle Command Palette -Ctrl + E (Cmd + E on Mac) | Open Graph View -Ctrl + Click (Cmd + Click on Mac) | Open Link in New Pane

- -
- -
- - - - - - - - - - -
-
- - - - This post is licensed under - - CC BY 4.0 - - by the author. - -
- - - - - -
- -
- -
- - - -
- - - -
- -
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - - -
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

Trending Tags

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - -
-
-
-
- -
- - -
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/_site/posts/Proxmox-Commands/index.html b/_site/posts/Proxmox-Commands/index.html deleted file mode 100644 index 64407ef..0000000 --- a/_site/posts/Proxmox-Commands/index.html +++ /dev/null @@ -1,2937 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Proxmox Cheat Sheet | Trever Ehrfurth - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - -
-
- - - - - -
- Post -
- - - - - - - - -
-
- - -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-

Proxmox Cheat Sheet

- -

Helpful Proxmox commands to reference as a cheat sheet

- - - -
- -
-

VM Management

- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
CommandCommand Description
qm listlist VMs
qm create <vm>Create or restore a virtual machine.
qm start <vm>Start a VM
qm suspend <vm>Suspend virtual machine.
qm shutdown <vm>Shutdown a VM
qm reboot <vm>Reboot a VM
qm reset <vm>Reset a VM
qm stop <vm>Stop a VM
qm destroy <vm>Destroy the VM and all used/owned volumes.
qm monitor <vm>Enter Qemu Monitor interface.
qm pending <vm>Get the virtual machine configuration with both current and pending values.
qm sendkey <vm> <key_event>Send key event to virtual machine.
qm showcmd <vm>Show command line used to start the VM (debug info).
qm unlock <vm>Unlock the VM
qm clone <vm> <new_vm>Clone a VM
qm migrate <vm> <node>Migrate a VM
qm status <vm>Show VM status
qm template <vm>Create a Template
qm set <vm>Set virtual machine options (synchronous API)
- -

Cloudinit

- -
- - - - - - - - - - - - - - - - - - - - -
CommandCommand Description
qm cloudinit dump <vm> <type>Get automatically generated cloudinit config.
qm cloudinit pending <vm>Get the cloudinit configuration with both current and pending values.
qm cloudinit update <vm>Regenerate and change cloudinit config drive.
- -

Disk

- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
CommandCommand Description
qm disk import <vm> <source> <storageImport an external disk image as an unused disk in a VM.
qm disk move <vm> <disk>Move volume to different storage or to a different VM.
qm disk rescanRescan all storages and update disk sizes and unused disk images.
qm disk resize <vm> <disk> <size>Extend volume size.
qm disk unlink <vm> --IDLIST <string>Unlink/delete disk images.
qm rescanRescan volumes.
qemu-img convert <qcow2> <raw>Convert qcow2 to raw
qemu-img convert -p -O qcow2 <raw> <qcow2>Convert back to qcow2
- -

Snapshot

- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
CommandCommand Description
qm listsnapshot <vm>List all snapshots.
qm snapshot <vm> <snapshot>Snapshot a VM.
qm delsnapshot <vm> <snapshot>Delete a snapshot.
qm rollback <vm> <snapshot>Rollback a snapshot.
qm terminal <vm>Open a terminal using a serial device.
qm vncproxy <vm>Proxy VM VNC traffic to stdin/stdout.
- -

Misc

- -
- - - - - - - - - - - - - - - - - - - - - - - - -
CommandCommand Description
qm guest cmd <vm> <command>Execute Qemu Guest Agent commands.
qm guest exec <vm>Executes the given command via the guest agent.
qm guest exec-status <vm> <pid>Gets the status of the given pid started by the guest-agent.
qm guest passwd <vm> <user>Sets the password for the given user to the given password.
- -

PV, VG, LV Management

- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
CommandCommand Description
pvcreate <disk>Create a PV
pvremove <disk>Remove a PV
pvsList all PVs
vgcreate <vg> <disk>Create a VG
vgremove <vg>Remove a VG
vgsList all VGs
lvcreate -L LV-SIZE -n <lv> <vg>Create a LV
lvremove <vg>/<lv>Remove a LV
lvsList all LVs
- -

Storage Management

- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
CommandCommand Description
pvesm add TYPE <storage>Create a new storage
pvesm alloc <storage> <vm> <file> <size>Allocate disk images
pvesm free <volume>Delete volume
pvesm remove <storage>Delete storage configuration
pvesm list <storage>List storage content
pvesm lvmscanAn alias for pvesm scan lvm
pvesm lvmthinscanAn alias for pvesm scan lvmthin
pvesm scan lvmList local LVM volume groups
pvesm scan lvmthin VGList local LVM Thin Pools
pvesm statusGet status for all datastores
- -

Template Management

- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - -
CommandCommand Description
pveam availableList all templates
pveam list <storage>List all templates
pveam download <storage> <template>Download appliance templates
pveam remove <template>Remove a template
pveam updateUpdate Container Template Database
- -

Container Management

- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
CommandCommand Description
pct listList containers
pct create <vm> OSTEMPLATECreate or restore a container
pct start <vm>Start the container
pct clone <vm> <new_vm>Create a container clone/copy
pct suspend <vm>Suspend the container. This is experimental.
pct resume <vm>Resume the container
pct stop <vm>Stop the container. This will abruptly stop all processes running in the container.
pct shutdown <vm>Shutdown the container. This will trigger a clean shutdown of the container.
pct destroy <vm>Destroy the container (also delete all uses files)
pct status <vm>Show CT status
pct migrate <vm> <target>Migrate the container to another node. Creates a new migration task.
pct config <vm>Get container configuration
pct cpusetsPrint the list of assigned CPU sets
pct pending <vm>Get container configuration, including pending changes
pct reboot <vm>Reboot the container by shutting it down and starting it again. Applies pending changes.
pct restore <vm> <template>Create or restore a container
pct set <vm>Set container options
pct template <vm>Create a Template
pct unlock <vm>Unlock the VM
- -

Container Disks

- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
CommandCommand Description
pct df <vm>Get the container’s current disk usage
pct fsck <vm>Run a filesystem check (fsck) on a container volume
pct fstrim <vm>Run fstrim on a chosen CT and its mountpoints
pct mount <vm>Mount the container’s filesystem on the host
pct move-volume <vm> <volume>Move a rootfs-/mp-volume to a different storage or to a different container
pct unmount <vm>Unmount the container’s filesystem
pct resize <vm> <disk> <size>Resize a container mount point
pct rescanRescan all storages and update disk sizes and unused disk images
pct enter <vm>Connect to container
pct console <vm>Launch a console for the specified container
pct exec <vm>Launch a command inside the specified container
pct pull <vm> <source> <destination>Copy a file from the container to the local system
pct push <vm> <source> <destination>Copy a local file to the container
- -

Web GUI

- -
- - - - - - - - - - - - -
CommandCommand Description
service pveproxy restartRestart the Proxmox web GUI
- -
- -
- - - - - - - - - - -
-
- - - - This post is licensed under - - CC BY 4.0 - - by the author. - -
- - - - - -
- -
- -
- - - -
- - - -
- -
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - - -
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

Trending Tags

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - -
-
-
-
- -
- - -
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/_site/posts/Terraform-Commands/index.html b/_site/posts/Terraform-Commands/index.html deleted file mode 100644 index cf356f6..0000000 --- a/_site/posts/Terraform-Commands/index.html +++ /dev/null @@ -1,2586 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Terraform Cheat Sheet | Trever Ehrfurth - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - -
-
- - - - - -
- Post -
- - - - - - - - -
-
- - -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-

Terraform Cheat Sheet

- -

Helpful Terraform commands to reference as a cheat sheet

- - - -
- -
-

Format and Validate

- -
- - - - - - - - - - - - - - - - -
CommandDescription
terraform fmtReformat your configuration in the standard style
terraform validateCheck whether the configuration is valid
- -

Initialize Working Directory

- -
- - - - - - - - - - - - -
CommandDescription
terraform initPrepare your working directory for other commands
- -

Plan, Deploy and Cleanup

- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
CommandDescription
terraform apply --auto-approveCreate or update infrastructure without confirmation prompt
terraform destroy --auto-approveDestroy previously-created infrastructure without confirmation prompt
terraform plan -out plan.outOutput the deployment plan to plan.out
terraform apply plan.outUse the plan.out to deploy infrastructure
terraform plan -destroyOutputs a destroy plan
terraform apply -target=aws_instance.myinstanceOnly apply/deploy changes to targeted resource
terraform apply -var myregion=us-east-1Pass a variable via CLI while applying a configuration
terraform apply -lock=trueLock the state file so it can’t be modified
terraform apply refresh=falseDo not reconcile state file with real-world resources
terraform apply --parallelism=5Number of simultaneous resource operations
terraform refreshReconcile the state in Terraform state file with real-world resources
terraform providersGet informatino about providers used in the current configuration
- -

Workspaces

- -
- - - - - - - - - - - - - - - - - - - - -
CommandDescription
terraform workspace new <workspace>Create a new workspace
terraform workspace select defaultChange to a workspace
terraform workspace listList all workspaces
- -

State Manipulation

- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
CommandDescription
terraform state show aws_instance.myinstanceShow details stored in the Terraform state file
terraform state pull > terraform.tfstateOutput Terraform state to a file
terraform state mv aws_iam_role.my_ssm_role module.mymoduleMove a resource tracked via state to different module
terraform state replace-provider hashicorp/aws registry.custom.com/awsReplace an existing provider with another
terraform state listList all resources tracked in the Terraform state file
terraform state rm aws_instance.myinstanceUnmanage a resource, delete it from the Terraform state file
- -

Import and Outputs

- -
- - - - - - - - - - - - - - - - - - - - - - - - -
CommandDescription
terraform import <resource_type>.<resource> <id>Import a Resource
terraform outputList all outputs
terraform output <output>List a specific output
terraform output -jsonList all outputs in JSON format
- -

Terraform Cloud

- -
- - - - - - - - - - - - - - - - -
CommandDescription
terraform loginLogin to Terraform Cloud with an API token
terraform logoutLogout from Terraform Cloud
- -
- -
- - - - - - - - - - -
-
- - - - This post is licensed under - - CC BY 4.0 - - by the author. - -
- - - - - -
- -
- -
- - - -
- - - -
- -
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - - -
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

Trending Tags

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - -
-
-
-
- -
- - -
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/_site/posts/index.html b/_site/posts/index.html deleted file mode 100644 index b983321..0000000 --- a/_site/posts/index.html +++ /dev/null @@ -1,11 +0,0 @@ - - - - Redirecting… - - - - -

Redirecting…

- Click here if you are not redirected. - diff --git a/_site/redirects.json b/_site/redirects.json deleted file mode 100644 index 3d7a81c..0000000 --- a/_site/redirects.json +++ /dev/null @@ -1 +0,0 @@ -{"/norobots/":"http://localhost:4000/404.html","/assets/":"http://localhost:4000/404.html","/posts/":"http://localhost:4000/404.html"} \ No newline at end of file diff --git a/_site/robots.txt b/_site/robots.txt deleted file mode 100644 index b865347..0000000 --- a/_site/robots.txt +++ /dev/null @@ -1,5 +0,0 @@ -User-agent: * - -Disallow: /norobots/ - -Sitemap: http://localhost:4000/sitemap.xml diff --git a/_site/sitemap.xml b/_site/sitemap.xml deleted file mode 100644 index 811f190..0000000 --- a/_site/sitemap.xml +++ /dev/null @@ -1,112 +0,0 @@ - - - -http://localhost:4000/posts/My-Homelab/ -2024-06-24T13:33:51-05:00 - - -http://localhost:4000/posts/Kubernetes-NFS-Share/ -2024-06-24T13:29:57-05:00 - - -http://localhost:4000/posts/Git-Commands/ -2024-06-24T13:02:50-05:00 - - -http://localhost:4000/posts/Docker-Commands/ -2024-06-24T13:33:51-05:00 - - -http://localhost:4000/posts/Helm-Commands/ -2024-06-24T13:33:51-05:00 - - -http://localhost:4000/posts/Kubectl-Commands/ -2024-06-24T13:33:51-05:00 - - -http://localhost:4000/posts/Terraform-Commands/ -2024-06-26T21:12:31-05:00 - - -http://localhost:4000/posts/Proxmox-Commands/ -2024-06-24T19:31:00-05:00 - - -http://localhost:4000/posts/Obsidian-Cheat-Sheet/ -2024-06-28T17:09:00-05:00 - - -http://localhost:4000/categories/ -2024-09-16T16:53:36-05:00 - - -http://localhost:4000/tags/ -2024-09-16T16:53:36-05:00 - - -http://localhost:4000/archives/ -2024-09-16T16:53:36-05:00 - - -http://localhost:4000/about/ -2024-09-16T16:53:36-05:00 - - -http://localhost:4000/ - - -http://localhost:4000/tags/homelab/ - - -http://localhost:4000/tags/kubernetes/ - - -http://localhost:4000/tags/nfs/ - - -http://localhost:4000/tags/persistent-storage/ - - -http://localhost:4000/tags/git/ - - -http://localhost:4000/tags/cheat-sheet/ - - -http://localhost:4000/tags/commands/ - - -http://localhost:4000/tags/docker/ - - -http://localhost:4000/tags/helm/ - - -http://localhost:4000/tags/kubectl/ - - -http://localhost:4000/tags/terraform/ - - -http://localhost:4000/tags/proxmox/ - - -http://localhost:4000/tags/obsidian/ - - -http://localhost:4000/categories/homelab/ - - -http://localhost:4000/categories/overview/ - - -http://localhost:4000/categories/kubernetes/ - - -http://localhost:4000/categories/nfs/ - - -http://localhost:4000/categories/cheat-sheets/ - - diff --git a/_site/sw.min.js b/_site/sw.min.js deleted file mode 100644 index d1c8660..0000000 --- a/_site/sw.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(){"use strict";importScripts("".concat("","/assets/js/data/swconf.js"));const e=swconf.purge;self.addEventListener("install",(t=>{e||t.waitUntil(caches.open(swconf.cacheName).then((e=>e.addAll(swconf.resources))))})),self.addEventListener("activate",(t=>{t.waitUntil(caches.keys().then((t=>Promise.all(t.map((t=>e||t!==swconf.cacheName?caches.delete(t):void 0))))))})),self.addEventListener("message",(e=>{"SKIP_WAITING"===e.data&&self.skipWaiting()})),self.addEventListener("fetch",(t=>{t.request.headers.has("range")||t.respondWith(caches.match(t.request).then((s=>s||fetch(t.request).then((s=>{const n=t.request.url;if(e||"GET"!==t.request.method||!function(e){const t=new URL(e).pathname;for(const e of swconf.denyPaths)if(t.startsWith(e))return!1;return!0}(n))return s;let a=s.clone();return caches.open(swconf.cacheName).then((e=>{e.put(t.request,a)})),s})))))}))}(); diff --git a/_site/tags/cheat-sheet/index.html b/_site/tags/cheat-sheet/index.html deleted file mode 100644 index 6a495b7..0000000 --- a/_site/tags/cheat-sheet/index.html +++ /dev/null @@ -1,1831 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - cheat sheet | Trever Ehrfurth - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - -
-
- - - - - -
- Tag -
- - - - - - - - -
-
- - -
-
- - - - - - - - -
- - - -
- -
- -
- - - - - - -
-
- - - -
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

Trending Tags

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - -
-
-
-
- -
- - -
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/_site/tags/commands/index.html b/_site/tags/commands/index.html deleted file mode 100644 index 7706408..0000000 --- a/_site/tags/commands/index.html +++ /dev/null @@ -1,1831 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - commands | Trever Ehrfurth - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - -
-
- - - - - -
- Tag -
- - - - - - - - -
-
- - -
-
- - - - - - - - -
- - - -
- -
- -
- - - - - - -
-
- - - -
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

Trending Tags

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - -
-
-
-
- -
- - -
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/_site/tags/docker/index.html b/_site/tags/docker/index.html deleted file mode 100644 index a375dd6..0000000 --- a/_site/tags/docker/index.html +++ /dev/null @@ -1,1687 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - docker | Trever Ehrfurth - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - -
-
- - - - - -
- Tag -
- - - - - - - - -
-
- - -
-
- - - - - -
- - - - - -
-

- - docker - 1 -

- -
- - -
- - -
- - - -
- -
- -
- - - - - - -
-
- - - -
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

Trending Tags

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - -
-
-
-
- -
- - -
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/_site/tags/git/index.html b/_site/tags/git/index.html deleted file mode 100644 index 40da9ce..0000000 --- a/_site/tags/git/index.html +++ /dev/null @@ -1,1687 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - git | Trever Ehrfurth - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - -
-
- - - - - -
- Tag -
- - - - - - - - -
-
- - -
-
- - - - - -
- - - - - -
-

- - git - 1 -

- -
- - -
- - -
- - - -
- -
- -
- - - - - - -
-
- - - -
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

Trending Tags

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - -
-
-
-
- -
- - -
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/_site/tags/helm/index.html b/_site/tags/helm/index.html deleted file mode 100644 index 43d769d..0000000 --- a/_site/tags/helm/index.html +++ /dev/null @@ -1,1687 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - helm | Trever Ehrfurth - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - -
-
- - - - - -
- Tag -
- - - - - - - - -
-
- - -
-
- - - - - -
- - - - - -
-

- - helm - 1 -

- -
- - -
- - -
- - - -
- -
- -
- - - - - - -
-
- - - -
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

Trending Tags

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - -
-
-
-
- -
- - -
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/_site/tags/homelab/index.html b/_site/tags/homelab/index.html deleted file mode 100644 index 9d6c0ac..0000000 --- a/_site/tags/homelab/index.html +++ /dev/null @@ -1,1687 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - homelab | Trever Ehrfurth - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - -
-
- - - - - -
- Tag -
- - - - - - - - -
-
- - -
-
- - - - - -
- - - - - -
-

- - homelab - 1 -

-
    - -
  • - My Homelab - - - - - - - - -
  • - -
-
- - -
- - -
- - - -
- -
- -
- - - - - - -
-
- - - -
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

Trending Tags

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - -
-
-
-
- -
- - -
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/_site/tags/index.html b/_site/tags/index.html deleted file mode 100644 index 3403e36..0000000 --- a/_site/tags/index.html +++ /dev/null @@ -1,1709 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Tags | Trever Ehrfurth - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - -
-
- - - - - -
- Tags -
- - - - - - - - -
-
- - -
-
- - - - - - - - -
- - - -
- -
- -
- - - - - - -
-
- - - -
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

Trending Tags

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - -
-
-
-
- -
- - -
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/_site/tags/kubectl/index.html b/_site/tags/kubectl/index.html deleted file mode 100644 index cf395d0..0000000 --- a/_site/tags/kubectl/index.html +++ /dev/null @@ -1,1687 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - kubectl | Trever Ehrfurth - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - -
-
- - - - - -
- Tag -
- - - - - - - - -
-
- - -
-
- - - - - -
- - - - - -
-

- - kubectl - 1 -

- -
- - -
- - -
- - - -
- -
- -
- - - - - - -
-
- - - -
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

Trending Tags

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - -
-
-
-
- -
- - -
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/_site/tags/kubernetes/index.html b/_site/tags/kubernetes/index.html deleted file mode 100644 index 2f2c0c8..0000000 --- a/_site/tags/kubernetes/index.html +++ /dev/null @@ -1,1687 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - kubernetes | Trever Ehrfurth - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - -
-
- - - - - -
- Tag -
- - - - - - - - -
-
- - -
-
- - - - - - - - -
- - - -
- -
- -
- - - - - - -
-
- - - -
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

Trending Tags

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - -
-
-
-
- -
- - -
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/_site/tags/nfs/index.html b/_site/tags/nfs/index.html deleted file mode 100644 index afcebaa..0000000 --- a/_site/tags/nfs/index.html +++ /dev/null @@ -1,1687 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - nfs | Trever Ehrfurth - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - -
-
- - - - - -
- Tag -
- - - - - - - - -
-
- - -
-
- - - - - - - - -
- - - -
- -
- -
- - - - - - -
-
- - - -
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

Trending Tags

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - -
-
-
-
- -
- - -
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/_site/tags/obsidian/index.html b/_site/tags/obsidian/index.html deleted file mode 100644 index 0a748b6..0000000 --- a/_site/tags/obsidian/index.html +++ /dev/null @@ -1,1687 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - obsidian | Trever Ehrfurth - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - -
-
- - - - - -
- Tag -
- - - - - - - - -
-
- - -
-
- - - - - -
- - - - - -
-

- - obsidian - 1 -

- -
- - -
- - -
- - - -
- -
- -
- - - - - - -
-
- - - -
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

Trending Tags

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - -
-
-
-
- -
- - -
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/_site/tags/persistent-storage/index.html b/_site/tags/persistent-storage/index.html deleted file mode 100644 index 2a803e9..0000000 --- a/_site/tags/persistent-storage/index.html +++ /dev/null @@ -1,1687 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - persistent storage | Trever Ehrfurth - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - -
-
- - - - - -
- Tag -
- - - - - - - - -
-
- - -
-
- - - - - - - - -
- - - -
- -
- -
- - - - - - -
-
- - - -
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

Trending Tags

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - -
-
-
-
- -
- - -
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/_site/tags/proxmox/index.html b/_site/tags/proxmox/index.html deleted file mode 100644 index 4d1e6ee..0000000 --- a/_site/tags/proxmox/index.html +++ /dev/null @@ -1,1687 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - proxmox | Trever Ehrfurth - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - -
-
- - - - - -
- Tag -
- - - - - - - - -
-
- - -
-
- - - - - -
- - - - - -
-

- - proxmox - 1 -

- -
- - -
- - -
- - - -
- -
- -
- - - - - - -
-
- - - -
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

Trending Tags

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - -
-
-
-
- -
- - -
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/_site/tags/terraform/index.html b/_site/tags/terraform/index.html deleted file mode 100644 index 303f0d6..0000000 --- a/_site/tags/terraform/index.html +++ /dev/null @@ -1,1687 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - terraform | Trever Ehrfurth - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - -
-
- - - - - -
- Tag -
- - - - - - - - -
-
- - -
-
- - - - - -
- - - - - -
-

- - terraform - 1 -

- -
- - -
- - -
- - - -
- -
- -
- - - - - - -
-
- - - -
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

Trending Tags

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - -
-
-
-
- -
- - -
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -