diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..3047f6f --- /dev/null +++ b/.gitignore @@ -0,0 +1,18 @@ +# macOS General +.DS_Store +.AppleDouble +.LSOverride + +# files +blog-*.xml +5855d6e376141a96.mp4 +bb7b1cf09d2b80bc.mp4 + +# folders +/public/ +resources/ +thumbnails/ +exampleSite/ +draft/ +drafts/ +_gen/ diff --git a/archetypes/default.md b/archetypes/default.md new file mode 100644 index 0000000..00e77bd --- /dev/null +++ b/archetypes/default.md @@ -0,0 +1,6 @@ +--- +title: "{{ replace .Name "-" " " | title }}" +date: {{ .Date }} +draft: true +--- + diff --git a/assets/css/custom.css b/assets/css/custom.css new file mode 100644 index 0000000..7ce60ba --- /dev/null +++ b/assets/css/custom.css @@ -0,0 +1,328 @@ +/* Customisations to Hugo Diary by loikein */ + +:root { + --hr-height: 1.5rem; + --archive-indent: 3.5rem; +} + +@font-face { + font-display: swap; +} + +body.night { + --gray: #ccc; +} + +::selection { + /* color: #fcfcfc; */ + background: rgba(65, 180, 241, 0.3); +} + +time { + font-family: fira mono,cousine,Monaco,Menlo,source code pro,monospace; + letter-spacing: -1px; +} + +/* post title */ + +.stream-container .post .post-head-wrapper-text-only .post-title { + line-height: 42px; +} + +@media screen and (max-width:1020px) { + .stream-container .post .post-head-wrapper-text-only .post-title { + line-height: 1.5em; + } +} + +/* post title area */ + +.post-title-main { + margin-top: -1px; +} + +.post-subtitle, +.stream-container .post .post-head-wrapper-text-only .post-title .post-subtitle { + font-size: 18px; + line-height: 1.5; + padding: 0; + margin-top: 9px; + margin-bottom: 1rem; +} + +.post-meta { + display: flex; + align-items: baseline; + line-height: 1.5; + gap: 1.5rem; +} + +.post-meta, +.stream-container .post .post-head-wrapper-text-only .post-title .post-meta { + margin-top: 30px; +} + +.post-meta .post-time { + display: inline-block; +} + +.post-meta .post-time, +.post-meta .material-icons { + opacity: .6; +} + +@media (max-width: 500px) { + .post-meta { + display: block; + } + .post-meta .post-time { + display: block; + } + .post-meta .post-tags, + .post-meta .post-cats, + .draft-label { + display: inline-block; + margin-right: 1rem; + } +} + +/* post body */ + +.post-body h2 { + margin-top: calc(20px + 1em); +} + +.post-body h3{ + margin-top: calc(10px + 1em); +} + +b, strong { + text-decoration: underline; + color: #111; +} + +.post-body hr { + padding: 0; + border: none; + width: 100%; + display: block; + text-align: center; + height: var(--hr-height); + margin-top: 2rem; + margin-bottom: 2rem; +} + +.post-body hr:after { + content: "//"; + /* content: "\12199"; */ + /* content: "⁂"; */ + /* content: "❡"; */ + color: #777; + font-size: var(--hr-height); +} + +.mark, mark { + background-color: rgb(255,212,0,7%); +} + +code { + padding-top: .2rem; + padding-bottom: .2rem; +} + +.post-body li>p { + margin-bottom: 0; +} + +.post-body > ul > li, +.post-body > ol > li { + margin-bottom: 0.5rem; +} + +/* blockquote */ + +blockquote, blockquote *:not(a) { + color: #010c14; + background: none; +} + +body.night blockquote *:not(a) { + color: #e6e6e6 !important; +} + +blockquote p { + margin-bottom: 1rem; +} + +blockquote p:last-of-type, +blockquote .row:last-of-type { + margin-bottom: 0; +} + +/* not working?? */ +/* +.twitter-tweet p:last-of-type { + margin-bottom: 1rem !important; +} +*/ + +.fediverse-status p:last-of-type { + margin-top: 1rem; +} + +.fediverse-status span.invisible { + visibility: visible !important; + opacity: 1 !important; +} + +.fediverse-status a * { + color: inherit; +} + +/* animated sticker & video */ + +.post-body .sticker { + border-radius: 0; +} + +.post-body .sticker, +.post-body .post-video { + display: block; + margin: auto; + margin-bottom: 1rem; + object-fit: contain; + max-width: 100%; +} + +body.night .post-body .sticker, +body.night .post-body .post-video { + opacity: .8; +} + +/* image */ + +img, +.post-body img, +.stream-container .post .post-body-wrapper .post-body img { + border-radius: 0; + object-fit: contain; +} + +.post-body img:not([class]), +.stream-container .post .post-body-wrapper .post-body img:not([class]) { + border: solid 1px #777; + margin: auto; +} + +.post-body figure { + display: inline-block; + margin-left: 0.5rem; + margin-right: 0.5rem; +} + +/* .highlight pre { + background: rgba(33,150,243,7%)!important; +} */ + +/* toc */ + +.toc .toc-content { + padding-left: 30px; + } + +.toc .toc-content > ul { + padding: 0; +} + +.toc .toc-content > ul > ul { + padding: 0; +} + +@media screen and (max-width: 1020px) { + .toc .toc-content { + padding: 20px; + } +} + +.toc .toc-content > ul > ul > li { + counter-increment: counter_toc_h2; + counter-reset: counter_toc_h3; +} + +.toc .toc-content > ul > ul > li::before { + content: counter(counter_toc_h2)". "; +} + +.toc .toc-content > ul > ul > ul > li { + counter-increment: counter_toc_h3; +} + +.toc .toc-content > ul > ul > ul > li::before { + content: counter(counter_toc_h3)". "; +} + +/* all list pages */ + +.post-item-meta { + opacity: .6; +} + +.post-item-meta .material-icons{ + vertical-align: middle; + margin-bottom: 3px; + font-size: 1rem; + margin-left: 1.5rem; +} + +/* taxonomy */ + +.stream-container .post-list-container .post-item-wrapper .post-item .post-item-info-wrapper .post-item-title, +.stream-container .post-list-container > * .post-item-wrapper .post-item .post-item-info-wrapper .post-item-title { + font-size: 20px; + font-weight: 400; +} + +.stream-container .post-list-container .post-item-wrapper .post-item .post-item-info-wrapper .post-item-title-small, +.stream-container .post-list-container > * .post-item-wrapper .post-item .post-item-info-wrapper .post-item-title-small { + font-size: 18px; + color: var(--gray); + font-weight: bolder; +} + +/* archive */ + +.archive--year, +body.night h2.archive--year { + color: var(--gray); +} + +.archive--list-item { + text-indent: calc(-1 * var(--archive-indent) - 1rem); + padding-left: calc(var(--archive-indent) + 0.3rem); + list-style:none; +} + +.archive--date { + display: inline-block; + width: var(--archive-indent); + padding-left: calc(var(--archive-indent) + 1rem); + font-family: fira mono,cousine,Monaco,Menlo,source code pro,monospace; + letter-spacing: -1px; +} + +.post-item-summary { + color: #676D71; +} + +.draft-label { + color: #037BBA; + border: 1px solid #037BBA; + padding: 0 5px 0 5px ; + border-radius: 10px; +} + +/* codepen */ + +.cp_embed_wrapper { + margin-bottom: 1rem; +} diff --git a/assets/css/from-blogger.css b/assets/css/from-blogger.css new file mode 100644 index 0000000..9e763cb --- /dev/null +++ b/assets/css/from-blogger.css @@ -0,0 +1,83 @@ +/* https://gist.github.com/loikein/7b2a4f7d98d366a732dafd755b5248ff */ + +/* section title counter */ + +.post-body:not(.archive-body) h2{ + counter-increment: counter_h2; + counter-reset: counter_h3; +} + +.post-body:not(.archive-body) h2::before { + content: counter(counter_h2)". "; +} + +.post-body:not(.archive-body) h3 { + counter-increment: counter_h3; +} + +.post-body:not(.archive-body) h3::before { + content: counter(counter_h2)"."counter(counter_h3)". "; +} + +/* two-col */ + +.row { + display: flex; + flex-wrap: wrap; + width: 100%; + margin: 0 0 1rem 0; + gap: 0.3rem; +} + +.row .column { + width: 100%; +} + +.row .column:nth-of-type(2n) { + margin-left: 1rem; +} + +@media (min-width: 600px) { + .row { + display: grid; + grid: auto-flow / 1fr 1fr; + gap: 1rem; + } + .row .column:nth-of-type(2n) { + margin-left: unset; + } +} + +body.night .post-body .row, +body.night .post-body .row .column { + color: #e6e6e6; +} + +/* responsive iframe */ + +.video-container{ + position: relative; + height: 0; +} + +.video-container--4x3{ padding-bottom: 75%; } +.video-container--16x9{ padding-bottom: 56.25%; } + +.video-container iframe { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; +} + +/* embedded gist normalization */ +.gist table, +.gist table tr th, +.gist table tr td{ + border: 0px; +} + +.gist tbody tr:nth-of-type(odd) { + background-color: unset; +} diff --git a/assets/css/link-preview.css b/assets/css/link-preview.css new file mode 100644 index 0000000..1cf3cf5 --- /dev/null +++ b/assets/css/link-preview.css @@ -0,0 +1,41 @@ +.link-card { + margin-top: 0; + margin-bottom: 1rem; + position: relative; + display: flex; + flex-direction: column; + min-width: 0; + word-wrap: break-word; + border-top: 1px solid #dee2e6; +} + +.link-card--body { + display: flex; + align-items: flex-start; + padding: 1rem; + gap: 1rem; +} + +.link-card--favicon { + min-width:62px; + height: 62px; + object-fit: contain; +} + +.link-card--info p { + margin: unset; +} + +.link-card--footer { + background-color: rgba(0,0,0,.05); +} + +body.night .link-card--footer { + background-color: rgba(255,255,255,.05); +} + +.link-card--attribution { + margin: 0.5rem; + margin-right: 1rem; + text-align: right; +} diff --git a/config.yaml b/config.yaml new file mode 100644 index 0000000..a19f6ac --- /dev/null +++ b/config.yaml @@ -0,0 +1,77 @@ +baseURL: "https://playground.loikein.one/hugo-diary-public/" +canonifyURLs: true +DefaultContentLanguage: zh +hasCJKLanguage: true +languageCode: en-gb +publishDir: "../hugo-diary-public" + +title: 此生未命名 +copyright: loikein 2021 +theme: diary + +markup: + highlight: + codeFences: true + guessSyntax: true + hl_Lines: '' + lineNoStart: 1 + lineNos: false + lineNumbersInTable: true + noClasses: true + style: dracula + # https://xyproto.github.io/splash/docs/longer/all.html + tabWidth: 4 + goldmark: + renderer: + unsafe: true + +ignoreFiles: + - blog-*.xml$ +ignoreErrors: + - "error-remote-getjson" + +params: + title: 此生未命名/Untitled Life + subtitle: 用爱和理性对抗荒谬 + enableGitalk: false + enableOpenGraph: true + enableTwitterCards: true + disableAutoCollapse: true + description: 一个无趣的人的无趣的博客。 + customCSS: true + # gitalk: + # owner: user + # repo: repo name + # client_id: your client id + # client_secret: your client secret + +taxonomies: + tag: tags + category: categories + +menu: + main: + - url: /about/ + name: 关于/About + weight: 1 + - url: /archives/posts/ + name: 归档/Archive + weight: 2 + # - url: /tags/ + # name: 标签/Tags + # weight: 3 + - url: /categories/ + name: 分类/Categories + weight: 4 + - url: /toolbox/ + name: 工具箱/Toolbox + weight: 5 + - url: /projects/ + name: 个人项目/Projects + weight: 6 + - name: 搜索/Search + url: "https://www.ecosia.org/search?q=site%3Ablog.loikein.one" + weight: 7 + - url: /index.xml + name: RSS + weight: 10 diff --git a/content/404.md b/content/404.md new file mode 100644 index 0000000..705a518 --- /dev/null +++ b/content/404.md @@ -0,0 +1,13 @@ +--- +author: loikein +slug: 404 +title: 404 Not Found +noindex: true +hidden: true +_build: + list: never +--- + +欢迎来到荒原。妳可以在这里听听歌,思考人生,或者[回到首页](/)。 + +{{< bilibili 667744245 >}} diff --git a/content/about.md b/content/about.md new file mode 100644 index 0000000..ef15ac6 --- /dev/null +++ b/content/about.md @@ -0,0 +1,71 @@ +--- +author: loikein +published: "2020-05-31T14:51:15.860+02:00" +slug: about +tags: +- pages +title: 关于 +_build: + list: never +--- + +## 关于我/About me + +{{< row >}} +{{< col >}} +人称:你/他/她,但我都不喜欢。中文人称太少了。 +大龄文青,喜欢唱歌、摄影和编程。 +剪过自己以及其他三个以上的人的头发。 +{{< /col >}} +{{< col >}} +My preferred pronouns are: they / them / their. +An old school arty, sings, takes photos, codes. +I have been more than three people's hair dresser, plus myself. +{{< /col >}} +{{< /row >}} + +## 关于我做的事/What I do + +{{< row >}} +{{< col >}} +55% 出于兴趣,45% 出于学业。 +选择了现在的学业是出于兴趣,但本质上是出于命运(真的)。 +{{< /col >}} +{{< col >}} +55% out of interest, 45% for earning degrees. +I chose my major out of interest, but it was essentially destiny. +{{< /col >}} +{{< /row >}} + +## 关于本站/What this site does + +{{< row >}} +{{< col >}} +自 2017 年起堆放我所有胡侃的地方。 +想看严肃内容请走:[loikein's notes](https://notes.loikein.one/post/) +想网络斯托卡我请走:[loikein one](https://www.loikein.one/) +{{< /col >}} +{{< col >}} +Stack of my babblings since 2017. +If you want formal contents, consider: [loikein's notes](https://notes.loikein.one/post/) +If you want to cyber-stalk me, consider: [loikein one](https://www.loikein.one/) +{{< /col >}} +{{< /row >}} + +## 大家喜欢的博文/Popular posts + +- [全球化电子阅读体验/Globalise your digital reading life](/posts/2019-06-20-globalise-your-digital-reading-life/) +- [再谈同步社交网站至 Mastodon(微博,RSS,原生图片)](/posts/2020-03-09-sync-mastodon-and-sns-again/) +- [MacBook gets very warm overnight while closed & connected to power adapter](/posts/2019-11-10-macbook-gets-warm-overnight-while-connected-to-power/) +- [血书:Mac Finder 搜索不出东西的解决方法(Spotlight,Alfred,… 的问题都可能相关)](/posts/2019-12-16-solve-searching-problems-of-mac-finder/) +- [自定义域名踩的坑(Blogger & GitHub Page)](/posts/2020-04-15-pitfalls-with-custom-domain-for-blogger-and-github-pages/) +- [播客世界的邀请函:听播客,发现新播客,用播客改善生活](/posts/2020-05-18-invitation-to-podcast/) +- [胶囊咖啡总结](/posts/2019-10-25-a-study-of-capsule-coffee/) +- [在东京卖二手物品的懒人指南](/posts/2018-09-29-dummy-s-guide-to-selling-second-hand-in-tokyo/) + + +## 友链/Links + +- [Let Melon Ripe - Eggi's blog](https://captaineggi.github.io/) \- 瓜总的博客 +- [櫻川家::浅羽](https://asaba.sakuragawa.moe/) \- 浅羽的博客 + diff --git a/content/archives/.gitignore b/content/archives/.gitignore new file mode 100644 index 0000000..2fa20bb --- /dev/null +++ b/content/archives/.gitignore @@ -0,0 +1 @@ +drafts.md diff --git a/content/archives/posts.md b/content/archives/posts.md new file mode 100644 index 0000000..648662a --- /dev/null +++ b/content/archives/posts.md @@ -0,0 +1,10 @@ +--- +title: "博文归档" +layout: archive +type: posts +summary: This page contains an archive of all posts. +_build: + list: never +--- + + diff --git a/content/playground.md b/content/playground.md new file mode 100644 index 0000000..8fa5576 --- /dev/null +++ b/content/playground.md @@ -0,0 +1,131 @@ +--- +author: loikein +# published: "2021-04-15 18:07:02.530 +0200" +# lastmod: "2021-04-15 20:24:48.363 +0200" +slug: playground +description: "有些例子还挺魔性的,为了心理健康建议别看本文。" +featured_image: "./post-img/background-sky.jpg" +enableMathJax: true +tags: +- pages +categories: [] +title: 实验田 +_build: + list: never +--- +## Custom Shortcodes + +### Two-column layout + +{{< row >}} +{{< col >}} +你好世界 +{{< /col >}} +{{< col >}} +Hello world + +Hello world [test](#) +{{< /col >}} +{{< /row >}} + +### Video + +{{< video name="scream" folder="sticker" >}} + +### Emoji sticker + +Not looping vs. looping: + +{{< sticker name="scream" h=200 loop="false" >}} +{{< sticker name="scream" h=200 >}} + +### Link card + +{{}} + +### Fediverse status + +{{< mstdn mastodon.social 106070125652504343 >}} + +### Bilibili + +{{< bilibili 52046593 >}} + +### YouTube-nocookie + +{{< youtube id=kF8I_r9XT7A title="How to Become Pope" >}} + +*** + +## Regular Markdown Stuff + +Begin [test file](https://gist.github.com/loikein/27ef6913386b206d1b3c18b8e93c5768)… + +### Formatting + +**Bold**, __bold__, **加粗** + +*Italic*, _italic_, *斜体* + +Underline + +Strike, ~~strike~~ + +Highlight, ==highlight== + + + +Footnote[^1], footnote[^2] + +--- + +- [ ] Unfinished task list item +- [x] Finished task list item + +### Code + +Inline `code` and keystroke + +```html +

hello world

+``` + +```js +console.log("hello world"); +alert("hello world"); +``` + +### Font + +> 我能体に傷つけないで吞下 259 ml glass。 + +> Four score and seven years ago our fathers brought forth upon this continent, a new nation, conceived in Liberty, and dedicated to the proposition that all men are created equal. + +0 Oo Ii Ll 1 | 2 Z 5 s 8 Bb 6 #*^~\(\){}\[\] . , : ; “ ‘ ’ ` + +``` +0 Oo Ii Ll 1 | 2 Z 5 s 8 Bb 6 #*^~(){}[] . , : ; “ ‘ ’ ` +``` + +### Inline HTML + +ref: https://burk.io/2020/let-there-be-dark + +
#282a36
+ +
#f8f8f2
+ +### LaTeX & Table + +$\LaTeX{}$ + +$$\LaTeX{}$$ + +| Message to agent 1 | $M_1$ | +| ------------------ | -------------- | +| Agent 1's action | $a_1$ | +| New finding | $R_1 \begin{cases} >\mu_{2} \\ \leq \mu_{2} \end{cases}$ | + +[^1]: The linked footnote appears at the end of the document. + +[^2]: New lines diff --git a/content/posts/2016-06-23-tatta-hitotuno-omoi-by-kokia.md b/content/posts/2016-06-23-tatta-hitotuno-omoi-by-kokia.md new file mode 100644 index 0000000..02b2b03 --- /dev/null +++ b/content/posts/2016-06-23-tatta-hitotuno-omoi-by-kokia.md @@ -0,0 +1,157 @@ +--- +author: loikein +published: "2016-06-23T15:59:00+02:00" +slug: 2016-06-23-tatta-hitotuno-omoi-by-kokia +categories: +- 翻译 +tags: +- 音乐 +- 日译中 +title: 中文翻译:たった1つの想い by KOKIA +--- +首发 Lofter,有修改 + +[KOKIA たった1つの想い 歌詞](http://j-lyric.net/artist/a00af13/l00c13e.html) + +*** + +(\*): + +{{< row >}} +{{< col >}} +たった1つの想い貫く +難しさの中で僕は +守り抜いてみせたいのさ +かけがえのないものの為に +{{< /col >}} +{{< col >}} +为了坚守惟一的希望 +困在重重难关中 +我会证明自己能够 +坚守无可替代的珍宝 +{{< /col >}} +{{< /row >}} + +{{< row >}} +{{< col >}} +果たしたい約束 +{{< /col >}} +{{< col >}} +坚守约定 +{{< /col >}} +{{< /row >}} + +{{< row >}} +{{< col >}} +疑問だらけの世の中 +答えは見つからないまま +それでも前に進むの Why? +空へと伸びるイトスギ +真っすぐ指し示した道 +今という奇跡を信じよう +{{< /col >}} +{{< col >}} +疑云重重的世界里 +哪里都没有答案 +为何还要继续前进? +为了柏树伸向天空的枝桠 +为了它指给我的道路 +相信名为当下的奇迹 +{{< /col >}} +{{< /row >}} + +{{< row >}} +{{< col >}} +夢みたいな現実 +この手で変えられるものなら +{{< /col >}} +{{< col >}} +如果这双手 +能够改变噩梦般的现实 +{{< /col >}} +{{< /row >}} + +(\*) + +(\*\*): + +{{< row >}} +{{< col >}} +波打っている鼓動に誓うよ +燃え尽きるまで走り続けよう +生きぬいてこそ 感じられる +永遠の愛しさの中 +果たしたい 約束 +{{< /col >}} +{{< col >}} +向潮水般鼓噪的心跳起誓 +我会奔跑到生命的最后一刻 +为了活下去才能领悟的 +永恒的爱 +为了想要坚守的约定 +{{< /col >}} +{{< /row >}} + +{{< row >}} +{{< col >}} +丘の下咲くヒマワリ +眩く広がる黄色は +希望の光を照らすよ +{{< /col >}} +{{< col >}} +山脚下向日葵盛开 +眩目的金黄色渐渐蔓延 +仿佛希望之光 +{{< /col >}} +{{< /row >}} + +{{< row >}} +{{< col >}} +変えられるものなら +違った生き方あるはずと +{{< /col >}} +{{< col >}} +他们说如果能够改变自己 +肯定还有其他的道路 +{{< /col >}} +{{< /row >}} + +{{< row >}} +{{< col >}} +全て懸けよう 与えられた +時間の中で輝いていたい +ただ息をしてここに居るだけ +それだけなのに溢れ出す気持ち +僕には僕の幸せがある +そう思えるだけでどれほど +この瞬間が 愛おしいほど 光を放ってゆくよ +{{< /col >}} +{{< col >}} +赌上一切 赌上短暂的生命 +我想闪闪发光 +只是站在这里 只是大口呼吸 +仅此而已心中却汹涌澎湃 +我的幸福由我自己决定 +仅仅想到这点 对我多么重要 +此时此刻 世界放出温柔的光芒 +{{< /col >}} +{{< /row >}} + +{{< row >}} +{{< col >}} +独りで進むには +長すぎる道のり +誰かがこの扉 +開けないか待ってる +{{< /col >}} +{{< col >}} +这道路对于独行者而言 +太过遥远 +一直期待着是否有人能 +一同推开未来的门 +{{< /col >}} +{{< /row >}} + +(\*) + +(\*\*) diff --git a/content/posts/2017-02-07-new-blog-new-start-again.md b/content/posts/2017-02-07-new-blog-new-start-again.md new file mode 100644 index 0000000..45a431f --- /dev/null +++ b/content/posts/2017-02-07-new-blog-new-start-again.md @@ -0,0 +1,12 @@ +--- +author: loikein +published: "2017-02-07T10:32:00+01:00" +slug: 2017-02-07-new-blog-new-start-again +categories: +- 随笔 +title: 虽说每次都开新博客是个新起点 +--- +开了这么多次博客,早就腻了。 +除了 LOFTER 之外没有一个博客能写长久的,因为难以控制读者来源。 +想重新开始了。先试试看傻瓜式的,等我,那啥,学了 HTML 之后再弄个好看一点儿的吧…… +主要是想有个地方留着想法。 diff --git a/content/posts/2017-02-12-if-i-never-met-you.md b/content/posts/2017-02-12-if-i-never-met-you.md new file mode 100644 index 0000000..21d3da8 --- /dev/null +++ b/content/posts/2017-02-12-if-i-never-met-you.md @@ -0,0 +1,51 @@ +--- +author: loikein +published: "2017-02-12T17:27:00+01:00" +slug: 2017-02-12-if-i-never-met-you +categories: +- 小说 +title: 如果的事 +--- +RPS,全文曾发于微博、洛夫特。 + +*** + +很多年以后,你急病入院。躺在病床上忍着痛,又想起那天那个害羞又口出狂言的小毛头。 + +那次…… + +你心情很好,便开放了你的私人作坊给公众见学,限期一个月。 +消息公布的第二天一大早,一个憨憨的剃着小平头的小孩儿,背着有他半人高的双肩包,出现在工坊门口。你有些惊讶,毕竟这年头,对陶艺感兴趣的后生已经不多了。 +「西冈先生……!您好!我我我……我超喜欢您的作品……」他深鞠一躬,元气十足地开口了,声音却越来越小,直到满脸通红地止了话头。 +「好呀,像你这么年轻的人,喜欢陶艺的可不多啦。」你摸摸他有点刺手的小脑壳,有点感慨。「来,我领你转转。」 +来参观的人还没多少,看见你都尊敬地躬身。注意到你身后的小跟屁虫,好几位女士都噗哧地笑了出来。 +「这么小呀,跟家人来的吗?」 +「才……才不是呢!……我自己从静冈来的……」他终于忍不住,有点气呼呼地顶了一句。 +这下子,连你都按捺不住好奇心了。 +「小朋友,你叫什么?」 +「……奥田……」他扯起了衣角,声音又低了下去。 +「小奥田,怎么你自己来的?告诉了家人吗?」你话里带了一点点埋怨。 +「当……当然告诉了!」他抬头瞪了你一眼,又在眼神接触的瞬间闹了个大红脸,「……爸爸帮我买的车票……他们还要忙田里的事……」他不安地晃着身子,生怕你要把他赶走的样子。 +自觉欺负了这么小的孩子,你顿时有点内疚,拉着他到你平时惯常的位子旁坐下,「别不开心,来,我给你捏个碗怎么样?」 +「真的!?」他瞪大了本来就很圆的眼睛,漆黑的眼珠子转转转,在你脸上寻找着开玩笑的迹象。 +「就当是给你赔礼道歉啦。我这一把年纪了,还能碰上这么年轻的知音,不容易啊。」 +「好耶——!」他高举双手欢呼了一声,方才的小心翼翼一扫而光。 +你摸了点水,从土缸里选了一块胚土,掂量掂量。旁边有个好奇的小脑袋越凑越近,你突然有一种收了个小徒弟的错觉。 +果然是老啦,你一边捏着手里的土胚子一边笑起了自己,以前那股讨厌小鬼的劲儿哪儿去了?明明从来懒得收徒,现在却巴不得这小子再呆久一点儿才好呢……哎哟疼。 +就走了一会儿神,你就把手肘给磕了。 +「先生!……您还好吗?」奥田小子紧张兮兮地看着你的手,一副想摸摸又不敢的样子。 +「老了不中用啦。」你自嘲地笑笑,感觉右手一点劲儿也使不上了,「麻喽,看来今天是弄不好了。奥田呀,你留个地址,下次捏好了给你寄过去。」 +他一脸担忧,又有点儿小小的失望,「不……不用了,听到西冈先生这么说我已经很开心了……」 +「诶这就不对了,年轻人没点耐心怎么行。就当是听我老头子啰嗦一天的回礼,等着喽!」听到他的推拒,你有点烦躁。 +「真的可以吗……那那那那西冈先生能不能再答应我一个请求……?」他像是终于下定了什么决心,捏紧两个小拳头,抬头盯着你。 +「说吧。」 +「我……我一定会成为日本第一的料理人……!所以……等到我有自己的料亭……的时候……能不能……请……请先生……帮我做……食器…………」他说到一半又焉儿了,绞着衣角缩成一团,像是被自己的话吓到了似的。 +你心里刚起的疙瘩突然又消失了。 +「好小子,一言为定!你可给我记着今天的话了,修行的时候别偷懒!」你用力拍了下他的肩膀,觉得昨天的好心情又加倍回来了。 +「是!!」他吃痛怂了下肩膀,眼看又要欢呼起来了。 +你的手在那里又待了一会儿。 + +一周后,你亲自到邮局,把那个烧得异常用心的小碗寄了出去。 +并没有回音。 +第三年元旦,你收到了一封来自京都的贺年片,是一幅小漫画,画里一个穿着烹割装的矮个子在刷萝卜,笑得异常没心没肺。 +太好了呢,奥田小子。 diff --git a/content/posts/2017-02-12-you-are-my-guiding-star.md b/content/posts/2017-02-12-you-are-my-guiding-star.md new file mode 100644 index 0000000..ae3932b --- /dev/null +++ b/content/posts/2017-02-12-you-are-my-guiding-star.md @@ -0,0 +1,65 @@ +--- +author: loikein +published: "2017-02-12T17:28:00+01:00" +slug: 2017-02-12-you-are-my-guiding-star +categories: +- 小说 +title: 小十物语 +--- +RPS,全文曾发于微博、洛夫特。 + +*** + +你并不清楚你到底算不算是完成了对他的承诺。这么多年来,那一直是你活着的动力,就算在他走之后也是一样。 +关于和他第一次见面的记忆已经有些模糊。你似乎是语无伦次地说了些没头没脑的话,他却一直很耐心地听,还时不时被逗笑,然后摸摸你的寸头。 +那时候他的手又大又暖和,跟最后你在他病床前握到的干枯的指尖大不相同。 +仿佛老手艺人饱经风霜的一生。 +仿佛你渐渐下沉却依旧热切如昔的心。 + +知道西冈先生的大名其实纯属偶然。六岁那年你随父母去神户观光,路过姬路时照例陪母亲逛街,顺便看了个老气横秋的陶瓷展。 +……父亲是这么形容的。老气横秋。可你却莫名其妙地被那股子神秘的气质迷住了,回家后非要去图书馆翻报纸不可,想找出那位陶艺家的名字。 +那个日后和你的一生紧紧相连的名字。你会无数次挥毫写下,却从没有足够的勇气叫出口的名字。 + +得知他的工房接受见学时,你开心地快飞起来了。 +「那个什么……碎陶片子?有什么好的?值得你连夜跑去九州?」父亲一脸犹疑地盯了你一会儿,「车票钱先垫着了,要还啊?」 +「是!!」 + +收到他专门为你做的碗,你受宠若惊之余,突然意识到自己好像说了很不得了的大话。 +哎哟……你摊在房间的地板上,觉得有点头痛。现在这个样子,可一丁点儿给他回信的颜面都没有啊。 +毕业之后去楼下的小餐馆当学徒……吧……你战战兢兢地想。 +直到被推荐去了京都的料亭,你才敢给他寄一张贺年片。也不好意思直接用自己的照片,你用洗一个月的碗,交换了某位后辈帮你画一张小画儿。 +他的回信来得很快。 +「奥田君, +「得知你已在京都修习,老朽甚是欣慰。 +「你的食器已经在准备中,望你再接再厉,早日成为首屈一指的料理人。 +「谨贺新春安康。」 +你反复读那张卡片,直到能够背诵,直到纸角起了卷儿。 + +直到你一闭上眼睛,就能想象出他略带颤抖的签名。 + +你终于开了自己的小料亭,却没敢告诉他。他不知怎的知道了,拄着拐杖咚咚咚地来了店里,放下一大袋似乎很重的包裹,一拍柜台。 +你吓得整个人一缩,仿佛又成了当年那个害羞的毛头小子,对着崇拜的先生结结巴巴一个字儿说不出来。 +「……唉。」他咽下了到嘴边的重话一般,肩膀耷拉下来,一下子老了好多。「你小子,我等不了几年喽!」他跺了跺拐杖,一屁股坐在了台边的高凳子上,「来两个菜!」 +手握相伴多年的菜刀,你从来没有如此紧张过。 +「我把你的食器带来了,用着吧。」他用筷子戳着烤鱼,你刚才为了这条鱼差点烤到手。 +「可是,先生……」 +「别可是啦。」他拍拍你的肩膀,像多年以前一样,「鱼不错,去东京开店吧。」 +「……!?!?」 +「店名就用我的名字怎么样?我一直觉得挺好听的。」 +「……西冈……吗?」 +「小十啦小十!」他大笑了起来,又差点呛到。 +你手忙脚乱地为他顺气,脑中炸开一朵烟花。 + +东京的小小开业典礼,他也来了。带着更多的食器,和更多的白发。 +已是能独当一面的料理人的你,在他面前依然手足无措。 +合影时他站在你旁边。你觉得应该说点什么,或许道个谢?但母亲的闪光灯太过晃眼,你揉了揉有点模糊的眼睛,一句话都说不出来。 + +三年后,十分突然地,他走了。 +仅此一次,你推了客人的预约,去参加了守夜。 +他静静地躺在白花丛中,嘴角上扬。 +你没有哭。 +你很久以前起就不再是那个喜怒哀乐都挂在脸上的小毛头了。 + +再下一年,你去扫墓,摆了一个米其林小人在他的坟前。 +你再一次告诉自己不要哭。 +「谢谢您,西冈先生。」 diff --git a/content/posts/2017-04-18-reason-or-price-of-vigour.md b/content/posts/2017-04-18-reason-or-price-of-vigour.md new file mode 100644 index 0000000..f599cde --- /dev/null +++ b/content/posts/2017-04-18-reason-or-price-of-vigour.md @@ -0,0 +1,27 @@ +--- +author: loikein +published: "2017-04-18T05:34:00+02:00" +slug: 2017-04-18-reason-or-price-of-vigour +categories: +- 随笔 +title: 冲劲的理(代)由(价) +--- +最近看某著名网络小说,觉得主角群里的一个妹子很有意思。身价无法用数字衡量的大小姐因为没兴趣了就放弃学业回国当网管,还莫名其妙成为了职业电竞选手。 +乍一看十分没干劲、随波逐流的这么一个人,打起游戏来凶猛得让所有人都大吃一惊。 +这真是很有意思。 + +新学期开始,选课结束,我又一次选了一些看上去难到无法驾驭的课,被 Dan 拿来跟 Chris 对比,说她是无限犹豫我是无限拼。刚好小说看到高潮部分,课表最终敲定的那天下午,我又想起这个一点也不像大小姐的大小姐。 +我真的有无限拼吗?其实也没有。简单的课不想选,原因也仅仅是上的时候会无聊。有点难度的课,能让我最大限度地在漫长的半年里保持干劲,最后 GPA 反而会高一点。 +而她在游戏中如此之拼的原因,也不过是碰到了打不倒的对手(主角桑)罢了。 +从这一点出发,我们还是有点相似的。 + +已经记不起来第一次和院生一起上的是什么课了。战战兢兢一个学期,最后的成绩好像也没有多糟糕,然后就形成了习惯,不再把「有院生」纳入选课时的考虑。毕竟,老师和内容足够有意思,才是选一门课最根本的东西……院生也没什么。 +院生也没什么。这是这三年来我感受非常大的一点。院生也会懵逼,会说不出英语,会忘记数学公式……院生不是很厉害的毕业了的本科生,只是普通的毕业了的本科生。 +当然,理科生也没什么,也属于类似的心得。 +我能跟他们做得一样好,甚至能比他们做得更好。 +那么,为什么不呢? + +虽然菅井様喝黑咖啡回顾人生的举动被拿来当笑话讲,就算人生真的有一百年,我们也已经挥霍掉了五分之一。 +大概足够长到能够喝着黑咖啡来回顾了。 +虽然过去了的日子无法重来,我珍惜它们的方式,也只有尽全力地走下去。 +……吧。 diff --git a/content/posts/2017-05-29-sandberg-vs-anne-marie-slaughter.md b/content/posts/2017-05-29-sandberg-vs-anne-marie-slaughter.md new file mode 100644 index 0000000..281b6ac --- /dev/null +++ b/content/posts/2017-05-29-sandberg-vs-anne-marie-slaughter.md @@ -0,0 +1,51 @@ +--- +author: loikein +published: "2017-05-29T04:05:00+02:00" +slug: 2017-05-29-sandberg-vs-anne-marie-slaughter +categories: +- 随笔 +tags: +- 政治 +title: 桑德伯格与斯洛特之争,与神奇女侠的腋毛 +--- +本文首发 LOFTER。 + +本人赞同性别光谱/流体论,但为了简化讨论,此文中的性别限于男女两种。 + +*** + +二十一世纪了,人们还在以女权之名争论神奇女侠到底该不该剃腋毛。 +Really???? + +不过说真的,直到我走进性别学的课室,直到教授说出「很高兴看到男生的比例这么高」,我才意识到,这些年来自己默默搭建好的关于性别平等的概念小木屋,并不是什么普及到人尽皆知的老调调。 +这让我很难过。 +《向前一步》刚出那阵子我就买了,当时英文特烂,死磕半年左右看完,其实并没有留下些什么。(不过后来有朋友说我过于冲了,现在想想也许是这本书的影响。)上周的性别学阅读单里包括了这本书的某一章节和另外一篇斯洛特的文章,以及可作为替代的两段ted talk。 +链接如下: +[谢乐尔·桑德伯格:为什么女性领导那么少?](https://www.ted.com/talks/sheryl_sandberg_why_we_have_too_few_women_leaders?language=zh-cn) +[安妮-玛丽·斯洛特:我们都能“拥有一切”吗?](https://www.ted.com/talks/anne_marie_slaughter_can_we_all_have_it_all?language=zh-cn) +斯洛特就是来怼桑德伯格的,教授一脸滑稽地总结道。 + +桑德伯格的问题出在哪儿呢? +首先我们得承认,每个人都存在由于环境和身份所产生的局限性。 +如果我们同意每个人都有自己的局限性,那么桑德伯格的局限性就很好理解了——她是一个在各方面都拥有巨大特权的人。她是白人,出身中产家庭,毕业于绝大部分人只能仰视的学校,拥有我们所无法想象的机会……她惟一能拿来说事儿的,大概就只剩下她身为女性这一点。 +更多的女性,在生活中常常面对的难题不是选什么,而是没得选。她向前一步也许是荆棘路,而更多的人却站在悬崖边上。 +我所希望的女权主义,不是这样的。 +在现有的体系下挣扎,虽然可能有效,但更有效的一定是去改善它。 + +那么现在的体系又有什么问题呢? +它不仅伤害着女性,也同时伤害着男性。「男主外女主内」的社会期盼,不仅限制了女性的职业生涯,也同时限制着男性「成为好丈夫、好父亲」的选择。 +这当然并不意味着所有女性都得在工作上勤勉、所有男性都得成为完美配偶,但我们连选择的自由都被剥夺了。 + +重要的事再说一遍:现在的性别体系既伤害着女性,也同时伤害着男性,以至于我们难以自由地选择我们想要在社会/家庭中扮演的角色。 +那个和我一组的男生面对教授的某些提问时曾说,这不正确,这不可以,我们应该……而我只能无奈地告诉他一个又一个活生生(有时甚至是血淋淋的)例子。 +难道这还不算是问题吗? + +在小论文作业的总结里我这么写道:(意译) + +> 我认为任何「女性形象」或「男性形象」都不应该被宣扬。这是对人权与文明的亵渎。 +> 任何人应该能够自信地选择是否化妆,是否女性化地谈吐,是否穿裙子……「做自己」不应该是一件令人羞耻和被人笑话的事。 + +那么以女权之名强迫神奇女侠不剃腋毛的问题出在哪儿,应该不言自明了。 +这是她的选择啊。 +如果我所希望的女权主义成为了这样一种近乎暴民的行为,我宁可回归到「性别平等主义」这个更加质朴的名字上去。 +想讲的差不多就是这些。 diff --git a/content/posts/2017-06-08-matter-of-mindset.md b/content/posts/2017-06-08-matter-of-mindset.md new file mode 100644 index 0000000..81157a8 --- /dev/null +++ b/content/posts/2017-06-08-matter-of-mindset.md @@ -0,0 +1,39 @@ +--- +author: loikein +published: "2017-06-08T10:36:00+02:00" +slug: 2017-06-08-matter-of-mindset +categories: +- 随笔 +tags: +- 自述 +title: 心态问题 +--- +我并不能清晰地度量这几年自己到底都有些什么心理上的变化,但是变化肯定存在,变化是真实的。 + +然而我又说不出来这变化有多少时间的,际遇的或是自发的……唉,了解自己真难啊。 + +但不论怎么样,惟一能确定的是,我的自我意识有了长足的进步。它随着记忆能力、学习与输出能力和主动回想能力的提高,让我的主观时间流逝速度变慢了……一些吧。 + +这几段文字像是AI写的一样。人类何尝不是一种「人工」「智能」呢。 + +说点其他的。 + +最近有点太容易被歌影响心情了。每每听老桥的毕业歌,一股无奈感油然而生,而听DOL就又觉得生活美好,无限可能……可能真的是老了吧。 + +就跟当年的我一模一样。——可是…… + +我一直觉得不试试怎么知道,然而已经用三分之一的生命大错特错了一次,没有勇气再来一次也只是懦弱得很普通而已。 + +为什么已经接受了结局却还要挣扎?唉,我只是人类啊。不理性也不自洽的,普通的人啊。 + +我…… + +我整个人生,都是追寻着本不可能之物走来的啊…… + +总觉得如果我再聪明一点,上学再早一点,再……一点,一定会有更好的人生,可是又觉得想这种事情实在是浪费时间…… + +——一定能让这个世界变得更好…… + +或许只是我的一厢情愿吧。 + +生活在这个渐渐开始装睡的世界,我很抱歉,我很难过。 diff --git a/content/posts/2017-06-09-i-ve-seen-turtle-jump-off-the-cliff.md b/content/posts/2017-06-09-i-ve-seen-turtle-jump-off-the-cliff.md new file mode 100644 index 0000000..b78f8ec --- /dev/null +++ b/content/posts/2017-06-09-i-ve-seen-turtle-jump-off-the-cliff.md @@ -0,0 +1,20 @@ +--- +author: loikein +published: "2017-06-09T19:59:00+02:00" +slug: 2017-06-09-i-ve-seen-turtle-jump-off-the-cliff +categories: +- 诗 +title: 我曾看过乌龟跳崖 +--- +我曾看过乌龟跳崖。 +这乌龟并不老,我与它也不熟。 +我问乌龟,你为什么要跳崖? +乌龟回答说: +草和过去一样绿,却嚼之无味; +天和过去一样蓝,我不能呼吸了; +溪水流过的声音多么美妙; +我想去远方,却背着这壳; +你可曾经历过绝望? + +我曾看过乌龟跳崖。 +它头也不回地跳了下去,并不理会我。 diff --git a/content/posts/2017-06-10-born-for-what.md b/content/posts/2017-06-10-born-for-what.md new file mode 100644 index 0000000..17fbc8d --- /dev/null +++ b/content/posts/2017-06-10-born-for-what.md @@ -0,0 +1,31 @@ +--- +author: loikein +published: "2017-06-10T07:41:00+02:00" +slug: 2017-06-10-born-for-what +categories: +- 小说 +title: 生而为什么 +--- +最近我很忙,X先生也很忙。 + +X先生并不认识我,我也只是隔着玻璃远远地看过他几次。作为总裁,他有那种与生俱来的气质,让人远看亲切近看敬畏。当然,后半句是董事会私底下流传的小道消息,我只是个咀嚼二手八卦的小角色。 + +有时候我站在公司大楼入口外边,仰观X先生位于最高层的落地窗办公室,会生出一种强烈的不真实感。 + +也许X先生并不存在。 + +也许我并不存在。 + +如果X先生不存在,我也不存在,我们都只是母体里的一缕电流,一束波,我会不会活得比较快乐。 + +当然,X先生估计不会喜欢这种假说。他奋斗了一辈子得到的那张大班椅,那面俯视整座城市的落地窗,那班惟命是从的手下,必然不能是一场幻想。 + +必然不能的。 + +因此X先生必然继续忍受着若有若无的不真实感,继续拥有着若有若无的一切,继续这场似是似非的幻梦。 + +我也只能这样。 + +X先生到底在忙什么不重要,重要的只有,我并不重要。 + +この異様なる世界に身ごとを捧げよう。 diff --git a/content/posts/2017-06-13-matter-of-future.md b/content/posts/2017-06-13-matter-of-future.md new file mode 100644 index 0000000..e064954 --- /dev/null +++ b/content/posts/2017-06-13-matter-of-future.md @@ -0,0 +1,33 @@ +--- +author: loikein +published: "2017-06-13T02:20:00+02:00" +slug: 2017-06-13-matter-of-future +categories: +- 随笔 +title: 出路问题 +--- +毕业的钟声越来越近。 + +在川普上台之前,我本已经决定要去美国了……然而现在世界越来越乱,再加上我无处排解的小暗恋,感觉前路越来越迷茫。 + +回国不可不说是一种可能,可是我看不到未来。那些看似荒诞的末日小说让我浑身发凉。那是幻想,也可能马上变为现实。 + +怎么办呢…… + +事到如今,我已经无法洒脱地想去哪去哪了。这真是一个笑话。背负着不属于自己的生活,却不去在乎那些属于自己的。 + +为什么人不能满足于眼前的幸福呢…… + +大概,因为是人吧。 + +会如此冲动,会爱会恨,会明知不可为而为之……理性的反面,我的非理性人格也在蓬勃生长,这让我在荒谬的日常中感到一丝可笑的安定。 + +渐渐能够理解旁人的决心与无奈,正气或玩世不恭,何尝不是一种成长。 + +那位先生……会为我感到骄傲吗。 + +或许总有一天。 + +我要的是否仅仅是这些,必然并不重要……并不重要…… + +并不重要。 diff --git a/content/posts/2017-06-14-the-small-matter-called-happiness.md b/content/posts/2017-06-14-the-small-matter-called-happiness.md new file mode 100644 index 0000000..369373b --- /dev/null +++ b/content/posts/2017-06-14-the-small-matter-called-happiness.md @@ -0,0 +1,39 @@ +--- +author: loikein +published: "2017-06-14T11:48:00+02:00" +slug: 2017-06-14-the-small-matter-called-happiness +categories: +- 随笔 +title: 快乐这点小事 +--- +今天我跟Dan说,也许我真的需要忙成狗,来对抗自己想一天到晚咸鱼的下意识。 + +这么忙,快乐吗? + +难道不忙就能快乐了吗? + +或许快不快乐只是一个伪命题。 + +一直以来我都十分不热衷于参加活动或联谊,很大一部分原因就是,快乐过后的空虚、疲倦甚至体重增加,任何一项都足以抹消快乐本身带给我的快乐。 + +这句话听起来语病不小,听起来像一个病入膏肓的经济二年生。 + +无论跟关系多好的朋友出去玩,最后大抵是入不敷出的……我总觉得并不该只有我这么想,可是我跟他人疏离的关系肯定和这个有点什么关联吧。 + +可能还是觉得,快乐不是什么可以追求的东西。 + +写出一道难题会快乐,吃了好东西会快乐,这种那种的快乐,到底能不能换算? + +不能吧。 + +不能啊。 + +忙忙碌碌的快乐,和无所事事的快乐,当然也不是同一种快乐。 + +那我怎么知道某种心情到底是不是快乐? + +不存在的…… + +感觉有点钻牛角尖了。就这样吧。 + +子非鱼,但鱼也不知鱼之乐,鱼安知鱼乐乎? diff --git a/content/posts/2017-06-15-not-feeling-good.md b/content/posts/2017-06-15-not-feeling-good.md new file mode 100644 index 0000000..7944dfa --- /dev/null +++ b/content/posts/2017-06-15-not-feeling-good.md @@ -0,0 +1,27 @@ +--- +author: loikein +published: "2017-06-15T05:52:00+02:00" +slug: 2017-06-15-not-feeling-good +categories: +- 随笔 +title: 最近状态挺差的 +--- +明明一限结束了还是每天都很没精打采…… + +我感觉是运动不足,可是运动这个东西,唉,真是……难说。 + +生活里也没什么能够让一天变得美妙的东西,反而一天天觉得活得憋屈。 + +活得真憋屈啊…… + +我试着尽量不去想一个月以后的事,不去想一年以后的事,可是完全不能控制自己的脑子,更不用说控制自己的心了。心真是一种玄学。 + +这件事没让我开心起来,估计也是因为它太过复杂,无法判断正误,我甚至不知道自己是否应该希望它的发生。 + +当然我希望。That's what tears me apart.  + +都说事在人为。可是当我被这个国家宠坏的道德感拼命敲起了警钟,我该怎么办? + +我不知道。 + +或者去跑跑步,纾解一下打了两百个死结的内心吧。 diff --git a/content/posts/2017-06-27-notes-on-schelling-1971-clark-1991.md b/content/posts/2017-06-27-notes-on-schelling-1971-clark-1991.md new file mode 100644 index 0000000..2af3f79 --- /dev/null +++ b/content/posts/2017-06-27-notes-on-schelling-1971-clark-1991.md @@ -0,0 +1,540 @@ +--- +author: loikein +published: "2017-06-27T15:54:00+02:00" +slug: 2017-06-27-notes-on-schelling-1971-clark-1991 +categories: +- 笔记 +tags: +- 经济 +title: 'Parable of the Polygons: notes on Schelling (1971) & Clark (1991)' +--- +This is a note for my presentation ofSchelling (1971) andClark (1991) +for my supervisor's seminar. Hope I don't run out of time. +Title of this note comes from the [interactive +page](http://ncase.me/polygons/)made byVi Hart and Nicky Case. + +todo: +- Lyapunov stability +- Clark's data + +The author spend 7 pages of 44 to explain why segregation is an +interesting quetion to investigate, and also why it is difficult to do +so. +In the author's view, mainly three factors can explain segregation: +- individual motivation +- organized discrimination +- economic segregation +These factors are ambiguous to differenciate, and often intesect with or +lead to each other. For example, although habit is pretty much an +individual business, custom and tradition can be historically or +institutionally organized. Another example is, although it may be the +case that every decision you make isindividual motivated by yourself, +those big ones are often associated witheconomic reasons. You never buy +a house beyond your financing ability. + +Admitting these limitations, the author started to construct his +models. +There are three models: (actually two, but I just wanted to divide +them) +- linear living space +- two-dimensional living space +- abstract model with bounded neighbourhood +Here, "preferences" means there's a certaindegreeof integration of a +neighbourhood that you are comfortable to live in. Since it's +integration, the highest possible ratio is 5050. If it's too high, you +just feel, I don't know, weird orunsafeso that you move away. +The groups discussed in this paper are Blacks and Whites, which is +recognizable and unchangeable. + +The extension of neighbourhood is so arbitrary in real life, that we'll +have to define it in the model. + + +Model 1 (linear): + + + +[![](../images/thumbnails/2017-06-27-parable-of-the-polygons-notes-on-schelling-1971-clark-1991-%25E5%25B1%258F%25E5%25B9%2595%25E5%25BF%25AB%25E7%2585%25A7%2B2017-06-16%2B08.48.27.png)](../images/2017-06-27-parable-of-the-polygons-notes-on-schelling-1971-clark-1991-%25E5%25B1%258F%25E5%25B9%2595%25E5%25BF%25AB%25E7%2585%25A7%2B2017-06-16%2B08.48.27.png) + +In this linear space there live two kinds of residents, the stars and +the zeros, each have a 50% share of the whole line. They start with a +pretty much random mixture. +Now let us define "neighbourhood" as the eight nearest residents, that +is four on each side. Let us also set the preference for both groups. +They want at least half of theirneighbourhood to look like them. +Figure 1 points out the residents that are not satisfied, given our +definition of neighbourhood and preference. So they want to move. I will +not talk about this moving mechanism too much, but an intuitive +description is that they move to the nearest place that satisfies +theirpreference at the minimumat the time they arrive. +Figure 2.1 shows the result after those who were originally dissatisfied +moved away. We can easily see that these movings have created some +newdissatisfied residents. Now let them move. + + + + + + + + + + + + +
Fig. 2.1
+ + + + + + +Figure 2.2 shows the result after everyone is satisfied. Though these +three graphs, we can observe a clear tendency ofsegregation, even if all +the residents want is only half of the neighbours being similar to them. +The numbers in parentheses is the count. + + + + + + + + + + + + +
Fig 2.2
+ + + + + + + + + + + + + +Figure 3 shows another example with the same neighbourhood and +preference settings. + + +[![](../images/thumbnails/2017-06-27-parable-of-the-polygons-notes-on-schelling-1971-clark-1991-Fig%2B3.png)](../images/2017-06-27-parable-of-the-polygons-notes-on-schelling-1971-clark-1991-Fig%2B3.png) + + + + + + + + + + +Now we reduce the ratio of one kind of residents, say zeros, to make a +minority. + +Two observations can be made from the results shown in Fig. 6. + + +[![](../images/thumbnails/2017-06-27-parable-of-the-polygons-notes-on-schelling-1971-clark-1991-Fig%2B6.png)](../images/2017-06-27-parable-of-the-polygons-notes-on-schelling-1971-clark-1991-Fig%2B6.png) + + + + + + + + + + + + + +First, the segregation-ness of the majority tend to be higher, simply +because there's too few minority to live within a majority cluster. + +Second,as the ratio of theminoritydecreases more,they tend to segregate +themselves more from the majority. This is because at the initial +situation, the minority faces far less choices to move to as the number +of them decreases. + +Model 2 (2-dimensional): + +In linear living space, when somebody is moving in or out, we allowed +automatic moving to make space and to close the empty space. However, +this is so complicated in 2-dimensional living space, so we will just +leave some blocks empty from the initial situation to let residents move +in. + +Moving rule is such that dissatisfied residents moves to the nearest +empty block whose neighbourhood meets their preference. And the +neighbourhood is defined as the 8 blocks surrounding any resident's own +block. + +At this point, we also start to need a measure for segregation, because +2-dimensional patterns are not as easy to estimate as the linear ones. +The measure that the author proposed is the average ratio of +neighbourhood of the same kind vs of the opposite kind. Thus, the higher +this measure is, the more extreme the segregation is. + +Now we can look at this interactive page that I found on the Internet +that generates such living spaces. + +[Parable of the Polygons](http://ncase.me/polygons/)We need to go +directly to the simulator at the bottom, or directly go to the[Polygons +with +Pentagons](http://ncase.me/polygons-pentagons/play/automatic/automatic_sandbox_frame.html) +page. + + + +Following are notes for the original paper: + +[![](../images/thumbnails/2017-06-27-parable-of-the-polygons-notes-on-schelling-1971-clark-1991-Fig%2B7.png)](../images/2017-06-27-parable-of-the-polygons-notes-on-schelling-1971-clark-1991-Fig%2B7.png)[](https://2.bp.blogspot.com/-aS68Nz3TncQ/WUNk4zRrorI/AAAAAAAAAYU/5u27BWReev0712JMaw782zjsOsyrr527QCEwYBhgL/s1600/Fig%2B7.png)[![](../images/thumbnails/2017-06-27-parable-of-the-polygons-notes-on-schelling-1971-clark-1991-Fig%2B8.png)](../images/2017-06-27-parable-of-the-polygons-notes-on-schelling-1971-clark-1991-Fig%2B8.png)[![](../images/thumbnails/2017-06-27-parable-of-the-polygons-notes-on-schelling-1971-clark-1991-Fig%2B10.png)](../images/2017-06-27-parable-of-the-polygons-notes-on-schelling-1971-clark-1991-Fig%2B10.png) + + + + + + + +Figure 7 shows an example for this model, and Figure 8 and Figure 10 are +two possible results with different degrees of segregation. + +The author then considered the effect of preference on the degree of +segregation. We can see this intuitively through the interactive page. +When the preference for similar neighbour density increases, it does not +only raise the number of initially dissatified residents, but also +raises the number of movements. Moreover, each time when residents move, +they move to a block with more neighbours of their kind, thus causing a +higher degree of segregation. +An direct conclusion that we can draw is, if the preferences of both +kinds add up to more than 100%, extreme degree of segregation can +happen. (Play it) + +Some variations of this model are discussed in this paper, but we will +skip them for time contraint. +- unequal preference +- equal preference w/ unequal numbers (existence of minority) +- population density +- size of neighbourhood +- congregationist preference +Note that the existence of minority leads to extreme degree of +segregation, which we have already seen in the linear model. (Play it) +With respect to population density, the conclusion is that the majority +tend to enjoy a lower population density, and more empty space, simply +because they are the majority. That is to say, even without other +factors like income, the majority still lives in a morespacious space. +The size ofneighbourhood has a negative correlation with the tendency of +segregation. + +The idea ofcongregationist andintegrationistpreferences leads to the +so-called "happy ending" in the Parable of Polygons. We can play it. +An "integrationist" preference means the resident doesn't only have a +minimum demand of neighbours of the same kind, but also has a +maximumdemand of it, and will move if the density of same kind exceeds +the maximum. +Three observations are made from this kind of preference: +- less likely to achieve equilibrium, more moves +- rationed minority (if exists) +- empty space inside cluster of same kind + +Model 3 (bounded neighbourhood): +We now consider a different kind of neighbourhood. Suppose it's not your +realneighbours, but your schoolmates, your colleagues or your friends at +the same club that you spend most of the day with. +Instead of defining "neighbourhood" by where you live, it's now a +certain area where you can choose to live in or not. +In this model, we also consider that each resident has an individual +preference, which we call "tolerance". For simplicity here is no maximum +demand, but only minimum. +For the moving rules, we suppose that residents can both leave from and +return to any area, and those who are more dissatisfied moves first. +One thing to notice is that everybody knows what ratio is inside the +area now, but no one knows what happens in the future. This was also the +assumption in the previous models, but not as important as shown here. + + + + + + + + + + + + +
Fig 18.1
+ + + + + + + + + + +
Fig 18.2
+ + +The two kinds of residents we are now considering are 100 blacks and 100 +whites. Figure18.1 shows an explanatory **distribution oftolerance** +among all the whites, where the horizontal axis represents the white +population, and the vertical axis represents theirtolerance as a ratio +of blacks to whites. The highesttolerance is two, means that the single +mosttolerant white is satisfied to live in an area where blacks +outnumber whites two to one. +We assume Blacks are the minority, so there are only 50 Blacks, and they +have an identical distribution oftolerance. +Figure 18.1 and 18.2 are originally fromClark (1991), Figure 1. +By multiplying x-axis and y-axis, we can find how manyopposite kind of +residents are withintolerance byboth kinds. And we flip the graphs for +Blacks, to put bothparabolas together. This is called the **tolerance +schedule** by the author. + + + + + + + + + + + + +
Fig (X)
+ + + + + + + + + + + + + + + + + + +In Figure(X) (made by me using Grapher), the x-axis represents the +number of Whites, and the y-axis represents the number of Blacks.The +shaded area S is the overlap between the two graphs, which shows the +possible static combinitions of Blacks and Whites. +We can view this graph as a map of a city, at each point live a certain +number of Blacks and Whites, corresponding to the coordinates of that +point. +For each point, residents live around it consider whether they want to +move there or not, and residents live in the point consider whether they +want to move away. + +If someone’s moving in and no one’s moving out, the point is pushed to +upper-right; if movements in both directions happen by the same amount, +the point is in dynamic balance. +Let's think about the movement of all residents. Three observations are +made here: +- The Whites that live in the area below S and beneath redparabola want +to move to S, so do the Blacks that live above S to the left of +blueparabola. (Vector 1) +- Blacks living beneathredparabola keep moving out and Whites moving in; +for symmetry, White living to the left otblueparabola keep moving out +and Blacks moving in. (Vectors 2 and 3) +- Outside of bothparabolas, both kinds of residents keep moving out. +(Vectors 4 and 5) + + + + + + + + + + + + +
Fig 18.3
+ + + + + + + + + + + +Arrows in Figure18.3 (originally Fig 2 fromClark, 1991) are the movement +vectors for all areas. From these, we can draw the striking conclusion +that there exist only two **stable equilibria**, (100,0) and (0,50). +Which will occur depends on the initial mixture and relative speed of +moving of the two kinds. + +(Another way to phrase: +These kinds of movement lead us to the points where both kinds of +residents can finally settle down. +The obvious answer would be, there are three points where dynamic +balance can be achieved. The all-White, all-Black and the mixed. +The problem is, we also want the points to be stable. Say, if a group of +the same kind come all of a sudden, after some movements, are we able to +return to the original point? +For the mixed balanced point, unfortunately, the answer is no. If a +group of Whites come to the point, it’s pushed to the lower right +because less and less Blacks would want to live there, vise versa. + +Thus, the conclusion is, under this setting of number of residents and +tolerance schedule, only extreme segregation can survive as the **stable +equilibrium**. + +) + + +The outcome, of course, depends on the distribution of tolerance and the +number of both kinds of residents. +Consider another situation, where Blacks and Whites are equal in number, +and the most tolerant of them can be satisfied living with 5 times of +residents of the opposite kind. +so they still need to be multiplied with the population + + +[![](../images/thumbnails/2017-06-27-parable-of-the-polygons-notes-on-schelling-1971-clark-1991-BIG_GRAPH-b.png)](../images/2017-06-27-parable-of-the-polygons-notes-on-schelling-1971-clark-1991-BIG_GRAPH-b.png) + + + + + + + + + + + + + + + + + + +Under this setting, we can find three **stable equilibria**, (100,0), +(0,100) and (80,80). + +For time constraint, we skip the following variations: +- alternative numbers +- limiting numbers +- varying tolerance distribution + +Through thevariations, we can make some interesting observations: +- The shape of tolerance distribution is logically downward sloping to +the right. +- The one-kind extreme stable equilibria tend not to be affected by +changes in tolerance distribution or numbers of different kinds of +residents. +- If the curves in the tolerance schedules don't overlap, then no mixed +equilibria can exist. +- … +(further variations omitted) + +Empirics: +In the late 80s, Clark did his telephone survey with this question in +five cities in the US, to find out the tolerance distribution of the +residents. + +> Now suppose you have been looking for a house or apartment and have +> found a nice place you can afford.It could be located in neighborhoods +> with different racial groups.What mixture of people would you prefer? +> Would you prefer a neighborhood that is ... + + +The subjects in the other four cities are Blacks and Whites, and are +Blacks, Hispanics and Whites in Los Angeles. + +I’ll omit LA because it has three graphs in every step by its own. They +are pretty much the same. + +[![](../images/thumbnails/2017-06-27-parable-of-the-polygons-notes-on-schelling-1971-clark-1991-Fig%2B4.png)](../images/2017-06-27-parable-of-the-polygons-notes-on-schelling-1971-clark-1991-Fig%2B4.png) + + + + + + + + + + + + + + + + + + + + +The results are very similar. +The minority tend to have higher tolerance, while the majority don’t +really want to live with them. + +But remember these are the tolerance distribution, so they still need to +be multiplied with the population. + +[![](../images/thumbnails/2017-06-27-parable-of-the-polygons-notes-on-schelling-1971-clark-1991-Fig%2B6-dup.png)](../images/2017-06-27-parable-of-the-polygons-notes-on-schelling-1971-clark-1991-Fig%2B6-dup.png) + + + + +(Also insert Fig. 18.3 here again) + + + + +These are the resulting tolerance schedules. +You may have noticed how similar they are compared with the graph from +the model. + +Let’s take a closer look at two of them. + +[![](../images/thumbnails/2017-06-27-parable-of-the-polygons-notes-on-schelling-1971-clark-1991-Fig%2B7-1.png)](../images/2017-06-27-parable-of-the-polygons-notes-on-schelling-1971-clark-1991-Fig%2B7-1.png) + + + + + + + + + + + + + + +I coloured a bit to let you see it more clearly. +The red area is the tolerance schedule of Whites, and the blue area is +that of Blacks. +They look exactly like in the model that we have seen. Again, the stable +equilibria are achieved with extreme segregation. + +Also, notice that the overlapping areas are actually quite small, given +this is already the enlarged graph. +As the author conclude, without substantial intervention, we should +expect that mixed equilibria can hardly occur “naturally”. + +With the difference of interest, income and wealth, the segregation in +real life can come even more severe, which we can still observe today. + +That's all I have to say. Thank you. diff --git a/content/posts/2017-07-02-a-port-for-the-left-ones-2.md b/content/posts/2017-07-02-a-port-for-the-left-ones-2.md new file mode 100644 index 0000000..c775c21 --- /dev/null +++ b/content/posts/2017-07-02-a-port-for-the-left-ones-2.md @@ -0,0 +1,20 @@ +--- +author: loikein +published: "2017-07-02T09:53:00+02:00" +slug: 2017-07-02-a-port-for-the-left-ones-2 +categories: +- 诗 +title: 离人码头 2 +--- +从现在 +通往你的殿堂的 +只有一条航道 + +我找不到你的船 +你的船不乐意被我找到 + +我丢了我的船 + +我矗立在码头 +没有一艘船 +能带我走 diff --git a/content/posts/2017-08-06-of-love-and-other-demons-by-gabriel-garcia-marquez.md b/content/posts/2017-08-06-of-love-and-other-demons-by-gabriel-garcia-marquez.md new file mode 100644 index 0000000..29a60a8 --- /dev/null +++ b/content/posts/2017-08-06-of-love-and-other-demons-by-gabriel-garcia-marquez.md @@ -0,0 +1,22 @@ +--- +author: loikein +published: "2017-08-06T18:07:00+02:00" +slug: 2017-08-06-of-love-and-other-demons-by-gabriel-garcia-marquez +categories: +- 感想文 +tags: +- 读书 +title: 仿佛过于突如其来:加西亚·马尔克斯《爱情和其他魔鬼》 +--- +首发于[豆瓣](https://book.douban.com/review/8729338/) + +*** + +跟着偶像读书第二本。 + +我始终没有搞懂侯爵小姐为什么会爱上神甫,也没有特别理解神甫为什么会爱上小姐。他就那么突然地出现,那么突然地为她着了迷,那么突然地闯进她的囚房,那么突然地——被她接受了?最后她反倒成了常常主动的那一个? +似乎马尔克斯写小说就是有这个习惯,虽然我也才看了最著名的几部而已。从来不在乎主角是不是故事讲到半程才出现,从来不在乎故事的主题,在这里是爱情,是不是快结尾了才爆发,始终显得非常忠于时间线,非常平铺直叙,非常没有取舍。 +但当然,也许正是想表达爱情来得快去得也快(……)的这一特征才这么安排的,我不清楚。 + +也许我该学个彻底,也去看看导读吧。 +没有《霍乱》那么吸引我,那本似乎是看哭了的。 diff --git a/content/posts/2017-08-06-the-stranger-by-albert-camus.md b/content/posts/2017-08-06-the-stranger-by-albert-camus.md new file mode 100644 index 0000000..4f38197 --- /dev/null +++ b/content/posts/2017-08-06-the-stranger-by-albert-camus.md @@ -0,0 +1,29 @@ +--- +author: loikein +published: "2017-08-06T18:05:00+02:00" +slug: 2017-08-06-the-stranger-by-albert-camus +categories: +- 感想文 +tags: +- 读书 +title: 「我没有权利对人表示友情」:加缪《局外人》 +--- +首发于[豆瓣](https://book.douban.com/review/8726217/) + +*** + +跟着偶像读书的第一本。 + +说句有点冒犯的话,这个故事给我感觉有点像一个(更平淡/更悲剧)的马男波杰克。 +主角(我)是个无神论者,无欲无求、几近不屑地爱着生活,有个正在关系上升期的女友,同样不屑地不承认地喜欢着她,无所谓地答应了跟她结婚。 + +很难说清楚「我」的悲剧的导火索究竟是跟仓库管理员的相遇还是跟玛丽的旧情复燃又或是更早以前,但可以肯定的是,悲剧的种子正是「我」这种过于淡漠的性格和过于狂热的社会之间的冲突。 +故事里除了「我」之外,所有人都是热情的,愤怒的或者悲伤的——有强烈情感的,同时也(并非不合理地)期待着别人给予同样强度的情感回应。但他们遇到了这么一个人,一块海绵,就算尽全力的一拳打上去也只会被卸掉。此时的人之常情,大抵包括了恐惧、愤怒和异己感…… +异己的下一步便是非人化(dehumanization)。「我」被当作不懂得上帝、父母、人性之爱的野蛮人,被野蛮地判了死刑。 + +故事结束在判决已下,「我」上诉,焦虑地等待上诉被批准的时候。此时「我」终于旋风般地情感爆发了一次,「第一次向这个冷漠的世界敞开了我的心扉」。其实冷漠的是世界还是「我」非常有待商榷,这种稍有保留的写法也有待商榷。当然,把「我」塑造成一个彻头彻尾的没有感情的人,或许会让这个故事少了一丝丝人性的光辉,或说悲剧性。 +最后一段告白为全文增添了第二重的悲剧性,即「我本来可以」。不同于对世界只能接受如此单一的成员的失望,对自身的后悔是一种更加强烈的悲情,「我没有权利」而不是「我不可以」。(硬点题一下) + +总之,是个令人悲伤的好故事。 + +PS:发现偶像的书单里有好多荒诞派的,颤抖,我并不特别钟情荒诞派…… diff --git a/content/posts/2017-08-07-gloomy-sunday-by-rolf-schubel.md b/content/posts/2017-08-07-gloomy-sunday-by-rolf-schubel.md new file mode 100644 index 0000000..741443c --- /dev/null +++ b/content/posts/2017-08-07-gloomy-sunday-by-rolf-schubel.md @@ -0,0 +1,29 @@ +--- +author: loikein +published: "2017-08-07T14:48:00+02:00" +slug: 2017-08-07-gloomy-sunday-by-rolf-schubel +categories: +- 感想文 +tags: +- 电影 +title: 我对叫 László 的人有偏爱:诺夫·舒贝尔《布达佩斯之恋》 +--- +首发于[豆瓣](https://movie.douban.com/review/8732563/) + +*** + +「每个人都想一箭双雕。」这句话与其说是老板的自我吐槽,不如说是女主角的真实写照。 + +看了《祖与占》之后跟着评论来的,想起多年前我曾狂热地迷恋过这首曲子,电影还是匈牙利语的,就比较兴冲冲地找来看了。 +真是大失所望。要不是有这么多令人期待的铺垫,可能能再给一颗星。 + +我不否认这部电影拍得十分流畅,可能运用了许多美妙的电影语言,但我也看不太懂……只知道自己看到四分之一的时候如坐针毡,洗个澡冷静一下继续看,到一半,终于忍不住跳着拉到了结局。 +怎么会呢? +首先,女主角太……如鱼得水了,她并不是像《祖与占》的女主角一样几近病态地强求所有人的关注,也没有像《廊桥遗梦》的女主角一样作出了令人心酸的取舍,却又继续怀抱着火焰。Ilona +给人感觉就是在享受游走在这两个男人之间,就是在享受比别人多一倍的爱。我知道自己这么判断不合时宜,毕竟她拒绝了 +Hans,但是……就是……Hans 要求的毕竟是结婚,即独占。 +说到 Hans,这个人给我感觉真的很恶心,尤其是当他穿着军装回到饭店,然后打 开 钢 琴 盖 弹 了 两 句。 +钢琴家对女主角的独占欲虽不讨我喜欢,但可以理解,毕竟女主角也算是更爱他。女主角令我受不了的地方更鲜明了,她明明心里对这两位追求者是有一个明确的排序的,但就是不愿放弃已经得手(很久)的老板的爱。真是令精神洁癖无法接受。 + +喜欢老板。智慧,有点市侩,拿得起放得下,温柔无比。要是让我选,我会毫不犹豫地嫁给他。 +以及匈牙利人真是如传闻一般很喜欢拥抱啊!干什么都抱一抱。真可爱。 diff --git a/content/posts/2017-08-07-rhinoceros-in-love-by-liao-yimei-and-meng-jinghui.md b/content/posts/2017-08-07-rhinoceros-in-love-by-liao-yimei-and-meng-jinghui.md new file mode 100644 index 0000000..48aa5ea --- /dev/null +++ b/content/posts/2017-08-07-rhinoceros-in-love-by-liao-yimei-and-meng-jinghui.md @@ -0,0 +1,51 @@ +--- +author: loikein +published: "2017-08-07T07:39:00+02:00" +slug: 2017-08-07-rhinoceros-in-love-by-liao-yimei-and-meng-jinghui +categories: +- 感想文 +tags: +- 电影 +title: 缺点:渺小:廖一梅 & 孟京辉《恋爱的犀牛》 +--- +首发于[豆瓣](https://www.douban.com/location/drama/review/8731582/) + +*** + +高中时读了剧本,今天似乎是头一回看了实际演出来的样子。看的是 b 站上的 +2003 版,[链接在此](https://www.bilibili.com/video/av4282934/)。 + +说说演员。我从初中开始就是老段的电视剧粉(就不说是哪部了),今天突然得知老段演过这出剧,才决定要看看的。他演得真好,每个眼神每个手势每个小动作里都是戏。 +郝蕾这个姑娘我是没听说过的,对文艺界不熟悉,失礼了。看完之后的感想是,其实她的脸并没有十分美丽,但从眉毛的弧度到微微翘起的嘴唇到曼妙的身材,无不透露出一股子非常纯洁的性感,特别符合明明这个天真、深情又对马路无比狠绝的感觉。 + +高中的时候喜欢这个剧本,喜欢到做了整整两页纸的摘抄。剧本集子是语文老师拿来放在班上的,她还用自己的课堂时间给我们放了《暗恋桃花源》。我遇到的语文老师都是成熟而冷静的应试高手,可却又每每流露出这种让人惊奇的文艺的一面来。 +昨晚睡得很晚,做梦了。梦见他像在现实生活中一样是我仰仗和依赖的朋友,但突然来了一位我称之为表亲的姑娘,像明明一般天真、长相平淡又撩人,迅速跟他在一起了,故事结束在他们挽着手走出一扇门,她穿着露背装。我在清晨六点半醒来,感觉无法呼吸,心脏碎成了齑粉碎成了空气,一点也哭不出来,感觉自己从头到尾都像个小丑。 +睡了几次回笼觉平复心情,再醒来就突然很想看看这个剧。 + +对于剧本身倒没太多好说的了,照时间顺序摘抄几句我当年没有意识到的东西。 + +「我不是火车,不需要终点。」 + +「我写给你的诗,大概只适合刻在犀牛皮上。」然后明明就用口红把诗的第一句写在了马路的胸口。这个镜头给我的感觉第一个是情色,然后是无比的残忍。 + +「渺小 软弱 渺小 软弱 渺小 渺小 渺小 渺小」 +渺小作为一种缺点,似乎可以安在任何人身上。在爱情里尤甚。一个很简单的解释:当爱上一个人的时候,通常想的是「ta 真好」「ta 怎么这么好」「我配不上 ta」,因此爱情这枚滤镜,给对方加上的是所有「好」的颜色,让对方变成心目中最伟大的那个人,其他一切自然就被衬得渺小。 +我渺小,只是因为你不爱我。我为了你什么都能做到,甚至变得不再像以前的我,可惟一改不掉的缺点就是你依然,始终,不爱我。 + +「我知道我在做梦。」明明等了陈飞一宿,然后把所有的热情都扔给了来看她的马路,马路这么说。 +第二天明明否认了这段记忆的真实性,马路几近崩溃,说怎么可能是梦呢,我的指尖还残留着你身上的味道,云云。 +然后后来又有一次说了出来。这一次明明承认的时候,马路说什么来着?「那真的是你」?「原来那不是梦」? +就挺可悲的。一次又一次地因为对方的说辞试图合理化,又一次又一次地因为对方改变说辞而推翻自己好不容易做好的心理建设,唉,不对等的爱情。 + +「过分夸大一个女人跟另一个女人的区别是一切不如意的根源。」 + +「忘掉是一般人能做的惟一的事,可我决定,不忘掉她。」日复一日走在崩溃边缘,有时我琢磨,单恋真是一个很考验心理素质的东西。 + +「我对自己说,要是我不能强迫自己,以一张平静温和的脸面对你,我就不来见你,现在我准备好了。」同上一条。 + +「生活怎么老是模仿电视剧呢?」 +生活怎么老是模仿一切呢。一切怎么老是模仿生活呢。还模仿不像。生活永远是最荒谬最超出想象的那一个,我们这种小角色……能改变什么呢。 +有时候真的挺难过的。我相信主观能动性的力量,相信我能够让自己变得很好,也的确正在一步一步做到,但依然左右不了别人对我的看法,也左右不了你。 +但反过来说,若是你这么轻易地就能被我左右,爱你有什么意思? +爱情就是这么令人犯贱的东西嘛,或说,「爱到尘土里」。 +——「可是我什么都不是,一个普通的人,一个像我这样普通的人,我能为你做什么呢?」 diff --git a/content/posts/2017-08-09-good-will-hunting-by-gus-van-sant.md b/content/posts/2017-08-09-good-will-hunting-by-gus-van-sant.md new file mode 100644 index 0000000..70ef511 --- /dev/null +++ b/content/posts/2017-08-09-good-will-hunting-by-gus-van-sant.md @@ -0,0 +1,55 @@ +--- +author: loikein +published: "2017-08-09T14:35:00+02:00" +slug: 2017-08-09-good-will-hunting-by-gus-van-sant +categories: +- 感想文 +tags: +- 电影 +title: '"Don''t shrink a shrink":格斯·范·桑特《心灵捕手》' +--- +首发于[豆瓣](https://movie.douban.com/review/8737156/) + +*** + +标题来自《识骨寻踪》。 +想看这部片挺久了,虽然光是看影评好像也没什么特别的理由想看。就是比较随便地,想知道为什么评价这么高而已。看完之后,不得不俗套地感叹一声,评价高得很有道理。 + +看这部片时的我自己的心理活动还是挺有意思的。一开始我对它有点不屑,就像 +Will +对所有医生都是一副玩弄的态度。看到他那么玩世不恭的样子,我有一种混杂着悲悯和不屑的想要拍拍他的头的感觉,觉得这个片子的铺垫也太长太俗套了吧;觉得自己还是有点资格和立场说:聪明的头脑加上不成熟的心灵比愚笨的头脑高级不了多少,虽然不成熟并不是什么错误。 +随着 Will 向 Sean 渐渐打开心扉,我也似乎跟着他一起放松了心理防线。 +当 Sean +谈到他妻子生前这样那样的小缺点,说那些所谓的「不完美」才是让他们在一起了的「好东西」,我的丑脸上也跟着泛起了笑容,因为我很知道正是这些小缺点会让我对一个人的评价从「完美」变成「可爱」。 +当教授在酒吧里和 Sean +不欢而散的时候,当他们在咨询室里吵起来的时候,我真心实意地很着急,烦躁教授的死脑筋,担心 +Sean 难受,一面烦恼 Will +会不会真的如了教授的意做那些他讨厌的工作,一面烦恼如果他不做那是对他的天赋的多大糟蹋。Sean +说「方向是一回事,操纵是另一回事」,我很赞同;然而作为一个半只脚踩进了学术界的人,我又十分清楚 +Will +的才能的价值,以及多少人对这种才能求而不得。教授是个可怜人——小心翼翼地守着自己的成就,笨拙地 +diss Sean,不自觉地被 Will +的天赋吸引的同时更加清楚地意识到自己其实并没有他所希望的那样才华横溢,Sean +也是个可怜人,明明「一点也不在乎」还是翘了二十年的同学聚会,就是不想让教授难受,因为他在乎老同学的感受。然后是 +Will ——我该怎么说他?固步自封的蠢蛋?胆小鬼?还是——可怜的孩子? + +虽然我也后怕了一下自己的成长经历,但直到那一幕之前,我还是挂着上帝视角在看的。 +「这不是你的错」。 +这句话说出来很容易,回答起来也很容易,我甚至还有余裕欣赏两位演员怎么在一次次的重复中酝酿和加深情感投入——但是最后 +Will 哇地哭出来抱住 Sean +的时候,我也忍不住哭了。事情开始变得明显:所有打动我的电影,讲的都是我自己的故事。听 +Sean 一次又一次对 Will +说「这不是你的错」,简直像是听他对我说,我知道你有多难,辛苦了,好样的,而他的确知道。 +Sean 这个角色塑造得如此成功以至于我开始嫉妒 +Will,因为如果我也有这么一个愿意并且我相信他能够懂我的长辈,我连做梦都会笑醒。我真的好想告诉自己你辛苦了好样的又担心自己配不上这句话,我……我开始觉得自己一直以来不在乎别人的评价只是因为不屑地认定了他们不会懂得我。对于我在乎他们懂不懂我的那些人,如果他们不,我就会很难过……然后试图去在乎更少的人,周而复始,每一天都试图让自己变得更加「坚不可摧」,但这个词可以来自逃避或强大的内心,而它们完全是两码事。 +这不是我第一次意识到这个问题,但我又一次意识到了自己做得还不够。打开内心去感受这个世界,受伤后依然不畏惧未来可能的伤害,是一种太难太难习得的能力,我做得还不够。 +Sean 做得也不够,因此他其实也被 Will shrink +到了(点题),去旅行去「再次对人生下注」了,也打算开始参加同学会了。他们的相遇对彼此都是一种提升。 + +另外,油头哥们真是明白人,他那个「你没有对不起自己,你对不起的人是我」的理论简直一针见血,我绝对说不出来这种话。感觉他挺适合学心理或者政治哲学……这也是天赋啊。 +最后他开心地跑下 Will 空空的房门,那一幕也挺触动我的。 + +既然 Will 去找小女朋友了,她应该不会让他继续糟蹋自己的天赋了吧。那句 "I +had to go see about a girl" +是我比较欣赏的一位开发者的签名,终于看到出处了(笑)。 +「我们都有光明的前途。」 diff --git a/content/posts/2017-08-28-blades-and-verse-by-xun-yu-ren.md b/content/posts/2017-08-28-blades-and-verse-by-xun-yu-ren.md new file mode 100644 index 0000000..8837803 --- /dev/null +++ b/content/posts/2017-08-28-blades-and-verse-by-xun-yu-ren.md @@ -0,0 +1,27 @@ +--- +author: loikein +published: "2017-08-28T17:25:00+02:00" +slug: 2017-08-28-blades-and-verse-by-xun-yu-ren +categories: +- 感想文 +tags: +- 读书 +title: 与我有关,与我无关:荀予刃《刀锋与诗行》 +--- +借用驱使我去看的那句评论:「非常典雅」。 +典雅这个词太美,以至于最近想说什么东西很好看的时候,脑子里都会冒出这个词。 + +与我有关,有关在这是一个发生在师生之间的故事;无关在,我跟「我」一点都不一样,只是个一味接受输入的废柴罢了。 +可能这么说自己过于苛刻。 +回归文本。文中的诗我觉得很好,完美地调剂了格斗主题(不是)与文艺基调之间的解离感,虽然朋友说有点尬,这我也无法反驳。比如「若是我途间有溪流山川/也只变作他眉眼」,比如「若有一日我被兵戈与烈火吞没,我亦不把胸腔内的心脏当作停止搏动……它已包裹住玫瑰的尾梢」。挺尬的,也美,也扎人,让我时时想起自己的眼高手低和求而不得。 + +文中的弗洛伊德出现得有些突兀。他和他的小学徒应该是与主角二人有一种对比关系,同为价值观不同的伴侣,「我」的选择和小学徒的选择完全是两个极端,也都令人难受。虽然小学徒没能得到好的结局,做法也挺令人唾弃的,我还是同情他。 + +有一个片段让我想起泰戈尔的《行路人》:「我目前能给你的惟一一样东西——来,你可以将手放在这里,垂在我的胸膛上——你感觉得到它在胸腔里的跳动吗?我只有这么点零星的东西可以给你了。」 +——「行路人,我们没有什么可以留住你,我们只有眼泪。」 +我无法给你一个知己,一个灵魂伴侣,甚至一个旅伴,甚至眼泪,甚至心跳,因我是如此的渺小与懦弱。我只有虚无飘渺的爱,可能你都不认为它能被称为爱。 + +读完全文已经是好几天前的事了。近日闷闷不乐,觉得自己很蠢。 +你还小。你觉得攀爬人生的山路繁琐又无趣,却对那些真正的苦难甘之如饴。什么是真正的苦难呢,可不就是爱情嘛。爱情。 +我也想说 I want love or death,可是我怕死,我不要死亡,反正本来也得不到爱情。 +——只有这件事是确定的。 diff --git a/content/posts/2017-09-03-semi-annual-summary-of-a-new-programmer.md b/content/posts/2017-09-03-semi-annual-summary-of-a-new-programmer.md new file mode 100644 index 0000000..38d23ed --- /dev/null +++ b/content/posts/2017-09-03-semi-annual-summary-of-a-new-programmer.md @@ -0,0 +1,67 @@ +--- +author: loikein +published: "2017-09-03T14:30:00+02:00" +slug: 2017-09-03-semi-annual-summary-of-a-new-programmer +categories: +- 笔记 +title: 大龄新米程序媛的半年总结 +--- +首发于[LOFTER](http://tukida.lofter.com/post/1d0e1ab8_11112807) + +西西!经过半年的艰苦奋斗(x),我终于有胆量自称程序员了,非常开心。写篇小文章,希望能给对编程有一丝丝兴趣的盆友们一点参考。 +如果有这方面专业的人,不好意思班门弄斧了哈!请多多指点。 + + +## 我为什么要学编程,以及你为什么可能想学编程 + +我的小学非常神奇地从一年级开始开设信息技术课,每人一台电脑(Win +2003),不给上网。后来有了U盘,大家偷偷流传GBA模拟器,听课听腻了就打两盘星之卡比。我记得在小学学了Flash(忘了)和BASIC(今年重学一次,又快忘了),初中似乎又学了一次Flash(又忘了),那时候已经有小伙伴去课外培训参加全国网页制作比赛了,然后在高中的电脑课上接触了Dreamweaver(也忘了)。 +因为从小接触这些,编程在我眼里从来不是什么高大上的东西,而是一个有趣的玩具。我喜欢编程,就像喜欢音乐、喜欢读书、喜欢吃甜食一样。之前苹果出了Swift +Playground(只有iPad版,貌似已经汉化了),十分致瘾,我快通关了,有一次差点搞得上课迟到……咳。推荐一下,可以利用以前拿来看剧的时间玩玩哈。 + +由于我自己的专业和编程几乎没有任何关系,后来我才知道学校开了不少相关课程,那,那我就上上看呗,反正也不要钱。 + +但是可能你没有我这么幸运,从小家里学校都有电脑,对编程也没有「有趣」的感觉。在我这个学期上的几乎每一门课上,老师们总是试图在第一堂课回答这个问题:学编程有什么用?更宽泛一点,学电脑有什么用? +最直观的答案是:更容易找工作。你可能不会因为懂得编程就家财万贯(虽然也有直接拿出富豪榜说白手起家进入这个榜的一半都是程序员!的老师……),但是作为一项技能,它就像英语一样能给你带来额外的机会。 +第二个我比较喜欢的答案是满足好奇心。你可能并不需要学习编程才会对电脑和手机的工作方式产生好奇,但是编程给了你实际去探索、甚至调整和戏弄它们的可能。 +再还有就是,编程是一种思维方式。当你习惯了不断探究精简代码的可能性,也许你在生活中也会主动去探究更多提高效率的方法。 + + +## 我这半年干了什么 + +除了正常数量的专业课之外,我报了六门学校提供的信息技术课(其中三门排在暑假),三门A+,一门放弃(论文死线和专业课冲突),两门刚刚结课还不知道成绩。应该没有正课给分那么严格,但是都是日语的,还是值得替自己开心一下的。 +简单说说每门课都教了些什么。 + +UNIX概论:通过telnet远程登入Linux,进行一些命令行基本操作。期末任务是做一个展望物联网的未来的PPT。 +网络技术入门:介绍TCP/IP模型和OSI模型。期末任务是写总结课堂内容的论文+笔头考试(包括计算分割/聚合后的子网掩码等等)。 +VB入门:BASIC。期末任务是做一个每个月自动换一张图片的日历。 +php入门:html、css、Apache、php。期末任务是在课堂完成的网页的基础上自己随便做一个有用的东西,我做了一个很丑的读书看电影进展管理。 +JS入门:html、css、JavaScript。期末任务同php(同一个老师),我做了一个还算能看的博客,点击不同栏目名会自动切换页面内容。 +开源软件概论:各种许可、实际运用、经营模式。期末任务是写论文。(课都听完了,论文没写) + + +## 自学编程:在线课程推荐 + +首先,学好英语(至少4级水平)。英语不好的程序员是没有未来滴。 + +不知道该从哪开始的话,可以像我一样从网页开发入门,html→css→JavaScript,再然后就应该已经清楚下一步该学什么了。php需要Apache,有点麻烦,可以不学(哎 + +Codecademy +英语。首推。一边看教程一边动手敲,实时预览效果,做不出来的时候有提示。我学完了html&css(新版已拆分)、SASS、php(已下架)、JS、jQuery(旧版已下架,新版还没出),正在学ReactJS。 +SoloLearn +英语。有手机app,和网页版进度同步,适合没时间的人。可以动手敲(在手机上也可以,不过不能一边看教程一边敲)和预览效果。每一个单元的每一个页面下面都有很多参考价值很高的评论。我正在过php和html的内容,当作复习。 +ドットインストール +日语,大部分进阶课程收费。纯视频形式,得自己开一个文本编辑器跟着敲,大部分时间要不断暂停(他语速很快,敲得更快),个人感觉有一丝丝不求甚解。我跟着老师在课堂上学了JS和jQuery。 +w3school +中文。感觉读的内容有点太多,我是自己写的时候碰到问题了才看,像查文档一样(。 + + +## 小想法和总结 + +我曾经在edX上学了一门编程课,用的是一种教学语言(Rocket),大概就是比较简化、专门拿来教编程思路,在实际中没有广泛运用的语言。我发现这样就算学出来了也没什么意思,很难做出一个令人有成就感、想分享给别人的项目。 +不推荐从教学语言开始学编程。 +时不时得到一些成就感,可能是自学任何知识的时候最大的动力,以及最难的课题。我觉得无论是苹果的Playground,还是从网页制作开始学习编程,都是解决「难以获得成就感」的方案。Playground做得非常好,我相信小孩也能轻松愉快地玩下去(然后会写Swift的孩子就越来越多了,颤抖),而做网页则是一种比较务实(功利?)的方式。 +我目前在用的文本编辑器是Sublime Text +3(Win/Mac,收费,试用期无限长),没有选Atom的原因是觉得Sublime更好看。当然也有用记事本就能写代码的大神,但是看得清楚自己写了什么对初学者而言还是蛮重要滴。 + +希望你觉得读这么长的文章不是浪费时间。Happy coding! diff --git a/content/posts/2017-09-10-skills-by-hao-pei-qiang.md b/content/posts/2017-09-10-skills-by-hao-pei-qiang.md new file mode 100644 index 0000000..019d975 --- /dev/null +++ b/content/posts/2017-09-10-skills-by-hao-pei-qiang.md @@ -0,0 +1,20 @@ +--- +author: loikein +published: "2017-09-10T15:14:00+02:00" +slug: 2017-09-10-skills-by-hao-pei-qiang +categories: +- 感想文 +tags: +- 读书 +title: 平淡日常里的一针鸡血:郝培强《技巧》 +--- +首发于[豆瓣](https://book.douban.com/review/8806924/) + +关注作者的微博挺久了,昨天去书城的时候看到便买了,没想到还是签名本,有点惊喜。一个下午读完,要说得到了些什么吧,也没什么特别的,主要是打一针鸡血。 +话说回来,这种老老实实打鸡血,不想着给你押し付け点什么的书,似乎越来越少了。 + +从小喜爱电脑的我,误入文科的我,选了个跟电脑八杆子打不着的专业的我,和再一次捡起编程的我,中间隔了几针鸡血的距离呢?虽然我同样热爱现在的专业,但很酷地敲打键盘,难道不也是值得追求的东西吗? +在我误入文科之前看过一篇科幻小说,作者自我介绍写着梦想是死在外太空,奈何误入文科,此生只好心系太空而身老地球。「误入文科」这四个字就是从这里来的。不想后来我也选了文,一直有一丝丝后悔,和就算选了理我现在大概也在读相同的专业的释然。 +那么,编程在我的生活里位置何在呢? +大概编程本身也是一种鸡血的表现形式吧。做点很「酷」的事情,就算其实是小儿科,也会让人心生自豪和成就感……至少对我而言。 +那么,我要继续前进了。 diff --git a/content/posts/2017-09-13-soul-mate-by-kwok-cheung-tsang.md b/content/posts/2017-09-13-soul-mate-by-kwok-cheung-tsang.md new file mode 100644 index 0000000..30a340a --- /dev/null +++ b/content/posts/2017-09-13-soul-mate-by-kwok-cheung-tsang.md @@ -0,0 +1,37 @@ +--- +author: loikein +published: "2017-09-13T12:29:00+02:00" +slug: 2017-09-13-soul-mate-by-kwok-cheung-tsang +categories: +- 感想文 +tags: +- 电影 +title: 七月是你的谎言: 曾国祥《七月与安生》 +--- +首发于[豆瓣](https://movie.douban.com/review/8811741/) + +*** + +在颠簸的飞机上写的,估计有些不太通顺的地方。 + +记不清什么时候看的小说了,大概是初中左右,看的时候估计有一种高高在上的感觉,也没怎么哭。小孩么,总觉得自己的伤感才是真伤感,别人的伤感都是煽情。 +今天飞日本的飞机有点播系统,便看了风评不错的电影版。怎么说呢,也有其他一些令我好奇心动的骗子,不过翻到这部就挪不开目光了。 + +主要是冲着周冬雨去看的(笑),不过马思纯这姑娘也演得很不错。她这张脸看着有一丝面熟,大概是张适合演有点心机的学生妹的脸。 +旁白的女声有点太播音腔了,出戏。 +我思来想去扯了这么一堆,无非是不想太快承认自己从后半开始就在豹哭,且几乎一直哭到片尾曲放完。更准确的时间点,是小说里的七月被逃婚,决定去流浪的时候,林母对她说「女孩子在哪儿都会活得很辛苦」(大意)。我寻思,你怎么能这么说呢?可是除了林母,又还有谁适合这么说呢? +后来的安生? +林母大概是这个错综复杂的故事里惟一的聪明人了。也不是聪明,明白人吧。 + +最后七月和安生交换人生,七月替安生加入了 27 +俱乐部,安生替七月过安稳生活,替七月养女儿。孰好孰坏,我并不能下定论,只能引用 +Nicky 大神的话:Maybe it's just all a dream。 +我一开始觉得自己是不羁的安生,然后觉得自己是一直躲在乖乖女面具下的七月,写到这里,想起最后一个镜头安生往玻璃里看去,看到了七月,才觉得她们本就是每个人心中都不可或缺的表里两面,作者不过剖开了给我们看罢了。这让我突然感到一种隐喻,说不定七月一直就是安生精神分裂出来的第二人格……哎,不多想。 +七月有一句台词让我感觉被扎了一下,她对安生说,你太笨了,那么装腔作势,真正聪明的人才不会让自己被发现聪明(大意)。果真如此吗?我不懂,但分类聪明人的话题让我想起另一位不该想起的人,然后心里某处又开始隐约作痛。 + +有一个做得很出彩的点(忘记了原作是怎么组织的),就是真实与小说的视角切换。上一部让我有这种惊艳感的是《微微一笑》,而且那部给人感觉更跳脱一点,当然游戏与现实间的切换很难不跳脱。在这部电影里,我几乎总能清晰地分辨正在进行的故事线到底是小说还是现实,抑或是最后安生讲述的 +half-truth。当然,旁白功不可没。 +七月的女儿真可爱,七月主动被逃婚真勇敢,她这辈子为了自己大概也就只勇敢了这么一回吧。最后抖包袱的时候才发现之前的蒙太奇没有一个镜头是多余的,导演人才啊。 + +观毕,有一种青春时代被人强行翻出来总结陈词了的感觉,不过总结得不坏,我挺喜欢的。 +学校和军训的场景,也算是我们这几代人的公共回忆了吧。 diff --git a/content/posts/2017-09-28-about-cheilitis-and-herpes.md b/content/posts/2017-09-28-about-cheilitis-and-herpes.md new file mode 100644 index 0000000..3edf6ff --- /dev/null +++ b/content/posts/2017-09-28-about-cheilitis-and-herpes.md @@ -0,0 +1,39 @@ +--- +author: loikein +published: "2017-09-28T16:19:00+02:00" +slug: 2017-09-28-about-cheilitis-and-herpes +categories: +- 生活 +title: 唇炎/口唇疱疹/汗疱疹二三事 +--- +首发[豆瓣](https://www.douban.com/note/638442145/) + + +本文可能有令人不适的病症描写。 + +近来唇炎发作,让我意识到我一直统称为「唇炎」的其实有三种,单纯的过敏,口角炎,和口唇疱疹。 + +嘴唇过敏没什么好说,容易过敏如我,之前以身试法(x)筛选过各大品牌唇膏。 +往细里说就是妮维雅不用、含荷荷巴油不用、含香料不用、molip +不用(对我真是火上浇油效果);往粗了说,目前为止完全不引发过敏的有纯凡士林、曼秀雷敦蚊子膏、小蜜蜂 +coconut & +pear(小蜜蜂其他口味没试过,不过有些含荷荷巴油,害怕)。这三种也是我在产生过敏反应的时候会涂来消肿的,一两天就能好。 + +口角炎太久没复发了,先不写。 + +口唇疱疹是完全不同级别的严重性。我得汗疱疹(指缝)也两三年了,每年秋天发作,但口唇疱疹大概能追溯到高中,有一天突然就满嘴水疱,流黄色液体,涂什么都没用。正是那一次去医院,医生给我下了「唇炎」这个诊断,并且告诉我是治不好的,只能等它自行恢复。 +治不好是一码事,说不清楚病名是另一码事。 +据我所知,口唇疱疹和汗疱疹都是由单纯疱疹病毒引起的,目前还没有根治方法。日文维基上列了几个复发用药,都是处方药,没看过医生的我买不了,也不敢贸然尝试。 + +说说这次口唇疱疹发作的过程。 +有一天肿了,涂了些唇膏,过两天没那么肿了,颜色还是偏红(我的正常唇色很淡所以很明显)。 +过了有一周左右(今天的一周前),去大阪玩,头天晚上喝了点酒。我有轻度酒精过敏,只能喝一杯鸡尾酒,可能这杯的酒精浓度高了点,回旅馆就开始身上痒痒。其实就是擦点无比滴就能好的事儿,我也没多在意。 +第二天起来,嘴唇上长水疱了。中午~下午开始破裂,口罩上有黄色液体痕迹,到了晚上还没停。我一边涂唇膏一边拿纸巾擦,直到入睡。睡前想起之前看的一篇讲汗疱疹的文章,上日亚买了亚铅华(氧化锌)软膏。 +次日,有结壳迹象。 +再过一天,回到东京,壳已经结满嘴,但依然有液体渗出。 +下一天壳结硬了。 +次日,涂凡士林,软化撕掉壳,有零星部位仍然在渗水。涂亚铅华软膏,嘴唇变得很干,到了晚上几乎不再渗水。涂曼秀雷敦入睡。 +再下一天,涂了一整天曼秀雷敦,嘴唇除了发红之外没有异样。 +今天,颜色恢复浅红。继续涂曼秀雷敦。 + +感觉亚铅华软膏挺有用的,今年要是汗疱疹再复发,可以涂涂看。不过就是那什么,看起来像一坨奶油似的……(。 diff --git a/content/posts/2017-11-10-close-knit-by-naoko-ogigami.md b/content/posts/2017-11-10-close-knit-by-naoko-ogigami.md new file mode 100644 index 0000000..2111b73 --- /dev/null +++ b/content/posts/2017-11-10-close-knit-by-naoko-ogigami.md @@ -0,0 +1,27 @@ +--- +author: loikein +published: "2017-11-10T16:19:00+01:00" +slug: 2017-11-10-close-knit-by-naoko-ogigami +categories: +- 感想文 +tags: +- 电影 +title: 当我谈论爱时我在谈论什么:荻上直子《人生密密缝》 +--- +首发[豆瓣](https://movie.douban.com/review/8916388/) + +*** + +在微博上关注了一位挺可爱的博主。她发过这么一句话:「你就是一刻不停地爱,爱上80年,也抵不上我一天的爱。」第一次看到这句话的时候我盯着它一两分钟,眼泪慢慢漫出来。 +没经历过的人很难想象,其实就算经历过的人有时候也难以彼此理解,就像同样一世为人,有些人就是无法理解别人的痛苦,觉得是事儿逼。能活得这么黑白分明挺开心的吧,good for them。只是对于我个人而言,一旦意识到了自己的不同,就再也无法忽视这个世界上一点一滴的善意,或者恶意。 +当我说「就算经历过的人也难以理解」的时候,我心里其实是有点儿特指的。曾经有位作者写过一篇小文叫《他们的爱与怕》,其姿态之高高在上,在博客里已经谈论过了,不再赘言。只是,在又一个深秋夜,看完这样一部温柔又扎人的电影,还是忍不住想想自己的经历,忍不住想再表达点儿什么。 + +「性少数」这个词虽然简洁明快,但包含了性别、性取向等多个方面。比如当我说我是性少数,你很容易想到我可能是双性恋,少一些的人会想到我可能不认同自己的生理性别,但能想象性别/性取向光谱的人,在我目前信赖到讨论过这个问题的顺性别异性恋朋友中,还一位都没有,更不用说猜出来我到底「是个什么」。 +伦子是幸运的,真的幸运,比这个世界上绝大多数的性少数者都要幸运。她同时又是不幸的,终究不得不止步于通向完美的彻底的幸运之门的最后几层阶梯,不禁让我为结尾扼腕。但如果她真的得到了这个女儿,反而会让在生活里苦苦挣扎的我等感到不平衡或者有点儿假,所以这个结局我还是觉得不错的,不失真实残忍,也不至于让大众对性少数的处境产生过于乐观的想象。 +途中的提琴男孩儿,男孩儿妈妈,儿童中心的人,医院护士,甚至班里起哄的小朋友们,都是真切存在在我们的生活里的。当这种压力与不认同来自亲近的人的时候,真的,真的,真的想死。我看着提琴男孩儿,仿佛看到了镜子里的自己,心里偶尔会冒出来的无限勇敢,仿佛叫嚣着世界你来伤害我吧我不怕,但真的受伤的时候还是会难受得宁愿自己没有存在过。我总在想,如果可以让时间倒流,就不要出生了吧,可是又舍不得我爱过的人们和爱过我的人们,哪怕打开这份爱的方式可能并不恰当。哪怕打开这份爱的方式就从来没有恰当过。 +……我是多么地嫉妒伦子啊。我多么希望在那个时空,伦子能跟牧夫好好走下去,小友能常来看他们,小友妈妈能最终理解他们,提琴男孩儿不用再藏着掖着心惊胆战连母亲都不能坦然面对,大家都能活成自己真正希望的样子,生老病死再无遗憾。 +因为我还不能。我有时候连自己都无法面对和悦纳自己。我并不变态得心安理得。我有时候也会讨厌自己,倒不如说喜欢自己的时候比较少。我也会暗暗埋怨伤了我的人,又觉得自己活该。我觉得我不是少数。现在再爱上什么人,我已经不敢再面对可能的鄙夷的目光和自以为温柔的拒绝,我只能沉默。 +对应开头那句引言,上个月最难受的日子里我写,「我就算一刻不停地爱,爱到生命尽头,都比不上那天在地铁里你们各自拎着行李箱,朝彼此摁下快门的瞬间。」 +这就是我对自己的宣判了。 + +这算影评吗?谁知道呢。不过能写出来的契机是这部电影,就当是了吧。 diff --git a/content/posts/2017-11-16-original-sin-of-patriots.md b/content/posts/2017-11-16-original-sin-of-patriots.md new file mode 100644 index 0000000..fc7b17f --- /dev/null +++ b/content/posts/2017-11-16-original-sin-of-patriots.md @@ -0,0 +1,22 @@ +--- +author: loikein +published: "2017-11-16T16:01:00+01:00" +slug: 2017-11-16-original-sin-of-patriots +categories: +- 随笔 +tags: +- 政治 +title: 爱国者的原罪 +--- +在这个光怪陆离的时代,爱国者有其原罪,至少对于中国人而言是这样。 +在当代之中国,说自己是爱国者,是一件会令人侧目的事情。说自己是爱国者,比自称精日美分令人震惊不知多少个级别,甚至自称小粉红估计都没这么严重。「我爱国」,从某种意义上而言,是这个时代的大众文化的政治不正确。 +「你说你爱国?哈哈,莫不是傻的?被洗脑了吧?」会这么说的人,也很有可能会在人民日报、共青团等官方媒体的微博发表「看到中国这么流氓我就放心了」「厉害了我的国」「傲娇中国」系列言论的时候高调转发表示激动,同时唾弃小粉红,同时乐此不疲地去日本旅游爆买、批判或大赞特朗普、评论德国英国澳大利亚要完。 + +被洗脑的到底是谁呢? +我不否认我接受的是国内文科的基础教育,但必须强调自己曾一度厌恶背诵政治课本到考试前彻夜不能成眠;我同样不能否认外国本科教育对我影响颇深,但必须强调我所学专业和政治无关,对政治哲学改观则是在刚过去的一年之内,远远晚于我对自己体内的爱国者的察觉。 +必须澄清一点:我爱国,爱的是个什么国? +是这片辽阔的土地,是她所孕育的、和我长着相同或不同面孔的中华儿女,是我们共同创造的精彩纷呈的的文化…… +不是任何其他什么。不是。 +近日观看韩国宪法法院的宣传视频,为其(至少是表面上的)对以民为本的理念贯彻之深刻颤抖不已。我们的人民什么时候也能得到这样的爱啊,他们是值得的,我们是值得的。 +我们什么时候才能拥有一个真正的属于自己的国家啊,of us, by us, for us? +就连想想这样的愿景,也是一种错误吗? diff --git a/content/posts/2017-11-17-quartet-by-yuji-sakamoto.md b/content/posts/2017-11-17-quartet-by-yuji-sakamoto.md new file mode 100644 index 0000000..beb13df --- /dev/null +++ b/content/posts/2017-11-17-quartet-by-yuji-sakamoto.md @@ -0,0 +1,28 @@ +--- +author: loikein +published: "2017-11-17T18:37:00+01:00" +slug: 2017-11-17-quartet-by-yuji-sakamoto +categories: +- 感想文 +tags: +- 电影 +title: 成人童话:坂元裕二《四重奏》 +--- +首发[豆瓣](https://movie.douban.com/review/8930239/) + +*** + +最近看剧都是以部计算的,因为可以两倍速,免去了剧情和语言上的拖沓与尴尬,能接受的剧一下子就多了起来。这部其实是好久之前死党推荐给我的,说卷卷长得像我,性格也有点像,还真是。与之相对的有点恼人的另一个巧合,就是别府长得像追过我的人,但又比他帅一点儿,看得我非常分裂。 +像电影一样一口气看完,感谢死党的推荐了,虽然我拖了这么久。怎么说呢, + +小雀的刺探与倒戈,别府的死脑筋,家森的轻浮与深沉,和卷卷的隐瞒,每一个设定都现实得不像真的,每一个人的故事都能让我难受上好一阵子。编剧可真能啊。 +小雀和老头上司聊天那一段我哭了。太他妈难受了。 +别府被困在仓库里那段。 +卷卷老公和卷卷一起回到东京的公寓那段。 +「抱かれたいの」那段。 +小雀躲在路边偷看卷卷和别府听音乐会那段。小雀的两个梦。别府的围裙。好喜欢小雀啊。 +小雀和卷卷的友谊之深,让我一度有点怀疑小雀是不是对卷卷超过了友谊啊?但是,显然,显然,她比我能想象的还要高尚。 +真的,小雀才是主角吧。 + +满岛光这个姑娘是前不久看《监狱公主》爱上的,但是刚开始这部的时候愣是没认出来只觉得小雀眼熟,查了一下演员表才啊——!真是了不得。演什么像什么,连自己本身的存在都没了。又一次让我感受到了演戏这种艺术的魅力。 +无语凝咽,近期最短影评了。 diff --git a/content/posts/2017-12-06-a-port-for-the-left-ones-4.md b/content/posts/2017-12-06-a-port-for-the-left-ones-4.md new file mode 100644 index 0000000..8099776 --- /dev/null +++ b/content/posts/2017-12-06-a-port-for-the-left-ones-4.md @@ -0,0 +1,14 @@ +--- +author: loikein +published: "2017-12-06T01:36:00+01:00" +slug: 2017-12-06-a-port-for-the-left-ones-4 +categories: +- 诗 +title: 离人码头 4 +--- +船已行远 +路人投来关切的目光 +我该怎么告诉他 +向他道歉,为他错置的好意 +我的心已随船一起 +行往不可知处 diff --git a/content/posts/2017-12-14-this-year-has-already-ended.md b/content/posts/2017-12-14-this-year-has-already-ended.md new file mode 100644 index 0000000..21acef6 --- /dev/null +++ b/content/posts/2017-12-14-this-year-has-already-ended.md @@ -0,0 +1,26 @@ +--- +author: loikein +published: "2017-12-14T11:25:00+01:00" +slug: 2017-12-14-this-year-has-already-ended +categories: +- 随笔 +tags: +- 年度总结 +title: 今年提前结束了 +--- +喜欢的博主写了[2017总结](http://eillo.pw/post/category/bai-ge-zao-nian),里面有这么一段话: + +> 苦这么抽象的东西,不像油漆可以涂遍墙体来丈量面积,倘若A君喜欢天蓝,她的痛苦涂满了天花板,顺便充当天色适缓心情,有朝一日A君走入了W君房间,发现W的墙面一片空白,A对W说「哈,这人活的倒是很轻松啊,一点痛苦的痕迹都没有」,W面壁沉吟「是这样的,我喜欢白色,所以我的痛苦也是白色的,你不知道我有多痛苦,而我也忘记自己有多痛苦,但它是存在的」,A君捏紧了手心,又松开。 + +看完我开始想,自己的痛苦是什么颜色的呢? +硬是要说的话……透明的黑色。不用太浓,透明度10%左右就好,可以一遍又一遍地粉刷,直到浓得只是盯着都仿佛要被吸进去,还可以再继续叠加。吃不下饭刷一道,睡不着觉刷一道,站台铁轨的吸引力已经叠加了很多次。 +但生活里也不是没有光亮,白色漆,同样10%透明度。一颗糖果刷一道,一对耳环刷一道,不小心买到差劲散石也居然串成了手链,刷一道。 +爱是持续刷着的白漆,但速度不可控。 +怎么了呢?最近仿佛黑暗笼罩,纵然我依旧深爱这个世界,好像也不够了。 +怎么了呢? + +今年已经结束,明年却不让我拥有这片刻的喘息。 +我今年干了什么呢?疯狂写作文,不太疯狂地刷题,没怎么背单词……每天都想着明天要好好休息,却总不能如愿。 +好累啊。好久不敲代码了,我还记得吗?好久不学某语言了,我还能背字母表吗?我还有明天吗?我还有明天吗? +我甚至不用猜想如果是您会怎么做,您根本不会让自己陷入这样的困境……您是吗? +不只是今年,感觉这辈子已经结束了,每天折腾着入睡死一次,醒来之后重新审视这个陌生的世界。 diff --git a/content/posts/2018-01-02-detective-yugami-by-hiroshi-nishitani.md b/content/posts/2018-01-02-detective-yugami-by-hiroshi-nishitani.md new file mode 100644 index 0000000..4ac0717 --- /dev/null +++ b/content/posts/2018-01-02-detective-yugami-by-hiroshi-nishitani.md @@ -0,0 +1,25 @@ +--- +author: loikein +published: "2018-01-02T10:07:00+01:00" +slug: 2018-01-02-detective-yugami-by-hiroshi-nishitani +categories: +- 感想文 +tags: +- 电影 +title: 信念什么的,玩笑的话:西谷弘《刑警弓神》 +--- +首发[豆瓣](https://movie.douban.com/review/8961031/) + + +继《识骨寻踪》之后第一部让我如此欲罢不能的单元剧。 +弓神真是太棒了,他和羽生的互动甚至给我一种福尔摩斯和华生的感觉。原作漫画的评价好像两极化得有些厉害,那就不看了吧……(喂。 +片头,哇每一集的片头,简直是本相爱相杀控的极乐天堂!每一集都不一样!弓神叔笑得太贱了深得我心!条状打光绝了! + +看《弓神》学到的东西:人生苦短。 +我不知道弓神年轻的时候有着什么样的设定才让他成为了现在的样子,可是对于女上司的同感十分切身。眼睁睁看着亲友死在面前,翻阅对方推特小号里没有说出口的怀念,最后也只能骂一声笨蛋;单身至今,虽然同学聚会也会心有不甘,但面对工作依然是全情投入。简直看到了自己的未来。 +她的那位亲友……说实话前几天刚好看到了那个现充代行服务的网站(「本物以上の喜びを!」),还感慨过这简直是自愿付费楚门秀,不想这就在剧里又碰上了。 +氰化物致死很快,快得能让我祈祷她或许还是抱着对未来的期许倒下的,或许还带着微笑。 +她们真的很美。 + +羽生的班长那集(就是第一集?)简直是为何私刑不应被推崇的绝佳教材。 +「凡人だからよ。」 diff --git a/content/posts/2018-01-02-fight-club-by-david-fincher.md b/content/posts/2018-01-02-fight-club-by-david-fincher.md new file mode 100644 index 0000000..19377ab --- /dev/null +++ b/content/posts/2018-01-02-fight-club-by-david-fincher.md @@ -0,0 +1,22 @@ +--- +author: loikein +published: "2018-01-02T10:08:00+01:00" +slug: 2018-01-02-fight-club-by-david-fincher +categories: +- 感想文 +tags: +- 电影 +title: 杉下先生说过:大卫・芬奇《搏击俱乐部》 +--- +首发[豆瓣](https://movie.douban.com/review/9025920/) + +*** + +「通过暴力实现的正义,在这个世界上根本不存在。」我对这句话批判地同意,即,只有程序正义才能催生真实而纯粹的结果正义,箭头不可逆。 +被消费主义冲昏了的头脑,怎么能寄希望于暴力来拯救呢?活在消费主义之下的你和我,难道惟一的出路就是在肉体的自我毁灭中重生吗? +因而,我不得不在理性上否定泰勒的存在。 +但要说我有多厌恶他,却也是昧良心的话。他是那么地讨人喜欢,强大、机智又果敢,跟 Jack 的破碎的心简直是天差地别。我不能想象任何人能拒绝他,尤其是我不理性至极的非理性。但,如果真的要说出来的话,在理性与否的冲突中选择理性,才是我生而为人想做的事。 + +好像有点过于上纲上线了。对电影一窍不通的本人欣赏 Jack 跟观众对话的手法,欣赏他吐露心声的委婉,欣赏泰勒的脸和肌肉,但是一点都不想欣赏本片的表现方式,或说内核。而那恰恰是最重要的东西。 +反讽的话,有必要做到这种地步吗?半个唯美主义者不太相信本片是在反讽。 +结尾很好,三颗星都是给 Jack 的。 diff --git a/content/posts/2018-01-02-loving-vincent-by-dorota-kobiela-and-hugh-welchman.md b/content/posts/2018-01-02-loving-vincent-by-dorota-kobiela-and-hugh-welchman.md new file mode 100644 index 0000000..45975c4 --- /dev/null +++ b/content/posts/2018-01-02-loving-vincent-by-dorota-kobiela-and-hugh-welchman.md @@ -0,0 +1,30 @@ +--- +author: loikein +published: "2018-01-02T10:09:00+01:00" +slug: 2018-01-02-loving-vincent-by-dorota-kobiela-and-hugh-welchman +categories: +- 感想文 +tags: +- 电影 +title: 「你想查清他的死亡,却不曾了解他的生活」:多洛塔・科别拉《至爱梵高》 +--- +首发[豆瓣](https://movie.douban.com/review/9038025/) + + +这句话似乎是医生的女儿说的,真是主角最好的注脚。 +故事开始得没头没脑,恕我无礼,主角片头还在像个叛逆青少年一样抗拒他爸给他的这份苦工,下一秒来到村子里之后就开始像个嗅嗅一样热心地上蹿下跳,搞得两天之内全村都知道了他这么号人,还自称梵高的朋友……太快了吧!谈恋爱还要吃饭看电影聊聊天对不对,您怎么一夜之间(。 + +四颗星三颗给作画,一颗给结尾。 + +作画令人难忘。开头的字幕就震住我了,流畅无比,衬得后面一开始有些失色。 +结尾翻书也好看。 +黑白的部分过于写实,虽然很美,但有点出戏。 + +最后主角见到了医生,医生开始说关于忧郁症的话,感觉心都空了。 +第一次读《亲爱的提奥》是很多年以前的事了,我甚至开始怀疑那是不是小孩子某个午后的梦(其实不是)。那时候我还没有厚脸皮到自称艺术人士,也不懂他对世界的热爱从何而来。 +船夫说,那天梵高在画画,乌鸦落下吃起了他的午饭,他着迷地看着——他是有多么寂寞,才会对一只乌鸦产生温情? +您知道吗,在深夜回家的路上,我甚至会对探照灯产生温情。 + +剧终放起了Starry Starry +Night,虽然不是我最喜欢的Gosh版,也忍不住哭了一下。 +书页翻到了结尾,他放下画笔,微微侧身。 diff --git a/content/posts/2018-01-06-mood-and-2018-resolution.md b/content/posts/2018-01-06-mood-and-2018-resolution.md new file mode 100644 index 0000000..9c45a7e --- /dev/null +++ b/content/posts/2018-01-06-mood-and-2018-resolution.md @@ -0,0 +1,22 @@ +--- +author: loikein +published: "2018-01-06T19:22:00+01:00" +slug: 2018-01-06-mood-and-2018-resolution +categories: +- 随笔 +tags: +- 年度总结 +title: 感受,暨 2018 resolution +--- +2017年2月开了这个博客,8月受到先生的 goodreader 的刺激开始重新打理豆瓣,其实意义都在于想要再多感受一点这个世界。就像赌神小姐定期深夜玩问答游戏一样,仅仅观察这个世界对我而言是不够的,我需要时不时投入得更深一点、甚至逼着自己去参与其中。日复一日停留在 comfort zone 里令我倦怠,令我灵魂蒙尘,令我丧失表达能力。 +我想说行かないで、構って、ハグして,张口却是なんでもない。 + +今年第一个目标:学会示弱。 + +今年第二个目标:多拍人。 +镜头后的我,近年来关注的画面越来越过于纯粹,可能也是出于对自己单眼视力的隐秘的自豪感。我非常懦弱地不拍人也不自拍。这不好。 +没有参与丁太升的 2017 纪录片,有点遗憾。2018 年,想要定期录一段视频,记录所思所感,年末剪成自己的纪录片。听起来不错。 + +今年第三个目标:回归理性思维。 + +暂时先写到这里。 diff --git a/content/posts/2018-01-18-i-don-t-want-to-die-in-a-frozen-city.md b/content/posts/2018-01-18-i-don-t-want-to-die-in-a-frozen-city.md new file mode 100644 index 0000000..ce8aa60 --- /dev/null +++ b/content/posts/2018-01-18-i-don-t-want-to-die-in-a-frozen-city.md @@ -0,0 +1,22 @@ +--- +author: loikein +published: "2018-01-18T11:27:00+01:00" +lastmod: "2021-04-24 18:00:49.672 +0200" +slug: 2018-01-18-i-don-t-want-to-die-in-a-frozen-city +categories: +- 随笔 +title: 冷凍都市でも死にたくない +--- +在推上听说了一位挺有意思的人,一开始名叫「自宅山寒夫」,跟父亲的微信号有点像,就记住了。后来我关注了他,发现他每天都在改名字,但是我内心已经把他称为寒夫桑了,懒得再改。 +寒夫桑的置顶帖是[这个网站](http://shinanai.com/),有一天我正在痛苦地摸鱼,便点进去看。 +冷凍都市でも死なない。他是怀着怎样的心情写下这句话的呢?同样住在东京的我,似乎有点头绪、又似乎没有。 +东京是座冷冻城市,在住第四年的我可以如此断言。虽然我称之为故乡的那个城市要论繁华并不亚于东京多少,但是氛围的差别是在街上走一圈就能体感到的。广州是座热乎乎的城市,就算在充盈着魔法攻击的深冬也是如此。在东京,我的抑郁症加重到肉眼可见的程度。无数遍的,铁轨的吸引力,高处的吸引力,扔掉手机的吸引力,自我毁灭的吸引力。 +但是出于某种不理性的留恋,我还不想死,制作自己的死なないリスト变成了一件十分迫切的事情。 +随便列列,随时添加。 + +1. 泡[水果酒](http://shinanai.com/kobin.html) +2. 做基因测试 +3. 看[美大毕设展](http://www.kisode.com/presentation2017/) +4. [睡不着博物馆](../../projects/#睡不着博物馆) +5. 看[尤金·史密斯摄影展](https://topmuseum.jp/contents/exhibition/index-2927.html) +6. diff --git a/content/posts/2018-01-23-on-slut-shaming-and-other-stuff.md b/content/posts/2018-01-23-on-slut-shaming-and-other-stuff.md new file mode 100644 index 0000000..6e803c1 --- /dev/null +++ b/content/posts/2018-01-23-on-slut-shaming-and-other-stuff.md @@ -0,0 +1,24 @@ +--- +author: loikein +published: "2018-01-23T15:48:00+01:00" +slug: 2018-01-23-on-slut-shaming-and-other-stuff +categories: +- 随笔 +tags: +- 政治 +title: 荡妇羞辱及其他 +--- +更多的男性觉得身体包括在可以炫耀的财富之中 by 我 +[“二次元”照片尺度调研报告 by 灵魂写手柒沫姬](https://www.weibo.com/ttarticle/p/show?id=2309404199400753776865) + +*** + +上述判断是我在非常困并且刚考完两场期末考的情况下做出的。虽然我依然很困并且还有两场期末考,但我可以、也需要再多写一点。 +调查结果显示,男性比女性对女朋友/自身、朋友、网友的用于贩售的写真接受尺度更大,对「福利姬」的定义门槛更为暴露。不考虑性别,受访者对现实挚友比对网络挚友的上述用途写真接受尺度更小。这是一个现实且即时的问题,虽然本自称网络良民直到不久之前还不知道福利姬这类人的存在。 +面对这样一份以性别为主要独立变量的调查,我无法不想像如果男性受访者看到的是男性的暴露写真,或者受访者们看到的是异性的暴露写真会如何,又或者是否该在控制变量中加入性取向等等。无论如何,如果我们接受数据的正确性,并同意样本能代表微博里与二次元相关的用户,结论无疑是明确的:男性与女性对于女性的「暴露」写真具有不同阀值(我知道是阈值但是请接受此习惯性笔误不然我都要全文中英文混排了)。 + +我能想到的第一个造成此差别的原因就是上文提到过的那句话:「更多的男性觉得身体包括在可以炫耀的财富之中」。经过一番浴室沉思之后,我对它产生了新的理解。重点不是「男性觉得」,而是「大部分人都觉得男性的身体包括在他们可以炫耀的财富之中,而女性的身体则不是」。女性的身体不能被炫耀,不能被公开,不能作为资本,因此当这些身体出现在裸露写真里的时候,才显得尤为色情、尤为特殊。 +试举例男性大众明星,影星、歌星、流量鲜肉都可以。当他们的湿身/半裸写真出现在杂志里微博里的时候,是用来舔、圈粉、炫耀身材的。但如果同样受众同样咖位的女明星公布了类似的照片,人们会说些什么呢?「大胆」、「博出位」、甚至「公交车」。当健身男士发出他们在洗手间里的半裸照片的时候,他们在炫耀自己的「成果」,而不是发了一张暴露写真。想想健身女士的成果照有多么不普遍,是否因为她们根本不敢发,生怕引来类似的评论,甚至人肉或者斯托卡呢? +上述现象可以被一个很简单的名词概括:「荡妇羞辱」。但这同时也是我非常不喜欢的一个词,因为这个词背后那些受到了羞辱的姑娘,她们根本不是荡妇。 + +思考另一个角度:何谓「暴露」?认为男性裸着上身不算暴露的想法非常正常,但是女性裸着上身的图片就已经会被和谐了。并非女性的性征部位比男性多,喉结不也是性征吗?为何展示喉结的照片是「性感」,展示乳房的照片就是「色情」了呢?为何裤子里若隐若现的阴茎是「性感」,上衣里若隐若现的乳头就是「色情」了呢?我不太理解,或许我曾经是理解的,但是我现在太困了或者被平等思想洗脑了,请自由地挑一个。祝您快乐。 diff --git a/content/posts/2018-01-25-sleepless-museum-001-s-h-e.md b/content/posts/2018-01-25-sleepless-museum-001-s-h-e.md new file mode 100644 index 0000000..1436431 --- /dev/null +++ b/content/posts/2018-01-25-sleepless-museum-001-s-h-e.md @@ -0,0 +1,36 @@ +--- +author: loikein +published: "2018-01-25T12:15:00+01:00" +lastmod: "2021-04-24 19:47:35.900 +0200" +slug: 2018-01-25-sleepless-museum-001-s-h-e +categories: +- 睡不着博物馆 +title: 睡不着博物馆 001:S.H.E. +--- +## 保持微笑(Encore,2004) + +{{< youtube id=r8EARp5tFpA title="保持微笑" >}} + +## 河滨公园(Super Star,2003) + +{{< youtube id=q8xQuzdpZpU title="河滨公园" >}} + +## 你太诚实(Super Star,2003) + +{{< youtube id=Ayz8TYzumk0 title="你太诚实" >}} + +## 他还是不懂(奇幻旅程,2004) + +{{< youtube id=Uh9nPdIhPEY title="他还是不懂" >}} + +## 沿海公路的出口(我的电台FM,2008) + +{{< youtube id=-Ve9jP2IS_c title="沿海公路的出口" >}} + +## 热带雨林(青春株式会社,2002) + +{{< youtube id=M5Y9dandexU title="热带雨林" >}} + +## 一起开始的旅程(奇幻旅程,2004) + +{{< youtube id=YpCE-rgeBAg title="一起开始的旅程" >}} diff --git a/content/posts/2018-01-25-sleepless-museum-002-songs-from-chinese-dramas.md b/content/posts/2018-01-25-sleepless-museum-002-songs-from-chinese-dramas.md new file mode 100644 index 0000000..a073e8a --- /dev/null +++ b/content/posts/2018-01-25-sleepless-museum-002-songs-from-chinese-dramas.md @@ -0,0 +1,35 @@ +--- +author: loikein +published: "2018-01-25T16:47:00+01:00" +lastmod: "2021-04-24 19:57:57.897 +0200" +slug: 2018-01-25-sleepless-museum-002-songs-from-chinese-dramas +categories: +- 睡不着博物馆 +title: 睡不着博物馆 002:国产电视剧插曲 +--- +以下是印象深刻的,[这里还有个过于全面的清单](https://www.youtube.com/user/cctv13music/search?query=%E5%BD%B1%E8%A7%86%E6%8F%92%E6%9B%B2)。 + +## 胭脂雪(《胭脂雪》,范冰冰) + +{{< youtube id=I7g5HKthaOk title="胭脂雪" 4x3="true" >}} + +## 你是我的唯一(《预谋》,刘可) + +[QQ音乐](https://i.y.qq.com/v8/playsong.html?songmid=003hqSLe1IQIKk) + +## 其实很爱你(《屋顶上的绿宝石》,张韶涵) + +{{< youtube id=r2WPaMPwPC8 title="其实很爱你" >}} + +## 一个人弹琴(《屋顶上的绿宝石》,郭静) + +{{< youtube id=30MGT8iz3ao title="一个人弹琴" 4x3="true" >}} + +## 月亮船(《快乐星球》,王英姿) + +{{< bilibili 18556498 >}} + +## 咱们屯里人(《乡村爱情故事》,赵本山) + +{{< youtube id=WVKbog-18nY title="咱们屯里人" >}} + diff --git a/content/posts/2018-01-28-the-shape-of-love.md b/content/posts/2018-01-28-the-shape-of-love.md new file mode 100644 index 0000000..f5aacee --- /dev/null +++ b/content/posts/2018-01-28-the-shape-of-love.md @@ -0,0 +1,25 @@ +--- +author: loikein +published: "2018-01-28T09:21:00+01:00" +slug: 2018-01-28-the-shape-of-love +categories: +- 随笔 +tags: +- 自述 +title: 爱的形状 +--- +虽然并没有关注黄执中老师,但是关注的忘记哪位赞了一下,于是某天这段话出现在了我的 timeline 里: + +> 「对方很爱你」这种事……其实,完全不能算是对方的优点。因为那只证明了,你这个人,有多「可爱」。所以,那其实是「你」的优点。 +> …… +> 这结果,应该是让你在感情中,变得更自信,而不是更依赖。 +> 紧抓着「可是他对我真的很好」,这种心态,就是一种错估了主动权的倚赖。 + +说实话有点过于一针见血,以至于愣了一下。 +之前做过一个主题是爱的推特集,其中就包括了类似于「愛の形について考える」的几段话。 +爱是什么呢? +我和我身边的人的悲剧经常在于,爱上的是爱情本身,是为爱奋不顾身的自己,是有人可以依靠,而不真的是那个人。就像诚挚的自我厌恶和并非毫无依据的自傲一体两面,均出自对「自己」的过于在乎。 +我不想……我本不想成为这样的人。 +我并非注重感情或者关系,只是需要有人陪着我、或者需要我陪,就像我并不爱饮食,却无法摆脱对饱腹感的向往。我总是觉得自己这样的人怎么可能适合一段关系呢?怎么可能有人接受我的一切呢?于是便轻易放弃。我以为我对她死心塌地,但先离开的也是我。 +可关系于我而言终究是必需品。我无法控制地想念拥有过的陪伴,不是哪个人,而是那种有人在触手可及的地方的安心感,让我觉得自己不仅是这个世界里一个占位符般的存在、还对某个具体的人有具体的意义。我不那么在乎被全盘接受了。我成为了更加低等的物种。可这样的我,又有什么好爱、好陪伴的呢? +爱到底是什么呢? diff --git a/content/posts/2018-01-29-sleepless-museum-003-sinotype-fonts.md b/content/posts/2018-01-29-sleepless-museum-003-sinotype-fonts.md new file mode 100644 index 0000000..1ab686a --- /dev/null +++ b/content/posts/2018-01-29-sleepless-museum-003-sinotype-fonts.md @@ -0,0 +1,45 @@ +--- +author: loikein +published: "2018-01-29T17:36:00+01:00" +slug: 2018-01-29-sleepless-museum-003-sinotype-fonts +categories: +- 睡不着博物馆 +title: 睡不着博物馆 003:华文字体 +--- +预览图来自[字体天下网站](http://www.fonts.net.cn/fonts-zh/tag-huawen-1.html) + +## 华文彩云 + +![](/post-img/sinotype-fonts-stcaiyun.jpeg) + +## 华文琥珀 + +![](/post-img/sinotype-fonts-sthupo.jpeg) + +## 华文隶书 + +![](/post-img/sinotype-fonts-stlishu.jpeg) + +## 华文新魏 + +![](/post-img/sinotype-fonts-stxinwei.jpeg) + +## 华文行楷 + +![](/post-img/sinotype-fonts-stxingkai.jpeg) + +## 华文楷体 + +![](/post-img/sinotype-fonts-stkaiti.jpeg) + +## 华文仿宋 + +![](/post-img/sinotype-fonts-stfangsong.jpeg) + +## 华文宋体 + +![](/post-img/sinotype-fonts-stsongti.jpeg) + +## 华文细黑 + +![](/post-img/sinotype-fonts-stxihei.jpeg) diff --git a/content/posts/2018-01-30-sleepless-museum-004-apple-person.md b/content/posts/2018-01-30-sleepless-museum-004-apple-person.md new file mode 100644 index 0000000..8dc7108 --- /dev/null +++ b/content/posts/2018-01-30-sleepless-museum-004-apple-person.md @@ -0,0 +1,86 @@ +--- +author: loikein +published: "2018-01-30T19:31:00+01:00" +slug: 2018-01-30-sleepless-museum-004-apple-person +categories: +- 睡不着博物馆 +title: 睡不着博物馆 004:Apple Person +--- +定义Apple Person:苹果为了展示产品而造出的有一定交友圈/兴趣爱好/经历的虚拟角色 +人名暂定按照以下顺序排列:CN —— JP —— COM (US) ——(待补全) + +今天是2017.9.12,星期二,农历丁酉年七月廿二日,上午9:41。 + +武茵怡(我) + +[![](../images/thumbnails/2018-01-30-shui-bu-zhao-bo-wu-guan-004-apple-person-%25E6%25AD%25A6%25E8%258C%25B5%25E6%2580%25A1.png)](../images/2018-01-30-shui-bu-zhao-bo-wu-guan-004-apple-person-%25E6%25AD%25A6%25E8%258C%25B5%25E6%2580%25A1.png) + +iPhone X 第一主人公(白色),生日:5.12 +正在北京,局部多云,20度 +社会人,有车,公司在北京 +养狗 +弹吉他 +家庭地址:建国门外大街,卧室、厨房、客厅里均有独立音箱 +二房?:金桐东路 +iTunes 使用者 +照片里最多的人:陈志铭,男友? +午饭喜欢吃沙拉 +咖啡加奶油,五块糖 +今天跟妈妈去老吉士吃午饭(我知道我刚写了北京,以及对不起施俊年) +8月在泰国旅游 + + +黄颂朗(不确定的部分都归给我) + +戏份很少的 iPhone X 第二主人公 + +正在上海杨浦,26度(我?) + + + +林玲玲 +用邮件给黄颂朗发了生日旅行坐独木舟的照片 + +李浩瀚 +家庭共享主人公,林玲玲的老公,育有一儿一女 + + + +梁佑衔 +搭我的顺风车,作为回报请我喝咖啡,记得我喝什么咖啡,猜想整天搭顺风车 + +施俊年 +追求者? +中午想跟我一起吃午饭,嫌弃我午饭吃沙拉(这条消息4分钟前发的,我还没回) + +[ +](https://3.bp.blogspot.com/-81MkzrbbQYI/WnCpJO5WD6I/AAAAAAAAAh0/fNeV7Bk2NFkPBmPzXCgFOh8EqmpViWldwCLcBGAs/s1600/%25E6%2588%25B4%25E8%258D%25A3%25E5%25BE%25B7.png) +戴荣德 + +[![](../images/thumbnails/2018-01-30-shui-bu-zhao-bo-wu-guan-004-apple-person-%25E6%2588%25B4%25E8%258D%25A3%25E5%25BE%25B7.png)](../images/2018-01-30-shui-bu-zhao-bo-wu-guan-004-apple-person-%25E6%2588%25B4%25E8%258D%25A3%25E5%25BE%25B7.png)跟我互发 +animoji + +李美岚 +[![](../images/thumbnails/2018-01-30-shui-bu-zhao-bo-wu-guan-004-apple-person-%25E6%259D%258E%25E7%25BE%258E%25E5%25B2%259A.png)](../images/2018-01-30-shui-bu-zhao-bo-wu-guan-004-apple-person-%25E6%259D%258E%25E7%25BE%258E%25E5%25B2%259A.png)最近的某天下午要考试 + +伟文 +今晚6~7点跟我有约,生日? + +[![](../images/thumbnails/2018-01-30-shui-bu-zhao-bo-wu-guan-004-apple-person-%25E5%2588%2598%25E5%25AE%25B6%25E8%2595%25B4.png)](../images/2018-01-30-shui-bu-zhao-bo-wu-guan-004-apple-person-%25E5%2588%2598%25E5%25AE%25B6%25E8%2595%25B4.png)刘家蕴 +因故不能跟我一起出来玩(说好的上班呢?),正在被我发照片 + +[![](../images/thumbnails/2018-01-30-shui-bu-zhao-bo-wu-guan-004-apple-person-%25E8%2594%25A1%25E8%258B%25A5%25E8%258F%2581.png)](../images/2018-01-30-shui-bu-zhao-bo-wu-guan-004-apple-person-%25E8%2594%25A1%25E8%258B%25A5%25E8%258F%2581.png)蔡若菁 +正在跟我约不知道什么,换到了马路对面那家,没有事先通知她,她到了之后发现一个人都没有 + +[![](../images/thumbnails/2018-01-30-shui-bu-zhao-bo-wu-guan-004-apple-person-%25E7%2581%258C%25E5%25AE%25B6%25E9%2594%25AE.png)](../images/2018-01-30-shui-bu-zhao-bo-wu-guan-004-apple-person-%25E7%2581%258C%25E5%25AE%25B6%25E9%2594%25AE.png)灌家键 += Lynne +iPhone X 第三主人公(黑色),我的朋友 +有无线充电版,内部人员? + +徐海波 +残障主人公,听力不好 + +以康 +iOS 11 主人公,使用 iPad Pro +拍照的,有模特 +定期举办露营大会 diff --git a/content/posts/2018-03-02-200-years-of-self-esteem-formation.md b/content/posts/2018-03-02-200-years-of-self-esteem-formation.md new file mode 100644 index 0000000..c301e5f --- /dev/null +++ b/content/posts/2018-03-02-200-years-of-self-esteem-formation.md @@ -0,0 +1,35 @@ +--- +author: loikein +published: "2018-03-02T08:20:00+01:00" +lastmod: "2021-04-24 21:12:11.156 +0200" +slug: 2018-03-02-200-years-of-self-esteem-formation +categories: +- 随笔 +tags: +- 自述 +title: 200 年目の自尊づくり +--- +有一阵子没写博了。从学期结束一直忙到现在,忙得想不起来还有个博客。忙些什么呢,调整身体和心情,不要自杀,以及重新学会爱与被爱。 + +契机是一月认识了一个小哥。作为一个在日本长大的混血,他非常妙地没有任何我讨厌的日本男性的劣根性,耿直得令人愉悦。在与他往来的过程中,我发现自己正在一点一点找回曾经跌到谷底的自尊心。 +培养自尊似乎是个挺玄学的话题,好几次在微博上与盆友们讨论,并没有得出什么共识。也许像很多其他技能一样,这只能是个人的课题,别人的经验没有任何作用。又或许,别人的经验虽然没什么作用,但能起到定心丸的功效,证明从零培养自尊不是不可能的一件事。 +但必须承认,我正在尝试的不是一个适合推荐给所有人的课程。 +随时更新,不过我觉得有目前的这三点已经很够了。 + +> 0)抄近道:认识一个原生家庭和谐美满、自尊值高的朋友,跟她混熟,模仿她待人处世的方式。 + +这是我正在干的事情。但是很难,真的很难,光是想像一下自己那样毫不在乎的样子都很难,但是这的确是近道。 + + +> 1)不脑内回放已经发生过的对话。不要想本来还能说点什么其他的更好的,不要思考对方会怎么想。自动开始回放的时候努力想想其他的,明天要干的事情,明天想吃的饭,实在不行就随便剧场一个下一次可能发生的对话,努力把它编完善,也比回放强。 + +这条乍一看非常明显,但是我直到今天还无法彻底贯彻。在下一条的后续里也会提到,我变得容易在别人面前感到惶恐,容易单方面地退缩,这对于几年前过于神经大条的那个我可能是个好的变化,但是继续下去就有点不妙了。 + +> 2)稍微养成一点儿自尊之后,就要开始注意不过于依赖与某个实体(人・游戏・社交网站)的交流。虽然交流对持续的自尊提高也很重要,但是最终还是得脱离这个寄托对象。让自己在现实里做点事,看书或者散散步之类的也行。 + +茅桑评论:从人身上找自尊一般是以贬低对方抬高自己来实现的,即使是不知不觉,最后总会有反弹。从物上找却不会,而且是随心所欲无穷无尽的。 +我的回复:我会依靠的人其实是我特别尊重或者喜欢的人,所以应该是抬高自己到对方的高度的感觉。 +茅桑回复:从人身上找太不稳定了,而且和优秀的人呆久了反而容易自卑…… +我的回复:克服自卑正是建立自尊的一环嘛。还有就是,彻底相信对方是怀着善意的(比如说迟迟不回不是因为刚才自己说错了什么)。 +茅桑回复:我比较倾向于对认识的每一个人起初都赋予 100% 的信任,如果相安无事,之间的关系就会一直这么美满下去,如果欺骗我一次就直接降到 0% 了,反正哪怕被伤害也只有一次。 +我的回复:一开始我也是这样,但是太容易惶恐,于是很快自己就单方面地放低了(姿态/信任值),(1)讲的就是克服这一点。 diff --git a/content/posts/2018-03-08-a-fantastic-woman-by-sebastian-lelio.md b/content/posts/2018-03-08-a-fantastic-woman-by-sebastian-lelio.md new file mode 100644 index 0000000..82dd6ce --- /dev/null +++ b/content/posts/2018-03-08-a-fantastic-woman-by-sebastian-lelio.md @@ -0,0 +1,28 @@ +--- +author: loikein +published: "2018-03-08T01:45:00+01:00" +slug: 2018-03-08-a-fantastic-woman-by-sebastian-lelio +categories: +- 感想文 +tags: +- 电影 +title: 生活是逆风行走:塞巴斯蒂安・莱里奥《普通女人》 +--- +首发[豆瓣](https://movie.douban.com/review/9209210/) + +*** + +早早买了前卖券,却等到奥斯卡都颁完了才看,冲进影院开场四分钟,摸黑坐在了一位正在抠脚的大叔旁边。 + +很真实。比《人生密密缝》要真实得多,冷酷地把现实一层层剥开给你看,但也并非缺乏温情。 +她说,我叫玛莲娜,一次又一次。 +她说,我也有告别的权利。 +在火葬场那个真实与幻觉交错的场景里,我仿佛看到多年后无法与任何人告别的自己。 +在浴场里她不惜变回男儿身,只为打开一个空空如也的柜子,那一刻我心碎成了渣。 +她放下淑女风范跳车顶要求奥兰多的家人把狗还给她。 +她在无家可归的下午敲开了歌唱老师的家门。 +她那两位笨拙得可爱的朋友。 +她…… + +「跟你在一起的时候,我感觉我是自己,一个普通的女人。」 +生而为普通女人,又岂不是每日每夜跟逆风搏斗着,疲倦而不知疲倦。 diff --git a/content/posts/2018-03-08-the-shape-of-water-by-guillermo-del-toro.md b/content/posts/2018-03-08-the-shape-of-water-by-guillermo-del-toro.md new file mode 100644 index 0000000..dd15b09 --- /dev/null +++ b/content/posts/2018-03-08-the-shape-of-water-by-guillermo-del-toro.md @@ -0,0 +1,23 @@ +--- +author: loikein +published: "2018-03-08T12:13:00+01:00" +slug: 2018-03-08-the-shape-of-water-by-guillermo-del-toro +categories: +- 感想文 +tags: +- 电影 +title: 你是一支让我想起舞的歌:吉尔莫・德尔・托罗《水形物语》 +--- +首发[豆瓣](https://movie.douban.com/review/9210258/) + +*** + +总而言之是个缓和又温暖的小故事,不清楚该不该得奖,但是作为文艺片还是不错的。 +该怎么说呢。 +人鱼很帅,女主美得独特,几个主要配角都塑造得很好,节奏也不错。 +随着故事进展,心头不断流过温暖的泉水,影片中超越种族的爱情和最近发生在自己身上的小奇迹产生了共鸣,几乎全程笑着捂心口看完的。人鱼眨巴眼睛,人鱼吃鸡蛋,人鱼和女主的拥抱,女主和小胖朋友解释人鱼的器官,每一幕都非常可爱。 +可能看了两次表,毕竟有点悬疑元素,担心剩余时间圆不圆得起来。 +剧场里有好几次笑声,画家告白失败的时候也有不少人抽气,除去成人内容感觉还挺适合合家欢选片的。 +主管和妻子的床戏打了码,第一次见到这么随意又直白的打码,画面中央一块椭圆的高斯模糊,简直错觉以为自己在玩模拟人生。(日本 R-15 分级) + +如果有关系足够好的恋人的话,可以推荐一起去看。 diff --git a/content/posts/2018-05-21-sleepless-museum-005-japan-shopping-list.md b/content/posts/2018-05-21-sleepless-museum-005-japan-shopping-list.md new file mode 100644 index 0000000..1a0b287 --- /dev/null +++ b/content/posts/2018-05-21-sleepless-museum-005-japan-shopping-list.md @@ -0,0 +1,183 @@ +--- +author: loikein +published: "2018-05-21T18:09:00+02:00" +lastmod: "2021-04-24 21:21:43.156 +0200" +slug: 2018-05-21-sleepless-museum-005-japan-shopping-list +categories: +- 睡不着博物馆 +title: 睡不着博物馆 005:Japan shopping list +--- +最近想再努力实践一下极简主义,翻了几个日本人写的博客, +感想1:这些人比起极简主义更重视インスタ映え +感想2:购物清单太多 +感想3:我也想写……! +于是在浴室里构思了本文。每个都是本强迫症再三对比之后用了至少半年的好东西,供您来日旅行/工作生活时参考。 + +## 桌面 + +[无比滴EX](http://amzn.asia/8tIyzU1) +对蚊虫和疹子都有用。荒岛求生我要带一箱(。 + +[![](../images/thumbnails/2018-05-21-shui-bu-zhao-bo-wu-guan-005-japan-shopping-list-81vMaN7iypL._SL1500_.jpg)](../images/2018-05-21-shui-bu-zhao-bo-wu-guan-005-japan-shopping-list-81vMaN7iypL._SL1500_.jpg) + + +[爱丽丝人工泪液](http://amzn.asia/ceto5hr) +这个是抗菌的,吃到嘴里有点味道。另外有绿色的纯舒缓型,没味道。 +开始买抗菌的是因为得了一次麦粒肿,眼部卫生捉急啊…… + +[![](../images/thumbnails/2018-05-21-shui-bu-zhao-bo-wu-guan-005-japan-shopping-list-71DhixNC9OL._SL1130_.jpg)](../images/2018-05-21-shui-bu-zhao-bo-wu-guan-005-japan-shopping-list-71DhixNC9OL._SL1130_.jpg) + + +[膳魔师水杯](http://amzn.asia/7noLuT3) +杯口是圆的,不割嘴,但是没有专用盖子(反正我就放在桌子上喝水而已,[要盖子的有另外一款在这里](http://amzn.asia/ajUcUdg))。 +放冷饮也不结露,不需要杯垫,方便(虽然我还是买了(。 + +[![](../images/thumbnails/2018-05-21-shui-bu-zhao-bo-wu-guan-005-japan-shopping-list-41wNksCkJ6L._SL1000_.jpg)](../images/2018-05-21-shui-bu-zhao-bo-wu-guan-005-japan-shopping-list-41wNksCkJ6L._SL1000_.jpg) + + +[国誉笔袋](http://amzn.asia/dtakixq) +摊开的时候找东西巨方便,合起来小小的不占地方,结实耐脏,用三年了。 + +[![](../images/thumbnails/2018-05-21-shui-bu-zhao-bo-wu-guan-005-japan-shopping-list-61YRPVTq8NL._SL1000_.jpg)](../images/2018-05-21-shui-bu-zhao-bo-wu-guan-005-japan-shopping-list-61YRPVTq8NL._SL1000_.jpg) + + +[无印良品修正液](https://www.muji.net/store/cmdty/detail/4547315138173) +比ぺんてる好用多了,无限回购中。 + +[![](../images/thumbnails/2018-05-21-shui-bu-zhao-bo-wu-guan-005-japan-shopping-list-4547315138173_1260.jpg)](../images/2018-05-21-shui-bu-zhao-bo-wu-guan-005-japan-shopping-list-4547315138173_1260.jpg) + + +[midori单页裁纸刀](http://amzn.asia/5E25v3p) +剪报/错题集用。刀片是陶瓷的,不小心带进机场也不会被没收(笔袋里其他剪刀都被没收过无数次,汗)从高中陪我到现在。 + +[![](../images/thumbnails/2018-05-21-shui-bu-zhao-bo-wu-guan-005-japan-shopping-list-51UAa48GqWL._SL1000_.jpg)](../images/2018-05-21-shui-bu-zhao-bo-wu-guan-005-japan-shopping-list-51UAa48GqWL._SL1000_.jpg) + + +[MONO smart](http://amzn.asia/aHgTHHE) +比普通MONO硬一些,很薄,能正好擦掉一个字。长篇大论(考试)专用。 + +[![](../images/thumbnails/2018-05-21-shui-bu-zhao-bo-wu-guan-005-japan-shopping-list-51ucShvbgPL._SL1000_.jpg)](../images/2018-05-21-shui-bu-zhao-bo-wu-guan-005-japan-shopping-list-51ucShvbgPL._SL1000_.jpg) + + +[国誉剪刀](http://amzn.asia/bUoJq9S) +买了一个给我妈剪布头,她嫌太锋利了容易剪歪不敢下手(。 +分享一个磨刀豆知识:用陶瓷制品底下没有釉的部分刮个十下就行了。好使。 + +[![](../images/thumbnails/2018-05-21-shui-bu-zhao-bo-wu-guan-005-japan-shopping-list-51elY6P9G4L._SL1000_.jpg)](../images/2018-05-21-shui-bu-zhao-bo-wu-guan-005-japan-shopping-list-51elY6P9G4L._SL1000_.jpg) + + +[MAX订书机](http://amzn.asia/12XFLjS) +订出来的钉子背面是平的。 + +[![](../images/thumbnails/2018-05-21-shui-bu-zhao-bo-wu-guan-005-japan-shopping-list-51mz3CGyRPL._SL1000_.jpg)](../images/2018-05-21-shui-bu-zhao-bo-wu-guan-005-japan-shopping-list-51mz3CGyRPL._SL1000_.jpg) + + +[carl 30孔打孔机](http://amzn.asia/9tFeXo3) +A4~A7全制霸。爽。 + +[![](../images/thumbnails/2018-05-21-shui-bu-zhao-bo-wu-guan-005-japan-shopping-list-51yNIRmrowL._SL1001_.jpg)](../images/2018-05-21-shui-bu-zhao-bo-wu-guan-005-japan-shopping-list-51yNIRmrowL._SL1001_.jpg) + + +## 浴室 + +[资生堂 super mild洗发水&护发素](http://amzn.asia/4La76h4) +刚来日本的时候在711买的,后来尝试了无数网红,没有一个更好用的。 + +[![](../images/thumbnails/2018-05-21-shui-bu-zhao-bo-wu-guan-005-japan-shopping-list-51%2Bo%2BipPi1L._SL800_.jpg)](../images/2018-05-21-shui-bu-zhao-bo-wu-guan-005-japan-shopping-list-51%2Bo%2BipPi1L._SL800_.jpg) + + +[clearex沐浴露](http://amzn.asia/9PmcLZP) +本痔疮患者的福音(闭眼) +好像背上痘痘变少了,可能是心理作用。(下面护肤一节有个真实有用的) + +[![](../images/thumbnails/2018-05-21-shui-bu-zhao-bo-wu-guan-005-japan-shopping-list-71fQZfz5moL._SL1500_.jpg)](../images/2018-05-21-shui-bu-zhao-bo-wu-guan-005-japan-shopping-list-71fQZfz5moL._SL1500_.jpg) + + +[nepia湿厕纸](http://amzn.asia/8C43bpt) +痔疮患者福音之二。不是痔疮患者也推荐使用,能擦很干净(。 + +[![](../images/thumbnails/2018-05-21-shui-bu-zhao-bo-wu-guan-005-japan-shopping-list-616rWsz6YWL._SL1200_.jpg)](../images/2018-05-21-shui-bu-zhao-bo-wu-guan-005-japan-shopping-list-616rWsz6YWL._SL1200_.jpg) + + +[美体小铺洗面摩丝](http://amzn.asia/aj0bD94) +朋友推荐的,一下就爱上了。洗完脸不干。无限回购中。 + +[![](../images/thumbnails/2018-05-21-shui-bu-zhao-bo-wu-guan-005-japan-shopping-list-418l70KdZnL.jpg)](../images/2018-05-21-shui-bu-zhao-bo-wu-guan-005-japan-shopping-list-418l70KdZnL.jpg) + + +[欧乐B电动牙刷](http://amzn.asia/9V0hq1H) +买的是旧款,价格一样外观一样。虽然有点贵但是刷牙会变得快乐……。 +惟一不好的地方:充电的时候灯非常亮,一闪一闪。我的解决方式是用很厚的胶带贴了几层。 + +[![](../images/thumbnails/2018-05-21-shui-bu-zhao-bo-wu-guan-005-japan-shopping-list-51xbNWoUI7L._SL1000_.jpg)](../images/2018-05-21-shui-bu-zhao-bo-wu-guan-005-japan-shopping-list-51xbNWoUI7L._SL1000_.jpg) + + +[无印良品洗澡刷](https://www.muji.net/store/cmdty/detail/4549337077560?searchno=12) +搓背用。好使。 + +[![](../images/thumbnails/2018-05-21-shui-bu-zhao-bo-wu-guan-005-japan-shopping-list-4549337077560_1260.jpg)](../images/2018-05-21-shui-bu-zhao-bo-wu-guan-005-japan-shopping-list-4549337077560_1260.jpg) + +## 护肤 + +[小林背部喷雾](http://amzn.asia/f1o4bXK) +我的背从来没有这么干净过。 +缺点是要长期喷,至少要喷个一两瓶才有效果,而且容易复发。但是真实有效。 + +[![](../images/thumbnails/2018-05-21-shui-bu-zhao-bo-wu-guan-005-japan-shopping-list-81bM3WxVcxL._SL1500_.jpg)](../images/2018-05-21-shui-bu-zhao-bo-wu-guan-005-japan-shopping-list-81bM3WxVcxL._SL1500_.jpg) + + +[资生堂眉钳](http://amzn.asia/7n4C9Ig) +不容易变钝。好看。 + +[![](../images/thumbnails/2018-05-21-shui-bu-zhao-bo-wu-guan-005-japan-shopping-list-31a3FxnF0EL.jpg)](../images/2018-05-21-shui-bu-zhao-bo-wu-guan-005-japan-shopping-list-31a3FxnF0EL.jpg) + + +[维氏指甲剪](http://amzn.asia/bxobO2y) +好看。不占地方。好看。锋利。好看。 +内附指甲挫。 + +[![](../images/thumbnails/2018-05-21-shui-bu-zhao-bo-wu-guan-005-japan-shopping-list-41N2XmzlsoL.jpg)](../images/2018-05-21-shui-bu-zhao-bo-wu-guan-005-japan-shopping-list-41N2XmzlsoL.jpg) + + +我的所有面部护理产品/底妆都是理肤泉的,就不列了……。 +新品卸妆啫喱(蓝色的)和BB霜很好用,可以看看。 + + +## 服饰 + +列几个喜欢/常买的牌子。(当然还有无印良品不过这个用不着写出来吧……。) + + +[芬理希梦](https://www.felissimo.co.jp/) + +早年在国内以500色铅笔出名,衣服/小件家具/杂货/手作课程都挺好的。最近开始卖男装了,好看得令我嫉妒。 + + + +[haco! ](https://www.haco.jp/) + +芬理希梦的副牌,合作款居多。似乎只有女装。 + + + +[乐天品牌街](https://brandavenue.rakuten.co.jp/) + +下面几个牌子都有,懒得一个一个注册会员的时候还蛮好用的。乐天系网站里惟一能看的(。 + + + +[united arrows](http://store.united-arrows.co.jp/) + +日系极简。主牌有些贵,副牌coen挺好买的当然也难看一些。 + + + +[urban research](https://www.urban-research.jp/) + +跟上面那个总分不清。有个叫SMELLY的指甲油/首饰副牌,哪儿都摆着,便宜好看。 + + + +[GLOBL WORK](http://www.dot-st.com/globalwork/) + +各方面来讲都介于优衣库和GU之间。 diff --git a/content/posts/2018-05-24-clothes-that-suit-and-clothes-that-push-you-forward.md b/content/posts/2018-05-24-clothes-that-suit-and-clothes-that-push-you-forward.md new file mode 100644 index 0000000..d818165 --- /dev/null +++ b/content/posts/2018-05-24-clothes-that-suit-and-clothes-that-push-you-forward.md @@ -0,0 +1,39 @@ +--- +author: loikein +published: "2018-05-24T17:33:00+02:00" +slug: 2018-05-24-clothes-that-suit-and-clothes-that-push-you-forward +categories: +- 随笔 +tags: +- エッセー +title: 似合う服・背中を押してくれる服 +--- +自分に申し訳ないが、昔の私は、ファッションセンスがあまりにも薄い子だった。そりゃそうだ。日本の諸君にはご存知ないかもしれないが、中国の子供たちは、小学校から毎日ジャージの制服を着なければならなくて、スカートやスーツ系の制服を持つ学校がほとんどなかった(だんだん変わってきたと思うけど)。高校を出てすぐ日本に来て、しかも私立大学に入った私にとって、まるでこれまでの人生が全部裸で過ごしたような気がした。 + + 母は痩せていた。毎日のようにワンピースを纏い、ハイヒールに乗り、薄化粧をし、短髪ながらも古風な美人だと周りの人に褒められる生活を送った。私はまさに彼女の正反対で、トムボーいで、喧嘩好きで、言うまでもなくスカートが大嫌いだった。 + + 本当は、スカートが嫌いな訳じゃなくて、スカート姿の自分が嫌いだった。足が太すぎて醜いからだ。人の目を怖がり、鏡を見る勇気すらなかった。足が太かった私は、ズボンを着るしか許されない人として生まれた。自分でも不思議だと思う。だって、日本に来て、どんなにぽっちゃりした子でも、足だけが必ず細く見えていた。日本人の足が細い、と私が断言できるのだ。しかし、ズボンを穿いても、必ずしも足が細く見えるには限らない。太さが無駄に強調されてしまうこともある。 + + ところが、私がジムに通い始めて、やっと痩せられた後でも、最初はスカートを穿く気がなかった。「慣れてない」からだ。あと、スカート姿の女の子は、なぜかプリンセスのような高貴の気品が漂って、自分とは別世界の人だと思っていた。 + + 年に一度帰省している。帰国するたび、母や知り合いの人たちに痩せたね!と言われる。私は日課で体重を測っているためレファレンスプイントが変わりつつ、まだまだ太ってるわよといつも答えた。 + + 3度目の帰省で、趣味で服を作っていた母は、急に一気に山ほどのワンピースをくれた。試着してと。 + + は?似合うもんか。 + + 試着してって。 + + その中の一番普通そうなのを手に取り、なんてこったと嘆いながら着替えて、家に唯一、全身鏡のある部屋に行った。その鏡もまた、高校に入ったから買ったもので、私のファッション知らずさの証であった。 + + 鏡の中に映っていたのは、とても痩せてるとは言えないが、紛れもなくプリンセスだった。私はその場で凍っていた。これが自分だと思えなかった。 + + 似合うんでしょ。お母さんが一番知ってるって。 + + …うるせ、と、私が返事して、無言でそのワンピースを脱いてスーツケースに詰まった。 + + やはり似合わないなぁ、と思って、東京に帰った後でも一回しかあのワンピースを着なかった。ハンガーラックに掛かれて眺められるしかなかった。だが、どうやらあれをはじめに、私はようやくスカートやワンピースに目覚めたのだ。成人以来初、ワンピースを着て学校に行くことも遂げられた。スカートだけではない。もう何年間も、夏では白とベージュで冬では黒、鮮やかな色を無意識に避けていたが、今年のある春の日に、人生初めてのイエローのコートを買って、そのまま着て帰る勇気も出られた。これもまた不思議だなと私は思う。 + + 無論、似合わない服を買えとは言ってない。お金をかけるものである以上(かけなくても)、似合わないと買うべきではない。だが、昨日の自分より、今の自分に、さらに、明日の自分の事を考えよう。過去の自分に似合う服より、未来の自分に似合う服を買おう。安心させられる、殻になってくれる服より、胸を張らせて背中を押してくれる服を買おう。 + + これを着て、今日も明日もその先も生き抜けるような、服を探そっか。 diff --git a/content/posts/2018-07-02-our-little-sister-by-hirokazu-koreeda.md b/content/posts/2018-07-02-our-little-sister-by-hirokazu-koreeda.md new file mode 100644 index 0000000..d969722 --- /dev/null +++ b/content/posts/2018-07-02-our-little-sister-by-hirokazu-koreeda.md @@ -0,0 +1,51 @@ +--- +author: loikein +published: "2018-07-02T11:06:00+02:00" +lastmod: "2021-04-24 21:25:03.155 +0200" +slug: 2018-07-02-our-little-sister-by-hirokazu-koreeda +categories: +- 感想文 +tags: +- 电影 +title: 琐碎的悲伤和快乐:是枝裕和《海街日记》 +--- +首发[豆瓣](https://movie.douban.com/review/9481862/) + +*** + +能力考前一天跟男友熬夜看 DVD,犹豫了一下没开字幕,好在基本上都听出来了。途中我大概号泣了两三次,男友(30)也一直在抽鼻子。这导演可能有麻木中年人泪腺杀手之类的外号。 +剧情布景镜头音乐都十分日式小清新(可能是死语了),一点家庭纷争和一点职人情怀当调料,总的来说是能推荐给所有人的电影,不过不适合合家欢,会有点尴尬。 + +片里的丝丝真可爱,角色设定自带的早熟、敏感、内敛气质表现得淋漓尽致,我从她身上看到了往日的自己,又看到了未来的我弟,然后不自觉地代入进三位姐姐们的视角。 +我是爱我弟的,我无论如何也不希望他受上一代的关系的影响,但事实和距离……事实和距离……。 +不知道该写什么,又想哭了。把四年前我给弟弟写的信贴一下吧。文笔不好,随便看看。 + +*** + +亲爱的小弟: + +恭喜你升入初中了,作为阿姐的我却远在异国。也好,反正我一向不擅长讲话,用打字来得更顺畅些。在这个没什么意义却又意义重大的关口,我有些话想跟你说。 + +坚持锻炼。首先,跑步。然后不会的运动可以学,三年下来就够看了。我的乒乓球就是初中学会的,你运动细胞比我好,别浪费了。 + +任何东西都可以尝试一下(除了违法)。每条校规各违反一次也 OK,不过大概你很快就会腻了。更重要的是,学会在走出最初的一步的时候,即使害怕,即使摸黑,也能够以更高更远的地方为目标。 +别怕。 + +最后,你从小感情细腻,所以大概早就意识到了我们之间的不同。我想说,虽然我们家过去和未来都有一大堆问题存在,我从来没有怨过你。我可能偷偷地嫉妒过你有父亲的陪伴,但那也只不过是,你知道,人总有充满负能量的时候。 +我不怨你,不怨父亲,也不怨你母亲。你很幸运能够在父亲身边长大,我也很幸运,能够毫无转换期地养成独立的习惯。也许你厌倦了不断被拿来跟我做对比,我也早已厌倦了母亲的抱怨。无论家庭如何,最重要的是,我们都很好,而且会一直、更加地好下去。 + +另外,记住家庭和童年影响并不是犯错的理由。随着年龄增长你肯定会更加深入地思考自己的人生。我并不建议你像我14年做过的那样把自己的思考/行动模式全部重建一遍,但对自己所接收到的一切信息持批判的眼光,在任何时候都不是一件伤天害理的事儿。面对任何事儿,停下来想一想再行动总不会错。 + +以后我们可能甚至三观都有所不同,但这也没关系。跟思考力相当的人交锋是一件很有乐趣的事儿。我期待着能和你讨论的那一天。 + +我都说了些啥? +坚持锻炼。 +多多尝试。 +别太在意我们的不同。 +批判地看待一切。 + +那么,虽然晚了很多年,祝你在人生这个游乐场里玩得开心,也别忘记时间。 + +姐姐 +2014.12.30 +于东京 diff --git a/content/posts/2018-07-03-new-journey.md b/content/posts/2018-07-03-new-journey.md new file mode 100644 index 0000000..60995ed --- /dev/null +++ b/content/posts/2018-07-03-new-journey.md @@ -0,0 +1,46 @@ +--- +author: loikein +published: "2018-07-03T12:13:00+02:00" +slug: 2018-07-03-new-journey +categories: +- 随笔 +tags: +- Essay +title: 新的起点/New Journey +--- +{{< row >}} +{{< col >}} +决定了要去德国读硕士,十月份开学,离开日本大概是九月中左右。憧憬了很久的多语言博客藉这个机会也可以(应该)开始写了。 +{{< /col >}} +{{< col >}} +I decided to go to Germany for my Master's study. The planned departure +from Japan is around September, and the school year will start in this +October. I think this is a good opportunity to start keeping a +multilingual blog, which I should but have been too lazy to do. +{{< /col >}} +{{< /row >}} + +{{< row >}} +{{< col >}} +这并不是一个容易的决定。在日四年,我好不容易习惯了这里的一切,找到了属于自己的生活方式和穿着风格,造好了杂乱舒适的房间,得到了一位值得毕生珍惜的好友,和可爱的男朋友。我爱上了这片冷漠又温情的土地,和她生养的民族。但是安全区令我变得迟钝,趁脑子里那个想要出去冒险的自己还没有完全沉默,再一次,我想出去看看。 +{{< /col >}} +{{< col >}} +This is never an easy decision. After four years in Japan, I am already +completely used to everything here. I've found my own lifestyle, built +my messy but comfort room, and met a great friend and my boyfriend who I +want to cherish for my whole life. I fell in love with this unique +country and nation that sometimes seems too cold but is always +welcoming. However, I also noticed that Japan has become pretty much a +comfort zone for me, and once more, I want to jump out of it before I +lose the soul of an adventurer. +{{< /col >}} +{{< /row >}} + +{{< row >}} +{{< col >}} +也许有一天我还会回来的。 +{{< /col >}} +{{< col >}} +I'm looking forward to coming back. +{{< /col >}} +{{< /row >}} diff --git a/content/posts/2018-07-06-applying-for-germany-student-visa-in-tokyo.md b/content/posts/2018-07-06-applying-for-germany-student-visa-in-tokyo.md new file mode 100644 index 0000000..1f440c1 --- /dev/null +++ b/content/posts/2018-07-06-applying-for-germany-student-visa-in-tokyo.md @@ -0,0 +1,135 @@ +--- +author: loikein +published: "2018-07-06T16:09:00+02:00" +slug: 2018-07-06-applying-for-germany-student-visa-in-tokyo +categories: +- 生活 +tags: +- 日本 +- 德国 +title: 在东京申请德国留学签证 +--- +本人不对任何人参考该页面造成的任何损失承担任何责任。 + +[德国大使馆的学生ビザ页面](https://japan.diplo.de/ja-ja/service/studium/992854#content_1)(非日籍用) + + +## 注意事项 + +> 准备文件之前先预约!!!! +> 学生ビザ申請の処理には25日程かかります。(后记:我等了一个多月) +> 滞在許可を受けた人は入国後速やかに外国人局に登録しなくてはなりません。 +> 最終的な滞在許可は入国後ドイツで発給されます。 + + + +## checklist + +- Web 版申請書1部 +- 長期ビザ申請書2部 +- 誓約書 +- パスポート用写真2枚 +- パスポート、コピー2部 +- 在留カード、コピー1部 +- 入学許可通知、コピー2部 +- 経済的能力の証明、コピー2部 +- 手数料:75ユーロ(后记:收了我九千多日元) + + + +## 各项注释 + +### Web 版申請書1部 + +[申根VIDEX页面](https://videx.diplo.de/videx/desktop/index.html#start) +填的途中可以划到最下面点「保存」导出 .json +文件,下次接着填的时候在顶上点「导入数据」。 +最后写完了存一下,然后在最右上语言改成英语,再导入,就可以下载德英双语表格了。要打印出来。 +有很多地方要签名!每一页都要看一下! +英文字母全大写(自动纠正) +日期格式:DD.MM.YYYY(斜杠会自动纠正成句点) + +2 联系方式 > 住址勾选「住址位于国籍以外的国家」 > +关于在居住地拥有的居留权的说明 > +居留权种类填「student」,号码填在留卡号码。 + +4 旅行信息 > 旅行信息 > +预计逗留天数最大只能填90天,但是我在预计入境/离境时间写了两年。 + +4 旅行信息 > 邀请方 > +种类:「邀请机构/公司」,填学校信息,联系人我写了 coordinator +的名字。 + +5 费用支付 > 支付方式:「支付逗留期间所有开支」(大概吧?因为要建一个 +blocked account,见经济能力证明一节) + + +### 長期ビザ申請書2部 + +[原本(德英双语)](https://japan.diplo.de/blob/944878/f0841cfd7bd6eceaa42ba0c7a5a1d9a3/longterm-application-data.pdf) +[日语翻译](https://japan.diplo.de/blob/944880/e5bf95ddab48a968971bc165a0e73878/longterm-japanisch-data.pdf) +这个 PDF,下载之后打开是表单,应该要稍微新一点的 PDF +阅读器才能直接在电脑上填(在国内有去打印店打不开表单的惨痛经历)。 +填完之后保存好,打印出来签名就可以了。只有最后一页要签名。 + +以下部分内容[参考了本页面](http://fs2ym.com/germany/225/how-to-fill-your-german-student-visa-application-form) + +1. Information on the applicant > Residence permit no. +填在留卡号码(也有可能不用写厄) + +2. 伴侣信息,3. 小孩信息,没结婚的不用填 + +6. Intended place of stay in Germany +宿舍还没定,这个我写不了,眼巴巴等着宿舍回我邮件 + +7. Do you intend to maintain your permanent residence outside the +Federal Republic of Germany? 选是,填国内家人的住址 + +9. Purpose of stay in the Federal Republic of Germany +最底下那个勾别打,不然只能呆12个月了 + +10. References in the Federal Republic of Germany:填学校信息 + +11. Trade or profession for which you trained:我填了最终学历,B.A. in +XXX (expected by 09.2018) + +12. Intended duration of stay in Germany: 10/2018 - 10/2020 + +13. What are your means of subsistence?:Blocked account opened at Sutor +Bank through Fintiba.(见经济能力证明一节) + + +### パスポート用写真2枚 + +去专门拍护照相片的写真馆,1600 日元洗两张(刚好够用)+ CD(可以给 U +盘要求帮忙存)。 +把[这个页面](https://japan.diplo.de/blob/944882/6e3eee9fd4d86e16aaefe0e92d809332/visafoto-data.pdf)打印出来给摄影师看看会比较保险一点。 + + +### 入学許可通知、コピー2部 + +就是学校的 PDF 录取信,我给了两份打印件。 + + +### 経済的能力の証明、コピー2部 + +[大使馆:滞在費用の証明について](https://japan.diplo.de/ja-ja/service/-/1035730#content_2) +参考以上页面里的描述,可以用 Fintiba 或者 X-Patrio +网上直接开冻结账户(blocked account)。 +这个账户一次性是要电汇一大笔钱,然后每个月会解锁七百欧元。但是在德国要另外开一个转账用的账户才能把钱取出来。还没办好,下次再写。 + +我看到 [Fintiba](https://www.fintiba.com/) 有个 [Fintiba +Plus](https://www.fintiba.com/plus-blocked-account-health-insurance/) 包括健康保险,就办了,没想到入学注册的时候居然就用到了它给我的一个文件(公立保险 +DAK 的证明书)。还是挺有用的。 +注册的时候要本人确认,方式是打视频电话,要举着护照左右晃一下确认上面的防伪标志。到德国之后发现这是本人确认的主流方式。 + +电汇之后就会收到一个 PDF 叫 Visa Application Documents,把里面抬头是 +German Embassy Tokyo 的页面打印两份就可以了。 + + +## 然后 + +等。我等了五个星期才收到通知,还不是马上能取,结果机票改签了两次(写在另外一篇博文里)。 +取了就……赶紧飞德国吧。在飞机上提前对好时间,多睡觉,来饭了就吃,阿联酋航空的甜点很好吃的。 + +一路顺风! diff --git a/content/posts/2018-09-18-me-vs-tables-in-ulysses.md b/content/posts/2018-09-18-me-vs-tables-in-ulysses.md new file mode 100644 index 0000000..9adefc3 --- /dev/null +++ b/content/posts/2018-09-18-me-vs-tables-in-ulysses.md @@ -0,0 +1,46 @@ +--- +author: loikein +published: "2018-09-18T18:03:00+02:00" +slug: 2018-09-18-me-vs-tables-in-ulysses +categories: +- 笔记 +tags: +- iOS +- macOS +title: 跟 Ulysses 死磕表格的懒人 +--- +首先在文档顶部粘贴一个定义表格边框的 CSS style。我自己写了一个,随便用不需要授权。 + +展开版:[GitHub Gist](https://gist.github.com/loikein/b4236d258e3f24fa1647dbb5ed49878e) +最小版:[GitHub Gist](https://gist.github.com/loikein/82a47ae3f7ab31b7e45e1332a6c5ecf8) + +```html + +``` + +然后用 [HTML Tables +Generator](https://www.tablesgenerator.com/html_tables) 生成表格,勾选 +Do not generate CSS 和 Compact mode,复制结果。 + +在 Ulyesses 里打 `~~`(插入源码块),粘贴刚才生成的表格源码,预览。 + +最近在学德语,做了一个冠词对照表。 +表格源码: + +```html + + + + + +
the - a masculine  feminine neuter
1 がdereindieeinedasein
2 のdeseinesdereinerdeseines
3 にdemeinemdereinerdemeinem
4 をdeneinendieeinedasein
+``` + +Ulysses 预览截图: + +![](/post-img/2018-09-18-me-vs-tables-in-ulysses.png) diff --git a/content/posts/2018-09-20-new-instagram-widget.md b/content/posts/2018-09-20-new-instagram-widget.md new file mode 100644 index 0000000..82a375b --- /dev/null +++ b/content/posts/2018-09-20-new-instagram-widget.md @@ -0,0 +1,25 @@ +--- +author: loikein +published: "2018-09-20T13:34:00+02:00" +lastmod: "2021-04-24 21:34:05.155 +0200" +slug: 2018-09-20-new-instagram-widget +categories: +- 笔记 +tags: +- Blogger +title: 更新了 Instagram widget +--- +(已经移除) + +新挂件:[SnapWidget](https://snapwidget.com/) +好处(free plan): + +- https +- hover 效果 +- 没有嵌入式广告 + +不满:无法直接跳转至原页面(旧挂件也是一样) + + +旧挂件:[WEBSTA WIDGETS](https://widgets.websta.me/) +(Free plan 不支持 https) diff --git a/content/posts/2018-09-20-sleepless-museum-006-vending-machines-at-waseda.md b/content/posts/2018-09-20-sleepless-museum-006-vending-machines-at-waseda.md new file mode 100644 index 0000000..99f81bb --- /dev/null +++ b/content/posts/2018-09-20-sleepless-museum-006-vending-machines-at-waseda.md @@ -0,0 +1,16 @@ +--- +author: loikein +published: "2018-09-20T14:23:00+02:00" +lastmod: "2021-04-15T14:56:00+02:00" +slug: 2018-09-20-sleepless-museum-006-vending-machines-at-waseda +categories: +- 睡不着博物馆 +tags: +- 网页制作 +- 日本 +title: 睡不着博物馆 006:早稻田大学的自贩机 +--- +睡不着博物馆第一次拥有了独立网站! +这是我自己作的第一个完整网站,由七个静态页面组成,全日语,没有翻译计划。 + +观赏:[自販機@早稲田](https://playground.loikein.one/vending_machine_at_waseda/) diff --git a/content/posts/2018-09-22-syntax-highlighting-in-blogger.md b/content/posts/2018-09-22-syntax-highlighting-in-blogger.md new file mode 100644 index 0000000..00293bd --- /dev/null +++ b/content/posts/2018-09-22-syntax-highlighting-in-blogger.md @@ -0,0 +1,49 @@ +--- +author: loikein +published: "2018-09-22T17:03:00+02:00" +lastmod: "2021-04-24 22:53:27.317 +0200" +slug: 2018-09-22-syntax-highlighting-in-blogger +categories: +- 笔记 +tags: +- Blogger +title: 博文代码高亮及针对 Blogger 的显示优化 +--- +Update 2021.04.24 + +搬到 Hugo 以后就不需要用这个了。 + +*** + +Update 2018.11.16 + +行内高亮已于 2018.11.13 加入默认 CSS,用 `` tag +围起来就可以了。 + +一劳永逸的多行高亮解决法:[GitHub Gist](https://gist.github.com/) +本文到这里就停止更新了(大概) + +*** + +写了[跟 Ulysses 死磕表格的懒人](../2018-09-18-me-vs-tables-in-ulysses/)后的继续死磕…… + +~~多行代码高亮工具:[hilite.me](http://hilite.me/)~~(已经失效) + +注意:贴了代码后就不可以再转回 WYSIWYG 编辑器了,必须留在 HTML 编辑器。 + +优化规则: + +1. 超过 10 行的,在行号 1 前面插入 ` ` +2. 表格第一行 ``中的 `
` 的 margin 改成 `0 1em 0 0`,不足
+    10 行的改成 `0 1em 0 0.5em`
+3.  代码缩进:` `
+
+Inline code beautifier(2018.11.13 已加入默认 CSS):[GitHub Gist](https://gist.github.com/loikein/8aa4c838a5f7053a9ecbf66f65b3aa8d)
+
+```css
+.post-body code {
+  color: var(--code);
+  background: var(--grey);
+  padding: 0.2em;
+}
+```
diff --git a/content/posts/2018-09-24-on-packing.md b/content/posts/2018-09-24-on-packing.md
new file mode 100644
index 0000000..4ad0e4c
--- /dev/null
+++ b/content/posts/2018-09-24-on-packing.md
@@ -0,0 +1,20 @@
+---
+author: loikein
+published: "2018-09-24T15:56:00+02:00"
+slug: 2018-09-24-on-packing
+categories:
+- 随笔
+tags:
+- エッセー
+title: パッキングについて
+---
+まだビザが届いていないけど、パッキングし始めた。  
+日本に来た日から、密かにこの日を待っていた。私は日本を離れるため日本に来て、また日本に帰るため日本を出る。持ち物を最小限にして、捨てまくって、この日を待っていた。だがまだまだパッキングに丸一日をかける(終わってない)。  
+  
+パッキングをして、自然にこれまでの人生を振り返ってしまう。あの物を買った・貰った・壊した・捨てられなかったあの時の相手や気持ち、時には BGM も思い出す。パッキングは、人生の段取りだ。  
+  
+私の人生は、常に移動して、移動する度にはパッキングする。高校時代は寮生活で、年に一回部屋を変えるっていう不思議なシステムがあって、また学期末にはすべての荷物を持って帰らないといけなかった。非常に多くて重い本を移動するお祭りが、あの三千人も住んでる公立高校に年に二回開催してある。  
+日本に来た時は、预かりのスーツケース 2 つと、手荷物のスーツケース 1
+つと、バックパックを持って来た。寮の契約が終わって引越しした時は業者さんにお願いして、軽トラックで移動。年に一回帰省する。途中友人が海外から来て、一年間一緒に住んでて、海外に帰る時にも手伝った。移動し続ける四年である。  
+友人に聞くと、スーツケースのパッキングはしたことないらしい。そりゃそうだ。海外に引越ししない限り、デカイスーツケースを使う機会がないと思う。私のように更に他の国に行くのは、日本人にとっては非常に大変かと思う。  
+だが、私には移動して、パッキングする。帰れないホームランドを持つ人の運命である。
diff --git a/content/posts/2018-09-25-behind-the-eyes-of-a-goldfish.md b/content/posts/2018-09-25-behind-the-eyes-of-a-goldfish.md
new file mode 100644
index 0000000..b9f4d5d
--- /dev/null
+++ b/content/posts/2018-09-25-behind-the-eyes-of-a-goldfish.md
@@ -0,0 +1,17 @@
+---
+author: loikein
+published: "2018-09-25T09:45:00+02:00"
+slug: 2018-09-25-behind-the-eyes-of-a-goldfish
+categories:
+- 随笔
+tags:
+- エッセー
+title: 金魚の瞳の向こうから
+---
+金魚と名乗るのはもう長い。一番の理由としては、私の記憶が悪いからだ。基本的に何も覚えられないから、携帯かノートがなければ廃人になる。まさに金魚である。
+
+でもそれだけじゃない。平日にはメガネを掛けてない時が多いので、目がいいと思われがちだが、実に目が悪い。片方が遠視で片方が近視(になった。元々は両方遠視)で、乱視で、物が立体的に見えない。本を読むことに大きい支障がないから、面倒くさくてメガネをあまり掛けないだけだ。金魚の目だ。
+
+金魚の目が持って、とある利点に気づいてる。立体的に見えないからこそ、目に映ってる景色がカメラと一致てるんだ。左目だけで世界を見てるので、カメラを左目にくっつくと、思う通りの絵が撮れる。ていうか、見てる物がそのままに写真になる。見ること自体が構図を探すことになる。最高。生まれてからずっとこうして写真を撮ってきたから、最初は知らなかったが、幼稚園の頃から母より写真が上手かったエピソードがある。最近はだんだん、立体視覚がある(ほとんどの)人たちが可哀想に思い始めた。
+
+金魚の目を通して、私は一刻も止まらずにこの世界を目で撮っている。常に景色と構図を意識して、絵を探してる。金魚の目は、芸術家の目だ。
diff --git a/content/posts/2018-09-29-dummy-s-guide-to-selling-second-hand-in-tokyo.md b/content/posts/2018-09-29-dummy-s-guide-to-selling-second-hand-in-tokyo.md
new file mode 100644
index 0000000..3e346f7
--- /dev/null
+++ b/content/posts/2018-09-29-dummy-s-guide-to-selling-second-hand-in-tokyo.md
@@ -0,0 +1,65 @@
+---
+author: loikein
+published: "2018-09-29T14:30:00+02:00"
+slug: 2018-09-29-dummy-s-guide-to-selling-second-hand-in-tokyo
+categories:
+- 生活
+tags:
+- 日本
+title: 在东京卖二手物品的懒人指南
+---
+写给瓜总。  
+一切基于个人经历,仅供参考。想到随时追加。  
+  
+
+## 服饰
+
+卖衣服我一般去 [mode-off](https://www.hardoff.co.jp/modeoff/) 的店头,常去吉祥寺和秋叶原(都离电车站比较远)。似乎可以[宅配买取](https://www.hardoff.co.jp/offer/)(合并 hard-off),但是要下 app,看起来有点麻烦。  
+价格一般是 10 元,品牌物可以上千,不收的 1 元。  
+  
+还去过 [2nd street](https://www.2ndstreet.jp/static/index/purchase) 的店头,不过他们家的买取价格比较低,而且不收的衣服会要求你拿走。  
+(顺便,他家卖非常多好看的包,价格也好。)  
+  
+
+## 动漫周边/游戏/游戏机
+
+我用得最多的是[骏河屋买取](https://www.suruga-ya.jp/man/kaitori/kaitoritop.html)(宅配)。什么都收,但是本子给价特别便宜,有些厚本甚至都会出价 0 元。  
+事先登录一下,然后要填一个申请表格,填上一共有多少点(不小心先打好包了就会很麻烦,要先数好),随附一个身份证件复印件,寄过去就好了。可以到付(30 点以上或总价 3000 元以上免送料,但是总价你寄过去之前是不知道的,所以还是 30 点放心一点)。  
+需求量大的周边会有提前报价,不过东西多了总是懒得一个一个查。  
+  
+
+## 书
+
+用过 book-off 的[宅本便](http://www.bookoffonline.co.jp/files/selltop.html?xadid=cp00023&utm_source=boc&utm_medium=site&utm_content=SE_Method_sell8&utm_campaign=none),还行。  
+有利用条件:10 本以上书或者 3 张以上碟或者 1 点 1000元的东西(同上,寄过去之前是不知道确切价格的)。  
+  
+还用过 Amazon
+的古本买取,不过现在已经换了承包商,看起来貌似是什么都能卖的,[可以看看](http://www.bookoffonline.co.jp/files/selltop.html?xadid=cp00023&utm_source=boc&utm_medium=site&utm_content=SE_Method_sell8&utm_campaign=none)。  
+  
+如果只想处理掉不在乎钱,还有一个慈善性质的[早稲田古本募金](https://www.furuhon-bokin.jp/waseda/),不过我没用过。  
+  
+
+## 钢笔墨水
+
+在 [Kingdom Note](https://www.kingdomnote.com/html/kaitori/index.html)(宅配)卖了不少,也买了不少。价格还不错,不是特别稀有的话带原盒似乎能贵一点。  
+有店头,不建议去。一大堆钢笔闪晶晶地放在那儿,就会很想买。  
+  
+
+## 音像制品
+
+整天陪宅神去秋叶原的 [e-イヤホン](http://www.e-earphone.jp/kaitori/),每月 5、15、25 日店头买取会贵一点,宅配不知道。  
+  
+
+## 电脑/手机
+
+果粉当然是选择 [Apple GiveBack](https://www.apple.com/jp/trade-in/),不需要任何配件,当场交换 gift card。  
+  
+
+## 相机
+
+专门店我只知道一个 [Map Camera](https://www.mapcamera.com/ec/assessment),跟 Kingdom Note 是一家。  
+  
+
+## 其他电子产品/乐器
+
+去过 [hard-off](https://www.hardoff.co.jp/hardoff/) 店头,价格一般,好处是几乎什么都收。宅配没试过。
diff --git a/content/posts/2018-10-01-new-tab-notepad.md b/content/posts/2018-10-01-new-tab-notepad.md
new file mode 100644
index 0000000..32764e2
--- /dev/null
+++ b/content/posts/2018-10-01-new-tab-notepad.md
@@ -0,0 +1,15 @@
+---
+author: loikein
+published: "2018-10-01T16:49:00+02:00"
+slug: 2018-10-01-new-tab-notepad
+categories:
+- 笔记
+tags:
+- 网页制作
+title: 浏览器中的新标签页笔记本
+---
+以前一直在用这个,今天被更新的 Opera 覆盖掉了,自己研究一个看看。  
+`text/html,`  
+  
+参考网址[点我](https://coderwall.com/p/lhsrcq/one-line-browser-notepad)  
+最终版代码:(全选复制,贴进浏览器地址栏即可用)
diff --git a/content/posts/2018-10-03-seven-day-tour-of-capsule-hotel.md b/content/posts/2018-10-03-seven-day-tour-of-capsule-hotel.md
new file mode 100644
index 0000000..cee5db7
--- /dev/null
+++ b/content/posts/2018-10-03-seven-day-tour-of-capsule-hotel.md
@@ -0,0 +1,105 @@
+---
+author: loikein
+published: "2018-10-03T14:44:00+02:00"
+slug: 2018-10-03-seven-day-tour-of-capsule-hotel
+categories:
+- 生活
+tags:
+- 日本
+title: 胶囊七日游日记
+---
+## 必需品
+
+- 双头插头
+- 水杯(吃药,刷牙)
+- 洗面奶
+- 起泡网
+- 洗衣网
+- 衣架(挂毛巾、起泡网、内裤)
+
+## 2018.09.26
+
+清空公寓,把去德国的行李搬到了胶囊旅馆。旅馆离机场近,交通也很方便,回学校只需要换乘一次。  
+一大一小两个箱子放在前台,背包放在胶囊里。只有一个插座,还好我带了双头插头,这样晚上睡觉的时候也可以给手表充电了。  
+出门吃饭。楼下就是居酒屋,走路两分钟有一家很好吃的荞麦面。  
+洗澡。旅馆提供一条毛巾,沐浴液什么的都有,共用吹风机不错,但是没有衣架。待会儿去找找附近有没有全家,买个无印的衣架子。或者去无印买个旅行洗衣套装。  
+  
+
+## 2018.09.27
+
+跟 Kohei 和精英小组吃饭。见了老板,但是没拍成照,约了明天。
+
+停煤气。公寓里现在只剩垃圾了。最后剩下的手续:出发前把保险证寄出去,更换邮政银行的地址(需要证明,搞不了),以及把存折托付给瓜总。  
+晚上跟瓜总吃饭,把 wifi 机给了她。瓜总真是好人。  
+洗脸的时候发现没有起泡网还真是很不方便。明天得去买了。以及全家没有无印的衣架子。  
+  
+
+## 2018.09.28
+
+太忙了没写成,这是 29 号补的。  
+去秋叶原卖掉了 Kindle、电子词典、皮帽子、两个旧钱包。买了耐克的防水外套。  
+去银座买了无印的衣架子、起泡网,还有理肤泉的面霜和小罐装喷喷。  
+回学校,跟 ICC 的 Chris 告别。我居然以前不知道他名字,还问了。  
+跟老板拍了照,跟精英小组上最后一节课,给 Kohei 拍宣传片(没拍成)。  
+晚上跟瓜总吃饭,把存折给了她,得到了一台华为 P9。收到了 Softbank
+寄来的机器回收袋子,去新宿邮局(24 小时)寄出去了。  
+回家扔了可燃垃圾。  
+  
+
+## 2018.09.29
+
+前天晚上忘记关电脑 Wi-Fi,结果今天打开只剩 80% 电了。以后要记得关上。
+
+去秋叶原卖掉了两个西铁城的太阳能表和 Thunderbolt 的转接头。
+
+回到 Kurikuri 吃三明治套餐。
+
+晚上吃罗森,洗衣服(+ 烘干 400 块)。住宿第四天,得到了一条新浴巾。
+
+待会儿要给瓜总写卖二手攻略。(写完了)
+
+  
+
+## 2018.09.30
+
+扫描剩下的文件(还剩一点)。解约家财保险。
+
+去秋叶原买了电脑冷却贴片。  
+回落合扔垃圾。  
+跟瓜总吃本格熊猫。今天不知为何又走了一万步。  
+  
+
+## 2018.10.01
+
+扫描完了剩下的文件。  
+见了 Ritsu。在竹下通闲逛,吃了章鱼烧和很长的薯条,去豆柴咖啡,去 HM
+试衣服。  
+回来之后在楼下吃了カツ丼,非常好吃……。终于吃到了好吃的米饭了,感动。  
+忘记扔垃圾了,明早一定要早起回去扔。  
+  
+
+## 2018.10.02
+
+Visa 还没来。
+
+早上去扔垃圾。在 Kurikuri 呆到收钥匙的人来,然后交了钥匙。
+
+晚上跟瓜总吃烧鸟,然后去サンマルク吃芭菲。读德语书。
+
+回旅馆延长住宿到 6 号早上。跟刚好在柜台的老板聊起来了,得到了名片。
+
+得到了第三条浴巾。  
+改了波恩的旅馆,订了下周的日本的旅馆。
+
+  
+
+## 2018.10.03
+
+改了机票。  
+给学校发邮件,还没回复。  
+看德语书,把单词总结到 flashcard 里,过了一遍。还可以,不太难记。看完 part 3 之后就该买下一本书了。  
+洗衣服(400 块)。  
+  
+这篇七日游记到这里就结束了,但是我还被困在日本。  
+总结一下,胶囊旅馆比较容易睡着(大概是二氧化碳浓度太高),需要自己准备的东西不多,但是如果没有就会很麻烦。  
+接下来就真的随缘了。
diff --git a/content/posts/2018-10-06-what-will-a-woman-do-for-her-confidant-by-yu-jin-peng-xiang.md b/content/posts/2018-10-06-what-will-a-woman-do-for-her-confidant-by-yu-jin-peng-xiang.md
new file mode 100644
index 0000000..e9e15f3
--- /dev/null
+++ b/content/posts/2018-10-06-what-will-a-woman-do-for-her-confidant-by-yu-jin-peng-xiang.md
@@ -0,0 +1,21 @@
+---
+author: loikein
+published: "2018-10-06T16:42:00+02:00"
+slug: 2018-10-06-what-will-a-woman-do-for-her-confidant-by-yu-jin-peng-xiang
+categories:
+- 感想文
+tags:
+- 读书
+title: 人生的幸与不幸:御井烹香《女为悦己者》
+---
+本来前天想写,但是最后没写成。收到邮件说签证办下来了,也许行文中就会少了些卖惨,但是我尽量保证这个博客里的我是真实的。  
+看这文,一边看一边回想我活过的这二十年,其实真的有记忆的部分不过一半,但经历也已经比常人要多一些,不免对他们产生亲近感。女主的滥好人也跟我自己几乎一模一样,代入感非常强。  
+  
+我至今没有搞清楚一个人的幸运或者不幸应该怎样划分。  
+说我幸运,那的确是很幸运,家里算个半大不小的书香门第,接受了省内最好的非应试教育,还能出国读大学、读研,甚少为经济烦恼,一路上也不乏老师朋友,皮相不算突出但也不丑,脑子也不错。我过的生活,大概是许多人所不敢想象的。但是我的不幸,又在于对这一切看得太透,不屑却也放不下。  
+我着实热爱这个我不屑一顾的世界。从小学起我对我妈就像现在这样又爱又恨,她和父亲的虚伪,她给我的压力,上大学后终于爆发的抑郁症,我与她日渐趋同的面容。我不知道她还能给我什么,她没给我什么,她让我几乎每天都活在对明日的恐惧里,她是朱诺和赫拉。  
+至于父亲……  
+  
+胡悦和师老师是不幸的,他们都走过了惨到不行的前半辈子,原生家庭四分五裂,几乎不剩一点温情。他们也是幸运的,遇到彼此之后慢慢改变,坚定和理智相互碰撞,最后也(勉强)与过去达成了和解。  
+  
+我也可以吗?
diff --git a/content/posts/2018-10-08-disperse-from-japan-the-right-way.md b/content/posts/2018-10-08-disperse-from-japan-the-right-way.md
new file mode 100644
index 0000000..12071d5
--- /dev/null
+++ b/content/posts/2018-10-08-disperse-from-japan-the-right-way.md
@@ -0,0 +1,107 @@
+---
+author: loikein
+published: "2018-10-08T16:08:00+02:00"
+slug: 2018-10-08-disperse-from-japan-the-right-way
+categories:
+- 生活
+tags:
+- 日本
+title: 日本から正しくない退散する手順
+---
+退散してみた。  
+見出しの時間はやらないと遅れる(損する・めんどくさくなる)デットラインです。日本はネットが発達してないのでお急ぎを!  
+ネットショッピング退会とかクレカ退会とか、もっといろいろあるはずだがやってないので書きません。  
+  
+
+## 1 ヶ月前まで
+
+> マンションの管理会社さんへ解約通知書を送る
+
+早めに送らないとねえ、余計に 1 ヶ月分の家賃が請求される。  
+
+> ついでに住宅保険も解約する
+
+契約書にネットからできないと書いてるのに、ネットからできた。調べた方がいい。  
+お客様番号が必要になってくるので契約書を撮っとくと便利。  
+
+> 毎週収集されないゴミを出す
+
+金属とか電池とか。  
+プリンターのカートリッジは大学の生協に収集されている。  
+
+> インターネット回線の退会
+
+Softbank
+はショップに行くことです。インターネット業者さん(大手)はしつこいので多分みんなそうであろうと。  
+早く行かないと余計に 1
+ヶ月分(下略)。工事が必要かはケースバイケースだそうです。  
+レンタル機器の回収は回収キットを郵送しきてから、返送することになるので(どうしでもこれしかない)早めに手続きするべき。早めに。  
+違約金が請求される。しょうがない。  
+
+> 携帯も早めに退会すると便利かも(退会してない。また来るし)
+
+  
+
+## 2 週間前まで
+
+> 水道・ガス・電気の閉栓を依頼する
+
+全部、お客様番号が必要である。大体ネットからできる。  
+2018 年 9
+月現在、ニチガスは電話しかできないので、早めに電話する必要がある(平日のみ)。  
+立会いが希望しないと言っとくと便利。大体、料金が口座引落であると立会いが要らない。なおニチガス立会いが必要。日本なのでしょうがない。  
+
+> 区役所に転出届を出す
+
+当たり前のようだが区役所は平日しかやってない。  
+
+> 卒業した人は 在留資格の喪失(!)を届ける
+
+[法務省:活動機関に関する届出](http://www.moj.go.jp/nyuukokukanri/kouhou/nyuukokukanri10_00014.html)を見てもわからん。とりあえず:  
+
+1.  [ネットシステム](https://www.ens-immi.moj.go.jp/NA01/NAA01SAction.do)に登録する(「中長期在留者はこちら」を押すとページの下に「認証ID発行」があるので押して入力する)
+2.  「利用者情報登録完了のお知らせ」というメールが来る
+3.  ログインして、「活動機関からの離脱があった場合」「離脱」を押して入力する
+4.  「届出情報受付完了のお知らせ」というメールが来る
+5.  しばらくして、「届出情報本登録完了のお知らせ」というメールが来る
+6.  おしまい!
+
+  
+
+## 1 週間前ぐらい
+
+> 郵便局に転居届を出す
+
+[ネットからもできる](https://welcometown.post.japanpost.jp/etn/)けどよっぽどめんどくさい(2
+年前の記憶)。
+
+本人確認が必要です。印鑑が必要です(外国人だからサインで済んだけど一応これでも外国人です)。
+
+新しい住所の証明書がいらないので、友達っちに転送してもらえる(しっ!)。
+
+> ゆうちょ銀行に転居届を出す
+
+郵便局とは同じ所だが新しい住所の証明書が必要になってくる。
+
+> 荷作り
+
+わ す れ て た!
+
+航空会社の預かり荷物上限をチェックしましょう。
+
+  
+
+## 当日
+
+> 保険証を郵送する
+
+ 区役所で封筒をもらったはずです。もらってないあなたはそのまま帰国しなさい。どうせ使えなくなるのだ。  
+
+> 空港はどっちか確認する
+
+成田に行っちゃったあなたは自業自得です。  
+
+> 在留カードに穴を開けてもらう
+
+と言われた。まだ当日が来てないのでわからん。  
+(後日:本当でした。)
diff --git a/content/posts/2018-10-21-the-tenth-day-in-bonn.md b/content/posts/2018-10-21-the-tenth-day-in-bonn.md
new file mode 100644
index 0000000..89565cb
--- /dev/null
+++ b/content/posts/2018-10-21-the-tenth-day-in-bonn.md
@@ -0,0 +1,78 @@
+---
+author: loikein
+published: "2018-10-21T12:50:00+02:00"
+slug: 2018-10-21-the-tenth-day-in-bonn
+categories:
+- 生活
+tags:
+- 德国
+title: 波恩第十天:吃住,交通,逛街,看病
+---
+值得纪念的第一篇关于德国(实地)的博文。  
+唇炎犯了,本来预定去取包裹也没到,结果宅了一整天,做点创造性的工作弥补一下,应该也能给未来的自己一点笑料。目前德语只会说你好谢谢(连再见都不会)。  
+  
+
+## 吃住
+
+最便宜的应该是自己做饭,但我还住在青旅,不是很想用公共厨具。  
+有课的日子就在食堂(Mensa)或者教学楼里的小卖部买个三明治(2 元左右),学校里面的东西都比较便宜。主校区外边还有些便宜的咖啡店,面包也好吃。  
+没课的时候就去随便什么超市买点吃的,我一般都去离青旅最近的 REWE。饭点的超市通常有卖热乎的汉堡之类的(3~5 元),可以吃吃。或者买切片面包自己夹点芝士什么的。  
+  
+可以直接喝自来水,我每天就带个空瓶去学校厕所装水喝。  
+瓶装水不贵,可以喝喝。喝完的瓶子不要扔也不要压扁,去大点的超市里有个叫 Leergut 的角落,放进机子里回收就能拿到代金券。普通矿泉水瓶能换个 0.25 元什么的。  
+气泡矿泉水很多,没有气泡的瓶子上会写一个 still。  
+  
+租房好像挺麻烦的,尽量住宿舍吧。宿舍有个 dorm basic set,好像 60 元包括了锅碗瓢盆和衣架之类的生活必需品,下周去签合同的时候可以问一下。  
+  
+还没办落户(Anmeldun),好像是可以直接去政府办的。[官网在这里](http://www.bonn.de/rat_verwaltung_buergerdienste/buergerdienste_online/buergerservice_a_z/00627/index.html?lang=de),[点这里预约](https://netappoint.de/ot/stadtbonn/?company=stadtbonn),底下有要选理由的,把
+Meldewesen 里的第二个的数字改成 1 就行了。  
+落完户之后还要去续签证,这个需要提前一个多月预约。[官网在这里](http://www.bonn.de/rat_verwaltung_buergerdienste/buergerdienste_online/terminreservierungen/index.html?lang=de)。  
+  
+
+## 交通
+
+交通很方便,但是买票很麻烦。凭本地学生证可以免费坐除了 ICE(高铁)之外的交通,于是入学后我都没买过票。问题是入学前。  
+科隆-波恩的公共交通是同一家,有地铁、路面有轨电车、巴士和跨城铁路(好像有两种)。所有车厢里都有长得一模一样的彩色报站屏幕,可以看下三站。  
+地铁和电车的线路编码是连续的,比如 61 号线是电车,16/63/66 号线是地铁,换乘的时候 Google map 不会提醒你要出站,就要看清楚到底是什么线路。  
+巴士路线是三位数。  
+市中心站叫 Hbf,Köln Hbf 和 Bonn Hbf(这是波恩惟一有英文报站的站)。  
+  
+车站里和地铁里都有红色的卖票机,但是超难用。[在这里](https://www.vrs-ticketshop.de/en/home/)可以在线买票(英语网页)。第一次买需要注册,填信用卡。  
+买票的时候要选 price zone,1b 就是整座城市,从科隆到波恩是 4,[具体看这里](https://www.faf-messe.de/files/dh/Content/Downloads/Anfahrt_und_Verkehr/en/Cologne_GesamtnetzplanFlyer_engl.pdf)。买完票打印出来,上车好像需要刷一下激活的,我还没试过。  
+也可以在[官方的换乘 app](https://itunes.apple.com/de/app/auskunft/id398472681) 或者[德国铁路的 app](https://itunes.apple.com/us/app/db-navigator/id343555245?mt=8)
+里面搜路径直接买票,搜的时候会告诉你 price zone。但是买票界面是德语的,我看不懂。(这两个当作纯粹的换乘 app 还挺好用的。)  
+  
+
+## 逛街
+
+中心市场区(Markt)还挺好逛的,可以在 Hbf 或者 Universität/Markt
+下车。  
+本地人的信用卡上面都带芯片,POS 机一般是插卡的,店比较小的话店员就不懂操作刷卡,自己刷一下,磁条靠内侧。  
+还有就是大楼的进去一楼叫 Erdgeschoss(ground floor,我叫 0 楼),上楼才是 1 楼。  
+大商场一般开到晚上八点,周日不营业。  
+  
+最近 Hbf 在装修,上缓坡扶手梯,左手边上台阶就是购物街,右手边出去就是火车站。  
+出去之后直走大概一两分钟,过了 H&M,左手边有个标志是深蓝色的百货叫
+[Karstadt](https://www.karstadt.de/on/demandware.store/Sites-Karstadt-Site/de/Stores-Details?StoreID=001353&src=90L100001)(Google Map 上说中文是卡尔施泰特商场),门口有个大叔卖香蕉卷饼。  
+还可以,比较小,可以拎一个购物袋逛完整栋楼再结帐。0 楼有手表、化妆品、包、文具、打折区,1 楼有手工用品,顶楼有餐厅和厕所(一次 0.5 元)。忘记几楼了,有很大的小家电和厨具区,双立人什么都有,还有欧乐 B 的所有款的电子牙刷。  
+Karstadt 门口有几家药店,挂着绿十字和蛇杖标志,里边的店员会说英语。  
+  
+再往前走一点好像有个贝多芬纪念碑,不太起眼。  
+穿过广场右边有个标志是绿色的 [Galeria](https://www.galeria-kaufhof.de/filialen/bonn/),我路过几次都以为是超市,结果是一家超大的百货店,逛断腿。需要每层单独结帐。  
+0 楼是化妆品香水手表,有 Sephora、Benefit、很小的 Body Shop、资生堂、Urban Decay 等等等等的专柜,香水区好像男香比较多。1 楼箱包鞋子,顶楼文具和运动户外用品,有很多萌萌的日历,跑鞋打折可以看看过个瘾。  
+  
+出门过第二家 H&M(……)和 ZARA,穿过广场,有个叫 [Thalia](https://www.thalia.de/shop/home/filialen/showDetails/5090/) 的书店。啊!这里我必须放图了。(图片来自官网)  
+
+[![](../images/thumbnails/2018-10-21-bo-en-di-shi-tian-chi-zhu-jiao-tong-guang-jie-kan-bing-5090tf01-01-10.jpg)](../images/2018-10-21-bo-en-di-shi-tian-chi-zhu-jiao-tong-guang-jie-kan-bing-5090tf01-01-10.jpg)
+
+超震撼。这个 0 楼正中央有些小圆台子放着各种文创,非常好玩。地下有漫画区,有恋如雨上和
+Citrus,还有进击的巨人之类的大众作品。隔壁放着哈利波特大头手办。  
+上楼左边有德语教材(DaF),我买了个能转的动词变位卡,2 元。  
+  
+附近好像还有贝多芬故居,穿过北边的街道有个[漫画书店](https://www.comicshop.de/),不过太晚了我没去。  
+到了这里就离 Universität/Markt 比较近了。也有两个出口,我还没搞清楚怎么区分,不过一个出去是购物街,一个出去是草坪和教学楼的廊桥。出错了就回头吧,在路上走不清楚。  
+  
+
+## 看病
+
+急病可以去市郊的 [LVR-Klinik](http://www.klinik-bonn.lvr.de/de/nav_main/startseite.html) 看,从 Hbf 有路面电车直达。但是不是急病看不了,需要一个家庭医生。等我联系上了一个再更新。
diff --git a/content/posts/2018-11-11-solve-time-machine-error-while-copying-files.md b/content/posts/2018-11-11-solve-time-machine-error-while-copying-files.md
new file mode 100644
index 0000000..766b59f
--- /dev/null
+++ b/content/posts/2018-11-11-solve-time-machine-error-while-copying-files.md
@@ -0,0 +1,64 @@
+---
+author: loikein
+published: "2018-11-11T09:27:00+01:00"
+slug: 2018-11-11-solve-time-machine-error-while-copying-files
+categories:
+- 笔记
+tags:
+- macOS
+title: 血书:Time Machine 拷贝文件时出错的解决法
+---
+换了电脑之后继承了备份,但是还没备份过,结果备份不出来,除此之外还有图片文件夹整个没有还原回来,挖出了上个电脑的 SSD 拷贝了一份之后有用户权限问题之类的杂七杂八的问题,今天一次性解决了。舒服。  
+
+
+## 修复系统权限
+
+High Sierra
+的磁盘工具里没有这项了,在[苹果官网](https://support.apple.com/en-us/HT203538)上找了一个笨办法:  
+
+1.  访达 > 前往 > 个人
+2.  文件 > 显示简介
+3.  If the Sharing & Permissions section at the bottom of the window
+    isn't open, click the triangle  in that section to open it.
+4.  If the Lock button at the bottom of the window shows a closed lock 
+    , click the lock and enter an administrator name and password.
+5.  Click the Action menu  in the bottom corner of the window, then
+    choose "Apply to enclosed items." Click OK to confirm the action. A
+    progress bar appears at the top of the window.
+6.  When the progress bar completes, open the Terminal app, which is in
+    the Utilities folder of your Applications folder.
+7.  Paste or type this command in Terminal, then press Return:  
+    `` diskutil resetUserPermissions / `id -u` ``  
+    After entering the diskutil command, if Terminal says that
+    permissions reset on user home directory failed (error -69841),
+    enter `chflags -R nouchg ~`, then enter the diskutil command
+    again.  
+8.  When the process completes, quit Terminal. Restart the computer,
+    then test to see if the issue is fixed.  
+
+  
+
+## Time Machine 问题
+
+上一步之后备份依然没有恢复。苹果社区里有[这么一个回答](https://discussions.apple.com/message/31272399#message31272399):  
+
+1.  Open Console
+2.  Click your computer under devices. Typically says "NameMacbookPro"
+3.  In the search bar type "backupd" without the quotes
+4.  Run TM backup and let the error occur
+5.  In Console, look for the an error that looks something like this:
+    `Error: (-8062) SrcErr:NO Copying /Users/NAME/Library...`  
+    this is the corrupt file that caused my TM error.
+6.  Locate the file in the location given in console and either delete
+    or backup separately (drag and drop somewhere).
+7.  Re-run TM and the it should complete the backup
+
+  
+这解决了我的问题。后面紧跟着一个补充,仅作为马克用:  
+
+1.  search for "backup" rather than "backupd". This may show a few more
+    messages.
+2.  after step 4, select the first console message of the start of that
+    Backup. Then delete the search string so that you can see ALL
+    messages from that point, and look again (starting at the line you
+    selected) for that error message.
diff --git a/content/posts/2018-11-15-jupyter-notebook-1-installation-config.md b/content/posts/2018-11-15-jupyter-notebook-1-installation-config.md
new file mode 100644
index 0000000..e1b0318
--- /dev/null
+++ b/content/posts/2018-11-15-jupyter-notebook-1-installation-config.md
@@ -0,0 +1,92 @@
+---
+author: loikein
+published: "2018-11-15T14:55:00+01:00"
+slug: 2018-11-15-jupyter-notebook-1-installation-config
+categories:
+- 笔记
+tags:
+- R
+title: Jupyter 自救日记(1)下载,配置 R,配置 R embed in Python,杂七杂八
+---
+## 下载 Jupyter Notebook
+
+下载安装 [Anaconda](https://www.anaconda.com/download/#macos)。  
+  
+Terminal:`jupyter notebook` 自动在网页里打开 Jupyter 主页,就可以写
+Python 了。  
+  
+注意:所有 Anaconda 环境下的 terminal 命令(`conda …`)都需要 quit
+Jupyter 之后才能使用。  
+  
+
+## 杂项之一
+
+`pip --upgrade` 升级一下  
+  
+
+## 安装 JDK
+
+装了 Jupyter 之后 terminal 老提示我没有
+JDK,不知道为什么没人说过,反正装了没坏处。  
+[JDK 8
+官网下载](https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html),安装。  
+Terminal:`java -version`,出现 `java version "1.8.0_191"`
+之类的提示就算成功了。  
+  
+
+## 安装 [IRkernel](https://github.com/IRkernel/IRkernel)
+
+首先电脑里要装了 R。  
+Terminal:`conda install -c r r-essentials`,遇到 `y/n` 一路 `y`
+就行了。  
+  
+
+## 安装扩展管理(nbextensions),安装目录扩展(TOC2)
+
+Terminal:`conda install -c conda-forge jupyter_contrib_nbextensions`  
+  
+打开 Jupyter,主页上方多了一个叫 Nbextensions 的标签,在里面搜索 Table
+of Contents (2), 点 Enable 就行了。  
+上图:  
+
+[![](../images/thumbnails/2018-11-15-jupyter-zi-jiu-ri-ji-1-xia-zai-pei-zhi-r-pei-zhi-r-embed-in-python-za-qi-za-ba-Screenshot%2B2018-11-15%2Bat%2B21.35.19.png)](../images/2018-11-15-jupyter-zi-jiu-ri-ji-1-xia-zai-pei-zhi-r-pei-zhi-r-embed-in-python-za-qi-za-ba-Screenshot%2B2018-11-15%2Bat%2B21.35.19.png)
+
+  
+
+## 调整 R 输出图像尺寸
+
+来源:[这里](https://blog.revolutionanalytics.com/2015/09/resizing-plots-in-the-r-kernel-for-jupyter-notebooks.html)  
+
+  
+  
+
+## 安装 [rpy2](https://rpy2.bitbucket.io/)(目前用不了)
+
+Terminal:`pip install rpy2`  
+  
+`import rpy2print(rpy2.__version__)`  
+  
+
+## R embed in Python
+
+Jupyter notebook(python):`%load_ext rpy2.ipython`  
+  
+
+## Troubleshooting
+
+`conda update r-essentials`  
+  
+Dead kernel 反复且无法自动重启:  
+`conda install -c defaults zeromq`  [来源于这里](https://github.com/ContinuumIO/anaconda-issues/issues/999#issuecomment-243165502)  
+  
+退出 `(base)`(Anaconda)环境:  
+`source deactivate`  
+  
+
+## 导出 PDF
+
+电脑里要装了 [MacTeX](http://tug.org/mactex/mactex-download.html)。  
+  
+安装 [nbconvert](https://nbconvert.readthedocs.io/en/latest/index.html) 通过
+Anaconda 安装的版本默认自带。  
+Jupyter notebook:File > Download as > PDF via LaTeX
diff --git a/content/posts/2018-11-16-jupyter-notebook-2-binder.md b/content/posts/2018-11-16-jupyter-notebook-2-binder.md
new file mode 100644
index 0000000..1ffa546
--- /dev/null
+++ b/content/posts/2018-11-16-jupyter-notebook-2-binder.md
@@ -0,0 +1,98 @@
+---
+author: loikein
+published: "2018-11-16T23:33:00+01:00"
+slug: 2018-11-16-jupyter-notebook-2-binder
+categories:
+- 笔记
+tags:
+- R
+title: Jupyter 自救日记(2)云端运行 Jupyter Notebook / Lab (R kernel) / RStudio: Binder & GitHub
+---
+继续折腾 Jupyter。  
+看了[如何用 iPad 运行 Python 代码?](https://zhuanlan.zhihu.com/p/36830594)这篇文章之后,我心潮澎湃,自己也来搞一下。  
+  
+
+## 初始化本地 GitHub 环境
+
+我其实一直觉得 GitHub
+不适合我这种懒人。然而发现[一篇文章](https://www.jianshu.com/p/0a40854e54a6)讲得真的很好,行文风格完全符合我对这种类型的说明文的想象,遂从善如流。  
+总结一下:  
+
+1.  在 GitHub 上新建一个 repository,initialize with readme
+2.  安装 GitHub Desktop
+3.  选择 Clone A Repository,选择刚建好的
+4.  在本地目录里显示克隆好的空 repository
+5.  把需要的文件拖进去
+6.  在 GitHub Desktop 里 Commit
+7.  在 GitHub Desktop 里 Push origin
+
+以后每次需要添加本地文件的时候,打开 GitHub Desktop,Pull / Fetch
+origin,再重复步骤 5 ~ 7 就可以了。  
+或者你可以 [fork 我的
+repository](https://github.com/loikein/my-jupyter-notes),然后随便改改。  
+  
+
+## Binder 可以做什么,不可以做什么
+
+Binder 可以:  
+
+-   在浏览器内运行 Jupyter Notebook / Lab(Python / R kernel),RStudio
+    等软件(1G RAM)
+-   加载 Jupyter Notebook extensions
+-   加载 R 包
+-   读取、编译、运行 GitHub 上的 `.ipynb` 文件
+-   分享链接给任何人
+
+Binder **不可以**:  
+
+-   Commit to
+    GitHub([参考](https://mybinder.readthedocs.io/en/latest/faq.html#can-i-push-data-from-my-binder-session-back-to-my-repository))
+-   一直开着(连续 10 分钟不使用会自动掉线)
+
+即是说,就算在 Binder 里新建 / 修改 /
+保存了文件,关闭之后再次打开是会消失的。  
+解决方法是在 Binder 里修改了文件之后,点 File > Download as >
+Notebook,把下载的文件放到 GitHub 的本地文件夹里,再 Commit + Push
+就可以了。  
+然而由于 Binder 的 launch 机制是在 Docker 上创建 repository
+的快照,所以所有更改都只有到下一次 launch Binder 的时候才会生效。  
+  
+
+## 一些重要文件
+
+这些文件(保留文件名)需要事先放在 GitHub 的 repository
+里才能起作用。([参考](https://mybinder.readthedocs.io/en/latest/using.html))  
+  
+`runtime.txt`:初始化 R
+kernel(必要,第一次用修改成当天日期,以后除非出问题就不要改了)  
+
+  
+`requirements.txt`:加载额外文件、extension([参考1](https://mybinder.readthedocs.io/en/latest/using.html?highlight=requirements.txt),[参考2](https://mybinder.readthedocs.io/en/latest/config_files.html))  
+
+  
+`postBuild`:加载 extension  
+
+  
+`install.R`:加载 R 包,这里是我最近在学的包  
+
+  
+
+## 运行 Binder
+
+1.  打开 [mybinder.org](https://mybinder.org/) 
+2.  URL 填刚才放好了文件的 GitHub repository 的网址
+3.  branch 可以不填,默认 master
+4.  复制生成好的链接,可以重复使用
+5.  把徽章复制到 GitHub repository 的 `README.md` 里
+6.  点 launch
+7.  等
+
+等的时长看人品,如果放了太多 R 包很容易出错。一旦 launch
+成功一次,下次就会很快了。  
+  
+
+## 运行 Jupyter Lab / RStudio
+
+Binder launch 成功后应该出现 Jupyter Notebook 的 Home 页面。网址最后有个
+`/tree`,改成 `/lab` 回车进入 Jupyter Lab,改成 `/rstudio` 回车进入
+RStudio。([参考](https://mybinder.readthedocs.io/en/latest/howto/user_interface.html))
diff --git a/content/posts/2018-11-18-jupyter-notebook-3-heroku.md b/content/posts/2018-11-18-jupyter-notebook-3-heroku.md
new file mode 100644
index 0000000..0b9df80
--- /dev/null
+++ b/content/posts/2018-11-18-jupyter-notebook-3-heroku.md
@@ -0,0 +1,93 @@
+---
+author: loikein
+published: "2018-11-18T17:00:00+01:00"
+slug: 2018-11-18-jupyter-notebook-3-heroku
+categories:
+- 笔记
+tags:
+- R
+- Python
+title: Jupyter 自救日记(3)云端运行 Jupyter Notebook:Heroku & GitHub(Python)+ rnotebook.io(R)
+---
+继续(继续)折腾 Jupyter。  
+后记:出于各种原因我已经把[我的 fork](https://github.com/loikein/heroku-jupyter)  存档了,存档之后 Heroku 链接还能继续用。  
+
+> TLDR:人生苦短,请用 [rnotebook.io](https://rnotebook.io/)。
+
+## Python:Heroku & GitHub
+
+看了以下两篇文章之后决定试试 Heroku。  
+[Heroku 快速搭建 免费高性能 Jupyter
+Notebook](https://www.jianshu.com/p/598dabc085ac)  
+[Herokuの無料枠を使ってJupyterサーバを立てる方法](https://myenigma.hatenablog.com/entry/2016/08/08/225242)  
+  
+首先需要注册一个 Heroku 的帐号,免费的。  
+这个[自动一键部署](https://github.com/pl31/heroku-jupyter)的环境目前稳定版只支持
+Python 3,我完整部署了三次才成功。作者写了 2 + 3
+正在开发中,没试,不知道好不好用。  
+使用方法:  
+
+1.  Fork 它
+2.  在自己 fork 出来的 repository 里面点一下紫色的 Deploy to Heroku 按钮
+3.  弹出的 Heroku 页面里面如果没有设置 Config Vars
+    的选项的话失败了,关掉重新点一次,如果有就继续
+4.  在 `JUPYTER_NOTEBOOK_PASSWORD` 里输入登录 Jupyter 首页的密码,如果在
+    repository 里放了自己的文档的话就不要告诉别人,如果打算纯当平台就随便设个简单的
+5.  点 Deploy
+6.  等
+
+等个三五分钟,全部跑好之后会出现 View
+按钮,点进去(第一次打开需要再等等)输入密码就出现 Jupyter 首页了。  
+  
+只用 Python 的人大概到这里就很开心了,但是我只用 R……。  
+  
+
+## 在 Heroku 上部署 Jupyter kernel 的尝试
+
+一把辛酸泪,目前暂时没有总结的动力了,姑且列一下参考链接。  
+(意外成功部署了 LaTeX kernel,但是 Heroku 免费用户每个 deployment 只有
+500 MB 的限额,发布不动了,查 TinyTeX 就是为了修正,但是我已经被 Heroku
+折腾怕了,有缘再见吧。)  
+  
+[Using R with Jupyter
+Notebooks](https://blog.revolutionanalytics.com/2015/09/using-r-with-jupyter-notebooks.html)  
+[installspec: Install the kernelspec to tell Jupyter about
+IRkernel](https://rdrr.io/github/IRkernel/IRkernel/man/installspec.html)  
+[GitHub - IRkernel](https://github.com/IRkernel/IRkernel)  
+[IRkernel - Installing from
+source](https://irkernel.github.io/installation/#source-panel)  
+  
+[R FAQ - How can R be installed
+(Unix-like)](https://cran.r-project.org/doc/FAQ/R-FAQ.html#How-can-R-be-installed_003f)  
+[R FAQ - What machines does R run
+on?](https://cran.r-project.org/doc/FAQ/R-FAQ.html#What-machines-does-R-run-on_003f)  
+[R installation - Installing R under
+Unix-alikes](https://cran.r-project.org/doc/manuals/r-devel/R-admin.html#Installing-R-under-Unix_002dalikes)  
+[Installing R in
+Linux](http://www.jason-french.com/blog/2013/03/11/installing-r-in-linux/)  
+[The minimal R
+package](http://kbroman.org/pkg_primer/pages/minimal.html)  
+  
+[TinyTeX](https://yihui.name/tinytex/)  
+  
+[GitHub - repo2docker](https://github.com/jupyter/repo2docker)  
+  
+
+## [rnotebook.io](https://rnotebook.io/)
+
+这是我目前能找到的最好的在线 Jupyter Notebook 解决方案。  
+  
+优点:  
+
+1.  自带 R kernel
+2.  Launch 奇快(反例:Binder)
+3.  每个用户分配一个文件夹,可以保存,保存了下次还能打开,且文件修改不影响
+    launch 速度(反例:Binder)
+4.  任何有链接的人都能看、运行、编辑、保存
+5.  在手机上操作顺畅
+
+缺点:  
+
+1.  目前还没有设置密码的方式
+2.  无法直接下载为 PDF
+3.  不支持 Python(但是管它的!我又不用 Python)
diff --git a/content/posts/2018-11-20-on-archive-page-for-blogger.md b/content/posts/2018-11-20-on-archive-page-for-blogger.md
new file mode 100644
index 0000000..604aaf0
--- /dev/null
+++ b/content/posts/2018-11-20-on-archive-page-for-blogger.md
@@ -0,0 +1,19 @@
+---
+author: loikein
+published: "2018-11-20T22:38:00+01:00"
+lastmod: "2021-04-25 14:14:13.721 +0200"
+slug: 2018-11-20-on-archive-page-for-blogger
+categories:
+- 笔记
+tags:
+- 网页制作
+- Blogger
+title: Blogger 归档页面考
+---
+花了一点时间解决了。  
+代码源自 [jhwilson/Create-a-Blogger-archive-page](https://github.com/jhwilson/Create-a-Blogger-archive-page),灵感来自[水口八记的博客](https://blog.shuiba.co/create-blogger-archive-page-3)。  
+
+1.  把[这里的代码](https://github.com/loikein/Blogger-archive-page-CN/blob/master/blogger-archive-CN.html)粘贴进一个新建页面(HTML
+    编辑器)
+2.  最底下改成自己的博客地址
+3.  编辑器右边栏的`选项` > `换行` > `使用 
标记`,完成 diff --git a/content/posts/2018-11-21-back-from-clinic.md b/content/posts/2018-11-21-back-from-clinic.md new file mode 100644 index 0000000..d634960 --- /dev/null +++ b/content/posts/2018-11-21-back-from-clinic.md @@ -0,0 +1,55 @@ +--- +author: loikein +published: "2018-11-21T23:32:00+01:00" +slug: 2018-11-21-back-from-clinic +tags: +- 生活 +tags: +- 日本 +- 德国 +title: 看病归来 +--- +终于见完心理医生了,总结一下曲折的看病经历,顺便德日对比。 + + +## 看家庭医生(Hausarzt = GP) + +无论看什么病,反正来到德国第一个要去看的医生是家庭医生,不能直接找去专科医生。 +之前我的药快吃完了,心情比较破烂,于是在 AStA 打听了一下之后抱着侥幸心理去了医院(Klinik,意思是大医院不是诊所),结果被人家委婉地请出来了。 +能看上家庭医生的最可行的方式是谷歌一下对方的营业时间,然后掐着点直接去。 +带上保险证,给前台确认一下,填个初诊表,坐下来等就行了。 + +我非常确定我的问题不是全科医生能解决的,但是他居然给我开了我需要的所有药,还提醒了一句我吃的某种药不太合适,然后帮我向一位他认识的(原话)心理医生发信息要求预约。 +很快讲完,拿着处方出门左拐药房,药不要钱。插曲:最近的药房没有我吃的其中一种药,要配货,叫我下午再来。当天下午再去,就取到了。 + + +## 看心理医生(Neurologe) + +过了两周左右,一位心理医生(的前台助理,大概)给我打电话约时间,就是今天(大概也是提前了两周左右)。 +今天去看,先也是在前台填初诊表,还签了一张个人信息授权同意书。前台姐姐解释说,这个授权包括跟我的家庭医生共享病历,以及验血的时候需要告诉实验室我的姓名。签的时候我满头问号,为什么心理医生还要验血? + +见到医生,她首先声明她不是 psychotherapist,只负责开药不负责聊天。然后我掏出前任心理医生的介绍信,说明我有什么问题,是什么时候开始的,等等。(这里必须抱怨一下,我在日本的那位心理医生什么都好,就是写一封英文介绍信收了我一万八千日元,肉痛。) +医生对先前家庭医生负面评论过的某种药再次作出了负面评价,并强烈要求我换药,行吧你是医生都听你的。问我这个药吃了多久,以前还吃过什么类似的药,等等。我从学校直接过来的,刚好带了电脑,电脑里有日本的病历(お薬手帳)的扫描件(扫描一切党的胜利),就翻出来给她列药名和使用时间表。 +该问的都问完,写好处方,医生问我什么时候验过血。 + +> 医生:你上一次做血检是什么时候? +> 我:啊? +> 医生(大惊):你在日本开这个药没人给你血检? +> 我:啊? + +医生看起来快抓狂了,解释说我吃的另外一种药虽然机率很小,但是可能出现严重的副作用,必须定期验血。我每天吃,吃了半年了,从没听说过这事儿……于是约了过两天再来验血。 +最后也是拿着处方左拐药房,这次不知道是不是开的药比较特殊,收了我 10 块钱(离开诊所之前医生提醒了会收钱)。回家。 + + +## 跟日本的看病经历对比 + +大致流程都差不多,总结一下我感受到的不同之处。 + +1. 日本没有家庭医生,かかりつけ医的概念也并没有兴起。我以前有点感冒啥的,都是直接去最近的开着的駅前クリニック,碰上节假日每次都去不同诊所,手上存了一大把诊疗卡。 +2. 德国没有诊疗卡,只有保险证。 +3. 在日本看专科医生(不限于心理医生)不需要通过全科医生介绍,可以自己直接预约。 +4. 在日本即使有保险,也要交一定的诊费(诊所)和药费(药房);德国几乎全免(当然保险费贵很多……) +5. 德国没有お薬手帳,但是保险证里似乎存了一些信息,我没看到屏幕不能确定。 +6. 在德国的药房不用填个人信息表。 + +大概就是这样。要是下次有不同的体验,再随时补充。 diff --git a/content/posts/2018-11-24-on-chineseness.md b/content/posts/2018-11-24-on-chineseness.md new file mode 100644 index 0000000..db6c30c --- /dev/null +++ b/content/posts/2018-11-24-on-chineseness.md @@ -0,0 +1,45 @@ +--- +author: loikein +published: "2018-11-24T22:32:00+01:00" +slug: 2018-11-24-on-chineseness +categories: +- 随笔 +tags: +- エッセー +title: 今更「中国人っぽさ」を考える +--- +ブラックフライデーのマーケットで、インド屋台の茶屋さんがいた。ドイツ国産のお茶がマズすぎてもう絶望したので、寄ってみた。 + +試し飲みをもらった。ハーブティーが好みじゃないんだけど、本当にうまくて、すぐ買うのを決めた。値段を聞いて財布を出すと、旦那さんが「買うんですか?」と、ちょっと驚いた様子を見せた。 + +「日本から来ましたか?」 + +「いいえ、中国から…」 + +「あららそれは失礼しました」 + +「日本には長くいたので…」と私が笑いながら、屋台を去った。 + + + +帰り道で考えてた。私はどんだけ日本人に見えるのか? + +10 代から、母の友人に「日本人っぽいですね」と言われてきた。今の同級生にも、日本語経験者で、ドイツの街に知らない日本人に話しかけられた経験がある子がいる。なんと、中国人が少しでも日本文化に触れたことがあるなら、日本人っぽくなる傾向がありそうだ。 + +しかしながらも、日本にいた時、長く付き合った日本人の友たちには、「さすが中国人だねえ」と何度も言われていた。時には、私が中国人であることを忘れちゃいそうだけど、「さすが」の回数に上回れる。 + +「〇〇人っぽさ」とは一体何だ? + +ある国の言葉を覚えると、その国の人と似たような思考回路が作動する説がある。母語とは違う言葉で喋ったり、文章を書いたり、考えたりしたら、その国の人と似たような(母国の人とは違う)結論に導くこともなくはない。その国の人と似たような行動をとって、その国の人と似たような外見になるんじゃないかな。 + + + +(ここでは「自分っぽさ」について議論する好機だが、長くなりそうでやめる。) + + + +「グローバルシティズンには祖国がない」ということもあったが、この説に同感するが、同意はできない。 + +わたしには祖国がある。[このまえ述べた](https://loikein.blogspot.com/2017/11/blog-post_17.html)ように、わたしは祖国の大地、民族と文化を愛し、その一部である自覚がある。その同時に、日本文化も愛し、日本に対しても帰属感を持っている。 + +これを許してくれない人に、許されたいとは思わない。←この宣言こそ、日本人から見る中国人っぽさ(日本人っぽくなさ)であるかもしれない。ね! diff --git a/content/posts/2018-11-25-jupyter-notebook-4-jupytext-conclusion.md b/content/posts/2018-11-25-jupyter-notebook-4-jupytext-conclusion.md new file mode 100644 index 0000000..691c9d3 --- /dev/null +++ b/content/posts/2018-11-25-jupyter-notebook-4-jupytext-conclusion.md @@ -0,0 +1,61 @@ +--- +author: loikein +published: "2018-11-25T20:02:00+01:00" +slug: 2018-11-25-jupyter-notebook-4-jupytext-conclusion +categories: +- 笔记 +tags: +- R +- Rmarkdown +title: Jupyter 自救日记(4)jupytext + 总结 +--- +统一改了标题。希望这篇能是最后一篇了,本懒人居然折腾工具折腾到这份儿上,真是本末倒置。 + + +## 为什么要用 Jupyter Notebook + +我一开始接触 Jupyter 的理由很简单,就是拿它来代替我马上订阅到期的 Ulysses。我没有写长文的习惯,短的文章要不放在这里要不放在手机备忘录里,Ulysses 对我而言只是一个同步很方便的 Markdown / 代码 / 笔记收集处而已。 +重复了很多遍还是要说,我是一个懒人。我喜欢所见即所得,喜欢四处同步,喜欢一步到位,不喜欢重复劳动。所以(?)我一直不甚喜欢 Markdown,平时数学笔记[用 Pages](https://support.apple.com/zh-cn/HT202501),长这样: + +[![](../images/thumbnails/2018-11-25-jupyter-zi-jiu-ri-ji-4-jupytext-zong-jie-Screenshot%2B2018-11-25%2Bat%2B19.30.20.png)](../images/2018-11-25-jupyter-zi-jiu-ri-ji-4-jupytext-zong-jie-Screenshot%2B2018-11-25%2Bat%2B19.30.20.png) + + +之前写过一篇[关于 Ulysses 的博文](https://loikein.blogspot.com/2018/09/ulysses.html),其实那是我第一次试图在 Ulysses 里面放表格,非常麻烦,且只有在预览的时候才能看到表格效果。我还尝试过在 Ulysses 里插入数学公式,倒是[在文件顶端加两行](https://ulysses.app/tutorials/writing-equations)就行了,但总还是有点不爽。还有一点,我半年前开始订阅 Ulysses 的时候,对计算机技术并没有现在这么得心应手,大学期间学的计算机课 75% 是在这半年里(大四下学期)学的,思维方式和读英文文档的舒适度可谓日新月异。 + +至于 R,上个月(10.16)来波恩报到之后,看到教授推荐,我才第一次在电脑里装了 RStudio,然后开始在 DataCamp 上面上课,至今只上完了 10 门课,在这期间几乎一直用 Ulysses 记笔记(因为 Pages 没有代码高亮功能)。 +一开始的笔记是这样的,写起来还挺顺手: + +[![](../images/thumbnails/2018-11-25-jupyter-zi-jiu-ri-ji-4-jupytext-zong-jie-Screenshot%2B2018-11-25%2Bat%2B19.19.30.png)](../images/2018-11-25-jupyter-zi-jiu-ri-ji-4-jupytext-zong-jie-Screenshot%2B2018-11-25%2Bat%2B19.19.30.png) + +开始学做图之后,想能够同时看到代码和做图效果,就每次都要在 RStudio 里 run 一遍,保存图片,再粘贴到 Ulysses,很是恼人: + +[![](../images/thumbnails/2018-11-25-jupyter-zi-jiu-ri-ji-4-jupytext-zong-jie-Screenshot%2B2018-11-25%2Bat%2B19.20.39.png)](../images/2018-11-25-jupyter-zi-jiu-ri-ji-4-jupytext-zong-jie-Screenshot%2B2018-11-25%2Bat%2B19.20.39.png) + + +有一天不知怎的看到了[这篇文章](https://www.jianshu.com/p/86117613b7a6),心里一惊。虽然我并不写程序,但这种文字、代码、运行结果的混排真是正正地戳中了我记笔记的痛点。修改了代码之后直接在笔记本里运行,直接更新结果,简直是[学习编程](https://i.imgur.com/IarNH89.jpg)的法宝。于是开始了漫长(怎么才过了十天)的搬家过程。 +再过两周就没有 Ulysses 用了,不搬也得搬。 + + +## [Jupytext](https://github.com/mwouts/jupytext) 和 R Notebooks + +日前写完前三篇自救日记,在网上漫无目的地摸鱼,发现了[益辉老师的博客](https://yihui.name/cn/),遂翻之。看到[这篇](https://yihui.name/cn/2018/09/pursuit-of-likes/)的时候,我顿时意识到这正是我需要的多后缀同步工具(`.ipynb` & `.Rmd`)。但疑惑为什么说它是轮子?于是本人第一次知道了 R Notebooks 的存在(这顺序真的,绝了)。 +断断续续看完 RStudio 上的[介绍视频](https://www.rstudio.com/resources/webinars/introducing-notebooks-with-r-markdown/),以及[第一次笔记本大战](https://yihui.name/en/2018/09/notebook-war/),我几乎要倒戈 R Notebooks 了(有了 Jupytext,以后如果还想再倒了也很方便,哈哈)。最后,迫使我留在 Jupyter 的最大原因是侧边栏目录插件(toc2),因为我记出来的笔记几乎每篇都很长,没有目录跳转简直只能记不能翻。用 Ulysses 的时候也觉得没有侧边栏目录很恶心,姑且是忍下来了,但是由奢入俭难啊。 + + +## 总结 + +目前我的使用习惯是这样的: + +- 上统计课 / DataCamp:打开 Jupyter Notebook 记笔记 +- 速查笔记 / 给别人看笔记:用随便什么文本编辑器或者 RStudio + 打开自动生成的 `.Rmd` 文件,保存之后下次打开 Jupyter + Notebook 会自动更新到 `.ipynb` 里 + +至于 `.html` 之类的更好看的格式,暂时没有分享的需要,等要用了再改 +`jupyter_notebook_config.py`,应该也就是一分钟的事儿。 + + +------------------------------------------------------------------------ + + +(真诚希望)这个系列日记到这里就结束了。之前脑子一热给统计之都的编辑发了自荐邮件,收到了十分热情的回复,希望能有空好好整理整理,写篇正式一些的文章。 diff --git a/content/posts/2018-11-26-being-chosen-vs-having-no-choices.md b/content/posts/2018-11-26-being-chosen-vs-having-no-choices.md new file mode 100644 index 0000000..af7951b --- /dev/null +++ b/content/posts/2018-11-26-being-chosen-vs-having-no-choices.md @@ -0,0 +1,37 @@ +--- +author: loikein +published: "2018-11-26T23:23:00+01:00" +slug: 2018-11-26-being-chosen-vs-having-no-choices +categories: +- 随笔 +tags: +- 自述 +title: 被选中的与没有选择的 +--- +首先引用一段我自己的微博。 + +> 同届的一个土耳其小伙子,一起上德语课的,今天一起坐公交回宿舍,聊了一路。 +> 在宿舍楼下拜拜的时候他突然来了一句,你英语口音比其他中国人好好多哦,跟你聊天很愉快。 +> 我知道他多半是开玩笑的,这个人是所有人(包括中国人)公认的风趣,但是,怎么说呢,我们最近国家富强了,民族自尊心上来了,就开始鼓吹口音无关论;但显然当你说的话不是重量级到别人非听不可的时候,口音并不是无关的…… +> 比如马云,还有那个谁小米总裁,他们这种人呢,随便怎么说都有人排着队要听,但是我们这些平头老百姓,想要自己说的话有人听,别人听得进去,口音还是很重要的……吧。 +> 比如我自己,我出生在沿海地区,从我入学前一年开始小学一年级开设英语课,幼儿园的时候母亲就请了她的学生教我口语,我待过的每一所学校都或多或少有外教课……即便如此,我还是在高中花了将近两年时间才把我的英语口音调整到自己满意,而大部分人不可能有我这样的条件,也没有我这样的余裕。 +> 我苦练英语不是为了跟别人谈笑风生,是为了看剧看小说、是为了自己开心,但结果就是,我成了那个口音好的中国人。而他口中的英语口音不好的中国人,也都是名校出身、家庭富裕、经过层层筛选才来留学的…… + +我没能忍心在微博里吐的是,那么,那些不是名校出身、家庭不够富裕、在某层选拔上不小心或者运气不好没通过,的人们呢? + +我写了一大段自己条件有多么好,不是为了炫耀,而是为了说明,我们这些看上去完全是「被选中的本地人」的人,也都**没有选择**。 +我的家庭并不是最富裕的那一类,但也算个书香门第;我在德国(其实日本也一样)的中国同学们,他们的条件只会比我更好,也都是被选中的那一群;却落了个「中国人英语口音不行」的口实。 +我们英语不好吗?大家都是考托福考 GRE 考进来的,上课英语授课,课本 PPT 都是英文,谁敢说这帮姑娘小伙英语不好?可是一边听课一边查单词,课本下载个中文版才能安心,不敢跟老师提问,连跟外国同学讲话都扭扭捏捏,有点儿英文好的样子吗? +不是我们不够聪明,也不是家里负担不起英语教育,只是国内的(普通人能负担得起的)英语口语教育,都太差太差。 + +高二的时候,家里想送我去香港读大学,给我报过一个口语班。本来是一对三,愣是给整成一对一,老师是留美博士,我直到现在还记得她优美的口音和神采飞扬的讲解。但是实在太贵了,以至于我上了一次就心疼得取消了合同(事前说好如果感觉不合适可以取消,按实际课时付款)。她是惟一一个让我觉得口音好的中籍英语老师。 + +于是我开始发愤自我纠正口音,从每个字母开始重新学读音,每天连上下楼都塞着耳机,一搞就是两年。在上大学之前,敢问谁有这个时间?在上大学之后,又有谁有这个动机? +后来大三了,在网上上国内的托福口语班,那口语老师的口音我都是皱着眉头听完的(但不妨碍他自信、逻辑完整、讲话流畅,我挺喜欢他),班里同学的口音就更不要提了。这老师就是一个「口音无关」的例子,除了口音什么都好,且你也不得不听。 + +又想起我本科期间的老板。他是匈牙利人,出身于一个村庄,少年时代赶上了东欧革命,可谓命运坎坷条件艰苦。但他精通多门语言(包括日语,这里可以扯扯语系的废话,但匈牙利语本也不是印欧语系的),常纠正我们的英语遣词造句,被戏称是英语老师;我还见过他用西班牙语写书评。除了他智商高之外,能让他从小接受多外语教育的教育系统功不可没。 +什么时候我们才能像他中学时那样,所有人都可以自由地选择自己的第二外语,且都能得到有资质的教师指点,学成之后能自如地使用呢? +什么时候我们才能不用离家万里,也能接受到令自己满意的教育呢? + +我写这篇小文,可能看起来像有权(empowered)阶级的无病呻吟,但如果我不写,又有谁来写? +前女友嘲笑我至今还信奉居里夫人的「但是人类也需要梦想家」,但是,人类的确还需要梦想家,人类的梦还没有被做完。 diff --git a/content/posts/2018-11-28-card-links.md b/content/posts/2018-11-28-card-links.md new file mode 100644 index 0000000..a800841 --- /dev/null +++ b/content/posts/2018-11-28-card-links.md @@ -0,0 +1,133 @@ +--- +author: loikein +published: "2018-11-28T08:40:00+01:00" +lastmod: "2021-04-25 14:35:46.938 +0200" +slug: 2018-11-28-card-links +categories: +- 笔记 +tags: +- 网页制作 +- Blogger +- Hugo +title: 把链接做成卡片形式:一个纯 HTML 的尝试 +--- +2021-04-25 更新: + +今天发现了这个好东西:[Useful Hugo Templating · Ypertex Blog](https://blog.ypertex.com/articles/useful-hugo-templating/) + +使用: + +```html +{{}} +``` + +效果: + +{{}} + +{{}} + +如何呢? + +Shortcode 代码如下:(保存为 `/layouts/shortcodes/preview.html`) +CSS 有点多就不贴了,都在 `custom.css` 里,有兴趣的朋友可以用 inspector 查看。 + +```html +{{ with getJSON (printf "https://api.microlink.io/?url=%s" (.Get "src")) }} + +{{ end }} +``` + +*** + +我一直很想做一个这种东西,但是不知道该搜什么关键词(……),就一直偷懒,昨晚终于是给我找到了摸鱼的时间,搞出来了。 +先上预览。这是我用关键词 `カード リンク -wordpress` 搜出来的惟一一个相关的链接,结果证明它真的很有用。 + + + + + + + + + + + + +递归: + + + + + + + + + + + + +我用了文中提到的 Chrome extension:[Create +Link](https://chrome.google.com/webstore/detail/create-link/gcmghdmnkfdbncmnmlkkglmnnhagajbm?hl=ja),换到 Firefox 之后,又找了一个功能类似的插件:[Link Text and Location Copier](https://addons.mozilla.org/en-US/firefox/addon/link-text-and-location-copier/)。 + +只要把以下代码粘贴进对应的浏览器拓展的选项页面,再设置一个容易记的名字,在任何网页上右键就可以一键复制粘贴到 Blogger 的 HTML 编辑器。 + +Create Link 版本:([GitHub Gist](https://gist.github.com/loikein/8c62bceb235bbb104f51333a2153c27f#file-blogger-link-box-html)) + +```html +%newline% +%newline% +%newline% + %newline% + %newline% +
+``` + +Link Text and Location Copier 版本:([GitHub Gist](https://gist.github.com/loikein/8c62bceb235bbb104f51333a2153c27f#file-blogger-link-box2-html)) + +```html +%N +%N + %N + %N + %N +
+``` + +Create Link 为开源项目,地址:[ku/CreateLink: Make Link alternative to chrome](https://github.com/ku/CreateLink) + +Link Text and Location Copier 为开源项目,地址:[evilnickname/link-text-location-copier: Firefox web extension that lets you copy link text and location.](https://github.com/evilnickname/link-text-location-copier) diff --git a/content/posts/2018-12-19-on-custom-css-for-blogger.md b/content/posts/2018-12-19-on-custom-css-for-blogger.md new file mode 100644 index 0000000..b33b41f --- /dev/null +++ b/content/posts/2018-12-19-on-custom-css-for-blogger.md @@ -0,0 +1,51 @@ +--- +author: loikein +published: "2018-12-19T22:51:00+01:00" +lastmod: "2020-05-25T10:31:51.227+02:00" +lastmod: "2021-04-25 15:57:03.748 +0200" +slug: 2018-12-19-on-custom-css-for-blogger +categories: +- 笔记 +tags: +- 网页制作 +- Blogger +- CSS +title: 总结一下 Blogger 的自定义 CSS +--- + +2021-04-25 更新: + +表格相关的不需要了,但是其他或多或少保留了下来。有兴趣的朋友可以使用 inspector 查看 `custom.css`。 + +*** + +2020-05-25 更新:主题颜色、图片阴影 + +*** + + + +## 博文内小标题编号 + +参考: + +- [纯CSS实现目录自动编号 - + 歪脖先生的博客](https://blog.csdn.net/ixygj197875/article/details/79391744) +- [The :not() CSS pseudo-class | MDN web + docs](https://developer.mozilla.org/en-US/docs/Web/CSS/:not) + +## 调整表格边框 + +参考:[Html-浅谈如何正确给table加边框 - +Leona.d](https://www.cnblogs.com/leona-d/p/6125896.html) + +## 图片显示美化 + +参考:[Brad Frost](https://bradfrost.com/web/) +原效果很好看但过于跳脱,我改成单色的了。 + +## 我添加的 CSS 一览 + +大修过程都在 Gist +里评论了,可以直接[猛击查看](https://gist.github.com/loikein/7b2a4f7d98d366a732dafd755b5248ff)。 diff --git a/content/posts/2018-12-28-the-ideal-way-of-life-aka-2018-recap.md b/content/posts/2018-12-28-the-ideal-way-of-life-aka-2018-recap.md new file mode 100644 index 0000000..9eb2f69 --- /dev/null +++ b/content/posts/2018-12-28-the-ideal-way-of-life-aka-2018-recap.md @@ -0,0 +1,31 @@ +--- +author: loikein +published: "2018-12-28T10:03:00+01:00" +slug: 2018-12-28-the-ideal-way-of-life-aka-2018-recap +categories: +- 随笔 +tags: +- 年度总结 +title: 理想的生活:2018 总结 +--- +毫无疑问,我在做很多事情的时候觉得自己是自由的。 +唱歌的时候,跳舞的时候,拍照的时候,写代码的时候,思考人生的时候。 +但也许自由只是假象,或者我真正在追求的并不是自由,而是能为我理解的规则。当清楚该做什么、能做什么、想做什么并且如何去做的时候,我感到彻底的自由和愉快。 +但人生并非总是如此,或者说,绝大部分的人生并非如此。 + +过去的这一年是我生命中的一个大的转折。不是说 2017 年不重要——没有不重要的年份——但总的看来,2018 彻底改变了我今后的人生道路。很难想象如果没有了这一年,我会过上什么样的生活,但肯定不如现在。 +我爱过,心碎过,然后终于学会了跟自己和解。 +我深陷抑郁,看心理医生,吃药,好转。 +我拿着不好不坏的成绩和一个全 A 辅修毕业了。 +我下定决心离开了日本。 +我读研了。 +很高兴这一路都在写博客。2018 年里我几乎每个月都发了博文,大部分是随笔,也有几篇搬家记录和学习总结。我又回到了高中那种自觉的忙忙碌碌的状态。 + +最近我时常反思(或者说反刍)过去的人生。 +我一直认为自己到了初高中才形成了自我意识,但是最近想起了很多本以为再也不会想起的更早些时候的事情,又觉得自我意识可能有个非线性的发展曲线。 +我变得温和了许多。在开始吃药之后,药给了我再次审视世界和自身的勇气,而这个世界, +不知道是不是因为药的原因,也逐渐回我以善意。 +我也曾经觉得自己过早地承担/经历了过多,但它们也让我有底气去敲那些看起来高不可攀的门。 +并不是所有伤疤都能随时间消失,我还在努力试图正视它们。 +我不后悔我做的所有决定。 +理想的生活,莫过如此。 diff --git a/content/posts/2019-01-04-procrastinator-s-guide-to-keep-fit-and-healthy.md b/content/posts/2019-01-04-procrastinator-s-guide-to-keep-fit-and-healthy.md new file mode 100644 index 0000000..29d99d5 --- /dev/null +++ b/content/posts/2019-01-04-procrastinator-s-guide-to-keep-fit-and-healthy.md @@ -0,0 +1,142 @@ +--- +author: loikein +published: "2019-01-04T12:09:00+01:00" +slug: 2019-01-04-procrastinator-s-guide-to-keep-fit-and-healthy +categories: +- 生活 +title: 拖延症友好的体重(及其它体调)管理心得与实践 +--- +最近自认为保持了不错的状态(事实上刚过去的这半年是我五六年里身心比较健康的时期)。洗澡的时候突然生出一股工作后变回胖子的恐惧,遂为未来的自己撰文一篇,随便看看就好。 +所谓身心健康,有身也有心,但终究是先有身才有心。心理健康暂且不论(我也论不了,我看心理医生);身体健康,体重是关键,不仅仅是向下调控,还得向上调控。 +经我多年实践证明(以下同,不再赘述):维持体重 ∈ \[ 不至于体弱多病, +不至于有碍观瞻 \] 这么一个稳定的区间,有益身心健康。 + +影响体重的几个因素: + +1. 饮食 +2. 作息时间 +3. 衣着 +4. 体态(太玄了不展开讲) +5. 坐姿/站姿时长 +6. 运动 + +下面略微展开讲讲。 + + +## 饮食 + +### 正餐 + +如果起床晚于 +10:00,又没有饿到肚子叫的话,早餐其实是可以不吃的。吃了也行,午饭吃少一点。 +午饭普通吃,随便吃,爱咋吃咋吃。 +晚饭的量,以睡前感觉到好像可以吃点啥为准(但不可以吃,具体操作见作息时间一节)。 + + +### 饮料 + +家里放点饮料可以有效避免吃零食过量。手边常备一大罐白开水,无聊了先喝一口。 +鼓励喝: + +- 白开水 +- 牛奶(不包括乳饮品) +- 泡茶(不包括速溶茶粉) +- Decaf 咖啡(不包括速溶咖啡) + +不鼓励也不反对喝: + +- 其他含咖啡因的咖啡(不包括速溶咖啡) +- 蜂蜜水(喝多了容易拉肚子) +- 酸奶 + +尽量不喝: + +- 碳酸饮料 +- 速溶饮料 +- 功能性饮料(例:红牛、脉动) +- 酒 + + + +### 零食 + +实在馋或者无聊了,可以吃在正餐之间吃零食,但是有几个注意: + +- 不点外卖的零食,实在想吃某样零食就自己去买。 +- 想吃某样零食,先拖延一下,再拖延一下,然后还记得的话再吃。 + +家里放几样常备零食可以防止饿死,但也有几个注意: + +不囤积,一次最多买一大包,吃完再去买。 + +每天定量供应,以坚果为例: + +1. 弄一个专用罐子,以开合方便为宜(例:口香糖罐子/M&M 豆罐子) +2. 每天想吃的时候倒一罐 +3. 放在手边开始吃 +4. 吃完,合上盖子,放进柜子或冰箱里 +5. 这一天无论发生什么都不再碰它 + +鼓励吃: + +- 无盐无糖坚果 +- 低糖水果(例:苹果、梨子、橙子、草莓、西红柿) + +不鼓励也不反对吃: + +- 其他坚果(混合果干/加盐/炒制) +- 巧克力 +- 切片面包 + +尽量不吃: + +- 煎炸(例:炸鸡、薯片、薯条、Doritos) +- 高糖水果(例:荔枝、龙眼、西瓜、哈密瓜、芒果、葡萄,总而言之就是热带水果) +- 含酥皮的面包 +- 蛋糕 +- 其余各类糕饼 + +(零食这节好长。因为我很爱吃零食。\_。) + + +## 作息时间 + +睡前: + +- 每天固定时间洗澡 +- 洗澡完立即刷牙(再吃零食需要再刷一遍,就会懒得吃了,搭配牙套尤佳) +- 不喝太多水 + +睡觉: + +- 关灯前上个厕所 +- 每天固定时间躺下 +- 不再出被子 +- 睡不着可以玩手机,但手机要调到最暗 + +起床: + +- 每天固定时间起床 + +充足的睡眠可以降低发胖机率。 + + +## 衣着 + +我是梨形身材,腿脚容易发胖。总结规律,最重要的一点:鞋子要宽松。 +什么是宽松呢?就是穿的时候没有紧束感、脱的时候没有解放感。很明显跑鞋是不符合要求的,所以不能天天穿跑鞋,不然腿一天比一天粗还愣是找不着原因。 + + +## 坐姿站姿时长 + +坐太久站一下已经是常识了,站太久也要坐一下,不然腰椎会出问题。 + + +## 运动 + +没时间运动很正常,关键是在生活中发现运动的机会。举例: + +- 上下楼尽量走楼梯 +- 走楼梯跳着走 +- 不赶时间尽量走路,走一段坐一段车也可(例:放学走路回家) +- 赶时间的时候跑步(例:早上赶公交) diff --git a/content/posts/2019-01-06-blogdown-from-beginner-to-give-up-but-not-yet.md b/content/posts/2019-01-06-blogdown-from-beginner-to-give-up-but-not-yet.md new file mode 100644 index 0000000..f1f7dad --- /dev/null +++ b/content/posts/2019-01-06-blogdown-from-beginner-to-give-up-but-not-yet.md @@ -0,0 +1,58 @@ +--- +author: loikein +published: "2019-01-06T12:19:00+01:00" +slug: 2019-01-06-blogdown-from-beginner-to-give-up-but-not-yet +categories: +- 笔记 +tags: +- 网页制作 +- Rmarkdown +title: Blogdown 日记:从入门到(还没)放弃 +--- +先放链接:[loikein@Github](https://loikein.github.io/) + + +## 用 blogdown 做什么 + +设想:research 笔记 +现实:期末复习笔记。\_。 + + +## 初步搭建 + +从 `.Rhistory` 里挖出了源码: + + + +## 修改 CSS + +虽然也怪我经验不足吧,请看: + +[![](../images/thumbnails/2019-01-06-blogdown-ri-ji-cong-ru-men-dao-huan-mei-fang-qi-%25E5%25B1%258F%25E5%25B9%2595%25E5%25BF%25AB%25E7%2585%25A7%2B2019-01-06%2B12.17.33.png)](../images/2019-01-06-blogdown-ri-ji-cong-ru-men-dao-huan-mei-fang-qi-%25E5%25B1%258F%25E5%25B9%2595%25E5%25BF%25AB%25E7%2585%25A7%2B2019-01-06%2B12.17.33.png) + +就,@\#$%^&\*。 + + +## 添加 Disqus + +参考:[如何使用hugo搭建个人博客(四):添加评论系统disqus](https://studygolang.com/articles/11085) + + +## 添加文章目录 + +参考:[show toc in a rmarkdown file? · Issue \#58 · +rstudio/blogdown](https://github.com/rstudio/blogdown/issues/58) + +但是目录默认放在每篇文章的标题下方,长文不方便看。 +我想要 [Smart TOC](https://chrome.google.com/webstore/detail/smart-toc/lifgeihcfpkmmlfjbailfpfhbahhibba) +那样的效果,还好它[开源](https://github.com/FallenMax/smart-toc),于是复制了一份 +CSS 回来研究。(不想加 JS 还是挺不方便的) + +预览: + +[![](../images/2019-01-06-blogdown-ri-ji-cong-ru-men-dao-huan-mei-fang-qi-%25E5%25B1%258F%25E5%25B9%2595%25E5%25BF%25AB%25E7%2585%25A7%2B2019-01-03%2B10.13.37.png)](https://loikein.github.io/2018/12/29/notes-math-proof/) + +不知道为啥不能滚动,所以标题太多的另外一篇 C 笔记就 overflow 了,待我再研究研究。 + + +## [Rmd 注意事项](https://loikein.github.io/2018/01/01/rmd-template/) diff --git a/content/posts/2019-01-23-il-logical-and-ir-rational-and-love.md b/content/posts/2019-01-23-il-logical-and-ir-rational-and-love.md new file mode 100644 index 0000000..a8ba4b1 --- /dev/null +++ b/content/posts/2019-01-23-il-logical-and-ir-rational-and-love.md @@ -0,0 +1,29 @@ +--- +author: loikein +published: "2019-01-23T01:56:00+01:00" +slug: 2019-01-23-il-logical-and-ir-rational-and-love +categories: +- 随笔 +tags: +- 自述 +title: 逻辑与理性(或:非逻辑与非理性)与爱 +--- +搜了一下带有随笔这个标签的博文,大部分都是未发布的草稿,还有一两篇是发过之后觉得过于私密,又撤回了。 +这不符合我写博的初衷:感受并开放内心,无论好的坏的,无论这样会令自己感觉多么脆弱,因为保持脆弱和敏感是丰富的感受以及创造力的根源。我虽然已经不再有勇气称自己为艺术家,却不想丧失这一经历曾带给我的好处,说起来也不过是一种自私行为。 +艺术。 +我曾经多么接近纯粹的艺术,现在却在研究理性。不是说它俩之间风马牛不相及——想想巴赫——然而关于理性的教育的确飞快地给我洗了脑,使我只好事后把自己洗回来(代价巨大,有另外一篇博文讲这个,懒得找了)。得感谢先生早早地开始介绍(虽然不是实践)非传统的经济教育理念,让我还算及时地开始了怀疑,而怀疑总是好的。 + +现在,显然地,又花了我一些时间去领悟,逻辑和理性其实是两码事。 +这不是一篇理论探讨,至少我在浴室构思的时候不是这么想的。它关于爱。我也写了许多关于爱的博文,统统归类到随笔,基本都没发出来过。我可以为自己找许多理由,袒露内心的脆弱和不安,所谓的东亚文化传统,甚至是关于隐私的担忧,但这些都不能正当化我一直避免谈论爱这个事实。 +我并不想顾影自怜,也不想卖惨。我的人生里拥有和给出过许多爱,但也没能拥有/没能给出/失去过许多,有些是我的错,有些是对方的错,但更多的只是「对的人等不到对的时间」,无论亲情、友情,抑或爱情。当错在我的时候感觉尤其糟糕:我心中高高在上的道德律不允许我犯错,但主观感受对我的心理健康极其重要,最突出的一次的直接结果就是埋伏多年的抑郁症爆发。 +那之后居然已经过了两年了。某次读到这么一句话:「我们相遇在……我人生里一个最为奇特的时间点」(可能是某种[长夜漫漫而你将去往何方](https://site.douban.com/206332/widget/articles/12823609/article/27957555/)梗),然而,站在这里回望过去,我的人生就没有不奇特过,但,我想尝试着描述的这一段,仍然于我也尤为奇特。 +我们家境相当,智力相当,思考方式类似但不同,有许多一致的爱好,相识多年知根知底,简直是完美的一对(现在我又有勇气承认了)。但事情总会出岔子。从高中开始我便习惯于不断搬家,没有太多割舍不下的物品,但直到现在她也是(为数不多的)我愿意随时聊天的对象,因为,是啦,显然我们分手后还是朋友虽然消除尴尬几乎花了整整一年时间,而且这样的人太少了少一个是一个人是社会动物我总不能真的孤独终老。 +逻辑和理性埋葬于此。 + +作为一个渴望爱的人,如果我真的理性,就该尝试(真的努力去尝试)去和那些不讲中文的人建立友谊,但我想要的只有完美的友谊——跨越时间、时差、国境,如果不出岔子预计可以延续一生的 low-maintenance relation。目前只有一例成功,因为我们的主要交流语言是对方的母语,而对方关于如何死缠滥打珍贵的挚友的知识经验显然比我多。 +我在反思是不是自己太别扭:我想要松散的、热情的、持续的爱,讨厌义务感,又想要偶尔的关心陪伴。可能整个世界加在一起可能都没有太多能满足我的需求的人,但我奉行宁缺毋滥,真的缺了的时候又寂寞。幸运地,即使我真的很少主动结识别人,我从来不缺「当下」的朋友,偶尔会有一两个人转化为长期朋友,我为他们的存在而感谢所有我不相信存在的神,以为从此就能免于缺爱,但事情总会出岔子。 +其实也不算岔子。 +那之后我努力尝试各种各样的爱情,最后决定不再主动寻求爱情、不再为这一虚无缥缈的概念所困。前两天我重读一篇情节有点模糊了的小说,半夜一点窝在被子里痛哭流涕,这是引发这篇博文的直接原因。我想我已经接受了另一份完美爱情不出现在我身上的可能性,但既然我拥有几份完美的友谊,完美的爱情可能也是存在的,那么为我不能拥有它而痛哭可能也是符合逻辑的,只除了这真的不合逻辑。 +又或许,既然逻辑和理性都是人定的,那么人也有权违反它们。 + +我可能一发出去就后悔了,但是我困得很,发了再说。 diff --git a/content/posts/2019-02-11-vulcan-s-heart.md b/content/posts/2019-02-11-vulcan-s-heart.md new file mode 100644 index 0000000..75fd158 --- /dev/null +++ b/content/posts/2019-02-11-vulcan-s-heart.md @@ -0,0 +1,20 @@ +--- +author: loikein +published: "2019-02-11T00:53:00+01:00" +slug: 2019-02-11-vulcan-s-heart +categories: +- 随笔 +tags: +- 自述 +title: 瓦肯之心 +--- +我总是爱上一群人中最离群的那一个,这句话有些语病,但千真万确。有一部分原因,是我自己**就是**一群人中最离群的那一个。不是说我对此感到自豪。 +爬回 ST 圈给我一种回家的感觉。重新审视曾经读过的那些文,我惊讶地发现,它们真的已经成为了我生命的一部分。Atlas 的黑制服,The Door 的读书之夜,无数机器人和传送器梗,藏在人海里的天才和受伤的心,它们使我想要成为更好的人,它们使我成为了更好的人。 +而,最最美好的是,我再一次记起了自己是个多么无药可救的科幻迷。 + +上次之后我继续反思自己,然后意识到,好嘛,我的痛苦的本质是这个宇宙里没有一个瓦肯在等着我。那么,惟一逻辑的解决方式就是:让我来成为一个瓦肯。 +让我来怀抱所有深切的情感和自控,让我来成为别人的那扇门。我虽没有瓦肯之心,但让我拥有瓦肯之魂。 + +向不是 ST 迷、甚至不是科幻迷的人推一篇小文吧:[我们是星尘](https://archiveofourown.org/works/585891)。 + +> 我们不是地球人,不是瓦肯星人,不是猎户星人。我们不是黑人,白人,亚洲人,拉丁人。我们是星际舰队。我们是原子。氧,碳,氢,氮,钙,磷,铜,铁。我们是元素不同的排列。尘归尘,土归土。宇宙即伊甸。 diff --git a/content/posts/2019-02-14-sleepless-museum-007-westlife.md b/content/posts/2019-02-14-sleepless-museum-007-westlife.md new file mode 100644 index 0000000..8ea5dde --- /dev/null +++ b/content/posts/2019-02-14-sleepless-museum-007-westlife.md @@ -0,0 +1,163 @@ +--- +author: loikein +published: "2019-02-14T13:21:00+01:00" +slug: 2019-02-14-sleepless-museum-007-westlife +categories: +- 睡不着博物馆 +title: 睡不着博物馆 007:Westlife A - Z +--- +Complete list: [Westlife Lyrics](https://www.azlyrics.com/w/westlife.html) + +## A + +### Against All Odds (1999) + +{{< youtube id=Dc3YAINjlyE title="Against All Odds" >}} + +### Amazing (2005) + +{{< youtube id=UZxVfGuQ2J8 title="Amazing" >}} + +## B + +### Beautiful World (2011) + +{{< youtube id=ZZN4FIsyHR0 title="Beautiful World" >}} + +## E + +### Every Little Thing You Do (2000) + +{{< youtube id=6kK8n350eqg title="Every Little Thing You Do" >}} + +## F + +### Flying Without Wings (1999) + +{{< youtube id=vKPGxGCFgTs title="Flying Without Wings" >}} + +### Fool Again (1999) + +{{< youtube id=Q7jCUB17kJw title="Fool Again" >}} + +## H + +### Home (2003) + +{{< youtube id=DuFHaVJpcr4 title="Home" >}} + +### Hello My Love (2019) + +{{< youtube id=753Gl2VlPF8 title="Hello My Love" >}} + +### Have You Ever (2007) + +{{< youtube id=KqdbSabv9cA title="Have You Ever" >}} + +## I + +### I Do (2007) + +{{< youtube id=hNCKSS2E_yU title="I Do" >}} + +### I'm Already There (2001) + +{{< youtube id=ny4dOSGnuOY title="I'm Already There" >}} + +## L + +### Lighthouse (2009) + +{{< youtube id=Tivph7mTku4 title="Lighthouse" >}} + +## M + +### My Love (2000) + +{{< youtube id=ulOb9gIGGd0 title="My Love" >}} + +### Mandy (2003) + +{{< youtube id=8ShlE-xobyw title="Mandy" >}} + +## N + +### No Place That Far (2000) + +{{< youtube id=tzbVxnUFCxU title="No Place That Far" >}} + +## O + +### Obvious (2003) + +{{< youtube id=FY2d5CQuTdg title="Obvious" >}} + +## P + +### Pictures in My Head (2007) + +{{< youtube id=15GWxpQOr4Q title="Pictures in My Head" >}} + +## Q + +### Queen Of My Heart (2001) + +{{< youtube id=-cfr8uo3hPA title="Queen Of My Heart" >}} + +## S + +### Safe (2010) + +{{< youtube id=eNUTlexj7cU title="Safe" >}} + +### Swear It Again (1999) + +{{< youtube id=pRdv7lDoqIo title="Swear It Again" 4x3="true" >}} + +### Something Right (2007) + +{{< youtube id=n6IJ3zOaO-0 title="Something Right" >}} + +## T + +### The Rose (2006) + +{{< youtube id=oP6Z3ya_-tA title="The Rose" >}} + +## U + +### Us Against The World (2007) + +{{< youtube id=_RjA15Pnnd4 title="Us Against The World" >}} + +### Unbreakable (2002) + +{{< youtube id=rlv9gP3by0I title="Unbreakable" >}} + +## W + +### Wide Open (2011) + +{{< youtube id=ko5dA9tjYs8 title="Wide Open" >}} + +### What About Now (2009) + +{{< youtube id=Vc7Fn4Hk088 title="What About Now" >}} + +### What Makes A Man (2000) + +{{< youtube id=SRiFCFbyCt8 title="What Makes A Man" >}} + +### When You're Looking Like That (2000) + +{{< youtube id=03Bhru_UzuM title="When You're Looking Like That" >}} + +## Y + +### You Must Have Had A Broken Heart (2007) + +{{< youtube id=TVtXaWRTMQU title="You Must Have Had A Broken Heart" >}} + +### You Raise Me Up (2005) + +{{< youtube id=BKRcN2JxQME title="You Raise Me Up" >}} diff --git a/content/posts/2019-03-12-green-book-by-peter-farrelly.md b/content/posts/2019-03-12-green-book-by-peter-farrelly.md new file mode 100644 index 0000000..563968b --- /dev/null +++ b/content/posts/2019-03-12-green-book-by-peter-farrelly.md @@ -0,0 +1,46 @@ +--- +author: loikein +published: "2019-03-12T01:11:00+01:00" +lastmod: "2021-04-25 18:45:48.604 +0200" +slug: 2019-03-12-green-book-by-peter-farrelly +categories: +- 感想文 +tags: +- 电影 +title: 以什么对抗什么,暨,个人认同与集体认同:彼得・法雷里《绿皮书》 +--- +警告:腐女脑出没。 + +*** + +来到德国后看的第一部电影。一周过去了,还是想写点什么。没字幕,有些高级梗没看懂,等有空再看一次。 +这部电影是完美的吗?当然不是。 +我喜欢吗?喜欢,喜欢得不得了。 +老生常谈:每个能打动你的故事,讲的都是你自己的故事。 + +故事开头,受本地人歧视的意大利裔白人家里来了几个黑人客人。Tony 把他们放在水槽边的水杯扔进垃圾桶那幕一出来,我:ouch。 +Tony 去面试,他歧视黑人,Doc 看不起他粗俗,但是 Tony 名声在外,Doc 无论怎样还是很想聘他,就很萌(我的脑……)。Tony 和 Doc 之间从互相看不顺眼,到「正常」的雇佣关系,再慢慢变成患难之交,是这个故事里最明亮的一条线。每次我因为剧情起伏开始揪心的时候,Tony 都会出来打个岔,让气氛又轻松起来。我相信那个年代的真实肯定没有这么轻松愉快,但不失为一种有趣的叙事方式。 + +Doc 只弹斯坦威,写在合同里。 +同样是 Doc:如果你想让我弹,我就弹。(歧视他到死的餐厅老板/破烂立式钢琴) + +Doc 主动提出当情书枪手的时候我爆笑出声,到后来我真的觉得他已经爱上 Tony 的时候,又揪心地虐。最后他们连夜回到纽约,Doc 开车送 Tony 到家,Tony 叫他上楼,Doc 却笑笑,说了一句圣诞快乐就开车走了。我在心里疯狂大叫别走啊好歹抱一个啊! +回到剧院楼上的家,空空荡荡的宫殿,镜头扫过他面试 Tony 时坐过的高背椅子,讽刺混合失落。(掏出石头那里我笑了) +还好最后他又回来了,对 Tony 老婆的那句「谢谢你借丈夫给我」,我无语凝咽。 + +旅途中发生好几次危机,印象比较深的是澡堂和看守所。 +澡堂那场,最后的经典台词「我不够黑,也不够白,甚至不够男人,那我到底是谁?」明显在呼应先前路边田野里劳作的黑人们。这句话,豆瓣上有人批「政治正确」,微博上也有人批「不懂导演到底想表达个人身份认同危机还是黑人反抗压迫」(非原话),我只想疯狂摇头。 +朋友,这句话是整部剧里面最有高度的一句话好不好,说奥斯卡是颁给这句话的我都信。什么时候「政治正确」也能是一种错误了?又是什么时候,个人身份和集体身份能被分割开了?你的小学语文老师没教过你写作文要以小见大见微知著一沙一世界吗? +Doc 的个人认同危机(里面其实也包含了 Tony 的个人认同危机,隐藏更深的一条线),把这部电影从探讨黑人解放,提升到探讨所有人的自我解放的高度。一个人或许生下来是黑是白,是男是女,是弯是直,这些标签不代表了你是谁,你大于这些标签的总和。 + +看守所里 Doc 尝试跟警察讲理,但警察鸟都不鸟他(后来我才反应过来那里应该是日落小镇),最后他打电话给了某个大人物(总统?)才被解救。Tony 高兴得要命,Doc 却觉得屈辱,他大概是这么说的: +「那位人物……他忙着改善所有美国人的生活,我却因为这点微不足道的小事烦他,他会怎么看我?叫他打电话给看守所放我出来?他会怎么看我?」 +我由此联想到一路上 Doc 都试图教育 Tony,从「eyes on the road」,到「把石头放回去」,到发音练习。他可能被 Tony 教坏了那么一点点,甚至把鸡骨头扔到窗外去了,但他一直保持着高贵和尊严。 +同一场戏的早些时候,他对 Tony 说:「暴力不可取,惟有保持尊严才能胜利。」 +但我好想知道,Doc,你是如何用你的尊严对抗整个世界的?就像所有那些非暴力不合作、make love no war、I have a dream 一样?就像一个英雄一样?就像,我永远只能仰望的那样? +我博客的副标题是「用爱和理性对抗荒谬」,但,真的,how? + +最后,这部电影令我想起了去年看的《普通女人》。主角一样的美丽,更加脆弱,却多了同伴支撑。 + +部分引言来自:[Green Book Best +Quotes](https://www.moviequotesandmore.com/green-book-best-quotes/) diff --git a/content/posts/2019-03-30-idealism-and-realism.md b/content/posts/2019-03-30-idealism-and-realism.md new file mode 100644 index 0000000..c87e2a8 --- /dev/null +++ b/content/posts/2019-03-30-idealism-and-realism.md @@ -0,0 +1,111 @@ +--- +author: loikein +published: "2019-03-30T01:03:00+01:00" +slug: 2019-03-30-idealism-and-realism +categories: +- 随笔 +tags: +- 自述 +- Essay +- Introspection +title: 理想主义与现实主义/Idealism and realism +--- +{{< row >}} +{{< col >}} +我一直羞于承认自己是理想主义者,正如我一直羞于承认自己是现实主义者。事实上,我几乎从不承认自己是任何「主义者」。当不得不探讨政治问题的时候,我试图藏在绝对中立的面具后面,不偏向任何一方。这,当然,是不可能的。 +学了性别学之后(感谢 Chris),我开始重新审视自己与这个世界之间的关系。 +{{< /col >}} +{{< col >}} +I have always been ashamed to admit that I am an idealist, just as I +have always been ashamed to admit that I am a realist. In fact, I almost +never admit that I am any "ist". When I have to discuss political +issues, I try to hide behind my absolutely neutral mask, and to be not +biased towards any side. Which, of course, is impossible. +After taking Gender Study (thanks to Chris), I began to re-examine my +relationship with the world. +{{< /col >}} +{{< /row >}} + +{{< row >}} +{{< col >}} +在很多事情上,我是个彻头彻尾的理想主义者。我相信和平与秩序,相信理性(rationality)和理论(reasoning)的力量,相信人性的坚韧和美好。我相信(或者说希望)人类能联合起来,超越割裂和偏见,找到出路。但在某些话题上,我又非常矛盾地成为了顽固的现实主义者。小到不相信给流浪汉一笔钱他们就能重返社会,大到不相信 Brexit、Trump wall、两岸能得出有序的良性结果。 +我已经发现了:我只相信抽象的、作为概念的人。一旦涉及到具体的、现实中的个人或者某些人,我立即丧失所有信心。 +这完全不符合逻辑。不知怎的,我觉得全体人类放在一起就不可战胜,然而他们每一个单独拎出来都是弱智。要不就是我的脑子有问题,要不就是我把人类看作蚂蚁,因为蚂蚁有集体智慧。 +可能我真的把人类看作蚂蚁。一种不自量力的、居高临下的态度,你可能会说,但我不会否认自己也是蚂蚁。我自己也有能见人的一面和破烂不堪的一面,就像每一只蚂蚁一样。我并不为自己是蚂蚁而自豪,相反,我在有能量自控的时候是个半夜都不会闯红灯的好市民,但在我(一点也不自豪地)当蚂蚁之后,我学着不去过于苛责自己。 +{{< /col >}} +{{< col >}} +For many things, I am an downright idealist. I believe in peace and +order, believe in the power of rationality and reasoning, and believe in +the tenacity and beauty of human nature. I believe (or hope) that +humanity can unite, transcend what isolates and prejudices us, and find +a way out. But on some topics, I am contradictory enough to become a +stubborn realist. From small issues like not believing that the homeless +can reintegrate into the society with one pushing donation, to big ones +like not believing that Brexit, Trump wall, and China-Taiwan relations +will end up orderly and benignly. +I have discovered: I only believe in abstract, conceptual human. When it +comes to specific, real-life individuals or certain groups of people, I +immediately lose all my confidence. +This is not logical at all. Somehow, I feel that all humans together +can't be defeated, but each of them is idiot. Either is there a problem +with my brain, or I see humanity as ant, because ant has collective +intelligence. +Maybe I really perceive humanity as ant. What an overconfident and +condescending attitude, you may say. But I would not deny that I am an +ant too. I have my good-looking side and my bad side, just like every +other ant. I am not proud of being an ant. When I have the mental energy +for self-control, I don't even run red lights in the midnight. However, +when I (not proudly at all) become the ant, I have learnt not to be too +harsh on myself. +{{< /col >}} +{{< /row >}} + +{{< row >}} +{{< col >}} +我的理想主义启蒙应该是北岛的《回答》和居里夫人的《我的信念》。后者[提到过了](https://loikein.blogspot.com/2018/11/blog-post_26.html),抄抄诗。 +{{< /col >}} +{{< col >}} +The enlightenment to my idealism should be Bei Dao's *The Answer* and +Marie Curie's *My Faith*. I [have already mentioned](https://loikein.blogspot.com/2018/11/blog-post_26.html) about +the latter before, below is some pasted poem. +{{< /col >}} +{{< /row >}} + +> 回答 +> 北岛 +> ([English translation](https://www.poetryfoundation.org/poems/50088/the-answer-56d22cd8d69d0)) +> +> 卑鄙是卑鄙者的通行证, +> 高尚是高尚者的墓志铭, +> 看吧,在那镀金的天空中, +> 飘满了死者弯曲的倒影。 +> +> 冰川纪过去了, +> 为什么到处都是冰凌? +> 好望角发现了, +> 为什么死海里千帆相竞? +> +> 我来到这个世界上, +> 只带着纸、绳索和身影, +> 为了在审判之前, +> 宣读那些被判决的声音。 +> +> 告诉你吧,世界 +> 我——不——相——信! +> 纵使你脚下有一千名挑战者, +> 那就把我算作第一千零一名。 +> +> 我不相信天是蓝的, +> 我不相信雷的回声, +> 我不相信梦是假的, +> 我不相信死无报应。 +> +> 如果海洋注定要决堤, +> 就让所有的苦水都注入我心中, +> 如果陆地注定要上升, +> 就让人类重新选择生存的峰顶。 +> +> 新的转机和闪闪星斗, +> 正在缀满没有遮拦的天空。 +> 那是五千年的象形文字, +> 那是未来人们凝视的眼睛。 diff --git a/content/posts/2019-04-01-us-by-jordan-peele.md b/content/posts/2019-04-01-us-by-jordan-peele.md new file mode 100644 index 0000000..dea218a --- /dev/null +++ b/content/posts/2019-04-01-us-by-jordan-peele.md @@ -0,0 +1,85 @@ +--- +author: loikein +published: "2019-04-01T11:00:00+02:00" +slug: 2019-04-01-us-by-jordan-peele +categories: +- 感想文 +tags: +- 电影 +- Review +- Film +title: '追求什么,怎么追求:乔丹・皮尔《我们》/What to pursue, how to pursue: Jordan Peele Us' +--- +{{< row >}} +{{< col >}} +我一直在平等和自由这两者应该谁先谁后这个问题上摇摆不定。前些日子有些偏向自由,然而这部电影又给我偏回去了。 +我们追求什么?平等与自由,我很赞同。 +我们怎么追求?——关于手段/期望结果,本片给出的答案是暴力/你死我活。我有些不确定自己怎么看。 +{{< /col >}} +{{< col >}} +I have been swinging on which of equality and freedom comes first. Some +time ago I was for freedom, but the film kind of pushed me back. +What are we pursuing? Equality and freedom. I agree on that. +How do we pursue? For the means and expected outcome, the answer given +by this film was violence and zero-sum. I am not sure how I think about +it. +{{< /col >}} +{{< /row >}} + +{{< row >}} +{{< col >}} +手段和结果是紧密相关的。我不能昧着良心说我赞成暴力,但无可辩驳的是,暴力的确是弱势一方引起强势一方注意/反应及影响媒体大众的最好方式(详见上月的新西兰枪击案)。暴力有时被描述为「必须的恶」,这个词很有意思。是恶我就会反对,那么必须的恶呢?如果我方不使用暴力便会被对方暴力解决,我还会坚持不能使用暴力吗?我愿意为信念赴死不代表我愿意或者有资格拉着同伴垫背,但暴力就是暴力。恶就是恶。 +你死我活其实也是个很有意思的期望值。红衣杀死自己对应的地上人,以获得他们地上人的身份和生活(e.g. +白人妈妈涂口红那幕),这一行为使角色对调:他们成为了原本的地上人,来压迫成为了地下人的对应。如果反抗压迫的目的即成为压迫者,那么这种反抗还是道德的吗? +{{< /col >}} +{{< col >}} +The means and outcomes are closely related. I must obey my conscience +and say that I don't agree with violence, but it is irrefutable that +violence is indeed the best way for a weaker party to attract the +stronger party's attention/reaction and to impact on the media and the +public (see the New Zealand mosque shooting last month). Violence is +sometimes described as "necessary evil," a very interesting word. I will +oppose whatever is evil, but what what about the necessary ones? If it +is either using violence or being violently resolved by the other party, +will I still insist on not using violence? My willingness to die for my +faith does not imply that I am willing or qualified to bring my +companions to the hell with me. But still, violence is nothing but +violence. Evil is nothing but evil. +{{< /col >}} +{{< /row >}} + +{{< row >}} +{{< col >}} +影片结尾扔出了女主其实来自地下的最大包袱,但其实我之前看过剧透已经知道了(靠),整部影片就成为了慢慢拼图的过程。她把原身锁在自己的床上,融入地上人之后也没有去接回原身这一点意义深远:她就是要代替原身。 +而原身成为红衣首领的动机更不甚明了。她进入女主家里之后让女主把自己的手锁在茶几上,是一个明显的复仇的信号——二三十年过去了——她是真的要引领地下人反抗压迫,还是只是一个想回去的执念变得越来越大了呢?她真的把地下人当作了自己的同类,还是仅仅是能使她重回地上的工具? +我承认我有点过于热衷阴谋论,但是怀疑总比盲目接受要强。 +{{< /col >}} +{{< col >}} +At the end of the film, there came the biggest twist that the heroine +actually was from the underworld. However, I have already seen the +spoiler before (what), therefore the whole film became a jigsaw puzzle. +The fact that she locked RED's hands in her bunk bed and did not go back +to save her after integrating into the upperworld was crucial: she was +to replace RED. +And the motivation for RED being the leader of the reds' was even less +clear. After entering the heroine's house, RED let her lock her hand on +the table, a clear signal of revenge. Two or three decades have passed, +was she really leading the underworld to resist the oppression, or was +it just her desire to return to the upperworld? Did she really take the +underground as her own people, or were they just a tool to get her back +up the ground? +I admit that I am a bit too keen on conspiracy theory, but doubting is +always better than blind acceptance. +{{< /col >}} +{{< /row >}} + +{{< row >}} +{{< col >}} +不管怎样,能让观众看过之后思考这么多东西,算是一部十分成功的电影了。打算补补 +Get Out。 +{{< /col >}} +{{< col >}} +In any case, it is a very successful film to let the audience think +about so many things afterwards. Planning to watch *Get Out* too. +{{< /col >}} +{{< /row >}} diff --git a/content/posts/2019-04-09-a-small-mess.md b/content/posts/2019-04-09-a-small-mess.md new file mode 100644 index 0000000..9475f3b --- /dev/null +++ b/content/posts/2019-04-09-a-small-mess.md @@ -0,0 +1,96 @@ +--- +author: loikein +published: "2019-04-09T09:25:00+02:00" +lastmod: "2021-04-25 19:00:39.566 +0200" +slug: 2019-04-09-a-small-mess +categories: +- 随笔 +tags: +- Essay +title: 一件小事/A small mess +--- +这事儿有后续的,但是我没发出来。再说吧。 + +*** + +{{< row >}} +{{< col >}} +我妈叫我申暑校,我申了斯坦福,被录取了,然后她叫我不要去。虽然她的第一反应通常被证明是错的,但是我就是气不过要讲讲。 +{{< /col >}} +{{< col >}} +My mom let me apply for some summer schools. I applied for Stanford and +was accepted. Then she told me not to go. Although her first reaction +has often proved to be wrong, I am still angry and have to talk about +it. +{{< /col >}} +{{< /row >}} + +{{< row >}} +{{< col >}} +事情是这样的。 +我不知道自己想不想读博,但是她一直想要我去读博。 +中国人读博第一步:套磁。 +我妈套磁第一步:申暑校/交换。好呗,反正我暑假也不想回家,就随便申了两个目测不太可能要我的。 +中国人读博第二步:找中介。 +我妈火急火燎找了中介,结果现在斯坦福暑校要我了,伦敦政经申了三门课,有一门也要我了(刚看到的,还没跟我妈讲),,,我有点不知道怎么反应,但是我是想去的。 +我妈:你这样会延毕的啦!不要去! +也是我妈:你是超人!你没有什么事做不到的! +我无话可说。 +{{< /col >}} +{{< col >}} +This is the thing. +I have forever been not sure if I want to attend PhD, but she always +wants me to. +Step 1 for Chinese to PhD: prospective student email. +Step 1 for my mom: summer school / exchange. Well, I don't want to go +back home during the summer anyways, so I applied for two random schools +that are not likely to admit me. +Step 2 for Chinese to PhD: find an agency. +My mom hurried to sign an contract with the agency. And now that I am +accepted to Stanford Summer Session and 1/3 of the LSE Summer School…I +do not know how to react, but I want to go. +My mom: You will not be able to graduate in two years lah! Don't go! +Also my mom: You are Superman! You can do everything! +I am speechless. +{{< /col >}} +{{< /row >}} + +{{< row >}} +{{< col >}} +附我给斯坦福写的小作文: +{{< /col >}} +{{< col >}} +Attached is my personal statement for Stanford: +{{< /col >}} +{{< /row >}} + +Prompt: Stanford students are known to possess a sense of intellectual +vitality. Tell us about an idea or experience that you found +intellectually engaging. The statement may be a maximum of 300 words in +length and must be written in English. + +Being a social person has been a huge challenge for me. And yet, a major +source of my creativity comes from people — interacting or simply +observing them. +During the last year in college, I developed a hobby to walk down the +streets and to look at everyone. Not just walking, for hours, crossing +multiple districts along underground lines. The initial purpose was to +cure my anxiety, but as soon as I got more engaged, my brain started to +process all the information automatically. I found myself reasoning +about people on the streets, their activities, mood, and even +background. It was more or less a meditation, but instead of reaching +inwards I searched outwards, and instead of resting my body, I kept +moving. Oftentimes after the walking, the album on my phone was full of +snapshots, and my mind full of new ideas about essays and, at that time, +my bachelor's thesis. +The thesis was a formalized analysis of human behaviour in terms of +self-consciousness, highly inspired by my fellow humans. In addition to +an economics student, through years of experience of a self-proclaimed +photographer and blogger, I found the representation of wisdom and +intellect sparkling in the tiniest places like greetings and coffee +break conversations. They are not even slightly less valuable than in +papers or discussion at conferences. +I wish I were more sensitive to these forms of daily intellect, part of +the reason why I keep training the little anthropologist and artist me +in my heart, why I never stop walking from countries to countries. Would +you like to be my next stop, Stanford? diff --git a/content/posts/2019-04-20-a-postcard.md b/content/posts/2019-04-20-a-postcard.md new file mode 100644 index 0000000..66815c0 --- /dev/null +++ b/content/posts/2019-04-20-a-postcard.md @@ -0,0 +1,52 @@ +--- +author: loikein +published: "2019-04-20T16:19:00+02:00" +slug: 2019-04-20-a-postcard +categories: +- 随笔 +tags: +- Essay +title: 一张明信片/A postcard +--- +{{< row >}} +{{< col >}} +瓜总寄了明信片给我,我也想寄给她,但总担心寄出去之后她就搬家了然后收不到 +ry,于是就这样吧。 +{{< /col >}} +{{< col >}} +Danny sent a postcard to me, and I want to send something back. But my +big worry is always that she might move away right after I send it, so, +this is it. +{{< /col >}} +{{< /row >}} + +[![](../images/thumbnails/2019-04-20-yi-zhang-ming-xin-pian-a-postcard-IMG_7870.jpg)](../images/2019-04-20-yi-zhang-ming-xin-pian-a-postcard-IMG_7870.jpg) + +{{< row >}} +{{< col >}} +瓜总: +虽然你说感觉我的生活还不错,我自己也依然享受作为学生的日常,但研究生真的苦。我有点儿想不起来以前怎么一个学期能学十门课,怎么考前几个星期才开始复习还能考得挺好,怎么在课余还能干点其他事儿。 +然而如果让我再选一次应该还是会考研,就像我觉得让你再选一次你也还是会直接工作。怎么说呢,我是个爱钻牛角尖的人,而你更擅长做实事。 +希望你喜欢你的工作。我喜欢我的专业,但日渐感觉到我的热情不完全放在它身上。可能这也是成为大人的体验的一部分,毕竟,似乎,大部分人都不会从事自己真正热爱的事业?如果你还打算着下一个目的地的话,那很好,但可能我们不会在欧洲再见,因为,厄,我终究还是想去美国看看。 +加油8。 +{{< /col >}} +{{< col >}} +Danny: +Although you wrote that my life seemed good, and I, too, enjoy the daily +life of still being a student, but postgraduate life sucks. I can't +remember how we used to take ten lectures in a semester. How did I start +reviewing just a few weeks before the exams and still get fine grades? +How did I find spare time to do other things? +However, if I were to choose again, I might still take it. I think that +if you were to choose again, you would also choose to work again. I am a +person who splits hairs, and you are better at getting things done. +I hope you like your work. I like my major, but I feel that my +enthusiasm is not completely on it. Maybe this is also part of the +experience of becoming a grown-up. After all, it seems that most people +do not follow a career that they really love. If you are still planning +for the next destination, that's great, but maybe we won't meet again in +Europe, because, well, I want to check out the United States after +all. +Good luck lah. +{{< /col >}} +{{< /row >}} diff --git a/content/posts/2019-04-22-for-you-who-have-everything.md b/content/posts/2019-04-22-for-you-who-have-everything.md new file mode 100644 index 0000000..ca5adfc --- /dev/null +++ b/content/posts/2019-04-22-for-you-who-have-everything.md @@ -0,0 +1,30 @@ +--- +author: loikein +published: "2019-04-22T17:07:00+02:00" +slug: 2019-04-22-for-you-who-have-everything +categories: +- 诗 +title: 致拥有一切的你 +--- +星空是你挂毯 +浪花是你酒窝 +层云是你衣角翻飞 +彩虹是你眉心微皱 + +你是 +每时三刻的钟声 +晨雾 +穿过玫瑰花窗的阳光 +彩霞 + +寒窗边 +书声中 +深渊深处 +穿越旷野 +我想起你 + +你指引我不惧黑夜 +你指引我触及自由 +伊甸里惟一的花朵 +是你 +是我此后一生的泪水 diff --git a/content/posts/2019-05-08-life-on-the-road.md b/content/posts/2019-05-08-life-on-the-road.md new file mode 100644 index 0000000..8dacbfe --- /dev/null +++ b/content/posts/2019-05-08-life-on-the-road.md @@ -0,0 +1,101 @@ +--- +author: loikein +published: "2019-05-08T13:11:00+02:00" +lastmod: "2021-04-25 19:04:35.566 +0200" +slug: 2019-05-08-life-on-the-road +categories: +- 随笔 +tags: +- 自述 +- Essay +- Introspection +title: 生,活/Life on the road +--- +{{< row >}} +{{< col >}} +我从小厌恶漂泊。我会为了稳定或者纯粹是懒得争取而放弃机会。结果呢,进了住宿高中,出国念大学,从一个遥远的地方去往另一个更远的地方。 +也许我的偏好改变了,也许没有。小学有一阵子,我的主要课外书(厕所/饭桌/午休)是《生存手册》。我还记得宝盒里的火石和锯条,记得怎么用树叶或细枝搭建庇护所,记得给鹿放血时的注意事项,梦想着有一天能拥有一颗 β 灯。在那之前是《福尔摩斯全集》,之后是《科幻世界》。 +但我从来不喜欢出远门。行李,充电,舒适与轻量的权衡,回家之后的空虚感。在外面住久了,适应周围的环境后,又难免对居所产生依恋,临走时打包分外困难,不知道能丢下什么,不知道往后的生活里会思念什么。 +此时写下这几行字,那些被丢在了日本的东西又浮上心头,冲刷过我的视野。 +{{< /col >}} +{{< col >}} +I hated drifting much since I was a kid. I would trade opportunity for +stability or was simply too lazy to try. It just turned out I entered a +boarding high school, went abroad for college, from a distant place to +another farther place. +Maybe my preferences have changed, maybe not. For a while in elementary +school, my main reading (toilet/dining table/noon break) was the *SAS +Survival Handbook*. I still remember the flint and flexible saw in the +survival kit, how to build a shelter with leaves or twigs, or the +significant steps when bleeding a deer, and I still dream of having a +beta light one day. Before that was the *Complete Sherlock Holmes*, +followed by *Science Fiction World*. +But I never liked to travel far. The baggage, the charging, the +trade-off between comfort and lightweight, the sense of emptiness when +back home. After living outside for a long time, after adapting to the +surroundings, it is inevitable to form some attachment to the residence, +and makes it difficult to pack when leaving. Don't know what to leave +behind, don't know what will be missed in the future. +As I write these words, things that I have left in Japan float onto my +mind, and rush down my vision. +{{< /col >}} +{{< /row >}} + +{{< row >}} +{{< col >}} +然而很讽刺地,正是这几年的漂泊,定义了我现在的模样。 +以前看过一本漫画,叫《[妻は他人(妻子是陌生人)](https://www.amazon.co.jp/dp/B07739GRF7)》,里面讲了作者和妻子在澳大利亚打工度假的时候主食是肉和芒果,在老家几乎每天都吃鱼,公寓附近开了新的便利店就时不时吃方便面(P27)。当时我想,真好啊,我总有一天也要成为这样,到哪儿都能适应生存的人。而,不知不觉间,我已经是了。 +曾经断舍离、极简主义风行,我却总是割舍不下许多东西。结果呢,一个人跨国搬家,电子化一切纸质材料,最后托运还是超重了好几千人民币。到了新宿舍安定下来,发现过去的几年生活,几乎没有留下什么行李体积上的痕迹。 +我想我在本质上并不是一个极简主义者。在国内的家里,我的书占领了两墙顶天立地的书柜和书房的小半地面,然而半年前我塞进行李箱的书,只有三五本文库小说和一本二手的专业大部头。书是我为漂泊所作的最后的、也是最难的牺牲。 +……谁知道呢? +如果有一天,我漂泊的生活指引我摒弃电子产品,我会拥抱它吗? +{{< /col >}} +{{< col >}} +Ironically, however, it is the drifting of the past years that defines +who I am now. +I have read a manga called *[My Wife is A +Stranger](https://www.amazon.co.jp/dp/B07739GRF7)*. When the +author and his wife were taking a working holiday in Australia (P27), their +staple food were meat and mango. He ate fish almost every day in his +hometown. And when nearby their apartment opens a new convenience store, +he bought instant noodle from time to time. I thought while reading the +book, whoa, I have to be like that someday, to be able to survive +anywhere. Well, all in a sudden, I am already. +Once when Danshari and minimalism were hot, I was so unable to give up +any thing. In the end, I managed to move abroad alone. After scanning +almost all handouts and notes, the checked luggage was still overweight +for thousands of RMB. When I finally arrived at my new dormitory, I +found that the past few years had hardly left any trace of luggage +volume. +I guess I am not a minimalist in nature. In my home back in China, my +book occupied the bookshelves of two complete walls and almost half of +the floor of the study. However, half a year ago, what were stuffed into +my luggage were several bunkobons and one huge second-handed specialized +book. Cutting off the books was the last and most difficult sacrifice I +made for the drifting. +…But who knows? +If one day, my wandering life guides me to abandoning all of my +electronic products, will I embrace it? +{{< /col >}} +{{< /row >}} + +{{< row >}} +{{< col >}} +我总是在计划着,梦想着,等有一天拥有了自己的房子,可以不用再扔东西,可以塞满书柜,可以放一阳台的花盆……我曾经拥有过;我几乎要拥有了,如果留在日本读研工作的话家人会支持我买房的——然而收到波恩的录取信之后,着了魔一般,这一切都被我抛到脑后去了。 +留在欧洲也曾在我的列表上,然而从某天起,对洛杉矶的憧憬盖过了我对美国的成见,盖过了我对好不容易安定下来的留恋,开始对我大吼大叫。 +可能,也许,我最终还是喜欢漂泊的。 +{{< /col >}} +{{< col >}} +I've been always planning, dreaming, waiting to have my own house one +day. When I don't have to throw anything away, when I can stuff my +bookcase, when I can put a thousand flower pots on the balcony... I once +had it; I almost had it, If I stayed in Japan for graduate study and +work, my family would support me to buy a house -- but after receiving +the admission letter from Bonn, I was enchanted, and all of those was +left behind my head. +Staying in Europe used to be on my list too. However, from some certain +day, the charm of Los Angeles overshadowed my prejudice against the US, +overshadowed my reluctance to settle down, and began to yell at me. +Maybe, after all, I still like drifting. +{{< /col >}} +{{< /row >}} diff --git a/content/posts/2019-06-09-litany-in-which-certain-things-are-crossed-out-by-richard-siken.md b/content/posts/2019-06-09-litany-in-which-certain-things-are-crossed-out-by-richard-siken.md new file mode 100644 index 0000000..e72f28f --- /dev/null +++ b/content/posts/2019-06-09-litany-in-which-certain-things-are-crossed-out-by-richard-siken.md @@ -0,0 +1,175 @@ +--- +author: loikein +published: "2019-06-09T22:47:00+02:00" +slug: 2019-06-09-litany-in-which-certain-things-are-crossed-out-by-richard-siken +categories: +- 翻译 +tags: +- 英译中 +title: 中文翻译:Litany in Which Certain Things Are Crossed Out by Richard Siken (划去了特定字句的祷告) +--- +不定期修改,欢迎指点。 + +[Litany in Which Certain Things Are Crossed Out by Richard Siken | +Poetry +Foundation](https://www.poetryfoundation.org/poems/48158/litany-in-which-certain-things-are-crossed-out) +“Litany in Which Certain Things Are Crossed Out” by Richard Siken. From +Crush, © 2006 by Yale University, published by Yale University Press. +Source: Crush (2006) + +*** + +每个早晨枫叶落下。 +        每个早晨又一篇章中英雄 +    换腿站立。每个早晨同样大大 +小小的字拼出欲望,拼出 +              *你会孤身一人直至老去。* +所以也许我想给予你的 +    比一册不权威的行为指南更好, +又并非绝望。 +      亲爱的某某,对不起我没去成你的聚会。 +亲爱的某某,对不起我去了你的聚会 +    诱你堕落 +留你遍体鳞伤,可怜的人。 +                你想得到更好的人生。谁不想呢? +那么,一片森林。美丽的树木。一位姑娘在其中歌唱。 +      *水面上的爱,水面下的爱,爱,爱*循环往复。 +多么可爱的姑娘。唱吧,姑娘,唱吧!当然了,她会把龙吵醒。 +    爱总是把龙吵醒,然后突然之间 +                        遍地干柴烈火。 +你觉得我是龙,我看出来了, +    那会很衬我的,但我不是。我不是那龙。 +        我是谁?我只是个作家。我只能书写。 +我走遍你的梦境,造出你的未来。是啊, +    我还打翻爱情的小船,但那是之后的事儿。以及,没错,我吞下 +    玻璃,但那也是之后的事儿。 +                等到我把你摁在 +城墙上,让你身体每个部分都与砖块摩擦, +    闭嘴 +我快抓住它了。 +          有一阵子我以为我就是龙。 +或许我现在能告诉你了。以及,有一阵子,我以为我是 +                        公主, +棉花糖般的粉色,坐在我的闺房里,在城堡的塔尖上, +    年轻,美丽,深陷爱河,自信满满地 +等待着你 +    但公主看向她的镜子,镜中只有公主, +而我在泥泞里步履维艰,呼吸着火焰, +                被刺死。 +          好吧,那么我是龙。真棒。 +    你依然是那位英雄。 +你有魔法手套!会讲话的鱼!探照灯一般的双眼! +      你还想要什么呢? +我为你做松饼,我带你去狩猎,我跟你说话仿佛你 +    真的在这儿。 +你在这儿吗,甜心?你认识我吗?这话筒连上了吗? +              让我做一次正确的事 +      看好了,让我用奶油和星星做一个, +你懂的,天堂。 +      在你脑中你听见电话铃响起 +                但当你睁开眼 +只有一片空地和一头鹿。你好呀鹿。 +        在你脑中你听见玻璃轻响, +卡车相撞,缓慢翻滚,爆炸。 +      你好呀亲爱的,都怪我。 +              那瘦削的手肘是我的错,我们 +曾住在这儿是我的错,楼道下发生的事情是我的错 +          以及我说穿一切,毁了一切,都怪我。 +    尤其是最后一点,但我早该意识到的。 +你看,我捡起并缝合记忆碎片 +    来创造一个能对我言听计从 +或者能回应我的爱的东西。 +      我不清楚为什么自己这么做,但这个版本的你不会 +让自己成为坏人的饵食 +              在灯光点点的夜空下。 +    我反悔了。 +棺材般的木制大堂。肤浅的关系。 +            我收回。 +这里循环着被毁了的爱侣的意象。 +                        划掉。 +    黑屋中笨拙的手。划掉。这儿地板下面 +有些什么东西。 +      划掉。这是重建后的 +                        神龛。 +到了所有人都永远幸福快乐,都被 +    原谅的段落了, +尽管我们不配。 +                  在你脑中你听见 +电话铃响起,当你睁开眼,你正在冲澡 +    在陌生人的浴室里, +裹着黄色浴巾站在窗边,离你所知的最肮脏的事物 +        只有二十分钟的距离。 +城堡里所有房间,除了这一间,有人在说,然后突然之间 +                          黑暗降临, +                        突然之间只剩黑暗。 +在起居室里,在破败的院子里, +          在车身后,车灯能照亮的最远的地方。在机场 +    浴室水流汩汩,在不自然地亮着灯的 +药房里沐浴, +      我的双手看起来不对劲,我的脸不对劲,我的双脚太远了。 +以及飞机,机翼旁靠窗的位置,能看到 +                机翼和裹着锡纸的一小包花生。 +我到达城市,你来车站见我, +    以一种令我毛骨悚然的方式 +      微笑。穿过小巷,接近拱廊, +    在楼房的阶梯之上 +在水龙头坏了的小房间里,你的画,你的一切, +            我看向窗外,说 +        *看起来跟家里没什么区别,* +    因为的确没什么区别, +然后我才注意到黑色的天空和灯火。 +            我们穿过房子,走到高架铁路边。 +    所有这些楼房,这些玻璃和闪闪发光的 +                          机械之风。 +当我们在列车内时我开始哭。你也在哭, +    又哭又笑,令我 +更加歇斯底里。你说我能拥有我想要的一切,但我 +                        就是说不出口。 +其实,你说*爱,对你而言,* +          *比普通的浪漫之情宽广许多。仿佛信仰。令人* +                          *害怕。没有人* +                      *会想跟你上床的。* +好吧,你行你上啊—— +      给你铅笔,做点什么…… +如果窗户在你右边,那你躺在自己的床上。如果窗户 +    高悬在你心头,画成紧闭的模样,那我们便呼吸着 +河水。 +    为我建一座城,叫它耶路撒冷。再为我建一座,叫它 +                              耶路撒冷。 +        我们从耶路撒冷回来,没发现 +要找的东西,所以再来一次,给我另外一个版本, +      另外一间房,另外一条门廊,重新粉刷厨房 +一遍又一遍, +      另外一碗汤。 +讲完人类欲望的全部历史大概需要十七分钟。 +      不幸的是,我们并没有那个时间。 +                          忘了龙吧, +把枪留在桌上,这跟快乐无关。 +          让我们快进到显现节的日子, +      在金光中,像相机摇向 +焦点一般, +      湖边,逆光,一切组成完美镜头,近到能看清 +            我眼里的蓝色光晕,当我说出 +                          丑陋的话语。 +我也从不喜欢那种结局。更多的爱从错误的方向流淌而出, +      我不想成为说*方向错了*的那种人。 +但这样不成,这些抹消的痕迹,这些反复折叠的褶皱。 +                有过好的段落,的确, +柠檬雪糖和蜜瓜球 \[译注:两种鸡尾酒\],穿着丝绸睡衣大笑 +      以及吐司上的 +          糖粒,*爱,爱*或者随便什么,挑个数字吧。这个故事真糟糕 +                      都怪我。 +亲爱的宽恕,你知道最近 +        我们都过得不太容易,我有许多事情 +                          想问你。 +我试过一次,高中,两顿午饭,再来一次, +      几年之后,在氯水消毒的游泳池里。 +            我一直向你寻求帮助。我依然没能拥有 +      这些奢侈。 +告诉过你我为什么这么说了,所以行行好吧。 +                *我们抱紧彼此的肚子,在地上翻滚……* +      当我说起这些,意为欢笑, +而非毒药。 +      我想要更多的苹果酱。我想为英雄们预留更多位子。 +亲爱的宽恕,我为你留了一盘。 +              别在院子周围磨蹭了,进来吧。 diff --git a/content/posts/2019-06-11-untitled.md b/content/posts/2019-06-11-untitled.md new file mode 100644 index 0000000..6671e12 --- /dev/null +++ b/content/posts/2019-06-11-untitled.md @@ -0,0 +1,16 @@ +--- +author: loikein +published: "2019-06-11T14:02:00+02:00" +slug: 2019-06-11-untitled +categories: +- 诗 +title: 无题 +--- +我梳理我的心情,像 +鸟雀梳理羽毛 +烟尘轻颤,惊起, +落下 + +世界,请你 +把我的手帕递给我吧 +这心的泉眼从不肯干涸 diff --git a/content/posts/2019-06-13-self-statement-at-twenty-three.md b/content/posts/2019-06-13-self-statement-at-twenty-three.md new file mode 100644 index 0000000..cfcda21 --- /dev/null +++ b/content/posts/2019-06-13-self-statement-at-twenty-three.md @@ -0,0 +1,45 @@ +--- +author: loikein +published: "2019-06-13T23:42:00+02:00" +slug: 2019-06-13-self-statement-at-twenty-three +categories: +- 随笔 +tags: +- 自述 +title: 廿三自述 +--- +从生日前开始写,现在生日早过了。 +回望过去,展望未来。随时可能变化。 +我的…… + + +## 理想 + +- 人类不称为人类(mankind / human),改称地球人(Earther / Earthican / + Tellurian) +- 废除一切性别区分(男/女/第三性),小孩出生时默认无性别,成人后可以自选或不选性别,并接受性别分配手术;更改性别成为基本人权 +- 废除国家制度,建立地球联合政府 + + + +## 观点 + +- 人权,平等,自由 +- 女权主义 = 性别平等 +- 无限组合派生无限可能(IDIC) +- 合法化促进管制 +- 民族、宗教、种族、性别观念都是精神毒品 +- 世界的本质是母体(matrix)/模拟人生游戏 +- 丁克/领养/创造硅基后代代替生育 +- 吃素 ≠ 环保 + + + +## 局限 + +- 承认多数人的利益高于少数人的利益(与平等矛盾) +- 承认政府对维持社会秩序的作用 +- 承认有时暴力是必要的(与人权矛盾) +- 相信真爱存在,但不相信持续一生的爱情存在 +- 因为懒得向所有人解释性别/性取向光谱而自认双性恋 +- 无意识地认为自己是正确的、自己高于其他(我所不了解的)人类 diff --git a/content/posts/2019-06-20-globalise-your-digital-reading-life.md b/content/posts/2019-06-20-globalise-your-digital-reading-life.md new file mode 100644 index 0000000..c26c6d7 --- /dev/null +++ b/content/posts/2019-06-20-globalise-your-digital-reading-life.md @@ -0,0 +1,97 @@ +--- +author: loikein +published: "2019-06-20T17:31:00+02:00" +lastmod: "2021-04-15 17:42:14.488 +0200" +slug: 2019-06-20-globalise-your-digital-reading-life +categories: +- 应用程序 +tags: +- Applications +- 读书 +- Reading +title: 全球化电子阅读体验/Globalise your digital reading life +--- +{{< row >}} +{{< col >}} +无论是否身在墙外,如何**尽量合法**地入手世界各地的音乐、新闻、书籍、影视一直困扰着本人。翻墙本身还不是最大的问题。在墙内生活多年后,首先,对各种渠道不熟悉,其次,语言之壁一直存在。学英语将近二十年了,我依然不能像读中文或日语文章一样速读英文内容(可能是出于某种语言特定的阅读障碍。 +{{< /col >}} +{{< col >}} +Outside the GFW or not, seeking access to music, news, books, and movies +**as legally as possible** around the world has always annoyed me. The +Wall per se is not the biggest problem. After living within the Wall for +so many years, first of all, I am not familiar with the sources. +Secondly, the language barriers have always existed. I have been +learning English for almost two decades, yet still can't read English as +fast as I read Chinese or Japanese (perhaps some sort of +language-specific dyslexia). +{{< /col >}} +{{< /row >}} + +{{< row >}} +{{< col >}} +书籍是个大问题。我是一个懒人。我很讨厌切换帐号。这个世界上目前已经出现了三种我想阅读的语言。 +由于 Kindle +限制每台设备只能同时登录一个国家的帐号,我最近开始寻求一种能无障碍读遍世界的方式。目前我的 +iPad mini 固定登录 Kindle Japan,手机固定登录 Kindle +China,所以显然需要找到一个同时卖英语书和繁中书的书店,当然如果再加上日语和简中就更好了。 +搜到这篇文章:[转载:如何购买港台电子书? – +数字移民](https://digitalimmigrant.org/376)。这文很好,有一些对比,但是本人作为隐性处女座,让我定下常用的电子书店显然需要很多很多很多功课。以下是我注重的功能一览。 +(超阅网一本都没有,不予收录。) +{{< /col >}} +{{< col >}} +The books. I am lazy. I hate switching accounts. There are currently +three languages in the world that I want to read. +Since Kindle restricts each device to only one country's account at one +time, I has recently begun to look for a way to read the world +seamlessly. At present, my iPad mini is fixed to Kindle Japan, and my +phone is fixed to Kindle China, so obviously I need to find a bookstore +that sells both English and Traditional Chinese books. Of course, it is +better if they also have Japanese and Simplified Chinese ones. +Found this article: [Repost: How to buy e-books from Hong Kong and +Taiwan? – Digital Immigration](https://digitalimmigrant.org/376). The +article is very good with some comparisons, but as a secret Virgo, it +obviously takes way more homework to make me settle down to any e-book +store. The following is an overview of the features I want. +(None of the books I inspected was sold by the Superbookcity, therefore +it is not included. Shame.) +{{< /col >}} +{{< /row >}} + +{{< row >}} +{{< col >}} +询问一位香港同学后,确认香港没有比较大的电子书店,十分难过。 +{{< /col >}} +{{< col >}} +Asking a Hong Kong classmate confirms that there is currently no major +e-book provider/store. Sad. +{{< /col >}} +{{< /row >}} + +谷歌自定义搜索:[Google Custom +Search](https://cse.google.com/cse?cx=003309867733296692972:o_geyctussq) +输入 `intitle:` 书名或作者(中间不加空格) + + +| 书名 | 语言 | 书店名 | 不登录试阅 | 流动排版 | 调整行距 | 切换字体 | 单双栏 | 切换横竖 | 查字典 | +|---------------------------------------|------|---------------------------|------------|----------|----------|----------|--------|----------|--------| +| Good Omens (The Script Book) | 英语 | Google Play Books | ⭕️ | ⭕️ | ⭕️ | ⭕️ | 双 | 横 | ⭕️ | +| | | 博客來 (无电子版) | | | | | | | | +| | | Kobo Books | ⭕️ | ⭕️ | ❌ | ⭕️ | 单 | 横 | ⭕️ | +| | | Readmoo 讀墨 (无) | | | | | | | | +| | | HyRead (无) | | | | | | | | +| | | Pubu (无) | | | | | | | | +| 书名 | 语言 | 书店名 | 不登录试阅 | 流动排版 | 调整行距 | 切换字体 | 单双栏 | 切换横竖 | 查字典 | +| 大典 | 中文 | Google Play Books | ⭕️ | ⭕️ | ⭕️ | ⭕️ | 单 | 竖 | ⭕️ | +| | | 博客来 | ⭕️ | ⭕️ | ❌ | ❌ | ⭕️ | 横 | ❌ | +| | | Kobo Books | ⭕️ | ⭕️ | ❌ | ⭕️ | 单 | 竖 | ⭕️ | +| | | Readmoo | ⭕️ | ⭕️ | ⭕️ | ⭕️ | ⭕️ | ⭕️ | ⭕️ | +| | | HyRead | ⭕️ | ❌ | ❌ | ❌ | ❌ | 竖 | ❌ | +| | | Pubu | ❌ | | | | | | | +| 书名 | 语言 | 书店名 | 不登录试阅 | 流动排版 | 调整行距 | 切换字体 | 单双栏 | 切换横竖 | 查字典 | +| 邓小平时代 (Kindle Japan 有繁中版) | 中文 | Google Play Books (无) | | | | | | | | +| | | 博客来 (无) | | | | | | | | +| | | Kobo Books (无) | | | | | | | | +| | | Readmoo (无) | | | | | | | | +| | | HyRead | ⭕️ | ❌ | ❌ | ❌ | ❌ | 横 | ❌ | +| | | Pubu (无) | | | | | | | | +| | | 参考: Amazon JP | ❌ | ⭕️ | ⭕️ | ⭕️ | ⭕️ | 横 | ⭕️ | diff --git a/content/posts/2019-06-24-idolatry.md b/content/posts/2019-06-24-idolatry.md new file mode 100644 index 0000000..11228a4 --- /dev/null +++ b/content/posts/2019-06-24-idolatry.md @@ -0,0 +1,17 @@ +--- +author: loikein +published: "2019-06-24T00:23:00+02:00" +slug: 2019-06-24-idolatry +categories: +- 诗 +title: 偶像崇拜 +--- +向我的爱人, +我献上 +匕首 +咽喉 +满腔柔情 +不灭的忠诚 + +他慈悲地一笑 +抛下匕首,转身离去了 diff --git a/content/posts/2019-06-27-star.md b/content/posts/2019-06-27-star.md new file mode 100644 index 0000000..572c0b8 --- /dev/null +++ b/content/posts/2019-06-27-star.md @@ -0,0 +1,22 @@ +--- +author: loikein +published: "2019-06-27T08:32:00+02:00" +slug: 2019-06-27-star +categories: +- 诗 +title: 星星 +--- +我能给你一颗星星吗? +一颗遥远的 +淡蓝色的 +年轻的 +星星 + +年轻得就像柔软的思念 +年老得就像 梦想 + +它在天的某处,几乎看不见 +它学不会凝视,也学不会眨眼 +但每当我抬头看它,它就在那儿 +每当你抬头看它, +我就在那儿 diff --git a/content/posts/2019-07-01-epitaph-of-patriots.md b/content/posts/2019-07-01-epitaph-of-patriots.md new file mode 100644 index 0000000..fb0209c --- /dev/null +++ b/content/posts/2019-07-01-epitaph-of-patriots.md @@ -0,0 +1,26 @@ +--- +author: loikein +published: "2019-07-01T20:52:00+02:00" +slug: 2019-07-01-epitaph-of-patriots +categories: +- 诗 +title: 爱国者的墓志铭 +--- +母亲 +您的山头 +已不再欢迎我的歌声 +母亲 +您的溪水 +已不再和着我的遐想叮当 + +母亲,请听我讲 +若自由的…… +若自由只是童话 +您又何必 +逼我跪下 +逼我眼看手足跳崖 + +母亲! +原谅我的叛逆 +但天地茫茫,旷野无人 +何处才是我的归途? diff --git a/content/posts/2019-07-13-sync-mastodon-and-sns-with-ifttt.md b/content/posts/2019-07-13-sync-mastodon-and-sns-with-ifttt.md new file mode 100644 index 0000000..f6ab40c --- /dev/null +++ b/content/posts/2019-07-13-sync-mastodon-and-sns-with-ifttt.md @@ -0,0 +1,84 @@ +--- +author: loikein +published: "2019-07-13T10:48:00+02:00" +lastmod: "2021-04-25 19:32:52.610 +0200" +slug: 2019-07-13-sync-mastodon-and-sns-with-ifttt +categories: +- 应用程序 +tags: +- Mastodon +- IFTTT +- RSS +title: 用 IFTTT 同步各类社交网站至 Mastodon(阶段性总结) +--- +现在 IFTTT 免费版只能创造三个自定义 applet,本文仅供存档。目前的解决方案参见[再谈同步社交网站至 Mastodon(微博,RSS,原生图片)](../2020-03-09-sync-mastodon-and-sns-again/)。 + +*** + +[![](../images/thumbnails/2019-07-13-yong-ifttt-tong-bu-ge-lei-she-jiao-wang-zhan-zhi-mastodon-jie-duan-xing-zong-jie-%25E5%25B1%258F%25E5%25B9%2595%25E5%25BF%25AB%25E7%2585%25A7%2B2019-07-13%2B10.18.05.png)](../images/2019-07-13-yong-ifttt-tong-bu-ge-lei-she-jiao-wang-zhan-zhi-mastodon-jie-duan-xing-zong-jie-%25E5%25B1%258F%25E5%25B9%2595%25E5%25BF%25AB%25E7%2585%25A7%2B2019-07-13%2B10.18.05.png) + + + +- Twitter(API) +- 微博(API) +- 饭否(RSS) +- 豆瓣广播(RSSHub + RSS) + +注意:Twitter 锁推可用,饭否锁饭不可用。 + + +## 创建 Mastodon 应用 + +讲的人很多了,略过。 +权限范围可以只选 write。 +小窍门:搜 `Pawoo + IFTTT` 出来的结果比搜 `Mastodon + IFTTT` 更多、更详细。 + + +## if this then:Webhook + +- URL:`https://[所在实例网址]/api/v1/statuses` +- Method:POST +- Content type:`application/x-www-form-urlencoded` +- Body:`access_token=[你的访问令牌]&status=[想同步的内容]` + +想同步的内容,即 +ingredient,都是我自己测试过几次之后选出的还可以的配方,当然也可以随便改。 +RSS 同步方式有一点比较头痛,就是如果加了 +`EntryImageUrl`(图片链接),然后又没发图的话,会自动贴一张「这里没有图片」的链接,所以我都没加。可以自己加。 + + +## Twitter + +同步时间:5 分钟左右 +会自动把图片转成链接,不用另外加 + +- then:Body:`access_token=[你的访问令牌]&status={{Text}}` + + + +## 微博 + +同步时间:5 分钟左右 +多图只同步第一张,没有图片时会自动略过 + +- then:Body:`access_token=[你的访问令牌]&status={{Text}}%0A{{PhotoURL}}` + + + +## 饭否 + +同步时间:10 分钟左右 + +- if:Feed + URL:`http://api.fanfou.com/statuses/user_timeline/[饭否个人首页网址最后一部分,是数字的话飘号也要].rss` +- then:Body:`access_token=[你的访问令牌]&status={{EntryTitle}}` + + + +## 豆瓣广播 + +同步时间:30 分钟左右 + +- if:Feed + URL:`https://rsshub.app/douban/people/[豆瓣用户 ID,纯数字]/status` +- then:Body:`access_token=[你的访问令牌]&status={{EntryTitle}}%0A{{EntryContent}}%0A{{EntryUrl}}` diff --git a/content/posts/2019-07-23-from-the-oak-tree-with-love.md b/content/posts/2019-07-23-from-the-oak-tree-with-love.md new file mode 100644 index 0000000..97a1c9f --- /dev/null +++ b/content/posts/2019-07-23-from-the-oak-tree-with-love.md @@ -0,0 +1,46 @@ +--- +author: loikein +published: "2019-07-23T15:33:00+02:00" +slug: 2019-07-23-from-the-oak-tree-with-love +categories: +- 诗 +title: 此致,来自橡树 +--- +我如果爱你 +绝不让你当攀援的凌霄花 +向你炫耀自己的高枝 + +我如果爱你 +绝不让你当痴情的鸟儿 +纵然你的歌喉无人能比 + +也不让你当源泉、险峰、日光、春雨—— +不,不! +请你做我近旁的另一棵橡树, +或红杉,或冬青,或木棉, +或含羞草 +以你原本的面貌和我站在一起 +不论你花叶的颜色,枝干的疏密 +不论你令我仰望,或栖于我树荫 + +请你爱我的铜枝铁干 +虽然它们无法拥抱你 +请你爱我不完整的叶片 +和缝隙间落下的金色阳光 + +春天,一起舒展花瓣 +冬天,一起分担冰雪 +每一阵风过 +我们都翩翩共舞 +每一阵雨落 +我们都轻声合唱 +彼此独立却从未分离 +不曾碰触却终身相依[^1] + +我不需要伟大的爱情 +只求此时此刻, +你在这里,我在这里 + + +[^1]:《星际迷航》TOS S2E1:parted from me and never parted, never and +always touching and touched diff --git a/content/posts/2019-08-05-on-gender-sexuality-identification-and-omegaverse.md b/content/posts/2019-08-05-on-gender-sexuality-identification-and-omegaverse.md new file mode 100644 index 0000000..7b43bbe --- /dev/null +++ b/content/posts/2019-08-05-on-gender-sexuality-identification-and-omegaverse.md @@ -0,0 +1,300 @@ +--- +author: loikein +published: "2019-08-05T23:02:00+02:00" +lastmod: "2021-04-25 19:41:41.610 +0200" +slug: 2019-08-05-on-gender-sexuality-identification-and-omegaverse +categories: +- 随笔 +tags: +- Essay +- 政治 +- Politics +title: 关于性别认同和取向的探索,以及对 ABO 的想法/On gender & sexuality identification, and Omegaverse +--- +{{< row >}} +{{< col >}} +想写这个题目很久了,然而一直在探索过程中,写得太早未免误人误己。 +我的故事里没有鲜花红毯,也没有感人的出柜经历(事实上我还没对家人出柜),但它值得一讲。 +警告:非常尴尬以及翻译腔的中文 +{{< /col >}} +{{< col >}} +Have been thinking about this topic for a while, but also have been +exploring the whole time and writing it up too early may cause +misleading messages. +There is no red carpet of flowers in my story, and there is no touching +coming out experience (in fact I have not come out to my family yet), +but it is worth telling. +Warning: very awkward and unnatural Chinese +{{< /col >}} +{{< /row >}} + +## 性别认同 /Gender identification + +{{< row >}} +{{< col >}} +我是生物学女性。我从小有性别焦虑。 +我目前的性别认同是非二元性别—泛性别。 +我曾经相信性别是个光谱,现在已经不信了,原因是光谱只有两个极点,本质上是细化了的二元性别。而组成「性别性格」的变量成百上千,不能用一条光谱概括。 +我现在觉得,性别是人格的一部分,或者说,性别就是人格。我们说十人十色,也就是每个人都有自己独特的人格,那么,每个人也该拥有自己独特的性别,而不是被框在一个无比狭隘的量尺里。 +{{< /col >}} +{{< col >}} +I am a biological woman. I have gender anxiety since I was a child. +Currently I identify as non-binary -- pangender. +I used to believe that gender is a spectrum, but not anymore, because +spectrum has only two poles, which is essentially a refined +representation of binary gender framework. There are hundreds, if not +thousands, of variables that make up someone's "gender character", which +cannot be summarized by one singular spectrum. +Now I feel like gender is part of personality, or perhaps gender IS +personality. If we acknowledge that everyone is one of a kind (*Junin +Toiro* in Japanese), which is everyone has their own unique personality, +then we also should acknowledge that everyone deserves their own unique +gender, instead of being restricted in a very narrow scale. +{{< /col >}} +{{< /row >}} + +{{< row >}} +{{< col >}} +确认自己的性别焦虑其实是一个很漫长的过程。第一次在网上查的时候是其实是为了隔壁班的一位跟我倾诉的朋友。那时它还被称为性别认同障碍,这个名字令人不安,它很可能是一种病,我想。当时我并没有把自己和这些症状联系在一起。 +而且当时国内没有这样的公众人物;当然那时候还有谷歌。现在我们连谷歌也没有了,跨性别人群从中国人的视野里消失了,仿佛根本不存在一样。 +晚一些的时候,我爱上了一个女孩子。她是典型的假小子,短头发大嗓门,干架,打篮球,跟男生勾肩搭背,我却意识到自己不是被她阳刚的那一面所吸引。联想起自己小时候跟她几乎一模一样的行为举止,我开始怀疑自己心里是不是个男的。 +证据有很多:我讨厌穿裙子,我讨厌粉色,我对洋娃娃一类的「女孩子的游戏」不感兴趣,我喜欢捣鼓电脑,等等。然而,这些都不是真实的性别气质,而只是对性别的刻板印象。 +近日在豆瓣上看到这么一句话:(大意) +{{< /col >}} +{{< col >}} +Confirming oneself's gender anxiety can be quite a long process. The +first time I searched it online was actually for a friend from another +class who poured it out to me. At that time, it was known as the gender +identity disorder, which was a really disturbing name. The name probably +indicated it being a disease, I thought. I did not associate myself with +those symptoms. +And there existed no such public figures in China at that time, but +there existed Google, of course. Now that we don't even have Google +anymore, the transgender people have disappeared from the vision of the +Chinese public, as if we did not exist at all. +Later, I fell in love with a girl. She is a very typical tomboy, with +short hair, loud voice, fights people and plays basketball, and gangs up +with boys, but I realized that I was not attracted to the masculine side +of her. Recalling that my own behaviour in childhood was almost exactly +the same as hers, I then began to wonder if I was a man in my heart. +The evidence was plenty: I hated wearing skirts, I hated colour pink, I +was not interested in "girlish games" like playing with dolls, I liked +to mess around with computers, so on and so forth. However, those are no +real gender temperament, but merely gender stereotypes. +Recently I saw this question on Douban: (not the exact same words) +{{< /col >}} +{{< /row >}} + +
+{{< row >}} +{{< col >}} +你到底是真的有性别焦虑,还是只是受不了社会上既定的性别刻板印象和性别角色然后想换一换? +{{< /col >}} +{{< col >}} +Do you really have gender anxiety, or is it that you just cannot bear +the established gender stereotypes and roles anymore and claimed it +for a change? +{{< /col >}} +{{< /row >}} +
+ +{{< row >}} +{{< col >}} +这问题很粗鲁、很冒犯人,因为我无意当一个跨性别警察,告诉你怎样算跨性别怎样不算——能决定你是谁的当然只有你自己。但其实也无比真实,因为成为跨性别者和作为一个跨性别者有责任地活着,是完全不同的两个概念。 +{{< /col >}} +{{< col >}} +This is very rude and offensive a question, since I never intend to be a +transgender police and tell you what is and what isn't "true +transgender" – of course you yourself is the only person who can decide +that. However, it is also so incomparably real, because being a +transgender and living responsibly as a transgender are two completely +different concepts. +{{< /col >}} +{{< /row >}} + +{{< row >}} +{{< col >}} +时至今日,我已经可以毫不犹豫地说,我两者都有。然而十几岁时的我,思想没发育完全,精神也还脆弱,每日为对付应试教育、青春期和父母疲于奔命,根本没办法想清楚一切,深陷自我怀疑与否定的泥沼。所幸反思与修正自我认识对每个人而言都是持续一生的旅程,而我一直在努力跟自己达成越来越好的平衡。我不再讨厌穿裙子,不再讨厌粉色,仍然对女孩子的游戏不感兴趣,仍然热爱电脑。我不是女性,也不是男性,有时扮演女性,有时扮演男性,有时扮演其他。我是我自己的性别。 +{{< /col >}} +{{< col >}} +Now, finally, I can say without hesitation that both situations apply to me. +But in my teens, with underdeveloped thoughts and fragile spirit, +dealing with exam-oriented education, adolescence and parents everyday +were already too much for me. I just couldn't figure out everything, and +fell deeply into self-doubt and self-negation. Fortunately, reflection +and revision of self-concept is a journey of lifetime for everyone, and +I have been trying to achieve a better balance with myself. I no longer +hate skirts or pink, still not interested in girls' games, still in love +with computers. I am neither a woman nor a man, sometimes acting as a +woman and sometimes as a man, and sometimes as something else. I am my +own gender. +{{< /col >}} +{{< /row >}} + +## 浪漫取向与性取向/Romantic & sexual orientation + +{{< row >}} +{{< col >}} +可能非异性恋的社会接受度终究是比跨性别要大,我喜欢过男孩也喜欢过女孩,然后就干脆地接受了自己不是个异性恋的事实。从那时起,我便认同这个观点:爱情跟性别无关。 +跟前女友在一起一年后,我曾试着隐讳地跟父亲提起过,但他是这么说的:(大意)生育后代是女性的历史责任,不生育或/与同性恋是反社会、反人类的。他是一名社会学教授。 +我从来没有跟母亲或其他任何亲属进行过任何明示或暗示自己的性别认同/浪漫取向/性取向的谈话。 +{{< /col >}} +{{< col >}} +Perhaps, after all, the social acceptance of non-heterosexual is greater +than transgender. I have liked both boys and girls, and then just +accepted that I were not heterosexual. Since then, it has been my belief +that love has nothing to do with gender. +After being with my ex-girlfriend for a year, I tried to vaguely mention +it with my father, before he said (not the exact same words) that +reproduction is a historical responsibility of females, and that not +reproducing or/and homosexuality is antisocial and anti-humanistic. He +is a sociology professor. +I have never had any conversation, frank or vague, with my mother or any +other relatives about my gender identity or my romantic/sexual +orientation. +{{< /col >}} +{{< /row >}} + +{{< row >}} +{{< col >}} +人类的心理和生理过于奇妙,浪漫取向和性取向有可能不相符和。我属于泛性浪漫倾向,然而,在性取向方面,我逐渐意识到他人的身体对我只有非常微弱的性吸引,而且,讽刺地,我并不享受与生理女性的性行为。 +近日听说一本叫《[世田谷シンクロニシティ](https://www.amazon.co.jp/dp/4834262960/)(世田谷共时性)》的漫画,刚开始看。男主角是一位浪漫取向为女、性取向为男的大学生。由于题材和作者都非常小众,推荐帖和亚马逊的评论大多是比较正面的,但也有少数评论者表示完全无法理解主人公的想法和行为。 +{{< /col >}} +{{< col >}} +Human psychology and physiology are so bizarre that romantic orientation +and sexual orientation may not coincide. I am panromantic, however, in +terms of sexual orientation, it took me some time to realize that +others' body is only very weakly sexually attractive to me. Moreover, +ironically, I do not enjoy sexual intercourse with biological women. +Recently a manga titled [*Setagaya +Synchronicity*](https://www.amazon.co.jp/dp/4834262960/) popped up to +me. Just started reading. The male lead is a college student who is +heteromantic but homosexual. Since both the subject matter and the +author are not hugely popular, the recommendation post and Amazon +reviews are mostly positive, but still, a few reviewers wrote that they +completely don't understand the character's thoughts and behaviour. +{{< /col >}} +{{< /row >}} + +{{< row >}} +{{< col >}} +我越来越努力抑制自己的自怜情绪,因为总有更加小众、更加不被接受的人群。如果我沉浸于自怜和自我满足而不做任何事、不发出任何声音,那么那些被沉默和被消失的人们就又少了一个重新被看见的机会。 +无论你是谁,无论你属于多么罕见的少数群体,每一个人都是真实的人类,都拥有同等的尊严和人权,都需要关怀和免于被歧视。 +{{< /col >}} +{{< col >}} +I am working harder everyday to curb my self-pity, because there are +always less mainstream and less accepted people. If I immerse myself in +self-pity and self-satisfaction without doing anything or speaking for +anyone, then those who are silenced and disappeared will have one less +chance of being seen again. +No matter who you are, no matter how minor the minority you belong to, +every person is a real human being, with equal dignity and human rights, +entitled to be cared for and to be free from discrimination. +{{< /col >}} +{{< /row >}} + + +## 虚构作品中的性别与性取向/Gender and sexuality in fictional works + +{{< row >}} +{{< col >}} +据我所知,影响最大的虚构性别系统有三种,ABO、Dom/Sub、哨兵向导。其中,主流文化也会用 +alpha、beta、omega 来形容性格,D/S +在现实生活中有原型(BDSM),只有哨向是完全虚构的(出自电视剧[哨兵](https://movie.douban.com/subject/3929992/),)。 +我觉得 D/S +是正常性欲的一种小众的表达方式;近期才接触少量哨向作品,暂时不好说什么;但关于 +ABO,我有话要说。 +{{< /col >}} +{{< col >}} +As far as I know, there are three major fictional gender systems (at +least in works written in Chinese): Alpha/Beta/Omega (Omegaverse), D/s, and +Sentinel AU. Among these, the mainstream culture also uses the words Alpha, Beta, and Omega to describe personalities; D/s has its prototype in real life +(BDSM); only Sentinel is completely fictional (from the TV series *[The +Sentinel](https://www.imdb.com/title/tt0115351/)*). +I believe D/s is an alternative expression of normal sex drive. I only +started to read about Sentinel recently and can't say anything specific +at the moment. However, with regard to Omegaverse, I do have something to +say. +{{< /col >}} +{{< /row >}} + +{{< row >}} +{{< col >}} +我欣赏许多使用 ABO 设定的作品,其中一些甚至借用 ABO +系统严肃地讨论了性别角色的合理性。然而,作为一个磕磕绊绊的性少数,我发现这个系统本身有问题:它使跨性别和非异性恋几乎成为不可能,尤其是对 +Omega 们而言。 +在 ABO +世界里,男性和女性的区分几乎可以忽略不记(有些作品干脆予以省略),ABO +系统是主要的性别系统。然而,这一系统并没有形成对男女性别系统的突破,而只是换了一个名字来对其进行重申和进一步强调——更极端的性别刻板印象、性别角色固化,以及性别不平等。Alpha +是勇猛和领导力的代名词,Beta +大多一辈子平平无奇,连生育率都比其他性别低,跟工蚁没有两样,而 Omega +则是 Alpha +之间所竞争的奖杯。尤其是「发情期」、「信息素」和「标记」的设定,让 Omega +丧失了一切主体性,彻底沦为欲望客体和生育机器。听起来挺耳熟的,不是吗? +通过一点历史挖掘,我意识到 ABO +系统的创立跟我一直以为的(谁给我灌输这种思想的?微博)性别平权目的没有任何关联,而是纯粹源自一个幻想两位虚拟男性角色之间的拟态传统男女关系框架(原文:prude/bitch)的点梗。所以,ABO +系统的核心根本不是反传统性别系统,而是对其彻底的服从和顶礼膜拜,以至于想要把本该相对平等的同性间的浪漫关系也囊括进传统的男/女性角色区分,从而创造出来的。 +{{< /col >}} +{{< col >}} +I appreciate many of the works under the A/B/O setting, some of which do +use it to seriously discuss the rationale behind gender roles. However, +as a stumble gender minority, I found the system itself problematic: it +makes transgender and non-heterosexuality almost impossible, especially +for Omegas. +In the A/B/O world, the distinction between female and male is almost +negligible (some works simply omit it) and A/B/O becomes the main gender +system. However, this system is no breakthrough from the f/m system, but +only reaffirming and further emphasizing it with a different name – more +extreme gender stereotypes, more solidified gender roles, and greater +gender inequality. Alpha is synonymous with bravery and leadership. +Betas are mostly unremarkable for all their lives, and even with lower +fertility rate than other genders, exactly the same as worker ants. And +Omega is the trophy for which Alphas compete with each other. In +particular, the settings of estrus, pheromone and marking have caused +Omegas to lose all their subjectivity, and become merely objects of lust +and reproduction machines. Sounds familiar, no? +Through a little bit historical digging, I realized that the creation of +the A/B/O trope has nothing to do with any gender equality goal that I +thought it would be (who gave me this idea? Weibo), but purely from a +prompt of two male characters mimicking a traditional f/m relationship +(original text: prude/bitch). Therefore, the core of the A/B/O system is +not against the traditional gender system, rather, it was created out of +a thorough obedience and worship of it, so much so that it even +enveloped the romantic relationship between the same sex, which is +supposed to be relatively equal, into the traditional gender roles. +{{< /col >}} +{{< /row >}} + +{{< row >}} +{{< col >}} +总有人诟病像我这样对(娱乐性)网络小说及其设定进行严肃评论的人,然而正如其他任何严肃文学作品一样,这些作品同样取材、脱胎于现实,那么评论它们就对现实世界有积极意义。 +对作品本身的享受和批评是可以分开的,毕竟人们总得找出活下去的方式。我仍然不会因为 ABO 设定而拒绝某篇作品,甚至有那么几篇对我的世界观产生了很大影响。如果所有这些作品/设定是把你和这个世界联系在一起的最后一根绳索,那么,我们是同路人。 +{{< /col >}} +{{< col >}} +The criticism never stops of people like me who seriously comment on +(recreational) web novels and their settings. However, just like any +other serious literary works, since these works also draw from reality, +commenting on them has a positive significance to the real world. +Enjoying and criticising can be separated, after all, people have to +find a way through life. I will never reject a work simply for its adopting the Omegaverse setting, and even a few of them have made a huge impact on my +world view. If all these works/settings are among the last strings that +connect you to the world, then we are on the same side. +{{< /col >}} +{{< /row >}} + +## 参考链接/Reference + +- [The Genderbread Person v2.0 - It's Pronounced Metrosexual](https://www.itspronouncedmetrosexual.com/2012/03/the-genderbread-person-v2-0/) +- [Pronoun Buttons // -dealloc](http://belkadan.com/blog/2016/06/Pronoun-Buttons/) + + > I got asked about the pronouns on my badge yesterday! "I can see + > why a trans person would do this, but why a cis person?" In a + > word, normalization. + +- [Nonbinary Wiki](https://nonbinary.wiki/wiki/Main_Page) +- [Gender binary - Wikipedia](https://en.wikipedia.org/wiki/Gender_binary) +- [Romantic orientation - Wikipedia](https://en.wikipedia.org/wiki/Romantic_orientation) +- [Sexual orientation - Wikipedia](https://en.wikipedia.org/wiki/Sexual_orientation) +- [性吸引与浪漫倾向分离的人怎么定义性取向?](https://www.zhihu.com/question/54601921) +- [Alpha/Beta/Omega - Fanlore](https://fanlore.org/wiki/Alpha/Beta/Omega) +- [奇葩世界观设定(五)哨兵与向导](https://www.douban.com/note/354914615/) diff --git a/content/posts/2019-08-07-custom-theme-for-pawoo-or-mastodon.md b/content/posts/2019-08-07-custom-theme-for-pawoo-or-mastodon.md new file mode 100644 index 0000000..a65ca61 --- /dev/null +++ b/content/posts/2019-08-07-custom-theme-for-pawoo-or-mastodon.md @@ -0,0 +1,47 @@ +--- +author: loikein +published: "2019-08-07T15:56:00+02:00" +lastmod: "2020-05-25T10:34:25.905+02:00" +slug: 2019-08-07-custom-theme-for-pawoo-or-mastodon +categories: +- 笔记 +tags: +- 网页制作 +- Mastodon +title: Pawoo(Mastodon)浅色主题 +--- +更新: +更换到这个拓展,更轻量一点:[User JavaScript and +CSS](https://chrome.google.com/webstore/detail/user-javascript-and-css/nbhcbdghjpllgmfilhnhkllmkecfmpld) + +*** + +由于里瓣开始支持 LaTeX +数学公式,我想在自己的时间线上也能正常查看数学公式,于是发现了这个:[MathJax +bookmark](https://www.math.ucla.edu/~robjohn/math/mathjax.html) +测试:发送 `测试:$$\sum_{i=1}^{\infty} \phi^i$$` +发送后点击 bookmark(start MathJax),效果: + +[![](../images/thumbnails/2019-08-07-pawoo-mastodon-ding-zhi-qian-se-zhu-ti-2019-8-7-mathjax-xian-shi-%25E5%25B1%258F%25E5%25B9%2595%25E5%25BF%25AB%25E7%2585%25A7%2B2019-08-07%2B15.54.17.png)](../images/2019-08-07-pawoo-mastodon-ding-zhi-qian-se-zhu-ti-2019-8-7-mathjax-xian-shi-%25E5%25B1%258F%25E5%25B9%2595%25E5%25BF%25AB%25E7%2585%25A7%2B2019-08-07%2B15.54.17.png) + +*** + +地址:[loikein/pawoo-light-theme](https://gist.github.com/loikein/776bc65e6b10b011aa68989311c815c0) +效果: + +[![](../images/thumbnails/2019-08-07-pawoo-mastodon-ding-zhi-qian-se-zhu-ti-2019-8-7-mathjax-xian-shi-%25E5%25B1%258F%25E5%25B9%2595%25E5%25BF%25AB%25E7%2585%25A7%2B2019-07-12%2B12.11.38.png)](../images/2019-08-07-pawoo-mastodon-ding-zhi-qian-se-zhu-ti-2019-8-7-mathjax-xian-shi-%25E5%25B1%258F%25E5%25B9%2595%25E5%25BF%25AB%25E7%2585%25A7%2B2019-07-12%2B12.11.38.png) + + +我从来不喜欢暗色主题,晚上玩手机也只是把浅色主题的亮度调得很低,深色背景让我有一种,厄,看不清楚字的感觉。 +下了个 [Stylish](https://chrome.google.com/webstore/detail/stylish-custom-themes-for/fjnbnpbmkenffdnngjfgmeleoegfcffe),发现有人发了 [Mastodon - Light Deck Style](https://userstyles.org/styles/141745/mastodon-light-deck-style),以这个为蓝本修改的。 +原来是下图这样,可以看出,并没有彻底浅色化,然后有些审美(……)跟我自己不太和。 + +[![](../images/thumbnails/2019-08-07-pawoo-mastodon-ding-zhi-qian-se-zhu-ti-2019-8-7-mathjax-xian-shi-141745_after.png)](../images/2019-08-07-pawoo-mastodon-ding-zhi-qian-se-zhu-ti-2019-8-7-mathjax-xian-shi-141745_after.png) + +改动如下: + +1. 隐藏 Pawoo 的左边栏话题推荐 +2. 使用 CSS variant,可以一键更换全局颜色 +3. 删除了一些不必要的 `!important` +4. 调整代码结构 +5. 其余细节 diff --git a/content/posts/2019-08-28-japanese-for-requiring-permission-to-translate.md b/content/posts/2019-08-28-japanese-for-requiring-permission-to-translate.md new file mode 100644 index 0000000..3c4432e --- /dev/null +++ b/content/posts/2019-08-28-japanese-for-requiring-permission-to-translate.md @@ -0,0 +1,43 @@ +--- +author: loikein +published: "2019-08-28T16:25:00+02:00" +slug: 2019-08-28-japanese-for-requiring-permission-to-translate +categories: +- 翻译 +tags: +- 中译日 +title: 申请授权汉化(翻译)转载相关用语(日语) +--- +随便写写,仅供参考。 +日语顾问:鹅鹅 + + +## 开场白 + +FF外から失礼いたします。 + +(如果是推的话最好加上这句) + +いつも素晴らしい作品ありがとうございます!もっと多い人に見せたいから、中国語に翻訳してweiboとbilibiliに転載してもよろしいでしょうか?もちろん転載元と、非営利目的だということを明記いたします。 + +(希望翻译成中文,转载到微博、b 站) + +無理な場合でも大丈夫です。お返事をお待ちしております。よろしくお願いします。 + +(如果不行也请回复,谢谢您) + + + +## 许可的回复 + +誠にありがとうございます!翻訳が完成した後、リンクをお送りしますね。よろしくお願いします。 + +(十分感谢,翻译完了会给您发链接) + + + +## 不许可的回复 + +ご返事ありがとうございます。大丈夫です!また今度の作品を心より楽しみにしております。 + +(表示理解,期待下次的作品) diff --git a/content/posts/2019-08-29-sleepless-museum-008-youtubers.md b/content/posts/2019-08-29-sleepless-museum-008-youtubers.md new file mode 100644 index 0000000..f5a0429 --- /dev/null +++ b/content/posts/2019-08-29-sleepless-museum-008-youtubers.md @@ -0,0 +1,116 @@ +--- +author: loikein +published: "2019-08-29T00:48:00+02:00" +lastmod: "2020-01-31T18:09:48.120+01:00" +slug: 2019-08-29-sleepless-museum-008-youtubers +categories: +- 睡不着博物馆 +title: 睡不着博物馆 008:YouTubers +--- +少数派最近发了一份 [YouTube 外语频道清单](https://sspai.com/post/56339),里面有几个是我也关注的,但整体风格偏向讨好极客,我才不信真的有人只关注了那些频道……令我也想制作自己的 YouTubers 清单。 +以下每一个视频都代表了一个我深挖过(累计看了 10 个小时以上或看过频道里所有视频)的频道,大部分是我依然关注着并每天都会刷的。少数派文章中提及的以 +(\*) 标示。 + +## 杂闻类 + +### [CGP Grey](https://www.youtube.com/channel/UC2C_jShtL725hvbm1arSV9w) (\*) + +不定期更,很好笑,每一条视频都值得反复观看并自行寻找拓展阅读。 + +{{< youtube id=kF8I_r9XT7A title="How to Become Pope" >}} + +### [Last Week Tonight](https://www.youtube.com/user/LastWeekTonight/featured) + +周更,主持人是个可爱的英国叔叔,总讲些我听不太懂的笑话,但是主题的广度和深度独一无二。 + +{{< youtube id=s6MwGeOm8iI title="Multilevel Marketing: Last Week Tonight with John Oliver (HBO)" >}} + +### [Lew Later](https://www.youtube.com/channel/UCXv-co3EYHF7aOH4A93qAHQ) + +日更,每天一小时,适合 1.25 倍速食用。播客的视频格式,几乎可以不看屏幕理解内容。Lew 曾是第一位令我在 YouTube 这个浅层的载体上感受到人格魅力的播主。 + +{{< youtube id=a6IoEm10SJ4 title="The Apple Card - Your Ticket To Apple Jail" >}} + +## 新闻/访谈类 + +### [The Late Show](https://www.youtube.com/channel/UCMtFAi84ehTSYSE9XoHefig) + +日更,非常好笑,混杂了时评、访谈、嘉宾表演等各种形式。 + +{{< youtube id=j5NLMJohNYE title="Donald Trump Acts Like A Villain To Energize His Base" >}} + + + +### [off Camera](https://www.youtube.com/channel/UCHSOjOg8bldp-qfJDZ0_iyA) + +几乎日更,本来想放一个 RDJ 的访谈,想了想还是这条更合适。Sam 把对方当作一个与自己同等复杂的、有尊严的人来看待,既理所当然但又令人难以忘怀。 + +{{< youtube id=XZAvXYBeQPk title="Awkwafina of Crazy Rich Asians Divulges Her Responsibility to Her Community" >}} + +## 日常/搞笑类 + +### [The Try Guys](https://www.youtube.com/channel/UCpi8TJfiA4lKGkaXs__YdBA) + +周更两到三次,算是我的 YouTube 启蒙。 + +{{< youtube id=QxhlECJytWo title="The Try Guys Take A Lie Detector Test" >}} + +### [Safiya Nygaard](https://www.youtube.com/channel/UCbAwSkqJ1W_Eg7wr3cp5BUA) + +月更,认真地有理有据地疯狂搞笑。 + +{{< youtube id=JHjXwicEwQo title="I Wore 9-Foot-Long Extendo Jeans For A Day" >}} + +## 种草?类 + +### [コスメヲタちゃんねるサラ](https://www.youtube.com/channel/UC_226ocwA3qmdpY2umXy9bA) + +周更两到三次,我惟一一直在看的化妆品频道,非常真实以及可爱。最近和多年的男朋友(常常出镜)结婚了,傻夫妇也很可爱。 + +{{< youtube id=46xDqvxcH0o title="【誰?】ガチ寝起きからコスメヲタになるまで" >}} + +### [Best Damn EDC](https://www.youtube.com/channel/UCK5R1BsMtGd4DtI5uGQRHIg) + +周更两到三次,能够知道世界上还有这么一大群人喜欢这些小玩意儿真实欣慰。 + +{{< youtube id=rCuy5Qd_jjU title="5 of the Best Everyday Carry Setups July 2019 | EDC Weekly" >}} + +### [Carl Murawski](https://www.youtube.com/channel/UCb3fJ09Jw2nUX9TpSiUNBQw) + +周更,主要是关于各种鞋子以及各种虐待鞋子的。 + +{{< youtube id=z_a0e7XpSqk title="How to Make Cheap Boots Look Expensive" >}} + +### [Pack Hacker](https://www.youtube.com/channel/UC_rI3y1DzDULTr-UIvshiwg) + +周更,对常常出门或者搬家的人来讲就是个疯狂种草频道。 + +{{< youtube id=khX2ZlsDMes title="Women’s Digital Nomad Packing List | Clothing & Toiletries For Minimalist Carry On Travel" >}} + +## 科技类 + +### [MKBHD](https://www.youtube.com/channel/UCBJycsmduvYEL83R_U4JriQ) + +大约是周更,短小精悍的科技评测/评论,偶尔会讲很冷的笑话。 + +{{< youtube id=_CTUs_2hq6Y title="5G: Explained!" >}} + +### [Unbox Therapy](https://www.youtube.com/channel/UCsTcErHg8oDvUnTzoqsYeNw) + +几乎日更,Lew Later 的主频道,几乎任何你能想到的科技产品他都会提到,但是我最喜欢的是莫名其妙小玩意儿环节。 + +{{< youtube id=ijJXnDjjJcs title="This Gadget Does What?" >}} + +## 歌手类 + +### [ヨルシカ / n-buna](https://www.youtube.com/channel/UCRIgIJQWuBJ0Cv_VlU3USNA) + +{{< youtube id=t7MBzMP4OzY title="ヨルシカ - ヒッチコック (MUSIC VIDEO)" >}} + +### [ロースケイ](https://www.youtube.com/channel/UCy-IEyEinNn72Nqc6EQ8lMQ) + +{{< youtube id=VfAqhowPrkQ title="ロースケイ - かなり恋っぽい feat. アベカワ" >}} + +### [Sigrid](https://www.youtube.com/channel/UCLG7twDweqlHpyv0EDOjrgw) + +{{< youtube id=z6A2LHGx8_A title="Sigrid - High Five (Official Video)" >}} diff --git a/content/posts/2019-09-09-community-of-lonly-lovages.md b/content/posts/2019-09-09-community-of-lonly-lovages.md new file mode 100644 index 0000000..487c812 --- /dev/null +++ b/content/posts/2019-09-09-community-of-lonly-lovages.md @@ -0,0 +1,58 @@ +--- +author: loikein +published: "2019-09-09T18:36:00+02:00" +slug: 2019-09-09-community-of-lonly-lovages +categories: +- 随笔 +tags: +- 自述 +title: 独活草群落 +--- +前几天跟李总吃晚饭实录: + +> 李:我总结一下对你的人间观察结果,你不要生气 +> +> 我:我不生气,你说 +> +> 李:你不怎么关心其他人,你只关心自己 +> +> 李:我不是说你不关心我,但是你自己一个人也能过得很精彩,你主要的关心是你自己。但是如果你去了暑校或者哪里去很久,那我一个人待着就会很无聊 +> +> 李:你看你刚来波恩的时候就没想着要交朋友 +> +> 我:我那时候是生病了不想引起注意好吗 +> +> 李:但是你给我感觉就是,你不交朋友也过得很好,但是我认识你之后跟认识你之前的生活完全不一样 +> +> 我:不要妄自菲薄,你对我影响还是蛮大的 +> +> 李:你如果谈恋爱的话肯定也是很容易抽身的那种 +> +> 我:这个不完全对,因为我一开始肯定是很投入的,但是如果有什么不对劲的地方让我突然惊醒了的话,我就完全没法重新再投入进去了 +> +> 李:而且感觉你不需要谈恋爱 +> +> 我:因为我还是觉得谈恋爱必须是帕累托改进,这样的人太少了,但是如果能碰到的话我不介意谈一谈 +> +> 李:是 +> +> 李:但是我还是觉得你比较容易抽身 +> +> 我:彳亍 + +怎么说呢,她说的有些要素,是我曾经梦寐以求的,而且有很大一部分是我来到德国之后才开始实践的。 + +记得有人对比漫画和电影中的 Iron Man,说他们都对自己的孤独有清醒的意识,但漫画铁更享受他的孤独,并以一种骄傲的姿态去拥抱孤独;而电影铁则寂寞得十分外放(self-narrative),有点元小说的味道。 + +我不敢拿自己跟他作比,但作为一个孤独的人,从某种意义上来讲这两种对孤独的处理方式都能令我产生共鸣。比如说这个博客就是我倾倒孤独的地方,我用随笔和诗来描写我的孤独,然后,有时候,我会一遍遍地重复读自己写的东西,聊以排解孤独。 +很简单:没有任何人能完全理解另外一个人的孤独,就像没有任何一个星球能够彻底理解地球发射出的所有信号。但是如果我一直写,一直发信,那么被理解的可能性就不会消失。不管我写作的目标是不是被理解,被理解本身,归根结底,是一种莫大的幸福。 +我自诩是个艺术家,裸露内心是我追求艺术的方式。 + +而在现实生活中,我一直是一个骄傲的人。我的骄傲并非毫无来由,但曾经很长一段时间里它是自卑和自大的混合物,骄傲得小心翼翼,骄傲得提心吊胆。这令人痛苦,尤其是当它混合了孤独和缺爱,我想受到关注,但又不愿付出任何追逐的努力,就跟某篇文里描述的 SH 一模一样:「我希望别人就那么看着我,然后就爱上我,不需要我做任何事。」 +这显然过于不切实际,但我运气一直不错,我最好的朋友都不是我主动去结交的(部分原因是社障),我也得以继续心安理得地不主动去交朋友。 +但一旦扯上爱情,重点在于:我必须完全忘记自己谈恋爱的可能性,完全摒弃爱情的概念,才能够做到真正的洒脱和骄傲。这是我最近才悟出来的。我痛恨那种小女生缺爱的表现,也痛恨恋爱随着时光流逝变得鸡毛蒜皮或者惶惶不可终日。我的确没有完全排除恋爱的可能性,但是理想中的爱情太稀有,假设它不存在也无妨。 +这样健康吗?至少应该不是一种值得推崇的生活方式。看了《神奇女侠》之后我曾经每天默念 To Be Human 的歌词,提醒自己不要放弃,还不是时候放弃,但似乎放弃来得比较轻松,而我的确,最关心的还是自己。 + +有一次瓜总问我,我这么爱你,还不够吗?你怎么还缺爱呢? +当时那个场面真的挺肥皂剧的,现在想起来也还是肥皂剧得彻头彻尾,但是我也跟肥皂剧里的人一样感动到了,并且铭记至今。 +就那么看着我,我没有做任何事,就爱上了我的人,是存在的啊。 diff --git a/content/posts/2019-09-14-kagerou-by-onitsuka-chihiro.md b/content/posts/2019-09-14-kagerou-by-onitsuka-chihiro.md new file mode 100644 index 0000000..4ba9a4d --- /dev/null +++ b/content/posts/2019-09-14-kagerou-by-onitsuka-chihiro.md @@ -0,0 +1,121 @@ +--- +author: loikein +published: "2019-09-14T16:40:00+02:00" +slug: 2019-09-14-kagerou-by-onitsuka-chihiro +categories: +- 翻译 +tags: +- 音乐 +- 日译中 +title: 中文翻译:陽炎 by 鬼束ちひろ +--- +[鬼束ちひろ 陽炎 歌詞](http://j-lyric.net/artist/a000679/l01b19b.html) + +*** + +{{< row >}} +{{< col >}} +渡り鳥になって +貴方の気持ちを抱いて飛ぶわ +「どこへ行くの?」かって +見たことのない空を見せるわ +想いの終りを夢見て +手紙は燃やしたけれど +叶う事のない願いだけが +時間を伝って +{{< /col >}} +{{< col >}} +想成为候鸟 +带着你的心飞走 +去哪儿呢 你问 +去看你没见过的天空 我答 +虽然我梦见感情一去不返 +虽然我烧掉了信 +惟独没有实现的愿望 +能穿越时间的长河 +{{< /col >}} +{{< /row >}} + +(\*): + +{{< row >}} +{{< col >}} +貴方をさらってしまいたい +春の息吹 夏の風 +冷たい水面に言葉を浮かべて +涙がひとつ さよならひとつ +貴方がいなければ +ただそれが全てだと +{{< /col >}} +{{< col >}} +想把你带走 +像春天的呼吸 像夏天的清风 +在冰冷的水面放下一片言语 +一滴眼泪 一句告别 +如果你不在的话 +那就是我仅剩的一切 +{{< /col >}} +{{< /row >}} + +{{< row >}} +{{< col >}} +傘のない路は +冷たいままそっと音を刻んで +頼りない街を +誰が愛してくれるのだろう +揺らめく心を無視して +記憶は舞い散るけれど +叶う事のない願いだけを +指でなぞって +{{< /col >}} +{{< col >}} +没有伞的路上 +悄然落下冰凉的脚步声 +无人理睬的街道 +有谁会来爱我 +虽然我能忽视自己摇曳的心事 +虽然记忆随风飘散 +惟独没有实现的愿望 +让我用手指一再描画 +{{< /col >}} +{{< /row >}} + +(\*\*): + +{{< row >}} +{{< col >}} +貴方をさらってしまいたい +秋の鈴鳴り 冬の吐息 +微かな祈りを両手ですくって +涙がひとつ さよならひとつ +貴方がいなければ +ただそれが全てだと +{{< /col >}} +{{< col >}} +想把你带走 +像秋天的钟声 像冬天的叹息 +用双手捧起一声微弱的祈愿 +一滴眼泪 一句告别 +如果你不在的话 +那就是我仅剩的一切 +{{< /col >}} +{{< /row >}} + +{{< row >}} +{{< col >}} +淡い灯火の中で +私の瞳は熱さを増す +貴方の事が見えるように +痛みを晒して +{{< /col >}} +{{< col >}} +黯淡的灯光 +衬出我的目光愈发炙热 +为了能将你看得清楚 +照亮这满身伤痛 +{{< /col >}} +{{< /row >}} + +(\*) + +(\*\*) diff --git a/content/posts/2019-09-20-kuroi-hitsuji-by-keyakizaka46.md b/content/posts/2019-09-20-kuroi-hitsuji-by-keyakizaka46.md new file mode 100644 index 0000000..b789c4b --- /dev/null +++ b/content/posts/2019-09-20-kuroi-hitsuji-by-keyakizaka46.md @@ -0,0 +1,206 @@ +--- +author: loikein +published: "2019-09-20T14:51:00+02:00" +lastmod: "2020-02-09T00:22:58.783+01:00" +slug: 2019-09-20-kuroi-hitsuji-by-keyakizaka46 +categories: +- 翻译 +tags: +- 音乐 +- 日译中 +title: 中文翻译:黒い羊 by 欅坂46 +--- +[欅坂46 黒い羊 歌詞](http://j-lyric.net/artist/a05b333/l04acf5.html) + +*** + +{{< row >}} +{{< col >}} +信号は青なのか +それとも緑なのかどっちなんだ? +あやふやなものは +はっきりさせたい +{{< /col >}} +{{< col >}} +红绿灯是绿的吗 +还是蓝的 到底是哪一种 +想看清楚所有 +模糊暧昧的东西 +{{< /col >}} +{{< /row >}} + +{{< row >}} +{{< col >}} +夕暮れ時の商店街の雑踏を +通り抜けるのが面倒で +踏切を渡って +遠回りして帰る +{{< /col >}} +{{< col >}} +穿过傍晚的步行街的人群 +太麻烦了 +于是走到铁路道口的另一边 +绕远路回家 +{{< /col >}} +{{< /row >}} + +{{< row >}} +{{< col >}} +放課後の教室は苦手だ +その場にいるだけで分かり合えてるよね +話し合いにならないし +白けてしまって僕は無口になる +言いたいこと言い合って +解決しようなんて楽天的すぎるよ +{{< /col >}} +{{< col >}} +不喜欢放学后的课室 +光是待在那里就能相互理解吗 +无法好好交流的我 +像不存在一样 话越来越少 +把想说的话说出来讨论一下 +就能解决问题吗 乐观过头了吧 +{{< /col >}} +{{< /row >}} + +{{< row >}} +{{< col >}} +誰かがため息をついた +そうそれが本当の声だろう +{{< /col >}} +{{< col >}} +有人叹了一口气 +是啊 那才是你的心里话 +{{< /col >}} +{{< /row >}} + +(\*): + +{{< row >}} +{{< col >}} +黒い羊 そうだ 僕だけがいなくなればいいんだ +そうすれば 止まってた針はまた動きだすんだろう? +全員が納得するそんな +答えなんかあるものか! +反対が僕だけならいっそ無視すればいいんだ +みんなから説得される方が居心地悪くなる +目配せしてる仲間には +僕は厄介者でしかない +{{< /col >}} +{{< col >}} +我是黑羊 对哦 只要我不存在就好了 +那样的话 静止的时钟又会开始转动了吧 +能让所有人一致同意的 +答案怎么可能存在 +只有我一个人反对的话忽视我就好了 +被其他人说服的感觉更难熬 +对互相递眼色的人们而言 +我不过是在无事生非 +{{< /col >}} +{{< /row >}} + +{{< row >}} +{{< col >}} +真っ白な群れに悪目立ちしてる +自分だけが真っ黒の羊 +と言ったって同じ色に染まりたくないんだ +{{< /col >}} +{{< col >}} +像白色羊群中的一粒老鼠屎 +只有我浑身漆黑 +即便如此 也不想染成跟他们同样的颜色 +{{< /col >}} +{{< /row >}} + +{{< row >}} +{{< col >}} +薄暗い部屋の灯りを点けるのタイミングって +一体いつなんだろう? +スマホには愛のない過去だけが残ってる +{{< /col >}} +{{< col >}} +昏暗的房间里的灯 +到底应该几点打开呢 +手机里只剩下不存在爱的过去 +{{< /col >}} +{{< /row >}} + +{{< row >}} +{{< col >}} +人間関係の答え合わせなんか +僕にはできないし +そこにいなければよかったと後悔する +{{< /col >}} +{{< col >}} +人际交往中大家总在互相对答案 +反正我是做不到的 +只能后悔 如果不在那里就好了 +{{< /col >}} +{{< /row >}} + +{{< row >}} +{{< col >}} +人生の大半は +思う様にはいかない +納得できないことばかりだし +諦めろと諭されてたけど +それならやっぱ納得なんかしないまま +その度に何度も唾を吐いて +噛みついちゃいけませんか? +No, no, no, no +全部 僕のせいだ +{{< /col >}} +{{< col >}} +人生十有八九 +不能如愿 +尽是些无法接受的事情 +虽然有人叫我放弃 +难道如果真的不能接受的话 +就只能每每吐口唾沫 +然后咬紧牙关吗? +不 不 不 +这一切都是 我的错 +{{< /col >}} +{{< /row >}} + +(\*) + +{{< row >}} +{{< col >}} +白い羊 なんて僕は絶対になりたくないんだ +そうなった瞬間に僕は僕じゃなくなってしまうよ +まわりと違うそのことで +誰かに迷惑かけたか +髪の毛を染めろと言う大人は何が気に入らない +反逆の象徴になるとでも思っているのか +自分の色とは違う +それだけで厄介者か +{{< /col >}} +{{< col >}} +成为白羊 我绝对不要 +那样的话我就不再是自己了 +只是和周围的人不一样 +就给谁添了麻烦吗 +叫我染成白色的大人 到底盯上了什么 +难道以为我会成为叛逆的象征吗 +只是跟自己颜色不一样 +就是在无事生非吗 +{{< /col >}} +{{< /row >}} + +{{< row >}} +{{< col >}} +自らの真実を捨て 白い羊のふりをする者よ +黒い羊を見つけ指をさして笑うのか +それなら僕はいつだって +それでも僕はいつだって +ここで悪目立ちしてよう +{{< /col >}} +{{< col >}} +主动放弃了真实的自我 披着白羊皮的人们啊 +你们也会指着黑羊发笑吗 +那样的话我就要一直 +即便那样我也要一直 +在这里当个显眼的异类 +{{< /col >}} +{{< /row >}} diff --git a/content/posts/2019-10-05-hitchcock-by-yorushika.md b/content/posts/2019-10-05-hitchcock-by-yorushika.md new file mode 100644 index 0000000..fb2033b --- /dev/null +++ b/content/posts/2019-10-05-hitchcock-by-yorushika.md @@ -0,0 +1,192 @@ +--- +author: loikein +published: "2019-10-05T14:05:00+02:00" +slug: 2019-10-05-hitchcock-by-yorushika +categories: +- 翻译 +tags: +- 音乐 +- 日译中 +title: 中文翻译:ヒッチコック by ヨルシカ +--- +首发微博,有修改 + +[ヨルシカ ヒッチコック +歌詞](http://j-lyric.net/artist/a05cf40/l046028.html) + +*** + +{{< row >}} +{{< col >}} +「雨の匂いに懐かしくなるのは何でなんでしょうか。 +夏が近づくと胸が騒めくのは何でなんでしょうか。 +人に笑われたら涙がでるのは何でなんでしょうか。 +それでもいつか報われるからと思えばいいんでしょうか。」 +{{< /col >}} +{{< col >}} +为什么雨后的空气让我感到怀念? +为什么夏天来临时心中躁动不安? +为什么别人的嘲笑令我流泪? +是否应该依然相信总有一天善恶有报? +{{< /col >}} +{{< /row >}} + +{{< row >}} +{{< col >}} +さよならって言葉でこんなに胸を裂いて +今もたった数瞬の夕焼けに足が止まっていた +{{< /col >}} +{{< col >}} +告别的话语 如刀割开心脏 +即使时过境迁 看到转瞬即逝的夕阳 我依然总会驻足 +{{< /col >}} +{{< /row >}} + +{{< row >}} +{{< col >}} +「先生、人生相談です。 +この先どうなら楽ですか。 +そんなの誰もわかりはしないよなんて言われますか。 +ほら、苦しさなんて欲しいわけない。 +何もしないで生きていたい。 +青空だけが見たいのは我儘ですか。」 +{{< /col >}} +{{< col >}} +老师,请和我谈谈人生 +要怎么做才能活得轻松自在? +您会告诉我 谁都说不清楚吗? +您看,我不想吃苦 +只想每天无所事事 +只想每天仰望天空 也是奢望吗? +{{< /col >}} +{{< /row >}} + +{{< row >}} +{{< col >}} +「胸が傷んでも嘘がつけるのは何でなんでしょうか。 +悪い人ばかりが得をしてるのは何でなんでしょうか。 +幸せの文字が¥を含むのは何でなんでしょうか。 +一つ線を抜けば辛さになるのはわざとなんでしょうか。」 +{{< /col >}} +{{< col >}} +为什么能够违背良心撒谎? +为什么好处都被坏人得了? +为什么幸福的幸里面有个钱的符号? +为什么去掉一横就变成了辛苦的辛? +{{< /col >}} +{{< /row >}} + +{{< row >}} +{{< col >}} +青春って値札が背中に貼られていて +ヒッチコックみたいなサスペンスをどこか期待していた +{{< /col >}} +{{< col >}} +被打上青春的价签 +我曾悄悄期待 如希区柯克电影里一般的情节 降临在自己身上 +{{< /col >}} +{{< /row >}} + +{{< row >}} +{{< col >}} +「先生、どうでもいいんですよ。 +生きてるだけで痛いんですよ。 +ニーチェもフロイトもこの穴の埋め方は書かないんだ +{{< /col >}} +{{< col >}} +老师,其实怎样都好了 +光是活着就足够痛苦了 +反正连尼采和弗洛伊德 都没写出该怎么填补心上的洞 +{{< /col >}} +{{< /row >}} + +{{< row >}} +{{< col >}} +ただ夏の匂いに目を瞑って、 +雲の高さを指で描こう。 +想い出だけが見たいのは我儘ですか。」 +{{< /col >}} +{{< col >}} +但我想闻着夏天的气息闭上眼睛 +我想用手指描画云朵的高度 +我想只靠回忆活着 也是奢望吗? +{{< /col >}} +{{< /row >}} + +{{< row >}} +{{< col >}} +「ドラマチックに人が死ぬストーリーって +売れるじゃないですか。 +花の散り際にすら値が付くのも嫌になりました。 +{{< /col >}} +{{< col >}} +有人戏剧化地死掉的故事 +一般都会畅销不是吗? +连落花和死亡都会被标上价格 我不喜欢这样 +{{< /col >}} +{{< /row >}} + +{{< row >}} +{{< col >}} +先生の夢は何だったんですか。 +大人になると忘れちゃうものなんですか。」 +{{< /col >}} +{{< col >}} +老师小时候的梦想是什么呀? +反正长大后都会忘掉的吧? +{{< /col >}} +{{< /row >}} + +{{< row >}} +{{< col >}} +「先生、人生相談です。 +この先どうなら楽ですか。 +涙が人を強くするなんて全部詭弁でした。 +{{< /col >}} +{{< col >}} +老师,请和我谈谈人生 +要怎么做才能活得轻松? +什么泪水会使人坚强 全部都是胡说八道 +{{< /col >}} +{{< /row >}} + +{{< row >}} +{{< col >}} +あぁ、この先どうでもいいわけなくて、 +現実だけがちらついて、 +夏が遠くて。 +{{< /col >}} +{{< col >}} +说未来一切无所谓是假的 +但现实如此虚无缥缈 +夏天如此遥不可及 +{{< /col >}} +{{< /row >}} + +{{< row >}} +{{< col >}} +これでも本当にいいんですか。 +このまま生きてもいいんですか。 +そんなに君にしかわからないよなんて言われますか。 +{{< /col >}} +{{< col >}} +真的一切无所谓吗? +这样活着无所谓吗? +您会告诉我 只有我自己才清楚吗? +{{< /col >}} +{{< /row >}} + +{{< row >}} +{{< col >}} +ただ夏の匂いに目を瞑りたい。 +いつまでも風に吹かれたい。 +青空だけが見たいのは我儘ですか。」 +あなただけを知りたいのは我儘ですか +{{< /col >}} +{{< col >}} +但我想闻着夏天的气息闭上眼睛 +我想永远吹着风 +我只想每天仰望天空 也是奢望吗? +我只想了解你 也是奢望吗? +{{< /col >}} +{{< /row >}} diff --git a/content/posts/2019-10-25-a-study-of-capsule-coffee/extra-style.css b/content/posts/2019-10-25-a-study-of-capsule-coffee/extra-style.css new file mode 100644 index 0000000..dcfbb05 --- /dev/null +++ b/content/posts/2019-10-25-a-study-of-capsule-coffee/extra-style.css @@ -0,0 +1,8 @@ +table { + counter-reset: tr-number; + min-width: 80%; +} +tr>td:nth-child(1)::before{ + counter-increment: tr-number; + content: counter(tr-number); +} diff --git a/content/posts/2019-10-25-a-study-of-capsule-coffee/index.md b/content/posts/2019-10-25-a-study-of-capsule-coffee/index.md new file mode 100644 index 0000000..4f60d00 --- /dev/null +++ b/content/posts/2019-10-25-a-study-of-capsule-coffee/index.md @@ -0,0 +1,85 @@ +--- +author: loikein +published: "2019-10-25T13:36:00+02:00" +lastmod: "2020-11-29T12:21:57.401+01:00" +slug: 2019-10-25-a-study-of-capsule-coffee +categories: +- 生活 +title: 胶囊咖啡总结 +resources: + - src: extra-style.css + title: style +--- +## 咖啡 + +Nespresso 全口味都喝完了!开始探索廉价品牌。 + +饮用方式:200 毫升水,不加糖不加奶([Caffè crema - +Wikipedia](https://en.wikipedia.org/wiki/Caff%C3%A8_crema)) +评分标准:最高分 3,4 ~ 5 分表示太…了 + +(\*) 咖啡因含量奇高,引起手抖 +(\*\*) 回购 + +| 编号 | 牌子 | 品名 | Decaf | 平均单价 (€) | 香味 | 苦味 | 酸味 | 甜味 | 备注 | +|------|----------------|---------------------------------|-------|-----------------------------|------|------|------|------|----------------------------| +| | Lavazza | Lungo Avvolgente | | 0.299 (REWE) | 0 | 1 | 0 | 0 | 没味道 | +| | Bellarom | Modena LUNGO | 是 | 0.175 (LiDL) | 0.5 | 3 | 1 | 0 | | +| | ja! | Lungo Dolge | | 0.174 (REWE) | 1 | 0.5 | 0 | 2 | (**) | +| | HEMA | Lungo Decaf | 是 | 0.175 (HEMA) | 1 | 1 | 3 | 2 | 回味略酸 | +| | Rossmann | Laudatio Lungo | | 0.179 (Rossmann) | 0 | 1 | 0 | 1 | | +| | Café Royal | Lungo | | ? (REWE) 0.269 (EDEKA) | 0.5 | 1 | 0 | 2 | 没啥味道 | +| | Jacobs | Lungo 6 Classico | | ? (ALDI) | 2 | 1 | 0 | 1 | 爽口 (**) | +| | 〃 | Krönung Crema | | ? (REWE) | 1 | 1 | 0 | 2 | 跟 Lungo 6 没区别 | +| | Starbucks | Pike Place | | ? (REWE) | 2 | 1 | 0.5 | 0 | 太贵了, 不如喝点别的 | +| | L'Or Espresso | Papua New Guinea | | 0.329 (REWE) 0.269 (EDEKA) | 3 | 1 | 3 | 3 | 回味甜甜的 | +| | 〃 | Lungo Elegante | | 〃 | 1 | 0 | 5 | 2 | 酸 死 我 了 | +| | My-CoffeeCup | Lungo Arabica | | 0.325 (DM) | 1 | 2 | 3 | 3 | 越喝越好喝 水槽容易脏 | +| | 〃 | Lungo Bellissimo | | 〃 | 2 | 1 | 0 | 2 | 爽口 | +| | 〃 | Mexican Maya Gold Decaf | 是 | 〃 | 0 | 0 | 0.5 | 2 | | +| | TIZIO | Lunngo Iniziato | | 0.149 (ALDI) | 1 | 2 | 2 | 1 | | +| | 〃 | Lunngo Fortemente | | 〃 | 1 | 4 | 0 | 0.5 | | +| | 〃 | Lunngo Vivace | | 〃 | 3 | 2 | 2 | 0 | | +| | Dallmayr capsa | Espresso Decaffeinato | 是 | 0.22 (REWE) 0.3 (EDEKA) | 2 | 3 | 0.5 | 0.5 | (**) | +| | 〃 | Lungo Azzurro | | 〃 | 2 | 3 | 4 | 0 | 希望退款 | +| | 〃 | Lungo Ethiopia | | 〃 | 1 | 0 | 0.5 | 3 | | +| | 〃 | Lungo Selektion Brasilien | | 〃 | 1 | 0 | 0.5 | 1 | 没味道 | +| | 〃 | Crema d'Oro | | 〃 | 1 | 0.5 | 0.5 | 2 | 这个牌最好的 (很难买到) | +| | 〃 | Lungo Belluno | | 〃 | 0 | 0 | 1 | 3 | 爽口 | +| | 〃 | Granverde Espresso | | 〃 | 1 | 0.5 | 0 | 1 | | +| | 〃 | prodomo | | 〃 | 2 | 0 | 1 | 1 | 没味道 | +| | 〃 | Espresso Chocolat | | 〃 | 3 | 0 | 0 | 0 | 还是喝白水吧 | +| | 〃 | Lungo Mild Roast | | 〃 | 2 | 0.5 | 0 | 0.5 | | +| | Nespresso | Vivalto Lungo | 是 | 1.20 (amz) | 2 | 3 | 0.5 | 1 | | +| | 〃 | 〃 | | 〃 | 2 | 2 | 0 | 1 | | +| | 〃 | Volluto | 是 | 〃 | 0 | 1 | 0.5 | 3 | 好喝 | +| | 〃 | 〃 | | 〃 | 0 | 0.5 | 0 | 3 | (*) | +| | 〃 | Arpeggio | 是 | 〃 | 3 | 4 | 1 | 0 | 像ファミマ | +| | 〃 | 〃 | | 〃 | 3 | 4 | 0 | 0 | | +| | 〃 | Ristretto | 是 | 〃 | 1 | 5 | 0 | 1 | | +| | 〃 | 〃 | | 〃 | 2 | 5 | 0 | 0 | 苦了又苦 | +| | 〃 | Vanilio | | 〃 | 3 | 1 | 2 | 3 | 香味像奶泡 | +| | 〃 | Linizio Lungo | | 〃 | 1 | 0.5 | 1 | 1 | 爽口 | +| | 〃 | Cosi | | 〃 | 0 | 1 | 0.5 | 0.5 | 特浓应该好喝 | +| | 〃 | Capriccio | | 〃 | 0 | 0.5 | 0.5 | 0 | 像セブン | +| | 〃 | Caramelito | | 〃 | 3 | 1 | 0 | 0.5 | 很香 | +| | 〃 | Ciocattino | | 〃 | 1 | 0.5 | 0.5 | 0 | 无法言喻的难喝 | +| | 〃 | Livanto | | 〃 | 2 | 0.5 | 0.5 | 2 | 有点腻 (*) | +| | 〃 | Colombia | | 〃 | 4 | 2 | 1 | 2 | 好喝 | +| | 〃 | Aurora de la Paz? (neon green) | | 〃 | 1 | 3 | 0.5 | 1 | 有趣但不了 | +| | 〃 | Nicaragua | | 〃 | 1 | 2 | 0 | 2 | | +| | 〃 | Ethiopia | | 〃 | 2 | 0.5 | 0.5 | 2 | | +| | 〃 | Fortissio Lungo | | 〃 | 1 | 0 | 0 | 3 | 好喝 | +| | 〃 | Roma | | 〃 | 1 | 4 | 0 | 0 | | +| | 〃 | Envivo Lungo | | 〃 | 3 | 3 | 0.5 | 0.5 | | +| | 〃 | India | | 〃 | 2 | 2 | 2 | 1 | 好喝 (*) | +| | 〃 | Dharkan | | 〃 | 3 | 4 | 0.5 | 0 | 有股怪味 | +| | 〃 | Kazzar | | 〃 | 2 | 5 | 1 | 2 | 奶泡特别苦 | + + +## 热可可 + +| | 牌子 | 品名 | 平均单价 (€) | 备注 | +|---|----------------------|----------------------|--------------|---------------------------| +| | Caffè Tiziano Bonini | iCapricci Cioccolata | 0.425 (amz) | 一颗冲两杯 expresso,完美 | +| | Real Coffee | Hot Chocolate | 0.424 (amz) | | diff --git a/content/posts/2019-10-25-delirium-in-sickness-warning-may-provoke-depression.md b/content/posts/2019-10-25-delirium-in-sickness-warning-may-provoke-depression.md new file mode 100644 index 0000000..cdca714 --- /dev/null +++ b/content/posts/2019-10-25-delirium-in-sickness-warning-may-provoke-depression.md @@ -0,0 +1,24 @@ +--- +author: loikein +published: "2019-10-25T20:25:00+02:00" +slug: 2019-10-25-delirium-in-sickness-warning-may-provoke-depression +categories: +- 随笔 +tags: +- 自述 +title: 病中呓语(致郁警告) +--- +我和我家那位关系一直不好,准确地说,是我一直单方面地不喜欢她。 +从我有记忆开始。举例:小学三年级还是四年级的某天,我回到家咬牙切齿地在某个不用的本子上写了「仇人列表」四个大字,然后左起第一行写了她的全名。后来我忘记这件事发生过了,后来在高中某次回家的时候(从书柜里我的秘密角落)翻出来看了一眼,又尴尬又想跟那时候的自己抱头痛哭。 +那以后又过了很多年,直到现在回想起这件事,我依然又尴尬又想跟那时候的自己抱头痛哭。 +我不能说没了她我能过得多好,毕竟在我过去的大部分人生中,她是惟一一个与我有直接关联的人。但是有一点是能够确定的,如果她从来都不存在的话,我得病的机率会降低不止一点半点。我一直清楚自己追求刺激和风险,so much so that 很多次我必须把自己从陷入危险境地的风险里拉出来(我假装有恐高症以此预防自己跳楼,结果变成了真的恐高症),我喜欢有难度的活儿,在压力下我能表现得很好,只除了一种压力:来自她的。我的脑子似乎自动把她的任何一句话都当作压力来处理,这是我的第一个心理医生发现的。发现得太晚了。 +很多时候,我不得不假装她不存在,才能正常地活着。我的意思是,能够移动自己、吃饭喝水、洗漱、去学校,这样的正常。这种小心翼翼的假装把我的生活系在一根脆弱的线上,挂在那个一直都存在我心里的黑洞正上方。当不得不与她联系的时候,那几分钟(甚至是几秒钟)内我的所有情绪都不存在了。 +最严重的时候,我从睁眼到入睡(除了洗澡和上课)都必须听着音乐,不然就会开始发愣,意识到自己不知道生活还有什么意义,开始考虑自杀前整理自己的遗物的步骤。 +这周是一个逐渐逼近这个极端的过程。 +这周我每天都不得不与她联系。 +今天在回家的公交上,我又开始考虑整理遗物,然后猛然回过神来,意识到过去一年半我接受的所有治疗、吃的所有药都只是在欺骗我的大脑,跟我先前假装她不存在的努力是一样的。她一出现就毁了。然后我开始(从小学起第无数次)考虑该怎么让她从我的生命中消失:首先得熬过这阵子。 +神啊,听起来跟永恒一样长。 + +在我很小的时候,有那么一两秒我以为所有人的父母都是这样的。然后发现不是。好多其他人的父母,可以是良师益友,可以是心灵的港湾,可以是竖在自己跟世界之间的盾牌。 +可那时候我已经错失了在获得太多精致的枷锁之前放弃这个世界的机会。 +每一次我都想,如果能够回到过去,我一定要掐死那个襁褓里的自己,但我失败了,我有了如果我死了会想念我的人,有了会被我丢下的人,有了我害怕会因为我的死而自责的人,我已经失去了自杀的资格。每次医生问我最近有没有伤害自己的倾向的时候,我都回答没有。我身上每一个久不愈合的伤口,每一个伤疤,都是我跟自己对抗的勋章。 diff --git a/content/posts/2019-10-26-sincerely-by-the-charm-park.md b/content/posts/2019-10-26-sincerely-by-the-charm-park.md new file mode 100644 index 0000000..5ba1e07 --- /dev/null +++ b/content/posts/2019-10-26-sincerely-by-the-charm-park.md @@ -0,0 +1,108 @@ +--- +author: loikein +published: "2019-10-26T17:17:00+02:00" +slug: 2019-10-26-sincerely-by-the-charm-park +categories: +- 翻译 +tags: +- 音乐 +- 日译中 +title: 中文翻译:Sincerely, by THE CHARM PARK +--- +[Sincerely, 歌詞「THE CHARM PARK」](https://utaten.com/lyric/THE+CHARM+PARK/Sincerely%2C/) + +*** + +{{< row >}} +{{< col >}} +夕日が暮れる優しい色に +現れた満月に吠えて見よう +{{< /col >}} +{{< col >}} +夕阳渐渐黯淡 夜色温柔 +向着初现的满月嚎叫吧 +{{< /col >}} +{{< /row >}} + +{{< row >}} +{{< col >}} +心が染まる「君」という色に +夜空に輝く星のように +{{< /col >}} +{{< col >}} +心里被染上 你的颜色 +像夜空中耀眼的星星一样 +{{< /col >}} +{{< /row >}} + +{{< row >}} +{{< col >}} +大きな声小さな夢を +語り合うこの部屋 +{{< /col >}} +{{< col >}} +大声地讨论 小小的梦吧 +在这个房间里 +{{< /col >}} +{{< /row >}} + +(\*): + +{{< row >}} +{{< col >}} +ここは二人だけの世界 +君と咲き続けるほほえみだらけ +{{< /col >}} +{{< col >}} +这是属于 你我二人的世界 +同你一起 绽放许许多多的微笑 +{{< /col >}} +{{< /row >}} + +{{< row >}} +{{< col >}} +涙も悲しみも時の流れさえも +幸せの音 +{{< /col >}} +{{< col >}} +无论眼泪 悲伤 还是时间的流逝 +都是幸福的声音 +{{< /col >}} +{{< /row >}} + +{{< row >}} +{{< col >}} +朝日が昇る明日の色に +暗闇を抜けて輝く「今」 +{{< /col >}} +{{< col >}} +朝阳带来 明天的颜色 +穿透黑暗 成为耀眼的今天 +{{< /col >}} +{{< /row >}} + +(\*) + +{{< row >}} +{{< col >}} +このまま笑うよ 幸せになるうよ +思い出してよ +忘れない夢を 離さないこの手を +{{< /col >}} +{{< col >}} +愿你从此笑容不断 从此幸福美满 +请你忆起 +无法忘怀的梦想 紧紧握住的双手 +{{< /col >}} +{{< /row >}} + +{{< row >}} +{{< col >}} +涙も悲しみも時の流れさえも +二人ならば幸せだね +{{< /col >}} +{{< col >}} +无论眼泪 悲伤 还是时间的流逝 +只要我们在一起 就是幸福的样子 +{{< /col >}} +{{< /row >}} diff --git a/content/posts/2019-11-10-ai-wo-ryoute-ni-by-acidman.md b/content/posts/2019-11-10-ai-wo-ryoute-ni-by-acidman.md new file mode 100644 index 0000000..e7c3089 --- /dev/null +++ b/content/posts/2019-11-10-ai-wo-ryoute-ni-by-acidman.md @@ -0,0 +1,141 @@ +--- +author: loikein +published: "2019-11-10T17:47:00+01:00" +lastmod: "2020-02-09T00:19:43.614+01:00" +slug: 2019-11-10-ai-wo-ryoute-ni-by-acidman +categories: +- 翻译 +tags: +- 音乐 +- 日译中 +title: 中文翻译:愛を両手に by ACIDMAN +--- +[ACIDMAN 愛を両手に 歌詞](http://j-lyric.net/artist/a00b172/l03e1cd.html) + +*** + +{{< row >}} +{{< col >}} +嗚呼 人が皆 +「神様がいなければ良かった」 +と思ってしまったそんな夜 +{{< /col >}} +{{< col >}} +所有人都想着 +如果神不存在就好了 +那样深沉的夜晚 +{{< /col >}} +{{< /row >}} + +{{< row >}} +{{< col >}} +嗚呼 息をして愛を知る +それぞれの傷があり +誰もが涙を隠して +{{< /col >}} +{{< col >}} +在呼吸之间 懂得了爱 +各自有各自的伤口 +每个人都把泪水 深深藏起 +{{< /col >}} +{{< /row >}} + +{{< row >}} +{{< col >}} +教えてほしい +星が生まれ散る意味を +あなたの眼には +世界は美しかったの? +幾つもの 時が通り過ぎてゆく +{{< /col >}} +{{< col >}} +请告诉我 +星辰诞生又坠落的意义 +在你的眼中 +世界曾是美丽的吗? +无数时代 来了又走 +{{< /col >}} +{{< /row >}} + +{{< row >}} +{{< col >}} +幸せだったかい? +幸せだったかい? +今でも 星に重ね 思い出すよ +あなたが生きた証がある +この命で抱きしめるよ +愛を両手に +{{< /col >}} +{{< col >}} +幸福过吗? +幸福了吗? +现在我依然 看着星星 觉得那是 +你活过的证据 +让我用我的生命 +用我的双手 将爱紧紧怀抱 +{{< /col >}} +{{< /row >}} + +{{< row >}} +{{< col >}} +嗚呼 悲しみを洗うために +涙は流れるから +僕らは弱くてもいいんだよ +{{< /col >}} +{{< col >}} +为了洗刷悲伤 +人才会流下眼泪 +我们软弱一点 也没关系 +{{< /col >}} +{{< /row >}} + +{{< row >}} +{{< col >}} +遠くの空へ赤き陽が落ちていくよ +僕らもやがてあの場所へ帰るのだろう +また一つ 時が通り過ぎてゆく +{{< /col >}} +{{< col >}} +火红的太阳 朝远方的天空落下 +我们也总有一天 会回到那里去的吧 +又一个时代的脚步声 渐渐远去 +{{< /col >}} +{{< /row >}} + +{{< row >}} +{{< col >}} +幸せだったかい? +幸せだったかい? +今でも 星の数ほど 覚えているよ +あなたと生きた日々の全て +僕はここで息をしているよ +失いながら 生きていくよ +この命で 抱きしめるよ +愛を両手に +{{< /col >}} +{{< col >}} +幸福过吗? +幸福了吗? +现在我依然 每看见一颗星星 +就忆起与你度过的又一天 +我在这里 继续着呼吸 +一边失去 一边活下去 +让我用我的生命 +用我的双手 将爱紧紧怀抱 +{{< /col >}} +{{< /row >}} + +{{< row >}} +{{< col >}} +嗚呼 人が皆 +「神様がいなければ良かった」 +と思ってしまったそんな夜 +真っ白に 真っ白に 染まれ +{{< /col >}} +{{< col >}} +所有人都想着 +如果神不存在就好了 +那样深沉的夜晚 +被装点上纯白 +{{< /col >}} +{{< /row >}} diff --git a/content/posts/2019-11-10-macbook-gets-warm-overnight-while-connected-to-power.md b/content/posts/2019-11-10-macbook-gets-warm-overnight-while-connected-to-power.md new file mode 100644 index 0000000..3a6b856 --- /dev/null +++ b/content/posts/2019-11-10-macbook-gets-warm-overnight-while-connected-to-power.md @@ -0,0 +1,160 @@ +--- +author: loikein +published: "2019-11-10T15:12:00+01:00" +lastmod: "2020-03-08T19:36:49.144+01:00" +slug: 2019-11-10-macbook-gets-warm-overnight-while-connected-to-power +categories: +- 笔记 +tags: +- macOS +title: 'MacBook gets very warm overnight while closed & connected + to power adapter' +--- +## The Problem + +It's been several days, and I am rightfully annoyed by the fact that +everyday when I wake up and put my Mac into the backpack, it is WARM. +(It gets warm doing very light works as well, but I'm gonna look into +that another time.) + +I'm using MacBook Pro (13-inch, 2018) with Catalina 10.15 (19A583). I'll +try to keep the "wake reason log" during this process, but they are so +long so I just post a representative portion of it for every day. + + +## Informative Pages + +Here is a list of informative articles and forums that have mentioned +this (from most recent): + +- [Why is my MacBook warm when the lid is closed (in sleep mode)? | alvinalexander.com](https://alvinalexander.com/macos/why-is-macbook-warm-when-lid-closed-sleep-mode) (last update: 2019-09-30) +- [MacBook Pro 2018 Draining Battery when lid closed | MacRumors Forums](https://forums.macrumors.com/threads/macbook-pro-2018-draining-battery-when-lid-closed.2134679/) (last update: 2019-08-06) +- [盒盖睡眠耗电异常,一晚耗电 40%左右 - 51sudo](http://51sudo.cn/fqTopic/detail/3865) (last update: 2019-07-26) +- [MBpro 2018 - Battery drain completely in sleep mode:MacOS](https://www.reddit.com/r/MacOS/comments/a0cnea/mbpro_2018_battery_drain_completely_in_sleep_mode/) (last update: 2019-02-26) +- [MacBook Pro 15 draining battery while sleeping. Wake reason: EC.ARPT (Maintenance).:applehelp](https://www.reddit.com/r/applehelp/comments/aqeeru/macbook_pro_15_draining_battery_while_sleeping/?st=k2lp9wlu&sh=21347747) (last update: 2019-02-14) +- [Macbook Gets Hot with Lid Closed - sfbayhacker - Medium](https://medium.com/sfbayhacker/macbook-gets-hot-with-lid-closed-12fc0e7e7016) (last update: 2018-05-18) +- [MacBook Pro runs HOT in sleep mode - Apple Community](https://discussions.apple.com/thread/8323603) (last update: 2018-03-28) +- [wifi - MacBook Pro continually wakes while in sleep mode - Ask Different](https://apple.stackexchange.com/questions/217433/macbook-pro-continually-wakes-while-in-sleep-mode) (last update: 2017-10-13) +- [Fix OSX battery draining on sleep due to wifi activity](https://gist.github.com/ziadoz/7bddcf346adb89da1e990126c9f82429) last update: 2016-09-26 +- [macos - iMac randomly wakes up from sleep - Ask Different](https://apple.stackexchange.com/questions/234351/) (last update: 2016-04-19) +- [Battery Drain When Lid Closed | MacRumors Forums](https://forums.macrumors.com/threads/battery-drain-when-lid-closed.1885973/) (last update: 2016-03-24) +- [mac 怎么不能休眠了 - V2EX](https://www.v2ex.com/t/255793) (last update: 2016-02-08) +- [Determine Why Your Mac Wakes Up From Sleep](http://osxdaily.com/2010/07/17/why-mac-wakes-from-sleep/) (last update: 2010-07-17) + + +## Potensial solutions that I don't want to try yet + +- Reset [SMC](https://support.apple.com/en-us/HT201295) +- [Mac Sleep Settings for Performance and Battery Life](https://www.lifewire.com/change-mac-sleep-settings-2260804): `sudo pmset -a hibernatemode 25` + + +## 2019-11-04 + +Wake reason log (these five lines repeat almost every minute for the +whole night): + + +There seems to be several different reasons for this, but today I'm +doing the basic: turning off the two toggles in power setting that were +checked. Let's see what happens tomorrow. + + +[![](../images/thumbnails/2019-11-10-journal-day-8-macbook-gets-very-warm-overnight-while-closed-connected-to-power-adapter-Screenshot%2B2020-03-08%2Bat%2B19.29.45.png)](../images/2019-11-10-journal-day-8-macbook-gets-very-warm-overnight-while-closed-connected-to-power-adapter-Screenshot%2B2020-03-08%2Bat%2B19.29.45.png) + + + +## 2019-11-05 + +I did so many things yesterday that I do not understand what worked. +Today it's not warm anymore, but the waking history still looks +annoying. +Today's wake reason log, pretty much nothing has changed. + + + +So I consulted one of the reddit thread, and turned on two toggles in do +not disturb settings. Let's see what happens tomorrow. + +[![](../images/thumbnails/2019-11-10-journal-day-8-macbook-gets-very-warm-overnight-while-closed-connected-to-power-adapter-Screenshot%2B2020-03-08%2Bat%2B19.29.57.png)](../images/2019-11-10-journal-day-8-macbook-gets-very-warm-overnight-while-closed-connected-to-power-adapter-Screenshot%2B2020-03-08%2Bat%2B19.29.57.png) + + + +## 2019-11-06 + +So I forgot to connect my mac to power adapter yesterday night. Today +when I opened the lid, it still has around 70% power, which is good +Wake reason log (repeat less than before, but still a lot): + + + + +### `kernel: AppleACPIPlatform: EC.RTC (Alarm)` + +This thing is new, so here are the top Google results: + +- [Wake reason: EC.RTC (Alarm) Wakes my Mac … - Apple Community](https://discussions.apple.com/thread/250577943) (last update: 2019-08-23) +- [Wake reason: RTC (Alarm) - how to deactivate? | MacRumors Forums](https://forums.macrumors.com/threads/wake-reason-rtc-alarm-how-to-deactivate.1766477/) (last update: 2015-08-17) +- [Fix yosemite rtc alarm wakeup issue • ISPIRE.ME](https://ispire.me/fix-yosemite-rtc-alarm-wakeup-issue/) (last update: 2014-12-22) + +There seems to be two solutions, either disable autoupdate time and date +(which I don't want to) + disable autoupdate time zone (which I already +did), or this command: +`sudo defaults write /System/Library/LaunchDaemons/com.apple.mDNSResponder.plist ProgramArguments -array-add -DisableSleepProxyClient` +Curious enough, I don't have the file `com.apple.mDNSResponder.plist`. I +did not delete it or anything, it's just not there. I don't have +`com.apple.discoveryd.plist` either, which came with the older system? +Need to do more research before actually doing anything about it. +Meanwhile, I used OnyX to clean up Spotlight indices among other things, +as well as `sudo mdutil -a -i off` (after this, mac automatically turned +it back on for the time machine volume, which is a feature according to +Google). Let's see what happens tomorrow. + + +## 2019-11-07 + +Woke up and found that the mac is dead cold. Cool. +Wake reason log (repeat every hour, which is much better than before): + + +Well, up to this point, I want to look into each of the reasons. + + +### `corespeedchd` + +[CPU usage... corespeechd | MacRumors Forums](https://forums.macrumors.com/threads/cpu-usage-corespeechd.2158710/) +Tried the fix in this thread: [corespeechd is sending a massive amount t… - Apple Community](https://discussions.apple.com/thread/8643914?page=2) + + + +[![](../images/thumbnails/2019-11-10-journal-day-8-macbook-gets-very-warm-overnight-while-closed-connected-to-power-adapter-Screenshot%2B2020-03-08%2Bat%2B19.30.07.png)](../images/2019-11-10-journal-day-8-macbook-gets-very-warm-overnight-while-closed-connected-to-power-adapter-Screenshot%2B2020-03-08%2Bat%2B19.30.07.png) + + + +### `powerd` + +Found this fix, may try tomorrow: [CPU usage... corespeechd | MacRumors +Forums](https://forums.macrumors.com/threads/cpu-usage-corespeechd.2158710/) + + +### `kernel: AppleTopCaseHIDEventDriver: Host (0x01)` + +TBA + + +## 2019-11-08~10 + +Busy days, but I managed to keep all the logs at the beginning of each +day, so [here they +are](https://gist.github.com/loikein/4c0c225bda7272793ab0fa5e492749d3). +Up to this point there are really nothing new. Dumb person as I am, I +start to notice the pattern here. +The morning of 9th I woke up and found that the mac is warm again, but +the rest two days were just cool and fine. +So I'm gonna do the trick: turn on and off Siri, and immediately restart +the computer. If the log still looks like this tomorrow, well then we're +going all the way to SMC land. + + +## 2019-11-11 + +No, nothing has changed. Reset SMC and see what happens tomorrow. diff --git a/content/posts/2019-12-12-the-case-of-power-dynamics.md b/content/posts/2019-12-12-the-case-of-power-dynamics.md new file mode 100644 index 0000000..63bd44a --- /dev/null +++ b/content/posts/2019-12-12-the-case-of-power-dynamics.md @@ -0,0 +1,89 @@ +--- +author: loikein +published: "2019-12-12T23:34:00+01:00" +lastmod: "2019-12-13T23:00:00+01:00" +slug: 2019-12-12-the-case-of-power-dynamics +categories: +- 随笔 +tags: +- Essay +- Politics +title: The case of power dynamics / hierarchy / harassment / whatever you call it +--- +[![](../images/thumbnails/2019-12-12-the-case-of-power-dynamics-hierarchy-harassment-whatever-you-call-it-%25E6%2588%25AA%25E5%25B1%258F2019-12-1222.23.26.png)](../images/2019-12-12-the-case-of-power-dynamics-hierarchy-harassment-whatever-you-call-it-%25E6%2588%25AA%25E5%25B1%258F2019-12-1222.23.26.png) + +It is the n-th time I want to finish this post, and by this time, I will +just type only in English to make it less emotional & more structural +(or less). + +So, power dynamics. Sometimes you are only able to recognise how it +affects you after the relationship ends, and I say this from +experience. +Unfortunately, many (almost all) types of relationships in the world +inevitably come with unbalanced power structure. Parent-child +relationship, undoubtedly one of the most important one for most people, +is among them. Your character, your view of the world, you view of +**yourself**, are affected by your relationship with your parent(s), and +how they project everything onto you. Recently I was taking about the +thing of my family with a friend, and delightfully surprisingly, we had +this conversation as the finale: + +> FR: Do you think, in retrospect, you would have achieved everything +> you have achieved today, if it was without the pressure from your +> family? +> ME: Er, yeah, I think so? I know I was kind of good…? And I want to +> explore things…? Oh no, wait, +> FR: Yes +> FR: Do you think you would have been this kind of good, adventurous +> person without your family telling you to do things out of your +> reach? +> ME: Dammit I'm not sure now. + +…And that is precisely the problem! If you have been immersed in a +relationship for so long, where the opponent has such power over you, +you cannot distinguish anymore between opinions, believes and views *of +your own* and the ones they have made you into accepting. +If that just made your world a little different in any way, +congratulations, this has been how I feel about adulting. + +Anyway. Another type of relationship I want to talk about is +teacher-student / mentor-apprentice. News has been not good for this +combination in China, but it was never the other case. The teacher's job +is to tell the student things, and the student is expected to raise +questions or whatever, but eventually, to accept what the teacher says, +which makes this power structure is no less dangerous than +parent-child. +To make themselves more believable, which is the job (!), the teacher +will, almost certainly, unintentionally or intentionally, behave more +admirable and charming than necessary and / or they really are. To make +it even worse, a teacher remains a teacher to the student for many +years, we are talking about decades here, or even for the whole rest of +the student's life. Responsible teachers try their best to not abuse +this power dynamics, irresponsible teachers try their best to abuse it. +As a student, you almost cannot tell who's who, so you are in danger; if +you were a teacher and yet still referencing *me blog* but not proper +educational ethics, you are a horrible teacher. +(On a second thought: does "proper educational ethics" exist? Something +like Hippocratic Oath? No? Oh no this is looking worse.) +At some earlier point in my life, I did not understand the ban on +personal relationships, especially romantic relationships between +teachers and students. Now I am totally for it. No romantic relationship +should be form under power dynamics, certainly not such a strong and +long-lasting one as teacher-student. + +On a side note, I can see this topic merging with whether free will +exists, which is a common sci-fi punchline. +Having been reading sci-fi forever, I still get the panic and sleepless +nights wondering what if I don't have free will at all. Well, power +dynamics in relationships is a non-sci-fi (aka real!) thing that can +impact on the degree of your free will. I can't see why people are not +suffering from insomnia caused by this…? We are basically +mind-controlled by not aliens, not higher existence, but our own parents +/ teachers / governors / etc. This is bad. And more Oaths are not going +to change it, but would be a damn great start. + +Update 12/13: +I asked the above-mentioned friend to read this post, and here's our +conversation afterwards: + +![](/post-img/ELs5nzWXkAAUa7G-orig.jpg) diff --git a/content/posts/2019-12-14-seishun-datshutsu-sokudo-by-kami-sama-boku-wa-kizuiteshimatta.md b/content/posts/2019-12-14-seishun-datshutsu-sokudo-by-kami-sama-boku-wa-kizuiteshimatta.md new file mode 100644 index 0000000..9794a33 --- /dev/null +++ b/content/posts/2019-12-14-seishun-datshutsu-sokudo-by-kami-sama-boku-wa-kizuiteshimatta.md @@ -0,0 +1,166 @@ +--- +author: loikein +published: "2019-12-14T16:54:00+01:00" +slug: 2019-12-14-seishun-datshutsu-sokudo-by-kami-sama-boku-wa-kizuiteshimatta +categories: +- 翻译 +tags: +- 音乐 +- 日译中 +title: 中文翻译:青春脱出速度 by 神様、僕は気づいてしまった +--- +[神様、僕は気づいてしまった 青春脱出速度 +歌詞](http://j-lyric.net/artist/a05cc07/l04921d.html) + +*** + +
+{{< row >}} +{{< col >}} +青春脱出速度 +{{< /col >}} +{{< col >}} +青春逃逸速度 +{{< /col >}} +{{< /row >}} +
+ +{{< row >}} +{{< col >}} +変わりたいと思っていた 片生いの晴嵐だった +白南風を追い越すくらいの夏に加速した +明日を目掛け発射した ちゃちな僕等を乗せた青春は +今 どこらへんを漂っているんだろう +{{< /col >}} +{{< col >}} +只是想改变点什么 幼稚的异想天开 +仿佛六月的山风一般 与夏天一起加速 +明天预备发射的青春 承载过贫瘠的我们的青春 +现在在哪里流浪着呢 +{{< /col >}} +{{< /row >}} + +{{< row >}} +{{< col >}} +涼しげな花が咲いて 同じだけ夢を知った +不確かでいい その引力に飛び込め +{{< /col >}} +{{< col >}} +沁人心脾的花开着 这是我惟一的梦想 +要的就是不确定性 让引力来得更猛烈吧 +{{< /col >}} +{{< /row >}} + +{{< row >}} +{{< col >}} +あの日の僕らは あの日の僕らは +宝の地図さえ 要らないと思っていた +心臓を描いて その音を聞いた +唯一の 財宝が そこにあったんだ +{{< /col >}} +{{< col >}} +那天的我们 那天的我们 +还以为连藏宝图都不需要 +描绘着心脏 倾听着心跳 +以为惟一的宝藏就在那里 +{{< /col >}} +{{< /row >}} + +{{< row >}} +{{< col >}} +それなら僕らは それなら僕らは +どうして今日という 軌道を描けなかったんだ +未完成な高度 不完全なスピード +炎天の 重力に 青春の声は立ち消えた +{{< /col >}} +{{< col >}} +那么我们 那么我们 +为什么无法描绘名为今天的轨道 +上升高度过低 飞行速度太慢 +青春的声音 半途消失在烈日的重力中 +{{< /col >}} +{{< /row >}} + +{{< row >}} +{{< col >}} +消えた +今はもう +{{< /col >}} +{{< col >}} +消失了 +已经 +{{< /col >}} +{{< /row >}} + +{{< row >}} +{{< col >}} +変われないと知っている 群像劇は終わった +空蝉のようにがらんどうな毎日だ +まるで蜃気楼だった 夏の続きを乗せた青春は +今 どこらへんを漂っているんだろう +{{< /col >}} +{{< col >}} +明知什么都无法改变 我们的群像剧已经结束了 +像蝉蜕下的壳 每天心里空空荡荡 +仿佛海市蜃楼一般 承载过夏日续篇的青春 +现在在哪里流浪着呢 +{{< /col >}} +{{< /row >}} + +{{< row >}} +{{< col >}} +向日葵みたいにずっと 日が沈むのを見ていた +さも嘗ての 有様を見るようだ +{{< /col >}} +{{< col >}} +像向日葵一样 盯着沉下去的夕阳 +简直像看到了 以前的自己 +{{< /col >}} +{{< /row >}} + +{{< row >}} +{{< col >}} +あの日の僕らは あの日の僕らは +終わりはここじゃないんだと思っていた +心臓を燃やして ひたすらに飛んで +目にした 光景は 確かに綺麗だった +{{< /col >}} +{{< col >}} +那天的我们 那天的我们 +还以为结局尚在远方 +用心脏作燃料 不停向上飞升 +映在眼中的风景是那么地美丽 +{{< /col >}} +{{< /row >}} + +{{< row >}} +{{< col >}} +それでも僕らは それでも僕らは +あれほど愛した 世界を描けなかったんだ +優柔不断な弾道 表面上の最期 +そうやって いつだって 逃避していたんだった +{{< /col >}} +{{< col >}} +然而我们 然而我们 +连如此深爱的世界 都无法描画 +拐弯抹角的轨道 肤浅的结局 +总用这样那样的借口 不断逃避着 +{{< /col >}} +{{< /row >}} + +{{< row >}} +{{< col >}} +あの日の僕らは あの日の僕らは +この火が晩夏に 途絶えるだなんて思っちゃいなかった +硬直したプライド 操縦不能のパイロット +終幕に 散っていく 線香花火のように +炎天の 重力に 青春の声は立ち消えた +{{< /col >}} +{{< col >}} +那天的我们 那天的我们 +想不到这火焰会在夏末突然消失 +僵硬的自尊 失控的机组 +像即将燃尽的烟花棒一样 +青春的声音 半途消失在烈日的重力中 +{{< /col >}} +{{< /row >}} diff --git a/content/posts/2019-12-15-constitution-of-the-republic-of-uzupis.md b/content/posts/2019-12-15-constitution-of-the-republic-of-uzupis.md new file mode 100644 index 0000000..b40e240 --- /dev/null +++ b/content/posts/2019-12-15-constitution-of-the-republic-of-uzupis.md @@ -0,0 +1,60 @@ +--- +author: loikein +published: "2019-12-15T19:21:00+01:00" +slug: 2019-12-15-constitution-of-the-republic-of-uzupis +categories: +- 翻译 +tags: +- 英译中 +title: 中文翻译:Constitution of the Republic of Užupis(对岸共和国宪法) +--- +[Constitution of the Republic of Užupis » Užupis +Everywhere](http://uzhupisembassy.eu/uzhupis-constitution/)(搜索 The +Užupis Constitution terms 直达英文版) + +注:这篇宪法有官方繁体中文版([点这里看一位豆瓣友邻发的照片](https://www.douban.com/note/685531545/)),但我想自己捋一遍。 +用词大致参考[《世界人权宣言》](https://www.un.org/zh/universal-declaration-human-rights/):动词加「有权」,名词加「有权享有」,形容词加「有…的权利」。 + +*** + +第一条   人人有权住在维尔尼亚河畔,维尔尼亚河有权流经人人。 +第二条   人人有权享有热水、供暖、覆瓦屋顶。 +第三条   人人有权死亡,但非义务。 +第四条   人人有权犯错。 +第五条   人人有独一无二的权利。 +第六条   人人有权去爱。 +第七条   人人有权不被爱,但非必须。 +第八条   人人有平凡、不出名的权利。 +第九条   人人有权闲散。 +第十条   人人有权喜爱及照顾猫。 +第十一条  人人有权照看狗,直到其中一方死去。 +第十二条  狗狗有权当狗。 +第十三条  猫猫无义务爱其主人,但须在其有需要时予以帮助。 +第十四条  有时,人人有权不知道其责任。 +第十五条  人人有权怀疑,但非义务。 +第十六条  人人有快乐的权利。 +第十七条  人人有不快乐的权利。 +第十八条  人人有沉默的权利。 +第十九条  人人有权信任。 +第二十条  任何人无权使用暴力。 +第二十一条 人人有权意识到自己无足轻重。 +第二十二条 任何人无权图谋永恒。(跟繁中版翻译相反,但对比过其他语种翻译) +第二十三条 人人有权理解。 +第二十四条 人人有权不理解。 +第二十五条 人人有权享有任何国家之国籍。 +第二十六条 人人有权庆祝或不庆祝其生日。 +第二十七条 人人应当记住其姓名。 +第二十八条 人人可分享其所有物。 +第二十九条 任何人无权分享别人的所有物。 +第三十条  人人有权享有兄弟、姐妹、双亲。 +第三十一条 人人可独立自主。 +第三十二条 人人对其自由负责。 +第三十三条 人人有权哭泣。 +第三十四条 人人有权被误解。 +第三十五条 任何人无权使别人有罪。 +第三十六条 人人有权保持自我。 +第三十七条 人人有权不享有权利。 +第三十八条 人人有免于恐惧的权利。 +第三十九条 不得认输。 +第三十九条 不得还击。 +第四十条  不得投降。 diff --git a/content/posts/2019-12-16-solve-searching-problems-of-mac-finder.md b/content/posts/2019-12-16-solve-searching-problems-of-mac-finder.md new file mode 100644 index 0000000..3c89777 --- /dev/null +++ b/content/posts/2019-12-16-solve-searching-problems-of-mac-finder.md @@ -0,0 +1,31 @@ +--- +author: loikein +published: "2019-12-16T12:08:00+01:00" +slug: 2019-12-16-solve-searching-problems-of-mac-finder +categories: +- 笔记 +tags: +- macOS +title: 血书:Mac Finder 搜索不出东西的解决方法(Spotlight,Alfred,…的问题都可能相关) +--- +自从升级到 Mojave 还是哪次开始,我的 Finder 搜索就不好用了。本人是个搜索狂人,一夜之间所有 `.savedSearch` 全部报销,重建索引(系统偏好 \> Spotlight 或者 Onyx)都不管用,哇…… +然而直到昨天 Alfred 还是好用的,我就忍了,然后下载了 Alfred 4,结果所有非系统自带 app(包括 MAS 下载的)都搜索不到了,本人像瞎了一样实在受不了了,总而言之找到了这个网站: +[What to Do When Mac Finder is Slow or Not +Responding?](https://www.anysoftwaretools.com/mac-finder-slow-not-working/#3_Problematic_Finder_Preference_Files) + +当 Spotlight 还能搜到文件的时候: + +1. 在 Spotlight 里搜索 `~/Library/Preferences/`,双击打开 +2. 在打开的文件夹里发现(目测)`com.apple.finder.plist`,删除 +3. 重新启动 +4. 打开 Finder,这时候所有之前的设置都消失了,会打开一个最近项目文件夹,耐心等待载入完毕 +5. 试试搜几个东西,耐心等待载入完毕 + +万一 Spotlight 已经不动了: + +1. 打开 Terminal +2. 输入 `rm ~/Library/Preferences/com.apple.finder.plist`,回车 +3. 可能需要输入密码 +4. 继续上一项 3~6 步 + +搞定,原先保存的 `.savedSearch` 都能用了。以上。 diff --git a/content/posts/2019-12-24-find-that-brush.md b/content/posts/2019-12-24-find-that-brush.md new file mode 100644 index 0000000..56ac6da --- /dev/null +++ b/content/posts/2019-12-24-find-that-brush.md @@ -0,0 +1,160 @@ +--- +author: loikein +published: "2019-12-24T14:46:00+01:00" +slug: 2019-12-24-find-that-brush +categories: +- 随笔 +tags: +- Essay +- 自述 +- Introspection +title: 找到那把刷子/Find that brush +--- +{{< row >}} +{{< col >}} +距离星巴克平安夜 special 关门还有约 1 个小时,看看能不能把酝酿了两天的这篇博文写一写。 +{{< /col >}} +{{< col >}} +It's about an hour before Starbucks Christmas Eve special closing time. +Let's see if I can write this blog post that has been brewing in my mind +for two days. +{{< /col >}} +{{< /row >}} + +{{< row >}} +{{< col >}} +注意:搞笑,偏执狂,滥用括号,乱七八糟的童年回忆 +{{< /col >}} +{{< col >}} +Warnings: attempt at being funny, paranoid, abuse of brackets, messy childhood memories +{{< /col >}} +{{< /row >}} + +*** + +{{< row >}} +{{< col >}} +我算是拖延症里面比较严重的那种。虽然被学生的身份逼着完成了很多事情,然而一拖拖了好几年的任务也不是没有,做了个开头然后拖了几个星期几个月再继续的就更多了。小到每天的生活:我极其,极其拖延晚间洗漱。 +{{< /col >}} +{{< col >}} +I am at the extreme end of procrastination spectrum. Although I was +forced to complete a lot of things as a student, there are tasks under +delay for several years, and even more that I had done the beginnings, +and nothing further for weeks or months. Down to day-to-day scenarios: I +am extremely, extremely prone to procrastinating at night wash-ups. +{{< /col >}} +{{< /row >}} + +{{< row >}} +{{< col >}} +作为一个标准东亚人,我习惯睡前洗澡,但困意常有,澡意不常有(意思是没有)。 +明明任务告一段落了可以睡觉了,却因为不想去洗澡而继续磨磨蹭蹭干点别的杂事,然后一不小心就跳进了兔子洞里,再一抬头已经是两小时后。再加上我向来入睡困难,一旦开始拖延洗澡,正常睡觉几乎是不可能的事情。 +成功「去」洗澡后,更大的问题是「洗澡」本身。首先,我一直被魇在「洗不干净污渍」和「洗不干净泡沫残留」的两难中;其次,用手搓不干净,用毛巾每天没法彻底晾干会长霉(任何东西一天之内晾不干是南方人痛苦的集体记忆)(国内的家里是没有烘干机的,我亲眼看着长辈的洗脸毛巾颜色越来越不对劲,从此发誓毛巾只可用来擦干)。高中住校的时候每天很早熄灯,大家都抢着洗澡;一进大学宿舍,我就开始被洗澡问题困扰。 +{{< /col >}} +{{< col >}} +As a typical East Asian, I am used to taking shower before bed. However, +sleepiness exists, but  taking-showeriness usually does not (which means +never). Everytime when tasks for the day came to an end and I am +supposed to sleep, I continued to poke around because I don't want to +take my shower, and jump into some rabbit holes and find out it's been +two hours. In addition, I always have difficulty falling asleep, so once +I start to delay taking the shower, it is almost impossible to sleep at +any "normal" time. +After successfully *going* to take a shower, the bigger problem is +*showering*. First of all, I have been stuck in the dilemma of "not able +to wash clean" and "not able to remove foam residue". Second, it's never +sufficient to shower just by hand, but it is impossible to dry a towel +so that it won't mould. (Painful collective memory of Chinese +southerners: it is never possible to dry anything in a day.) (There is +no dryer back at my home in China. I witnessed  the colour of my +family's face towel getting more and more weird, and sweared to myself +that towel could only be used to wipe for drying.) My high school was +residential, and the lights were turned off early everyday, so everyone +used to rush to their showers. As soon as I moved into my university +dormitory, I started to have issues with showering. +{{< /col >}} +{{< /row >}} + +{{< row >}} +{{< col >}} +刷牙也是一样,最大的问题是牙膏、牙刷、牙杯永远无法优雅地跟水槽并存。我小时候家里有几个大牙杯,手柄是中空的,刚好能放一支牙刷,然而底下的出水孔很容易被牙刷柄堵住,而且牙杯就放在洗澡的花洒头旁边,根本一洗澡就变成试管,结果每个人的牙刷柄最底下和牙杯柄里面都是有一点点发霉的。而且我非常闲不住(我一直怀疑自己有一点点多动症),刷牙三分钟内手在振动,头在振动,什么都干不了,简直是地狱般的折磨。 +{{< /col >}} +{{< col >}} +The same is true for teeth brushing. My biggest problem was that the +toothpaste, the toothbrush, and the toothbrush cup could never coexist +elegantly with the sink. When I was a kid, we had a few huge toothbrush +mugs with hollow handles, so I could fit a toothbrush inside. However, +the outlet hole for water in the mug handle was easily blocked by the +toothbrush handle, and they were placed beside the shower head in the +bath, so the handles were effectively test tubes. As a result, +everyone's toothbrush handles and the end of the mug handles were a +little moulded. What's worst is that my brain can't idle (I have always +suspected that I have mild ADHD), so when brushing teeth, my hands and +my head were all shaking for three whole minutes, and I could do nothing +else. It felt like in hell. +{{< /col >}} +{{< /row >}} + +{{< row >}} +{{< col >}} +改善了我的刷牙状况的,一开始是电动牙刷。不用的时候放在充电座上,刷头拿下来放在旁边或者松松地挂在马达棍子上,晾干特快。而且刷牙的时候手是匀速运动,费的力气可以忽略不计,这时候在镜子前面放一个 +iPad,戴上蓝牙耳机,打开视频或者播客,就可以忘记自己在刷牙了,甚至可以无缝从刚才正在干的事情转移过来,啊,生活。 +然后一年前来德国的时候,发现了立式牙膏(!)这种东西,从此牙膏管及其相关的所有问题都消失了,消失了,啊,生活。 +{{< /col >}} +{{< col >}} +What improved my tooth brushing situation initially was the electric +toothbrush. When not in use, I can just place it on the charging stand, +take off its head and put it aside or hang it loosely on the motor +stick. Super fast to dry. And when brushing my teeth, my hands are +making a (almost) uniform motion, and the effort is negligible. At this +time, I might as well put an iPad in front of the mirror, wear a pair of +Bluetooth earphones, open a video or a podcast, and  forget the fact +that I am brushing my teeth. I can even seamlessly transit from what I +was doing to brushing teeth. Ah, life. +Then when I came to Germany a year ago, I found this thing of vertical +toothpaste (!). From then on, all the toothpaste tube and problems +related to it disappeared. Disappeared. Ah, life. +{{< /col >}} +{{< /row >}} + +{{< row >}} +{{< col >}} +说回洗澡。我至今还没有解决没法「去」洗澡的问题,也许一副完全防水的耳机能够起点作用(我试了一个月换成早上洗澡,然而头发晾不干是小事,在有早课的情况下再早起半个小时就为了洗澡恕在下真的做不到)(对我就是懒得用吹风机)。然而一旦我把自己的脚挪进了浴室,我能够无脑地完成洗澡这个任务了,多亏了另外一把刷子:浴刷。 +之前好像已经推荐过了,然而我必须重复强调:直到在日本逛无印的时候,我都不知道世界上有这么一个神奇的东西。 +浴刷,尤其是:长柄能搓到后背的、纯人造材质的、用去水垢泡沫一喷就能*清理一新*的、浴刷。现在我的洗澡步骤是:(捆着头发)开水,洗脸,用刷子蘸沐浴液刷全身包括脚底,拆头发,洗头发,关水,随便擦一下头发,捆头发,擦身体,穿睡衣。快捷,完美,啊,生活。生活! +目前已经有 1 +位北京来的朋友听信我的谗言,发现了浴刷的好。希望大家都来用浴刷,the superior way to shower。 +{{< /col >}} +{{< col >}} +Back to shower. I haven’t solved my problem of not being able to *go* to +take a shower. Maybe a pair of waterproof earphones can be useful. (I +tried a month to take the shower in the morning. It's not a problem that +my hair doesn't dry, it is a problem that I had to wake up half an hour +earlier just for shower when I have early classes in the morning.) +(Yean, I just can't bother to use a hair dryer.) However, once I move my +feet into the bathroom, the task of showering become a no-brainer, +thanks to another brush: a bath brush. +I have recommended it before, but I must say it again: I didn't know +that there was such a magical magical thing in the world until I +wandered in Muji in Japan. Bath brushes, in particular: made out of pure +artificial material, with long handles that can reach my back, and can +be cleaned up like *Scourgify* with a spray of descaling foam. Now my +showering routine is: (hair tied), turn on water, wash face, dip the +brush with shower gel and brush the whole body including soles, untie +hair, wash hair, turn off, wipe hair, tie hair, wipe body, and wear +pajamas. Fast, perfect. Ah, life. Life! +Up til today, one (1) friend from Beijing has listened to my gibberish +and found the goodness of the bath brush. Everyone, please, come and use +the bath brush, the superior way to shower. +{{< /col >}} +{{< /row >}} + +{{< row >}} +{{< col >}} +这篇文章告诉我们一个什么道理呢?如果你不是拖延症的话,恭喜贺喜,千万保持。圣诞快乐。 +{{< /col >}} +{{< col >}} +What is the moral of this article? If you are not a procrastinator, +congratulations, keep it going. Merry Christmas. +{{< /col >}} +{{< /row >}} diff --git a/content/posts/2019-12-26-how-to-remove-anysearch.md b/content/posts/2019-12-26-how-to-remove-anysearch.md new file mode 100644 index 0000000..7856337 --- /dev/null +++ b/content/posts/2019-12-26-how-to-remove-anysearch.md @@ -0,0 +1,61 @@ +--- +author: loikein +published: "2019-12-26T16:09:00+01:00" +slug: 2019-12-26-how-to-remove-anysearch +categories: +- 笔记 +tags: +- macOS +- Browser +title: 血书:移除 anysearch +--- +重要的事说在前面: + +> 不要轻易打开任何来源不明的网站 +> 不要轻易下载或打开任何来源不明的文件 +> 不要点击不认识的人发给你的邮件里的任何链接和附件 + + +李总的电脑苦 anysearch 已久,而且她安装的任何浏览器,无论重置还是重装,都会在系统重启后被 +anysearch 接手。是时候整理一下网路上的信息,彻底解决一下这个问题了。 + +参考: [How to get rid of Any Search Manager on your Mac](https://macpaw.com/how-to/remove-anysearch-malware-from-mac) +系统:macOS 10.15 (19A583) + +在系统偏好设置里: + +1. 打开 `系统偏好设置 > 描述文件`,删除任何标题包含 `AtlantaResults` + 的描述文件 +2. 打开 `系统偏好设置 > 用户与群组`,在当前用户的 `登录项` + 标签页里,移除任何不认识的程序(李总的电脑上没有) + +在访达里: + +1. 打开 `/Library/LaunchAgents/`,删除任何名称包含 `AtlantaResults` 的 + `.plist` 文件 +2. 打开 `/Library/LaunchDaemons/`,重复上一步 +3. 打开 `~/Library/LaunchAgents/`,重复上一步 +4. 打开 `/Library/Application Support/`,删除任何名称包含 + `AtlantaResults` + 的文件夹,可能有两个或以上,例子:`com.AtlantaResults`,`com.AtlantaResultsDaemons`,等等 +5. 打开 `~/Library/Application Support/`,重复上一步 +6. 打开 `~/Library/Application Support/Google/Chrome/Default/`,删除 + `Preference`(没有扩展名的文本文件) +7. 打开 `废纸篓`,立即删除刚才放进来的几个文件和文件夹 + +2020-01-03 更新: + +1. 根据 [参考](https://discussions.apple.com/thread/8394251),还有两个需要检查的路径:`/System/Library/LaunchAgents/` 和 `/System/Library/LaunchDaemons/` + +重启。 + +在 Chrome 里: + +1. 打开 `⋮ > 设置 > 搜索引擎`,停用控制地址栏的扩展程序 +2. 打开 `⋮ > 更多工具 > 扩展程序`,删除任何带有 `AtlantaResults` + 的扩展程序  +3. 在地址栏里输入 `chrome://policy` 并打开,检查没有托管机构 + +重启。 + +到这里为止,李总的电脑就没事儿了。如果以后还有问题我会更新……(希望没有) diff --git a/content/posts/2019-12-30-a-kind-of-future.md b/content/posts/2019-12-30-a-kind-of-future.md new file mode 100644 index 0000000..689c303 --- /dev/null +++ b/content/posts/2019-12-30-a-kind-of-future.md @@ -0,0 +1,26 @@ +--- +author: loikein +published: "2019-12-30T22:10:00+01:00" +slug: 2019-12-30-a-kind-of-future +categories: +- 随笔 +tags: +- 未来学 +title: 一种未来 +--- +非常奇妙的一天。 + +*** + +今天走路去超市屯货,出门的时候我正在用 iPad 听着播客,于是把手机(50% +电量)和 iPad(38% 电量)都放进了包里。逛完了超市,排队的时候那一集播客听完了,但我正在排队,所以不好掏出 +iPad 换一集播客,于是掏出了手机连上耳机,点开另外一集下载好的开始听。 +拎着很重的杂货回家,耳机发出了低电量警告,于是我想把它塞回充电盒充个几分钟再继续听。塞回去这个动作的过程发生在一条窄路上,迎面走来的人等我非常笨拙地一边试图整理手上的杂货一边把耳机塞进充电盒,等了大概十秒。五分钟左右之后,我掏出耳机戴上,继续听,过了一分钟手机决定天气太冷,自动关机了。 + +此时离到家还有十分钟。 + +在这安静的十分钟里,只有我和天上的星星相对无言,于是我开始想,我对电子设备的终极幻想大概是,我的所有设备都是同一个设备(大脑)的不同外壳。现在苹果正在试图做的很多事都是朝着这个方向的,比如 +Handoff,比如 Catalyst,甚至 iCloud 的本质也是让人在不同设备上拥有连续的体验。但是还是不够。 +几年前 Indiegogo 上出现了一款设备([Neptune Suite](https://www.indiegogo.com/projects/neptune-suite-one-hub-infinite-possibilities#/)),它所宣传的未来正是我想要的样子:所有设备共用一个「大脑」(智能手表),手机、平板、电脑都只是无线连接在这个大脑上的不同屏幕。毫无疑问地,这个项目筹款成功了,然而直到今天(2019.12.30)都没有发货。 +唉。 +在我有生之年,能看到这种未来成为现实吗? diff --git a/content/posts/2020-01-05-mac-restore-list.md b/content/posts/2020-01-05-mac-restore-list.md new file mode 100644 index 0000000..911bba5 --- /dev/null +++ b/content/posts/2020-01-05-mac-restore-list.md @@ -0,0 +1,61 @@ +--- +author: loikein +published: "2020-01-05T15:30:00+01:00" +lastmod: "2020-03-25T19:34:06.435+01:00" +slug: 2020-01-05-mac-restore-list +categories: +- 应用程序 +tags: +- macOS +title: Mac 重装清单 +--- + +## 墙纸 + +- [Wallpaper Archive | + grafiksyndikat](https://grafiksyndikat.com/wallpaper/) +- [BLACK series by Jean-Marc Denis](http://jmd.im/black) + + + +## 无法通过 homebrew 安装的 + +- [Text2Image](https://www.yige.app/page/doc/download.md) - 文字转长图 +- [ScanSnap Home : Fujitsu + Global](https://www.fujitsu.com/global/products/computing/peripheral/scanners/scansnap/software/sshome/index.html) - + 扫描仪套件 +- [SCU](https://github.com/neolee/SCU) - 图形化鼠须管配置工具 +- [OpenAudible - Audio Book Manager](https://openaudible.org/) + + + +## Homebrew 备份法 + +### 参考 + +- [Easy macOS Loads By Way of Homebrew Bundle — Liss is + More](https://www.caseyliss.com/2019/10/8/brew-bundle) +- [Homebrew/homebrew-bundle](https://github.com/Homebrew/homebrew-bundle) +- [macOS 使用 homebrew-bundle 优雅地备份和恢复软件列表 | + HelloDog](https://wsgzao.github.io/post/homebrew-bundle/) + +### 备份 + +(在终端里): + +1. 安装 homebrew: + `/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"` +2. 安装 mas: + `brew install mas` +3. 安装 bundle 并在当前目录创建 Brewfile: + `brew bundle dump --describe` + +### 恢复 + +(根目录): +`brew bundle --file="~/Brewfile"` + + +## 我的 Brewfile + +[GitHub Gist](https://gist.github.com/loikein/57bbda0722a5b2aee5d5f2f616fc6194) diff --git a/content/posts/2020-01-09-download-your-apple-data.md b/content/posts/2020-01-09-download-your-apple-data.md new file mode 100644 index 0000000..60a2030 --- /dev/null +++ b/content/posts/2020-01-09-download-your-apple-data.md @@ -0,0 +1,24 @@ +--- +author: loikein +published: "2020-01-09T11:30:00+01:00" +slug: 2020-01-09-download-your-apple-data +categories: +- 笔记 +title: 苹果个人数据下载(2020.01) +--- +蛮好玩的东西, 应该在欧洲以外也可以吧。 + +我一开始主要是想导出所有备忘录(结果是一堆 `.txt` +文件,比我想象中的还好),然后发现有很多可以下载下来回顾自己的苹果史的文件,大部分是按时间排列的 +`.csv` 或者 `.json`,也很适合拿来做图表什么的。 + +2019.01.31 更新:如果只是想导出备忘录,可以试试 [Exporter for Notes.app](http://writeapp.net/notesexporter/)(我没试过) + +步骤: + +1. 用 Apple ID 登录 [管理您的数据](https://privacy.apple.com/),点击 + `请求数据拷贝` +2. 选择需要的项目,确定 +3. 马上会收到一封确认邮件,然后等通知可以下载的邮件(我等了 5 天) +4. 期间可以翻翻文件手册:[是否需要帮助以了解您的文件?](https://privacy.apple.com/file-guides)(都是英语的) +5. 第二封邮件里会附有下载链接,点进去一个一个下载就可以了 diff --git a/content/posts/2020-01-20-year-of-themes-and-2019-recap.md b/content/posts/2020-01-20-year-of-themes-and-2019-recap.md new file mode 100644 index 0000000..bdcc22f --- /dev/null +++ b/content/posts/2020-01-20-year-of-themes-and-2019-recap.md @@ -0,0 +1,29 @@ +--- +author: loikein +published: "2020-01-20T14:58:00+01:00" +slug: 2020-01-20-year-of-themes-and-2019-recap +categories: +- 随笔 +tags: +- 年度总结 +title: 主题之年(暨 非常简洁的 2019 总结) +--- +我一直在拖延着不想写年度总结,因为,就像 2018 年是我过得最完美的一年那样, 2019 +年是我过得最槽心的一年。(人品守恒?) +但有时候,花朵更倾向于从废墟中生长。2019 最后几个月,我开始不定期发一些[翻译的东西](../../projects/#翻译),它们都是我在极度槽心找不到出口的时候的自我疗养。虽然不能对当时的我起正面影响,但给未来的我留下了一些可以会心一笑的宝石。 + +在 2019 年写的更多有趣博文: + +- [理想主义与现实主义/Idealism and realism](../2019-03-30-idealism-and-realism/) +- [无题](../2019-06-11-untitled/) +- [此致,来自橡树](../2019-07-23-from-the-oak-tree-with-love/) +- [全球化电子阅读体验/Globalise your digital reading life](../2019-06-20-globalise-your-digital-reading-life/) +- [爱国者的墓志铭](../2019-07-01-epitaph-of-patriots/) + + +早在 1 月 1 日之前,我的 2020 +就已经开始了。圣诞假期间,我捡起了多年不听的播客([推荐 iOS 客户端:Overcast](https://apps.apple.com/app/overcast/id888422857)),然后从早就听说过的 +[Cortex](https://www.relay.fm/cortex) 开始挖兔子洞。Cortex +最新一集讲的是年度主题,我很喜欢这个概念:如果这一年中做任何事情的时候脑子里都有一个主题鞭策着自己的话,一年下来的好处比新年愿望之类的要多得多。 +(01.26 更新:Grey 刚做了一期视频讲这个,[点这里观看](https://www.youtube.com/watch?v=NVGuFdX5guE)) +那么,我的 2020 年主题,就定为「主题」。在这一年中,我想找到我真正想做的事情,明确自己未来的道路,仔细整理生活的意义是什么。有很多应该(已经)完成但是完全提不起劲来开始的事情,也有一些只剩下干瞪眼等结果的事情,然而无论事情怎么发展,我想要自己能够记得,时间是向前的,生命是向前的,而未来是不灭的。与诸君共勉。 diff --git a/content/posts/2020-01-31-sleepless-museum-009-digital-gadgets.md b/content/posts/2020-01-31-sleepless-museum-009-digital-gadgets.md new file mode 100644 index 0000000..73bdb7f --- /dev/null +++ b/content/posts/2020-01-31-sleepless-museum-009-digital-gadgets.md @@ -0,0 +1,71 @@ +--- +author: loikein +published: "2020-01-31T18:08:00+01:00" +slug: 2020-01-31-sleepless-museum-009-digital-gadgets +categories: +- 睡不着博物馆 +title: 睡不着博物馆 009:电子设备 +--- +模仿 [Museum - //Jason Burk](https://burk.io/museum) 之作。 +⭐ 标志使用中,🟣 标志我出于各种原因还留着这款硬件(可能在我妈家里)。 + + + +## 笔记本电脑 + +-  [IBM ThinkPad R30](https://www.cnet.com/products/ibm-thinkpad-r30-pentium-iii-1-ghz-128-mb-15-gb-series/) 🟣 +- 13" MacBook Air (Early 2014) +- 13" MacBook Pro (Space Gray, 2018) ⭐ + + + +## 手机 + +- [Lenovo + P619](https://www.imei.info/phonedatabase/38807-lenovo-p619/) 🟣 +- Blackberry 9700 +- Blackberry 9930 +- iPhone 5s (Space Gray) +- iPhone 6s (Space Gray) 🟣 +- iPhone 11 Pro (Space Gray) ⭐ + + + +## 平板电脑(及配件) + +- iPad mini (Space Gray, Cellular) 🟣 +- iPad mini 3 (Space Gray) +- iPad mini 5 (Space Gray) ⭐ +- Logitech Crayon (Orange) ⭐ + + + +## 智能手表(及配件) + +- Pebble Time Round (20mm) 🟣 +- Apple Watch Series 3 (42mm, Space Gray Aluminum) +- Apple Watch Series 6 (44mm, Space Gray Aluminum) ⭐ +- Nike Sport Loop (44mm, Hyper Grape) ⭐ + + + +## 耳机(及配件) + +- Sennheiser PX 100-II 🟣 +- ATH-IM03 +- AKG K3003i ⭐ +- AirPods (Gen 1) ⭐ +- Sony Stereo Bluetooth Headset SBH24 ⭐ +- Aeropex by AfterShokz ⭐ + + +## MP4 播放器 + +- Oppo S9 🟣 +- iPod Classic (160G) 🟣 + + +## 游戏机 + +- PlayStation Portable +- PlayStation Vita (PCH-2000) 🟣 diff --git a/content/posts/2020-02-03-apple-vs-digital-generations-vs-me.md b/content/posts/2020-02-03-apple-vs-digital-generations-vs-me.md new file mode 100644 index 0000000..cfa50c5 --- /dev/null +++ b/content/posts/2020-02-03-apple-vs-digital-generations-vs-me.md @@ -0,0 +1,69 @@ +--- +author: loikein +published: "2020-02-03T21:50:00+01:00" +slug: 2020-02-03-apple-vs-digital-generations-vs-me +categories: +- 随笔 +tags: +- Essay +- Introspection +title: Apple vs. digital generations vs. me +--- +On [Connected \#124](https://www.relay.fm/connected/124): +([54:03](https://overcast.fm/+FXx42zH-I/54:03)) (transcribed by +[Otter](https://otter.ai/)) + +> **Federico:** I remember life before the smartphone, before the, you +> know, the Internet everywhere. But it's, I also don't really remember +> it, like, it almost doesn't make any sense that there was a time where +> you can’t look up, you know, maps on your phone… +> +> **Myke:** Yeah, yeah. +> +> **Federico:** Or talk to anyone for free. Like, these things, they +> were started, kick started by the iPhone and by the App Store. But I +> don't know, maybe it's the fact that we're getting older, could be, +> and maybe it's the fact that it's been 10 years. But it, like I +> struggled to remember how it used to be. Like I remember when my +> parents and I went on road trips, we had to actually take out, you +> know, fold out maps with us. And now you just walk out and you fire up +> Google Maps or Apple Maps on your phone and, you know, you can get to +> anywhere. +> +> **Stephen:** Yeah. +> +> **Federico:** So it is difficult for me to remember how it used to be, +> because it's been such a fundamental change to society, to the way +> that we do everything. I struggled to remember how it used to be. I +> know I used to have other phones, I know it used to be different. It +> just doesn't make sense when I think about it. + +Well, I certainly remember my life before the Internet everywhere. I +remember having to look up a hug bus route table book every weekend +morning, and my frist phone was a dumb phone when I was 14, because my +parents were very sick of not being able to contact me when I was out +doing stuff alone. + +Also: I am eight years younger [than Federico](https://thesweetsetup.com/sweet-ipad-setup-federico-viticci/). + +Recently I have been thinking about this a lot. Many Chinese of the same +age as me are in a very strange position as of digital generation. We +were able to pick up computers and Internet at a very young age, but +still had to mostly rely on analog stuff up until very recent. I have +been using Mac for several years now, but my mum still asks me for +Windows tech support, since she does not want to spend the time to adapt +to macOS after more than twenty years. +When I had a dumb phone, I was on GSM or EDGE all the time, and used SMS +to post to Weibo, typed on T9 keyboard. +When I had my first Blackberry, for the first time I had mobile Internet +connection, and read long format articles every morning on its beautiful +huge screen (not anymore on today's standards). +When I had my first iPad (mini gen 1), I used it to took photos and post +them to Instagram, because I post my good photos taken by a DSLR to +Flickr. Now I post all photos to Instagram, and my Flickr account is +just another IFTTT ghost. + +I remember using Google China and Yahoo China. I remember installing +Maxthon on a super slow Win 2000 computer. I remember longing for +bluetooth earphones that I could listen to music on without hurting my +ears. But, oh my, they do feel like a previous life. diff --git a/content/posts/2020-02-09-unlocking-the-creative-body-by-elliott-fienberg.md b/content/posts/2020-02-09-unlocking-the-creative-body-by-elliott-fienberg.md new file mode 100644 index 0000000..e0e57d7 --- /dev/null +++ b/content/posts/2020-02-09-unlocking-the-creative-body-by-elliott-fienberg.md @@ -0,0 +1,47 @@ +--- +author: loikein +published: "2020-02-09T19:23:00+01:00" +slug: 2020-02-09-unlocking-the-creative-body-by-elliott-fienberg +categories: +- 翻译 +tags: +- 英译中 +title: 中文翻译:Unlocking the Creative Body by Elliott Fienberg(解放妳的创造之身) +--- +点击原文查看狗狗照片:[Unlocking the Creative Body | Elliott +Fienberg](https://elliottfienberg.com/unlocking-the-creative-body/) +No rights reserved. + + +------------------------------------------------------------------------ + + +如果妳有一只宠物,妳会想在它一生中的大部分时候都把它锁起来吗?妳会饿着它,告诉它不值得被从笼子里放出来吗?当没人在看着妳们时,妳会用它讨厌的名字称呼它吗? + +可悲的是,这正是许多人对待自己的创造力的方式,或者用我的话来说:创造之身。她们在自己的地盘上压抑和虐待自己。 + +这个词的灵感源自艾克哈特・托勒(Eckhart Tolle)的「痛苦之身(Pain +Body)」——压抑创造力的力量,通常源于恐惧、缺失或情感弱点等心结。赛斯・戈丁(Seth +Godin)从另一个角度发现了同一个问题,并命名为「蜥蜴脑(Lizard +Brain)」:人类时刻生活在威胁之下的史前反射。 + +现代,每天威胁着我们的变成了名声和自尊。虽然小学时我们可以上台表演踢踏舞,但随着年龄的增长,这种美妙的行为最终只会被一小部分人保留。 + +因此,今天我想向妳提议:像对待宠物一样对待自己的创造力。给它买一件加拿大狗牌(Canada +Pooch)的豪华冬季大衣,妳不会忍心看它在加拿大的寒冬中瑟瑟发抖。给它买昂贵的零食(妳甚至不愿花一半的钱在自己身上)。最重要的是,每天给它充足的营养、水和户外的新鲜空气。 + +简而言之,妳的创意之身需要被赋予声音和存在的空间。 + +所以下一次妳感到空虚,看到房间另一端一个月没练的乐器,或者空空如也的填色书时,想想妳是否已经把自己的创造力锁了起来。如果妳释放它,就可能同时释放自己。 + +*** + +ps. 我觉得写晨间笔记(Morning +Pages)是使创造之身摆脱痛苦之身的最佳方式之一。[这里](https://spaghettilab.net/morningpages/)有我写的一篇简介。 + +pps. 我的最新作品《上帝在 Spotify 的客户投诉部上班》已经发布在 +[Bandcamp](https://elliottfienberg.bandcamp.com/album/god-works-for-spotify-in-the-complaints-department) +上了。 + +ppps. 照片里是我们的狗 Sadie 和她的表亲 Sassy 和 +Magic,我们偶尔照顾一下她们。她们小时候都是狗狗比赛上的明星。 diff --git a/content/posts/2020-02-10-youtube-is-better-in-browsers.md b/content/posts/2020-02-10-youtube-is-better-in-browsers.md new file mode 100644 index 0000000..17bd013 --- /dev/null +++ b/content/posts/2020-02-10-youtube-is-better-in-browsers.md @@ -0,0 +1,23 @@ +--- +author: loikein +published: "2020-02-10T18:36:00+01:00" +slug: 2020-02-10-youtube-is-better-in-browsers +categories: +- 随笔 +- 应用程序 +title: YouTube 的网页版更好用 +--- +[这篇文章](https://blog.yitianshijie.net/2018/01/24/detoxing-facebook-and-wechat/)的读后感,主要是微信 rant。 + + +------------------------------------------------------------------------ + + +我不喜欢微信。原因有很多,但最主要的一个,其实是我真的不喜欢「保持联系」。妳有一个联系人,妳们联系,或不联系,不存在「保持联系」这种中间状态。需要借由某一特定应用程序保持的联系,就不是联系。随着年纪增长和处境变化,总有一些自然而然淡去了的联系,或者还有一些人,妳们本来就不会有多么紧密的联系,只是凑巧在一个环境一起工作过,聚散离合都再正常不过。 +不是说我从没感到过惋惜友情被时间冲淡,也不是说在我想要跟曾经的老朋友说几句话时微信没有提供便利,但是任何特定时刻,我能够专注的对话数量是有限的,而微信造成了这种错觉:「妳随时可以跟过往人生中所有讲过话的人勾肩搭背」。微信想替代手机里的通讯录,我不想让它替代。 +同样的问题也存在于 Facebook。它想替代妳人生中一切跟「人」有关的元素。它想叫妳在 Facebook timeline 里发「博客」和「微博」,在 Messenger 里发「短信」,现在连 Instagram(「共享相册」)和 WhatsApp(也是「短信」,我很好奇什么时候这两个服务会被合并)都是 Facebook 的财产了。 + +我不想让它们接手,因为我喜欢我的内容发在网上,任何人不用注册登录都可以看两眼;我喜欢我的联系人存在于我的通讯录里,我可以把她们放在任何通讯程序里,或者直接发短信,她们总能收到;我喜欢「互联网」的本质——这也是我对它如此热忱的原因——开放和包容万象。微信和 Facebook 不是我想要的互联网。 + +谷歌是现在所有跨国网络公司中一个比较特别的存在,尤其 Blogger 和 YouTube 是几乎「纯粹」的互联网公民。它们的搜索是完全开放的,不需要注册登录即可观看,更有甚者,YouTube 的网页版比手机程序好用得多,至少在 iOS 系统上是这样的。我一直在想,这是个有意识的决定,还是一系列(手机程序上的糟糕的)设计决策所导致的结果?但无论怎样,如果妳习惯在 iPhone 或 iPad 上看 YouTube,网页版是个很好的选择。 +(另:微信桌面版和网页版是「桌面版」和「网页版」之耻。) diff --git a/content/posts/2020-02-15-bookdown-and-rmarkdown-vs-me.md b/content/posts/2020-02-15-bookdown-and-rmarkdown-vs-me.md new file mode 100644 index 0000000..479af25 --- /dev/null +++ b/content/posts/2020-02-15-bookdown-and-rmarkdown-vs-me.md @@ -0,0 +1,40 @@ +--- +author: loikein +published: "2020-02-15T19:47:00+01:00" +lastmod: "2020-02-19T13:14:55.495+01:00" +slug: 2020-02-15-bookdown-and-rmarkdown-vs-me +categories: +- 应用程序 +tags: +- Rmarkdown +title: Bookdown/Rmarkdown vs. me +--- +These days I have bumped into so many issues in Bookdown. Having been +asking at [GitHub](https://github.com/rstudio/rmarkdown/issues/1769) and +[RStudio +Community](https://community.rstudio.com/t/knit-error-when-trying-to-compile-pdf-for-bookdown/52190) +with no one answering, it's my own quest now. + +## Issues with Bookdown + +- some unknown configs would overwrite GitBook's TOC settings. I.e., + `output: bookdown::gitbook: config: toc: collapse: none` becomes + ineffective. +- Putting anything in the + `output: bookdown::gitbook: config: sharing: all: […]` list crashes + the sharing menu +- `bookdown::gitbook: css` is ineffective works after many + refreshes + + + +## Issues with Rmarkdown + +- [The method in the + documentation](https://bookdown.org/yihui/rmarkdown/learnr-videos.html) + for embedding YouTube video (`![](link)`) does not work. Instead, + use the embedding iframe link provided by YouTube. +- When doing citation, you cannot put two dashes in any key (`--`), + otherwise that entry is not recognised anywhere +- Cannot put `.bib` files in sub-folders, otherwise it would not be + found diff --git a/content/posts/2020-03-02-matplotlib-and-seaborn-tricks.md b/content/posts/2020-03-02-matplotlib-and-seaborn-tricks.md new file mode 100644 index 0000000..a43b944 --- /dev/null +++ b/content/posts/2020-03-02-matplotlib-and-seaborn-tricks.md @@ -0,0 +1,64 @@ +--- +author: loikein +published: "2020-03-02T18:52:00+01:00" +lastmod: "2020-05-29T17:01:28.900+02:00" +slug: 2020-03-02-matplotlib-and-seaborn-tricks +categories: +- 笔记 +tags: +- Python +title: Matplotlib & seaborn tricks +--- +Moved to: [Plotting - wiki](https://wiki.loikein.one/computer/python/plotting), this post is no longer updated. + + +------------------------------------------------------------------------ + + +Recently I have been using these package, and found some little tricks. +I'll have to write them down just to save the future me. + +## General + +Any colormap can be reversed by adding `_r` after its name, e.g. +`cmap="RdBu_r"` makes the smaller value blue and the bigger value red. + + +## Single plot + +### Title + +Seaborn: `sns.someplot(…).set_title("This is a title")` + + +### Axis + +Use `plt.axis('equal')` before any two-way plot to set the x-axis and +y-axis the same scale. + +Set label: `fig.xlabel(r"Value of $x$")` + + +## Plot with subplots + +### Sizing + +Put this right before `plt.show()` or `fig.savefig()` +([credit](https://stackoverflow.com/questions/6541123/improve-subplot-size-spacing-with-many-subplots-in-matplotlib)): +`fig.tight_layout()` + + +### Title + +Main title ([credit](https://stackoverflow.com/a/29814281/10668706)): +`plt.subplots_adjust(top=0.9); grid.fig.suptitle("This is a big title")` + +Sub titles: `ax[0, 0].set_title('Axis [0, 0]')` + + +### Axis + +Use `graph.axes.Axes.set_xlim(left=0)` to set only lower limit, and the +upper limit would be auto-generated. + +Set label: `ax[0,0].set_xlabel(r"Value of $x_1$")` diff --git a/content/posts/2020-03-06-apologies-feat-sleepy-ab-by-fukuhara-miho.md b/content/posts/2020-03-06-apologies-feat-sleepy-ab-by-fukuhara-miho.md new file mode 100644 index 0000000..5bfee26 --- /dev/null +++ b/content/posts/2020-03-06-apologies-feat-sleepy-ab-by-fukuhara-miho.md @@ -0,0 +1,127 @@ +--- +author: loikein +published: "2020-03-06T19:01:00+01:00" +slug: 2020-03-06-apologies-feat-sleepy-ab-by-fukuhara-miho +categories: +- 翻译 +tags: +- 音乐 +- 日译中 +title: 中文翻译:Apologies (feat.sleepy.ab) by 福原美穂 +--- +[福原美穂 Apologies (feat.sleepy.ab) +歌詞](http://j-lyric.net/artist/a04db95/l0210d5.html) + +*** + +{{< row >}} +{{< col >}} +僕の頬に飛んだ雨粒はそこを伝って +小さな水たまりの中にぽつんと落ちた +{{< /col >}} +{{< col >}} +雨滴打在我的脸颊 缓缓滑落 +扑通一声 掉进小水洼中 +{{< /col >}} +{{< /row >}} + +{{< row >}} +{{< col >}} +青い傘 少し小さいみたいだ +部屋に咲いた 君のわすれもの +君が街に着く頃 晴れるように +こころに 雨降らすよ +{{< /col >}} +{{< col >}} +蓝色的伞 似乎有点小了 +它被你遗忘在房里 安静绽放 +你到来的时候 天空有多晴朗 +我心中的雨 就有多倾盆 +{{< /col >}} +{{< /row >}} + +{{< row >}} +{{< col >}} +あじさいが大きく揺れてる +離れたら しおれてゆく色 +君が隣にいないことに +いつか慣れてしまうのかな +{{< /col >}} +{{< col >}} +紫阳花迎风摇曳 +你离开之后 色彩慢慢枯萎 +我会不会慢慢就习惯了 +你不在身边呢 +{{< /col >}} +{{< /row >}} + +{{< row >}} +{{< col >}} +二人で過ごしたこの部屋が +青い絵の具で塗られてゆく +はじまったときから僕らは +枯れることを知ってて、笑ってたんだね。 +{{< /col >}} +{{< col >}} +将曾一起生活过的房间 +慢慢涂上蓝色 +明明从一开始我们就知道 +生活终会凋谢 却还是忍不住对彼此展颜 +{{< /col >}} +{{< /row >}} + +{{< row >}} +{{< col >}} +雨が止む頃には 夕闇が僕を包んで +小さな水たまりの空に浮かんで揺れる +{{< /col >}} +{{< col >}} +雨停之后 夜幕将我包围 +在水洼中的天空里 漂浮游荡 +{{< /col >}} +{{< /row >}} + +{{< row >}} +{{< col >}} +閉じた傘から落ちた言葉は +僕の胸の奥の わすれもの +指で虹を君へと架けるように +こころに描いてゆく +{{< /col >}} +{{< col >}} +紧闭的伞中掉落的话语 +来自我内心深处 遗失的角落 +像要架一座彩虹去到你身边一样 +用手指从心口描画 +{{< /col >}} +{{< /row >}} + +{{< row >}} +{{< col >}} +あじさいが大きく揺れてる +帰り道 分かれてゆく色 +君が笑った僕のくせも +もう忘れてしまったかな +{{< /col >}} +{{< col >}} +紫阳花迎风摇曳 +回家的路 渐渐分岔开不同的色彩 +你曾打趣过的我的怪癖 +也早已经忘了吧 +{{< /col >}} +{{< /row >}} + +{{< row >}} +{{< col >}} +二人で探した毎日と +青い絵の具が乾いてゆく +失った時から溢れた +君がみつけた君を 抱きしめる +{{< /col >}} +{{< col >}} +你我并肩寻找过的每一天 +与蓝色颜料一起日渐干涸 +让我紧紧拥抱 失去之后才涌现的 +你终于发现的自我 +{{< /col >}} +{{< /row >}} diff --git a/content/posts/2020-03-09-sync-mastodon-and-sns-again.md b/content/posts/2020-03-09-sync-mastodon-and-sns-again.md new file mode 100644 index 0000000..3029a1c --- /dev/null +++ b/content/posts/2020-03-09-sync-mastodon-and-sns-again.md @@ -0,0 +1,183 @@ +--- +author: loikein +published: "2020-03-09T18:51:00+01:00" +lastmod: "2021-04-25 23:03:08.981 +0200" +slug: 2020-03-09-sync-mastodon-and-sns-again +categories: +- 应用程序 +tags: +- Mastodon +- RSS +- IFTTT +- Zapier +title: 再谈同步社交网站至 Mastodon(微博,RSS,原生图片) +--- +2020-03-10 更新:发现链接贴错了,已经更正…… +2020-03-11 更新:获取微博图片网址的方式从 Extract URL 改成了 +Extract Pattern(正则表达式),应该会准确很多 +2021-04-25 更新:我已经很久没用过微博了,不保证微博那部分还能用。 + +------------------------------------------------------------------------ + + +去年七月我总结了 [如何用 IFTTT cross-post 到 Mastodon](../2019-07-13-sync-mastodon-and-sns-with-ifttt/),然后就没怎么管那些规则,几天前有一位[网友评论](http://disq.us/p/27rp895)说微博同步不了了。其实在 +IFTTT 上用微博 API +一直有可观的延时,我自己目前还是能同步的,只不过最近变得更慢了,而且感觉被过滤了一些内容。 +痛定思痛,刚好有两天空档,决定搞一下。 +先说结论:如果不用微博 API,一定会有一些问题,简而言之取舍就是三选一: + +1. 要先转发到其他地方(没有原生图片) +2. 格式丑陋(没有原生图片): + - 内含 HTML tag,比如 `
`、`` 这种 + - 没有换行 +3. 收费,很贵 + +我是选择了收费,因为我发微博还是挺多的,不想转发到推特,而且也有点在乎 +Mastodon +作为微博备份(包括备份图片)的功能,不过到底选哪个就各位各自决定吧。 + + +## 先决条件:输出微博至 RSS + +搜了一下才发现,GitHub 上关于这个的 repo 真不少。以前我只知道 +[RSSHub](https://github.com/DIYgod/RSSHub) 可以干这个事情, 但是 demo +路由(太多人用?)被微博封了,没有 Unix +基础的话自建还是挺麻烦的。于是试用了一下 +[weibo-rss](https://github.com/zgq354/weibo-rss) 这个 +repo,没想到一次成功,讲讲具体要怎么搞。 + +1. 需要注册一个 [Heroku](https://www.heroku.com/) 的免费帐号,然后登录 +2. 在 [weibo-rss](https://github.com/zgq354/weibo-rss) + 的描述中,点击紫色的 `Deploy to Heroku` 按钮。 +3. 在弹出的「Create New App」窗口中: + - `App name` 填写一个独特的英文名字,这会是妳的 RSS 网址 + - `Choose a region` 随便选一个 + - `Example` 留空 + - 点紫色的 `Deploy app` 按钮 + - 稍微等几分钟,出现「Successfully deployed」就可以了。 +4. 点击屏幕右上角,妳的头像旁边的九个小点点,选择 `Dashboard` +5. 点击妳刚才创建的 app +6. 点击屏幕右上角的 `Open app` 按钮 +7. 在弹出的「新浪微博 RSS 订阅」窗口中, + 填写妳自己的微博主页的地址,点击订阅,复制出现的链接 +8. 好了,这个链接就是妳的微博的 RSS + 链接。最好粘贴到备忘录或者之类的地方,方便等下使用。 + + + +这个 Heroku app 占用的资源不是很多,我目前看来是可以一直用免费帐号的。 + +如果妳连 Heroku 都不想注册,可以试试 +[这个网址](https://rssfeed.today/weibo/),是有好心网友把她自己的 app +公开了出来。但是别人的 app +不知道什么时候会消失,最好还是自己做保险一点。 + + +## 免费方案:IFTTT + +好了,现在妳有 RSS 链接了, 按照 +[上一篇博文](../2019-07-13-sync-mastodon-and-sns-with-ifttt/) +里的 If this(刚才的 RSS 网址),Then: + +- URL:`https://所在实例网址/api/v1/statuses` +- Method:POST +- Content type:`application/x-www-form-urlencoded` +- Body:`access_token=访问令牌&status={{EntryContent}}%0A{{EntryUrl}}` + +结果是比较丑的,例子: + +[![](../images/thumbnails/2020-03-09-zai-tan-tong-bu-she-jiao-wang-zhan-zhi-mastodon-wei-bo-rss-yuan-sheng-tu-pian-%25E6%2588%25AA%25E5%25B1%258F2020-03-0918.04.24.png)](../images/2020-03-09-zai-tan-tong-bu-she-jiao-wang-zhan-zhi-mastodon-wei-bo-rss-yuan-sheng-tu-pian-%25E6%2588%25AA%25E5%25B1%258F2020-03-0918.04.24.png) + +没办法啦(摊手) + + +## 收费方案:Zapier + +如果不差钱,或者跟我一样喜欢折腾的人,可以试试 +[Zapier](https://zapier.com/)。由于需要用到 Webhook,而且 feed +内容需多步处理,必须有 Zapier premium 才行。 +步骤: + +创建一个新 Zap + +在「When this happens…」窗口选择 `RSS by Zapier` + +- Choose Trigger Event 选择 `New item in feed` +- Customize Item: + - Feed URL 填写刚才获得的 RSS 链接 + - 其余不用改,点击 `CONTINUE` +- 点击 `Test and review`,选一条字数比较多的微博 +- 点击 `Done Editing` + +在「Do this…」窗口选择 `Formatter by Zapier` + +- Choose Action Event 选择 `Text` +- Customize Text: + - Transform 选择 `Replace` + - Values > Input 点击选择 `1. Description` + - Find 填写:`[:newline:][:newline:]` + - Replace 填写:`[:newline:]` + - 点击 `CONTINUE` + +点击加号,选择 `Formatter by Zapier` + +- Choose Action Event 选择 `Text` +- Customize Text: + - Transform 选择 `Truncate` + - Values > Input 点击选择刚生成的文字: `2. Description` + - Max lenth 填写:`400` + - Append Ellipsis? 选 `Yes` + - 点击 `CONTINUE` + +点击加号,选择 `Paths`。 + +Path A(带有图片的微博): + +Rules,三个空格分别填写 `1. Raw Description`,`(Text) Contains`, +` 基本 > 发布 > 博客地址` 点 `添加自定义域名` +2. 输入妳的域名 +3. 点保存 +4. 点修改,看一下 CNAME 设置 +5.  如果妳把这里的设置直接抄到域名 DNS + 管理后台里的话,是无论如何都不能跳转成功的。 + 正确的设置是,第二行照着它给的填,但是第一行的目标字段改成 + `ghs.googlehosted.com`(参考:[为我的自定义域名创建 CNAME 记录 - + Blogger + 帮助](https://support.google.com/blogger/answer/58317?hl=zh-Hans&authuser=0)) +6. 如果选择使用子域名而不是 www,那么重定向那里不要打勾 +7. 下面的 `HTTPS 可用性` 和 + `HTTPS 重定向`(不在截图范围里)都点是(需要过几分钟才会起效)  +8. 结束 + +[![](../images/thumbnails/2020-04-15-zi-ding-yi-yu-ming-cai-de-keng-blogger-github-page-%25E6%2588%25AA%25E5%25B1%258F2020-04-15%2B19.31.25.png)](../images/2020-04-15-zi-ding-yi-yu-ming-cai-de-keng-blogger-github-page-%25E6%2588%25AA%25E5%25B1%258F2020-04-15%2B19.31.25.png) + + + +## GitHub Page + +这个就还好,但是需要等的地方时间比较久一点。 +步骤: + +1. 在 repo 的 `Settings > GitHub Pages > Custom domain` 输入域名 +2. 此时 `Enforce HTTPS` 的格子还是灰的,先不管它 +3. 在域名 DNS 管理后台里添加五(5)条记录,如下图。 + 这些地址可能会变,因此我就不打出来了,直接参考这里的 create an A + record:[Managing a custom domain for your GitHub Pages site - + GitHub + Help](https://help.github.com/en/github/working-with-github-pages/managing-a-custom-domain-for-your-github-pages-site#configuring-an-apex-domain) + (照理说子域名是不需要写这个的,但是我写了也没报错,写都写了。) +4. 回去 repo 设置,看看 `Enforce HTTPS` + 的格子能勾了没有,能了就勾上,不能就再等一阵子 +5. 结束 + +GitHub repo 设置成功页面: + +[![](../images/thumbnails/2020-04-15-zi-ding-yi-yu-ming-cai-de-keng-blogger-github-page-%25E6%2588%25AA%25E5%25B1%258F2020-04-15%2B19.43.26.png)](../images/2020-04-15-zi-ding-yi-yu-ming-cai-de-keng-blogger-github-page-%25E6%2588%25AA%25E5%25B1%258F2020-04-15%2B19.43.26.png) + +示例 DNS: + +[![](../images/thumbnails/2020-04-15-zi-ding-yi-yu-ming-cai-de-keng-blogger-github-page-%25E6%2588%25AA%25E5%25B1%258F2020-04-15%2B19.46.03.png)](../images/2020-04-15-zi-ding-yi-yu-ming-cai-de-keng-blogger-github-page-%25E6%2588%25AA%25E5%25B1%258F2020-04-15%2B19.46.03.png) diff --git a/content/posts/2020-04-18-messing-with-mac-terminal.md b/content/posts/2020-04-18-messing-with-mac-terminal.md new file mode 100644 index 0000000..b01b01a --- /dev/null +++ b/content/posts/2020-04-18-messing-with-mac-terminal.md @@ -0,0 +1,50 @@ +--- +author: loikein +published: "2020-04-18T16:19:00+02:00" +slug: 2020-04-18-messing-with-mac-terminal +categories: +- 应用程序 +tags: +- macOS +- Terminal +title: 折腾 Mac:「我想要一个跟 RStudio 一样的 terminal」 +--- +昨天我发了这么一条嘟嘟。其实这是个很小白的需求,因为真实的程序员必然不是这么用 +Terminal +的,发出来之后马上就有人评论说这个目前几乎不可能。然而我是小白嘛,小白的红利就是初生牛犊不怕虎, +于是我就开始了。 + +折腾前的样子在这里有截图:[mac + zsh 上使用 Neofetch +作为欢迎语(MotD)](https://blog.loikein.one/2020/03/mac-zsh-neofetch-motd.html) + +折腾后:鼠标点击切换面板;左边是正常的 +shell;右上是可以模糊搜索的历史;右下是文件浏览器,用鼠标或者键盘控制,右键复制文件路径。 + +[![](../images/thumbnails/2020-04-18-zhe-teng-mac-wo-xiang-yao-yi-ge-gen-rstudio-yi-yang-de-terminal-%25E6%2588%25AA%25E5%25B1%258F2020-04-17%2B11.11.12.png)](../images/2020-04-18-zhe-teng-mac-wo-xiang-yao-yi-ge-gen-rstudio-yi-yang-de-terminal-%25E6%2588%25AA%25E5%25B1%258F2020-04-17%2B11.11.12.png) + +看起来还不错,可以假装用上 RStudio 了。 + +(目前的)配置是这样的: + +- shell:Zsh(macOS 默认 shell) +- 主题:[romkatv/powerlevel10k: A Zsh + theme](https://github.com/romkatv/powerlevel10k) +- 配色:Google Light,来源:[Gogh - Color + Scheme](https://mayccoll.github.io/Gogh/) +- terminal:[iTerm2](https://www.iterm2.com/) +- 字体:[Hack Nerd + Font](https://github.com/ryanoasis/nerd-fonts/tree/master/patched-fonts/Hack)(任何 + Nerd 字体应该都没问题) +- 历史:[dvorka/hstr: bash and zsh shell history suggest + box](https://github.com/dvorka/hstr) +- 文件浏览: [ranger/ranger: A VIM-inspired filemanager for the + console](https://github.com/ranger/ranger) + - 图标:[alexanderjeurissen/ranger\_devicons: Ranger plugin that + adds file glyphs / icon support to + Ranger](https://github.com/alexanderjeurissen/ranger_devicons) + +在装主题的时候,如果妳也用 oh-my-zsh 的话,需要注意设置 +submodule,这个就先不讲了…… +其余不需要什么特别设置,在 iTerm2 里 vertical +split(左右分割)一次,然后 horizontal +split(上下分割)一次,再在各个窗格里打上命令就好了。历史似乎是合并的,也即是说,在左边打过什么命令之后,在右上或者右下按「↑」键会弹出来刚才在左边打的命令。 diff --git a/content/posts/2020-05-02-lord-of-the-mysteries-by-cuttlefish-that-loves-diving.md b/content/posts/2020-05-02-lord-of-the-mysteries-by-cuttlefish-that-loves-diving.md new file mode 100644 index 0000000..be4f6dd --- /dev/null +++ b/content/posts/2020-05-02-lord-of-the-mysteries-by-cuttlefish-that-loves-diving.md @@ -0,0 +1,68 @@ +--- +author: loikein +published: "2020-05-02T05:26:00+02:00" +slug: 2020-05-02-lord-of-the-mysteries-by-cuttlefish-that-loves-diving +categories: +- 感想文 +tags: +- 读书 +title: 值得守护之物:爱潜水的乌贼《诡秘之主》 +--- +警告:毫无保留的剧透。妳已经被警告了。 +标题来自《哈利波特与理性之道》。 + + +------------------------------------------------------------------------ + + +前几天开始看,看到全书完三个字才发现是今天(昨天)发布的。缘,妙不可言(不是)。怎么说呢,看完之后我久违地想写读后感,然而真的动笔了却不知道该写什么。必须声明我对克苏鲁没什么了解,但是偶尔会读 SCP 格式的小故事(主要是同人文),以及关于触手的小故事(主要也是同人文)。然而这都没有关系,因为在这本小说里,神话和 SCP 元素都只是载体,它的内核仅仅是一个互相守护的故事。 +主角小克来到这个世界上,从一无所知、做什么事都需要请教队长和老师的菜鸟,开始假扮「愚者」瞎指挥别人,最后为了保护大家一步步成为真正的愚者; +塔罗会每位成员,从一开始的怀疑、试探,到对愚者和世界言听计从,然后各自能够独立撑起一片天; +主角的哥哥和妹妹,从护着主角,到被主角护着,再到主角消失后坚强起来、努力活得比从前更好; +无论主要配角还是只出场了寥寥数次的小角色,有人坚守心中的正义,有人向邪恶低头,在变幻的时代中上演一出出悲欢离合,也都是为了守护自己心中的什么事物。 +可能是我比较老派,但是这种正剧,再加上作者流畅的文笔、富有逻辑的情节,就实在是喜爱到不行。(不像某些文,为了爽而爽,为了虐而虐,一言不合就杀几个读者爱了好几卷的角色,我在看你呢,江南。) + +吹完大方向,讲讲细节。 +看完第三部之后我写了以下感想: + +> 我是看了知乎上一个读后感才决定看的,答主说没有女主,以及写的是群像,的确如此。群像水平之高令我惊异,而且看到现在了,主要角色们也都没有跟任何人产生恋爱关系(。 +> 但让我一直看了下去的主要原因还是作者字里行间透露出的深切的人文主义关怀,对女性的尊重(包括众多有血有肉的女性角色),甚至在早期便已经出现了性少数群体。由于本身讲的是修仙者的故事,篇幅中不乏高位者,但作者并没有因此略过社会底层小人物们的命运,主角每到一个新地方,便有新地方的社会高层与低层之间的对比,描写之详尽让我好几次眼睛湿润。 +> 真的,真的,太好了。毫不夸张地说,应该是我目前看过的男性作者写的网文里最好的一篇。 + +直到现在看完,这个评价也没有变化。(可能加个「中文」) + +首先,对女性的尊重。 +看网文的时候我向来不挑题材,但是无论作者性别,都很难把女性角色写得真实。当然这个问题远远超出了网文,比如最经典的(我老忘记名字的)[贝克德尔测验](https://zh.wikipedia.org/wiki/%E8%B4%9D%E5%85%8B%E5%BE%B7%E5%B0%94%E6%B5%8B%E9%AA%8C): + +> 至少有两个女性角色, +> 她们互相交谈过, +> 谈话的内容与男性无关。 + +光说塔罗会成员里,除了「世界」之外一半是女性,我马上能回想起来的由女性成员主导的行动也有两三次。既像妹妹也像妈妈的「正义」,强大又可爱的「隐者」,老是迷迷糊糊的「魔术师」,被身世捆绑许久的「审判」,她们每个人的故事都是那么有趣那么完整,仅仅看到她们凑在一起我就觉得很开心。 +更不要说女性配角们了,梅丽莎、罗珊、苏茜、特莉丝(特里斯)、特蕾茜和伊莲、雪曼(谢尔曼),每个人都有各自的坚持,以及或笑或泪的结局,挑剔如我也没什么好说的。 +重点说说特莉丝和雪曼这两位变性人的对比。 +特里斯是一开始不清楚「魔女」途径的性质,半被骗地成为了女性,然后才慢慢产生了认同、才开始挣扎;雪曼则一直是心理女性,成为「魔女」的目的就是变性,却因为仪式需要伤害别人而几度裹足不前。作者安排最巧妙的一点,就是让特莉丝当了雪曼的老师,曾经被诱骗的开始诱骗下一代,她心中有过挣扎吗? +以及,无论是雪曼曾经被酒吧里的人们歧视的时候,还是她成为女性却依然被人抛弃之后,去保护她、安慰她的人都是女性,这一点在我心中分量很重。 + +除了变性人之外,书中写明了是性少数的还有特蕾茜 & +伊莲,以及一登场就被魔镜阿罗德斯揭穿了的伊康瑟。其实后者我一开始是有疑惑的,因为[罗素测试](https://www.glaad.org/sri/2019/vitorusso)有言(大意): + +> 至少有一位明确的 LGBTQ 角色, +> 有除了性少数之外的其他个性, +> 有除了黄色笑话之外的存在原因。 + +很显然他的出场不符合第三条。而且主角和伊康瑟相遇之后,他的性取向又被魔镜提到了一次,但这次我感觉好些了,因为他的性取向不再是一个笑话,而只是一个严肃问题中无意提到的定语(虽然如果把「你喜欢的男人」改成「你喜欢的人」我感觉会更好一点,但这样主角就不会知道了)。 +特蕾茜和伊莲值得大书特书。虽然在海盗船上一对女同性恋不可避免地会受到凝视,但还算有逻辑、不是来源于主角,而且她们的主要矛盾是彼此,这就比其他网文高了不知道多少……唉。 + +高位者与小人物的对比,在「守夜人-侦探」线和「正义」线中体现得最明显。 +在「守夜人-侦探」线中,主角或跟着队长和同事们,或独自一人调查各种超能力案件,目睹了有钱人为了微不足道的事情一掷千金,也看尽了每天做苦工依然吃不饱的可怜人。「守夜人小队」的成员们为了保护普通人每每冒生命危险,而(全书后半才揭秘的)大雾霾事件的原因却是贵族中的高级修仙者们要进行晋级仪式,全然不顾几万穷苦人性命。 +「正义」线是无忧无虑的贵族小姐因为「修仙」这一烧钱趣味,反而接触了许多社会底层人物(再说一遍,我觉得超能力者帮助弱小是应该的,但是很明显贵族不这么想),在主角的引导下渐渐开始懂得用自己的金钱、能力、人脉去帮助别人,并在这个过程中与自己和解。她既深爱着自己的家人,又担心职业风险,最后把那个天真的自己留在了家中,自己转身离开了。从那一刻到结局为止我的眼泪就没停过。 + +最后列几个有趣的小细节。 +「魔药」与「扮演」,对应的可能是人生不同阶段的必经之路;因此才有了「记住,妳只是在扮演」,而不能沉迷与暂时的头衔、迷失自我、忘记目标。这个目标可能会变化,比如主角一开始努力提升是为了回家,但后来他意识到回不去了,很是崩溃了一会儿,但最后还是意识到事已至此,有比烦恼更重要的事情(其实我没看到最后都一直在想,他会不会得到时间的力量,靠回溯历史回去,看一眼也行,不过现在看来可能性不大了)。 +「锚」令我想起「着陆」,具体可以参考:[回到 +“此时此刻”,远离负面情绪之着陆(grounding)技术 - +知乎](https://zhuanlan.zhihu.com/p/64126449)。在书中,越是高位的修仙者,越需要坚实的锚来防止迷失;我感觉在现实中也一样。所有人都是需要锚的,这个锚可以是一首歌,一个枕头,一种香水或精油的味道,一个温暖的茶杯,任何能让妳暂时放松、抽离、安抚自己的东西,都能在紧绷的日常里排解一些累积的压力。当然,如同主角向「正义」求助,必要时找心理医生。 +潜意识海洋的比喻很有意思,如果我小时候读到这个一定会对心理学产生兴趣(然后失望,因为现实中的心理学没有这么厉害)。 + +好像没什么了,也剧透得七七八八了,那我就期待第二卷吧。 diff --git a/content/posts/2020-05-10-virtual-learning-is-the-future-but.md b/content/posts/2020-05-10-virtual-learning-is-the-future-but.md new file mode 100644 index 0000000..a052a18 --- /dev/null +++ b/content/posts/2020-05-10-virtual-learning-is-the-future-but.md @@ -0,0 +1,82 @@ +--- +author: loikein +published: "2020-05-10T13:43:00+02:00" +slug: 2020-05-10-virtual-learning-is-the-future-but +categories: +- 随笔 +tags: +- Essay +- Futurology +title: Virtual learning is the future, but maybe not in the form that you are experiencing +--- +Disclaimer: the future (normative, not descriptive) + + +------------------------------------------------------------------------ + + +So you are a student like me, "attending school" through Zoom these days +like me. If you were also socially awkward like me, you may find this +version of education more enjoyable, just like me. + +I firmly believe in learning through digital methods, not only since it +can be more inclusive, but also, digital records tend to be lighter in +weight, more searchable, and more editable than their analogue +counterparts. +For example, back in the days when we physically attended school, the +contrast of backpack sizes between students from my department vs. +students from the law school is astonishing. Each of them constantly +carried huge binders, hundreds of index cards, thicc law books, etc. +Every time I saw a law student with their bag, I could not help shrinking +a little bit inside, and thought how much better would their life be if +all those paper were digitised. +Several years ago, I were one of those who carried binders in their arm. +What pushed me over the line was when moving out of dorm at my sophomore +year, the amount of paper notes and textbooks was devastating. Later +that year in my new apartment, I spent the whole summer break scanning +every single page, and never created another page of notes. + +But virtual learning is more than video chats with the professor and the +class. +In fact, the whole "learn with a class" concept does not appeal to me. +While children may need a crowd of companions for forming of social +skills, that is not needed as much in learning. Everyone has their own +pace, interest and level of acceptance when learning new things, and an +arbitrarily imposed ["one pace for all" is a pace that suits +none](https://www.thestar.com/news/insight/2016/01/16/when-us-air-force-discovered-the-flaw-of-averages.html "Todd Rose on the absence of perfect average"). +We all remember the excitement of discovering [Khan +Academy](https://www.khanacademy.org/), one of the most meaningful +implication of which is we can provide **uniform contents** that +are required by the curriculum at a **dynamic pace**, letting +each student to adapt their progress in a personal and changeable way, +thus make education really for everyone. + +This topic also reminds me of [Vulcan Learning +Center](https://www.youtube.com/watch?reload=9&v=KvMxLpce3Xw "YouTube video of a Vulcan School in Star Trek (2009)") +from *Star Trek*, where the whole "class" learns in one room, but each +and every student learns in their own dome with separate screens, +naked-eye augmented reality, and audio equipment, so that they can +choose the pace and contents that suit themselves the most. +Notice how the contents are pre-recorded (here taught by the computer, +but can be videos like in Khan Academy), while there are several +teachers walking around. This design provides several edges besides +decreased need of human resource. First, it prevents the human error +that comes with different teachers teaching different classes, because +every teacher has their own style, advantages and disadvantages, so that +every class ends up with slightly different results even if they fully +absorbed what their teacher has taught. Second, the curriculum and the +contents can be easily monitored and modified all the time, keeping them +always up-to-date, instead of once every couple of years, or even +decades. Finally, the present teachers can provide flexible and +real-time help that computers may not yet be capable of. +Also, I can easily imagine that if any student has disabilities that +prevent them from fully utilising the system, their dome can be easily +modified in a way that suits them, without having to consider whether it +affects everyone else. More inclusiveness — this should be the prime +focus of our education system going into the new decade. + +If anyone were to create a new form of education, I think this is it. +This is the personalised (therefore inclusive) and future-proof form of +education that we as a society should work towards. This is the way of +education I wish I were educated, I want my future kids to be educated, +and, I hope, can push the human culture to the next level. diff --git a/content/posts/2020-05-18-invitation-to-podcast.md b/content/posts/2020-05-18-invitation-to-podcast.md new file mode 100644 index 0000000..b733c82 --- /dev/null +++ b/content/posts/2020-05-18-invitation-to-podcast.md @@ -0,0 +1,169 @@ +--- +author: loikein +published: "2020-05-18T11:53:00+02:00" +slug: 2020-05-18-invitation-to-podcast +categories: +- 应用程序 +tags: +- 播客 +- iOS +title: 播客世界的邀请函:听播客,发现新播客,用播客改善生活 +--- +英文待译…… + + +------------------------------------------------------------------------ + + +首先必须验明一下正身。妳可能想问了,我是什么人,我有什么资格写这篇文章? +我当然只是个普通的听众,但请看我的播客客户端([Overcast](https://overcast.fm/))截图。图里有什么具体节目不重要,重要的是红色框里的字,它说的是,Overcast +的自动缩短空白时间功能,一共为我缩减了 116 +小时的空白时间。我一共听过的播客时长,怎么也得有空白时间的十倍以上吧? + +[![](../images/thumbnails/2020-05-18-bo-ke-shi-jie-de-yao-qing-han-ting-bo-ke-fa-xian-xin-bo-ke-yong-bo-ke-gai-shan-sheng-huo-PNG%25E5%259B%25BE%25E5%2583%258F.png)](../images/2020-05-18-bo-ke-shi-jie-de-yao-qing-han-ting-bo-ke-fa-xian-xin-bo-ke-yong-bo-ke-gai-shan-sheng-huo-PNG%25E5%259B%25BE%25E5%2583%258F.png) + +这样应该能震住妳了(笑)那我们就正式开始吧。 + + +## 什么是播客 + +虽然会点开这篇文章的人应该多少有所了解,播客(podcast)是一种音频娱乐媒体(也有少数视频形式的),而podcast +是 iPod 和 broadcast(广播电台)的合成词。 +每个节目(一个「播客」)通常有固定的话题和主持人(hosts),以及会变动的嘉宾(guests),由许多集(episode)组成,每集时长从几分钟至几小时不等。 +人们通常会使用音乐 app、YouTube、泛用型播客客户端,或者设备自带的播客 +app(例:iOS / +macOS)收听播客。我的建议是,如果妳想彻底体会播客的乐趣,就绝对不要用音乐 +app 或者 YouTube 来收听,原因下述。 + + +## 听播客都听些啥 + +一集播客主要由以下内容组成: + +- 封面(cover art)  +- 简介:这集讲些啥,通常只有一两句话 +- 音频(播客本身) +- 目录(chapters):可选,但是如果每期都有的话可以直接划入优良播客行列 + - 章节封面:如果某章里有需要以图片说明的东西,制作者也可以直接把这个图片做成章节封面,每章都可以不一样,也可以不放 +- Shownotes:节目中提到的文章/视频的链接,以及其他说明文字 +- 制作名单(credits):主持人们和嘉宾们的联系方式(推特、邮箱、博客等) + +除了封面、简介和音频,其他的内容都只有播客专用的客户端才能看到(YouTube +可以附文字说明,但我的经验是通常不会把 shownotes +放在那里)。另外,如果妳听的节目有自己的网站,那么可以在那里看到 +shownotes;如果没有网站,那么只能靠记忆搜索网络了。 +因此,用音乐 app 或者 YouTube 来收听播客,会遗漏播客体验的很大一部分。 + + +## 推荐客户端  + +如果妳是苹果用户,那么恭喜了,自带的播客 +app(Podcast.app)足够好用(如果妳在装机时把它删了,只需在 App Store +里搜索下载)。 +想要更多功能的话,可以试试我用的 Overcast,有 iPad +版本。免费版带有先前说的自动缩短空白时间功能,适合像我一样不太耐心的听众。在电脑上可以访问 +[overcast.fm](https://overcast.fm/),所有内容和进度都是同步的。 +如果妳是安卓用户,抱歉我没用过安卓,不过应该有很多,请妳自行搜索。 + + +## 怎么发现新播客 + +在苹果的播客 app +中,每个节目的详情页最下方都有「您可能还喜欢」,不失为一种方式。 +在 Overcast 中点击添加新播客(+)的时候,第一栏显示 Suggestions for +You(为妳推荐的播客)。如果妳订阅了足够多的播客,那么它的推荐会相当精准,包括中英文播客。 +如果妳有喜欢的博主或播客主持人,不妨搜索一下她们是否推荐过播客(比如本文最后要做的事啦!)。 +大部分[播客公司](https://en.wikipedia.org/wiki/List_of_podcasting_companies)会定期推出新节目,如果妳喜欢的某档节目是某个公司旗下的话,妳可能也会喜欢该公司的其他播客。 + +20200524 更新:一个很有意思的播客搜索平台 [Listen +Notes](https://www.listennotes.com/zh-hans/) 有中文版了,可以试试看。 + + +## 播客有什么用 + +看番有什么用?(笑)当然首要作用便是放松身心了。跟音乐一样,播客的优点在于不费眼睛,因此我会在工作间隔放松眼睛的时候听上几分钟。 +另外,由于我听的播客大部分都是英语的,注意力一分散就不太知道在讲什么了,反而能成为睡前的催眠曲。定时一到两小时,把手机喇叭调到最小声放在枕头旁边,然后再睁眼就是第二天早上了。(注意手机电量) +以及,此前写过[我多年拖延症,晚上不想去洗澡](https://blog.loikein.one/2019/12/blog-post_24.html),但自从买了防水耳机之后,开着播客 +,洗澡刷牙睡觉一气呵成。人的脑子真是神奇。(我在用的[便宜防水耳机](https://amzn.to/2ZgYgIW)) + + +## 我喜爱的播客列表 + +每个人口味都不一样,但是口味的差距是守恒的。所以如果妳也喜欢我听的某些节目,那么我听的其他节目可能也适合妳;如果妳不喜欢我听的某些节目,那么其他节目大概率也不会喜欢的。所有推荐列表都是如此。 +每期都会收听的标 🟣。 + +我的选节目标准: + +1. 不听访谈节目,除非主播或嘉宾是我喜欢的人 +2. 如有两位或以上主播,声线必须有明显差别 +3. 过于浓重/低沉/高亢的美式口音直接排除,听着头晕 +4. 最好有目录 + + + +### 科技 + +[Adapt](https://www.relay.fm/adapt):🟣 两个大男孩讨论对 iPad +的热爱,每期一个挑战任务 + +[Anyway.FM 设计杂谈](https://anyway.fm/):🟣 +目前所有在更新的中文独立播客中最好的一个 + +[AppStories](https://appstories.net/):同一主播的其他播客有些内容重复,听了几集,算了 + +[Connected](https://www.relay.fm/connected)(前身:[The +Prompt](https://www.relay.fm/prompt)):🟣 老爹和俩儿子(不是)聊科技 + +[Cortex](https://www.relay.fm/cortex):🟣 上述儿子之一和机器人 CGP Grey +的搞笑对谈 + +- Grey 的声线是美式口音里我能接受的最低音,有时候甚至需要忍忍。 + +[Simple Beep](http://simplebeep.com/) + +[Upgrade](https://www.relay.fm/upgrade):科技与日常的方方面面 + +- Snell 的声音刚好低过了我的下限 :( + + + + + +### 经济 + +- [Economist Radio](https://www.economist.com/podcasts/) +- [EconTalk](https://www.econtalk.org/) + + + +### 新闻 + +- [The + Bugle](https://thebuglepodcast.com/):完全暴露我的英语水平还不够的一档节目,根本听不懂 +- [Tokyo Midtown presents The Lifestyle + MUSEUM](https://www.tfm.co.jp/podcasts/museum/):内容和嘉宾都很好,然而像传统日语新闻节目一样的老男主播和纯捧哏的女主播的组合令我很不适。 +- [虚構新聞ニュース](https://kyoko-np.net/):日语洋葱新闻社,网站很好玩 + + + +### 其他主题 + +- [Do By + Friday](http://dobyfriday.com/):每周挑战,几位主持和体裁都很可爱,但是总是在说题外话,对新听众不太友好。 +- [Film Junk + Podcast](https://filmjunk.com/podcast/):推荐电影的,很好听,但是真的,真的,真的,太长了…… +- [Off Camera with Sam Jones](https://offcamera.com/):🟣 + 每期访谈一位各个领域的有名人(RDJ 上了两次) +- [The Pen Addict](https://www.penaddict.com/):纸,笔,文具 +- [Two Headed + Girl](https://twoheadedgirl.transistor.fm/):关于性别和心理的播客,但过刊太少了,我需要更多样本决定要不要继续听 +- [Ungeniused](https://www.relay.fm/ungeniused):发现维基上的神秘角落,如果喜欢 + [The Technical Difficulties](https://www.techdif.co.uk/) + 的话应该也会喜欢 +- [博物志](https://bowuzhi.fm/):讲各地博物馆的 +- [哈利播客](https://hpup.fireside.fm/):🟣 + 听温柔大姐姐逐章讲解《哈利・波特》原文 +- [尼克逃课 + NickTalk](https://podtail.com/podcast/%E5%B0%BC%E5%85%8B%E9%80%83%E8%AA%B2-by-nicktalk/) +- [随机波动 + StochasticVolatility](https://www.stovol.club/):[剩余价值](https://www.surplusvalue.club/)续集 diff --git a/content/posts/2020-05-21-digital-zettelkasten-101-aka-my-second-great-markdown-editor-contest.md b/content/posts/2020-05-21-digital-zettelkasten-101-aka-my-second-great-markdown-editor-contest.md new file mode 100644 index 0000000..fa06009 --- /dev/null +++ b/content/posts/2020-05-21-digital-zettelkasten-101-aka-my-second-great-markdown-editor-contest.md @@ -0,0 +1,147 @@ +--- +author: loikein +published: "2020-05-21T21:28:00+02:00" +slug: 2020-05-21-digital-zettelkasten-101-aka-my-second-great-markdown-editor-contest +categories: +- 应用程序 +tags: +- iOS +- macOS +- Zettelkasten +title: Digital Zettelkasten 101, aka My Second Great Markdown Editor Contest +--- +Edit: I found out that both Blockquote and 1Writer support `highlight`. + +------------------------------------------------------------------------ + +Recently I have been reading about this thing called Zettelkasten. +Obviously, a huge point of doing Zettelkasten is to use real paper +cards, to **not** search, and to use the advantage of human brain +to find order from chaos. +I almost bought some paper cards to try it out. But I thought better. I +have been on the quest to de-paper-ise everything for four years now, +and Zettelkasten, no matter how captivating, should not be the trigger +that I introduce more paper into my life. +Therefore, I must find a way to practice Zettelkasten on all my +preferred platforms (iOS & macOS) which is the only way to give it an +honest try, which turned out to be much trickier than I thought. + +The problem is, I already have a collection of close to 3000 markdown +files, part of which was converted from my entire Evernote backlog, and +the rest were notes that I created after that. Plus, they are stored in +my iCloud, so that I can add, view and edit on the go. Therefore, if I +am to choose a Zettelkasten tool, it must be compatible with all these. +That means it should support [Open in +Place](https://developer.apple.com/document-based-apps/) (also for macOS +in some sense), at least [some variant of +markdown](https://www.iana.org/assignments/markdown-variants/markdown-variants.xhtml), +preferably footnote and LaTeX, as well as all those Zettelkasten +funcionalities (internal/wiki link, tag, etc). + + +## iOS + +There are surprisingly few valid candidates on iOS. +[Drafts](https://getdrafts.com/) could have been a great option, which +[recently added internal links +support](https://www.macstories.net/news/drafts-20-introduces-advanced-wiki-style-linking/), +but it does not support Open in Place, which is the prime reason that +has stopped me from making it my main text editor on iOS. +[Ulysses](https://ulysses.app/) has the same problems as Drafts. Also, I +don't think that subscription (a quite expensive one) is the best +pricing model for text editors. +[iA Writer](https://ia.net/writer) does not support internal links. As +well as [‎MDNotes](https://apps.apple.com/us/app/mdnotes/id1471287219), +[Edidown](https://edidown.app/), and many other good editors on iOS. + +Before this experiment, my beloved markdown editor is +[Blockquote](https://www.blockquoteapp.com/), who won my previous iOS +markdown editor contest (not documented) against the other finalist, +[Pretext](https://twitter.com/pretext_app), for outstanding +editor/preview panels. And before **that**, I was using +[Joplin](https://joplinapp.org/), who converted my Evernote backlog for +me. + +In the end, I landed on [1Writer](http://1writerapp.com/), on which +[Federico's great +experiments](https://www.macstories.net/ios/markdown-and-automation-experiments-with-1writer/) +certainly helped a lot (who has since moved on to iA Writer). If you +know me, well, you saw this coming: I have built a test file that +includes all markdown functions that I may or may not ever need, and +opened it in both 1Writer and Blockquote. You can find the source file +[here](https://gist.github.com/loikein/27ef6913386b206d1b3c18b8e93c5768), +and this is a side-by-side screenshot (left: 1Writer, right: Blockquote, +both in iPad portrait mode): + + +[![](../images/thumbnails/2020-05-21-digital-zettelkasten-101-aka-my-second-great-markdown-editor-contest-STIIITCH_2020_05_21_08_05_23.JPEG)](../images/2020-05-21-digital-zettelkasten-101-aka-my-second-great-markdown-editor-contest-STIIITCH_2020_05_21_08_05_23.JPEG) + + + +## macOS + +There **seem** to be may candidates on macOS, but none of them is +perfect. Therefore, I (again) have to trade-off among features that I +absolutely want. +I have been using [Typora](https://typora.io/) for long (as you will see +in the summary, I use it as the benchmark editor). However, it does not +support Zettelkasten links or tags. +After some searching, I found [Zettlr](https://www.zettlr.com/), which +is also cross-platform & open. However, I don't really prefer it over +Typora, and, although print kind of does the job, there is no real quick +preview functionality in Zettlr. My quest continues. + +Purely out of coincidence, one of the bloggers that I follow introduced +this new cross-platform programme some day: [Obsidian 未来的笔记应用 | +Verne in +GitHub](https://einverne.github.io/post/2020/05/obsidian-note-taking.html). +Obviously, I got excited, and joined the [Obsidian +beta](https://obsidian.md/). +Here is a Reddit thread for those who cannot read Chinese: [Obsidian - +take great notes in Markdown and let your knowledge outlive you : +r/SideProject](https://www.reddit.com/r/SideProject/comments/fuegtl/obsidian_take_great_notes_in_markdown_and_let/) +and the official roadmap: [Obsidian Roadmap | +Trello](https://trello.com/b/Psqfqp7I/obsidian-roadmap) +Obsidian is almost perfect an editor. It is not WYSIWYG like Typora, but +the optional side-by-side preview panel scrolls in sync (most of the +time). It supports almost infinite split view (see the screenshot +below). It even has a ramdom note switcher, which I believe will help +with the Zettelkasten method. However, it does not export, or print, or +anything that gets the markdown file into another form. +You can get my theme here: [loikein/Dracula-for-Obsidian: A dark theme +for Obsidian.md](https://github.com/loikein/Dracula-for-Obsidian). I did +not modify the dark theme that I forked from, only the light theme that +I actually want to use. + + +[![](../images/thumbnails/2020-05-21-digital-zettelkasten-101-aka-my-second-great-markdown-editor-contest-%25E6%2588%25AA%25E5%25B1%258F2020-05-21%2B21.17.25.png)](../images/2020-05-21-digital-zettelkasten-101-aka-my-second-great-markdown-editor-contest-%25E6%2588%25AA%25E5%25B1%258F2020-05-21%2B21.17.25.png) + + +PS: If you cannot compile PDF in Zettlr, in RStudio, or any LaTeX file +really, try this command in the terminal: (Source: [r - undefined +control sequence in Rmarkdown - Stack +Overflow](https://stackoverflow.com/questions/60489469/xdef-fontencloadlist-fontencloadlist-undefined-control-sequence-in-rmark)) +`$ fmtutil-sys --all` + + +## Summary + +(\*): No tag support for external (Open-in-Place-ed) files +(†): Only block LaTeX +(‡): Only inline LaTeX +(§): Using `.cls` (tedious LaTeX style files) + + +| | 1Writer | Blockquote | Obsidian (0.6.0) | Zettlr | iA Writer (macOS) | Benchmark: Typora | +|----------------------------|---------|------------|-------------------|---------|--------------------|--------------------| +| Metadata (When exporting) | Yes | No | No export | Yes | Yes | Yes | +| LaTeX | No | Yes | Yes (†) | Yes (‡) | Yes | Yes | +| TOC | Yes | No | No | Yes | Yes | Yes | +| Internal Link | Yes | No | Yes | Yes | No | No | +| Tags | No (*) | No | Yes | Yes | Yes | No | +| Table | Yes | Yes | Yes | Yes | Yes | Yes | +| Highlight | No | No | Yes | Yes | Yes | Yes | +| Mermaid | No | No | No | Yes | No | Yes | +| Footnote | Yes | No | Yes | Yes | Yes | Yes | +| Custom Theme / Editor CSS | No | No | Yes | Yes | No | Yes | +| Custom Export Template | No | No | No export | Yes (§) | Yes | No | diff --git a/content/posts/2020-05-24-git-error-refusing-to-allow-an-oauth-app-to-create-or-update-workflow.md b/content/posts/2020-05-24-git-error-refusing-to-allow-an-oauth-app-to-create-or-update-workflow.md new file mode 100644 index 0000000..95d2ce2 --- /dev/null +++ b/content/posts/2020-05-24-git-error-refusing-to-allow-an-oauth-app-to-create-or-update-workflow.md @@ -0,0 +1,33 @@ +--- +author: loikein +published: "2020-05-24T15:52:00+02:00" +lastmod: "2021-04-14 19:33:55.040 +0200" +slug: 2020-05-24-git-error-refusing-to-allow-an-oauth-app-to-create-or-update-workflow +categories: +- 笔记 +tags: +- macOS +- Git +title: '血书:git error: refusing to allow an OAuth App to create or update workflow (macOS)' +--- +## 在 Mac 的图形界面里: + +- 打开 `Keychain Access.app` +- 搜索 `github` +- 找到这一项(注意是互联网密码,不是应用程序密码,如果有好几个不确定的可以都删了反正还能再登录的),右键删除: + +![](/post-img/2020-05-24-git-error-refusing.png) + +## 在 github.com: + +- 右上角点击 + `头像 > Settings > Developer settings > Personal access tokens` +- 点击 `Generate new token`, 勾上 `repo` 和 `workflow`,确认 +- 把出现的那串数字字母复制下来 + +## 在终端: + +- `$ git push` +- 用户名输入自己的 GitHub 用户名 +- 密码输入刚才复制的 token +- 回车,成功 diff --git a/content/posts/2020-05-31-broken-is-the-meaning-of-breaking.md b/content/posts/2020-05-31-broken-is-the-meaning-of-breaking.md new file mode 100644 index 0000000..fba2905 --- /dev/null +++ b/content/posts/2020-05-31-broken-is-the-meaning-of-breaking.md @@ -0,0 +1,19 @@ +--- +author: loikein +published: "2020-05-31T17:40:00+02:00" +slug: 2020-05-31-broken-is-the-meaning-of-breaking +categories: +- 随笔 +tags: +- 自述 +title: 破碎的意义是破碎 +--- +破碎是从小事开始的。一天没有换下睡衣,墙角的花枯了一直放在那里,隔夜的水杯没有洗就继续用了,不想捡起掉到地上的物件。每一件关于破碎的事,都是小事,但总有一天突然回过神来的时候,才发现自己早就是破碎的了。 + +有时候破碎甚至还可以是主动的。剪短头发。扔掉保存了很久的纪念品。在身上制造和维持伤口。我总是跟医生说我没有自毁倾向,但就在最近的某一刻醒悟过来,我的自毁倾向很久、很久以前就一直在那里了,几乎与记忆等长。 + +我不想给破碎强加意义,既然已经破碎了又何必再谈意义?但这给我感觉有一点像人生:不知道什么时候起、为什么要开始,不知道为什么要继续,不知道什么时候结束。我对人生的看法一直在变,小时候总觉得什么时候死都是可以的,可能在世界上待久了,产生了一些留恋,变得不太想死了。 +这绝不是在说破碎是毫无好处的。从这个角度来看,破碎又有一点像某种奇特的咖啡因,让我的头脑变得活跃。很经典的论调,才华是心理疾病的补偿。然而身体状况的确一直在下滑,倒也不是说没习惯,毕竟这样的状况已经断断续续了很久,但两个月的居家隔离,是连续两个月必须每天直面自己的内心,直面那些可以因为在外忙碌而忽视的问题。不怎么好玩。 +感觉有点像,家里铺着满地的玻璃碎片,每天出门和回家时都必须踩上几脚,虽然脚底伤疤纵横但也习惯了,然而隔离时所有的活动空间就只得这一地玻璃。这个比喻似乎有些弦外之音,并不是我有意而为:这些玻璃碎片,正是我一点点破碎时掉落的自己。 + +破碎的意义是继续破碎。活着本身就是不断破碎。等到碎得不剩什么的那一天,也许就能解脱了吧。 diff --git a/content/posts/2020-07-08-unmaintained-gardens-will-become-weedy-lawn.md b/content/posts/2020-07-08-unmaintained-gardens-will-become-weedy-lawn.md new file mode 100644 index 0000000..b1457ba --- /dev/null +++ b/content/posts/2020-07-08-unmaintained-gardens-will-become-weedy-lawn.md @@ -0,0 +1,43 @@ +--- +author: loikein +published: "2020-07-08T19:13:00+02:00" +slug: 2020-07-08-unmaintained-gardens-will-become-weedy-lawn +categories: +- 笔记 +tags: +- Zettelkasten +title: 不勤耕耘的花园会变成杂草地 +--- +六月过完了好几天才发现已经过完了。每月至少一篇博文已经蛮久,上次断更还是在 2018 年那个恐怖的夏天。也不是没空,不过整个月都在忙着东挖一个坑西挖一个坑,事儿倒是干成了不少。 + +最近学到一个新词:「电子花园(digital garden)」。这里有一篇很好的文章解释了这个概念,我有点想翻译:[You and your mind garden - Ness Labs](https://nesslabs.com/mind-garden)。电子花园这个概念最初到底是谁提出的已不可考,但传播最广的电子花园莫过于前苹果工程师 [Andy Matuschak 的 Working Notes](https://notes.andymatuschak.org/About_these_notes) 和独立写作者 [Gwern Branwen 的网站](https://www.gwern.net/index)。后者还勉强能当作结构复杂一些的博客来看待,前者则已经完全脱离「篇章(article)」的制约了。的确,这种形式更符合人脑的思维方式,而且跟 Zettelkasten(详见:[如何用卡片法写论文? - 少数派](https://sspai.com/post/59314))不谋而合。 +我的理解,所谓「电子花园」,就是把脑子里的思路以更接近它原本的样子展现出来。每个人都会有各种各样的想法,有一串串的想法,也有网状的想法,也有灵光一现的单个想法,不同想法碰撞之后会生出新的想法;这些形状都不适合用一篇篇单独的博文来展现。我一般会等到某一个或者某一串想法生长到足够丰富的时候,一气呵成写一篇博文——但,其他无法扩展成一篇文章的小想法并不是没有分享的价值,却只能被埋没在社交媒体的 rant 或者我从不示人的电子卡片盒中了。建设一座电子花园,能够更好地整理、分享、发现这些零散的想法。 +也因此,我天然地更倾向于 Andy Matuschak 的方式,而 You and your mind garden、 [Maggie Appleton 的推荐帖](https://threadreaderapp.com/thread/1250532315459194880.html)以及 [KasperZutterman/Second-Brain](https://github.com/KasperZutterman/Second-Brain) 中提到的有一些在我看来就纯粹是个人维基,而不能称之为花园。 + +在此之前,其实我已经开始做[个人维基](https://wiki.loikein.one/)有一阵子了,当时并没有发现灵感来源的 [Nikita Voloboev 的个人维基](https://wiki.nikitavoloboev.xyz/)里直接说了它是个电子花园。那么,我还要另外再建一个电子花园吗?答案是肯定的。在我看来,个人维基的概念不足以覆盖电子花园的概念,我想放在个人维基里的是「知识」,而在电子花园里的是「想法」。如果一个问题没有固定答案,例如哲学问题和社会问题,那么就适合在电子花园里捋一捋思路;反之,如果一个问题能够找到最优解,例如 CSS 要怎么垂直居中(可能有人会不同意这个能否找到最优解😆),那么直接把代码加上几行说明放在个人维基里就可以了,我现在的个人维基正是这么做的。 + +然而,我并不能直接一股脑把电子卡片盒中的卡片甩出来,然后说这是个电子花园了。的确,在那之中有一些尚未成型的想法,但大部分是书摘或者我想留作以后参考的技术性摘抄,并不是「我自己的」东西。因此,我需要一段时间挑拣一下,尽量在近期弄好发出来。毕竟: + + +> The only requirement is that you never stop. + + +~ Peter Elbow, 1998 + +另外一些我觉得不错的电子花园或者类似的地方:(不定期更新) + +- [Open Transclude for Networked + Writing](https://subpixel.space/entries/open-transclude/) +- [OpenXanadu (sources + only)](http://xanadu.com/xanademos/MoeJusteOrigins.html)(前项的第一张截图来源) +- [Intro - exobrain](https://beepb00p.xyz/exobrain/) +- [Azlen Elza's Notes](https://notes.azlen.me/) +- [My TiddlyWiki — a non-linear personal web + notebook](https://crazko.github.io/krystal/) +- [The Piles - Buster's Notes](https://notes.busterbenson.com/piles) +- [Patterns — Gordon Brander](http://gordonbrander.com/pattern/) +- [Sam Hart — Are.na](https://www.are.na/sam-hart/all?sort=UPDATED_AT) +- [Things I want to figure out or see implemented eventually | + beepb00p](https://beepb00p.xyz/ideas.html) +- [Maggie Appleton - The Digital + Garden](https://maggieappleton.com/garden) diff --git a/content/posts/2020-07-25-two-letters-on-justice-and-open-debate.md b/content/posts/2020-07-25-two-letters-on-justice-and-open-debate.md new file mode 100644 index 0000000..d688dea --- /dev/null +++ b/content/posts/2020-07-25-two-letters-on-justice-and-open-debate.md @@ -0,0 +1,29 @@ +--- +author: loikein +published: "2020-07-25T15:23:00+02:00" +slug: 2020-07-25-two-letters-on-justice-and-open-debate +categories: +- Linklog +title: Two letters on justice and open debate +--- +Earlier this month, two open letters appeared sequentially on different +websites, but unfortunately buried very quickly on my social media +timelines. The reason being, first, I don't follow any celebrity, +second, so many things are going at the same time, especially in this +year. + +However, may I point you once again at the letters as well as an +overview from a third party, since as a broken coloured transgender I am +not in a position to make an impartial judgement: + +\[1\]: [A Letter on Justice and Open Debate | Harper's +Magazine](https://harpers.org/a-letter-on-justice-and-open-debate/) +(signed by 151, with at least 2 retractions) + +\[2\]: [A More Specific Letter on Justice and Open Debate - The +Objective](https://theobjective.substack.com/p/a-more-specific-letter-on-justice) +(signed by 163) + +\[3\]: [An Open Letter on Free Expression Draws a Counterblast - The New +York +Times](https://www.nytimes.com/2020/07/10/arts/open-letter-debate.html) diff --git a/content/posts/2020-07-31-love-times-3-by-kurousa-p.md b/content/posts/2020-07-31-love-times-3-by-kurousa-p.md new file mode 100644 index 0000000..8568e93 --- /dev/null +++ b/content/posts/2020-07-31-love-times-3-by-kurousa-p.md @@ -0,0 +1,115 @@ +--- +author: loikein +published: "2020-07-31T13:09:00+02:00" +slug: 2020-07-31-love-times-3-by-kurousa-p +categories: +- 翻译 +tags: +- 日译中 +- 音乐 +title: 中文翻译:Love*3 by 黒うさP +--- +[Love\*3 - 初音ミク Wiki - アットウィキ](https://w.atwiki.jp/hmiku/pages/757.html) + +这首比较简单,我就意译了,没有太大参考价值。 + +*** + +{{< row >}} +{{< col >}} +出会った頃の二人の写真 いつも苦笑い +そっと目を閉じ +{{< /col >}} +{{< col >}} +相遇不久时的合影里 我总笑得僵硬 +轻闭双眼 +{{< /col >}} +{{< /row >}} + +{{< row >}} +{{< col >}} +今ならもっと素直に笑えるのに 並べない +遠い思い出は +{{< /col >}} +{{< col >}} +现在的我早已学会该如何表达真心 却已无法再与你并肩 +遥远的回忆 +{{< /col >}} +{{< /row >}} + +{{< row >}} +{{< col >}} +ああ、色褪せずに だけどそれが悲しい程 +{{< /col >}} +{{< col >}} +鲜明如昨 令我难过 +{{< /col >}} +{{< /row >}} + +(\*\*): + +{{< row >}} +{{< col >}} +Love Love Love  もう離れないでいたいと 何度も叫んで +Love Love Love  ねえ? 貴方の笑顔が涙が全てが 消えない +{{< /col >}} +{{< col >}} +爱\*3 不要再离开我 我在心里无数次地哀嚎 +爱\*3 你的笑容 你的眼泪 你的一切 刻在我心底 挥之不去 +{{< /col >}} +{{< /row >}} + +{{< row >}} +{{< col >}} +冷たい雨がぽつりと肩に落ちて 見上げれば +なにも変わらずに +{{< /col >}} +{{< col >}} +冰冷的雨水扑通打在肩头 仰头看天 +仿佛什么都没改变过 +{{< /col >}} +{{< /row >}} + +{{< row >}} +{{< col >}} +ああ、いつのまにか 零れ落ちる 愛しい程 +{{< /col >}} +{{< col >}} +何时开始 回忆凋零 花朵一般令人爱怜 +{{< /col >}} +{{< /row >}} + +{{< row >}} +{{< col >}} +Love Love Love そう  僕らが歩いて走って転んだ道にも  +Love Love Love ねえ? 無駄にはしないでいくよと 何度も誓った +{{< /col >}} +{{< col >}} +爱\*3 那时我们 走过跑过摔倒过的 那条路上 +我曾无数次地起誓 不要让时间白白流逝 +{{< /col >}} +{{< /row >}} + +{{< row >}} +{{< col >}} +Love Love Love 忘れないよ +Love Love Love ああ +{{< /col >}} +{{< col >}} +爱\*3 永志不忘 +爱\*3 +{{< /col >}} +{{< /row >}} + +(\*\*) + +{{< row >}} +{{< col >}} +Love Love Love Love  次の世界でも 必ず 貴方を探そう +Love Love Love Love  だから今は  このまま進んでみせるよ +{{< /col >}} +{{< col >}} +爱\*4 如果能从头来过 下一个世界里 让我继续寻找你吧 +爱\*4 所以现在 没有你我也能 走完这一生 +{{< /col >}} +{{< /row >}} diff --git a/content/posts/2020-10-27-tried-to-work-with-ipados-14-and-what-s-a-real-computer.md b/content/posts/2020-10-27-tried-to-work-with-ipados-14-and-what-s-a-real-computer.md new file mode 100644 index 0000000..bea561f --- /dev/null +++ b/content/posts/2020-10-27-tried-to-work-with-ipados-14-and-what-s-a-real-computer.md @@ -0,0 +1,140 @@ +--- +author: loikein +published: "2020-10-27T00:32:00+01:00" +slug: 2020-10-27-tried-to-work-with-ipados-14-and-what-s-a-real-computer +categories: +- 应用程序 +tags: +- iOS +title: iPadOS 14 办公记录,以及一点关于 what's a real computer 的感想 +--- +没有电脑的十四天,啊,真是度日如年。 + +之前在 [用 iPad Pro 办公的一天 @AppleNut](https://t.me/AppleNuts/703) +看到另外一位仁兄的记录,当时还窃笑说搞不好我有一天也会用到,没想到这就用到了。原因一样,MacBook +Pro (2018) +的蝶式键盘坏了送修。其实这已经是第二回了,上次坏了一个键,拿到苹果授权维修店里撬掉键帽重新装了一个完事儿,但是这次坏了四五个键,实在得拿去真的店里看看了。蝶式键盘 50% 故障率诚不我欺。 + +然而真的店很远要坐火车才能去,刚好赶上新冠疫情 lockdown,这一拖就是半年多,我也忍受了 delete +键(!)双击半年多。最近实在忍不住拿去看看,看看了就送修了,本来说好的五天,啊,结果这一修就是半个月。这半个月里我的伙伴就只剩下 iPad mini (5th gen) 和手机,期间做了一些挺正常的 iPad +上能干的事情,也做了一些我本来没想过 iPad 能干的事情,勉勉强强总结一下。(好长的前置啊终于写完了。) + +## 论键鼠之必要性 + +想在 iPad +上好好干事情,就得配键盘,已经是常识了。别的不说,虚拟键盘一打开能把屏幕遮掉一半去。然而呢,我觉得鼠标之于 +iPad 的重要性还没有被重复强调(我在写论文吗?),甚至超过 Apple Pencil +或者 Logi Crayon。(iPad 无印/mini 5 适配 Apple Pencil 1/Logi +Crayon,新款 iPad Air 适配 Apple Pencil 2/Logi +Crayon,我之前跟朋友谈起的时候对方居然没听说过,那么在这里也记一下。) + +我的 Logi Crayon 是买 iPad +的时候一起买的,用久了呢感觉比鸡肋好那么一丁点,在编辑照片的时候感觉最好用,因为不会被手指遮住正在编辑的地方。这次本来想用 +Crayon 顶替鼠标的作用的,发现不行,原因有二: + +1. 用键盘的时候手臂搁在桌面上,用笔的时候要抬起来,换来换去很麻烦。 +2. 我习惯把鼠标的跟踪速度设置得比较快,实际和屏幕上的移动比率比较大,但是笔要移动多远手就要移动多远,不习惯。 + +因此还是得用真的鼠标,real mouse(这梗还玩上瘾了是不是)。 + +试图使用键盘和鼠标的时候发现了一些坑。比如我有一个适配器为 USB Type-C 的 +2.5G 无线鼠标,还有一个 Type-C to Lightning +的转换口,能够数据同步的那种,但是连在一起插上 iPad +愣是没发现鼠标。最后鼠标我还是用了之前随便买的二手 Apple Mighty +Mouse(有线款),本来是因为可爱买着玩的,没想到用上了。 + +但是有线鼠标想要连上 iPad 需要一个 Type A to Lightning +的转换口,这里坑多多,归根结底一句话:苹果的 Camera Adapter +才是惟一持久稳定的解决方案,其他转换口都是第一天好使第二天死的废物。但是 +Camera Adapter 有两款,带额外充电口的和只有一个 USB-A +接口的,这里又有个坑,不带充电口那款的 USB 协议 是 USB 2(Lightning to +USB Camera Adapter),带充电口那款才是 USB 3(Lightning to USB 3 Camera +Adapter),所以如果日后还想用来连 U 盘的话,或者其实 iPad +用来办公很费电的,不想干一会儿停下充会儿电的话,只好破财保平安了。 + +再比如我的键盘明明是苹果自家出的 Apple Wireless +Keyboard,连上却弹出如下提示,然后**连接任何其他除了 Crayon +之外的蓝牙设备都会导致字母键失灵**: + +![](../images/2020-10-27-ipados-14-ban-gong-ji-lu-yi-ji-yi-dian-guan-yu-whats-a-real-computer-de-gan-xiang-%25E6%259C%25AA%25E5%2591%25BD%25E5%2590%258D.png) + +这问题仅在 iPadOS 14 后出现,然而,好吧,苹果不在乎自家产品的 +compatibility。 + +鼠标的好处在于,再废的鼠标总有三个键,左键右键滚轮,而滚轮这个键在 iPad +上是不需要拿来点按的,因此可以自定义点按时的功能。(ref:)如下图,找到设置入口(1),找到正连接着的设备(2),点击自定义(3),摁下鼠标上需要自定义的按钮(4,我这里按了一下滚轮,这一步会卡一下需要等等),然后选一个就可以了。如果鼠标上还有其他按钮的话可以重复步骤 +3 ~ 5。 + +设置一个鼠标按键为「主屏幕」的好处是,此处的「主屏幕」意思为 home +button。比如说双击自定义按键就可以唤出 App +Switcher,在通知中心单击自定义按键可以回到刚才用的 app,等等。 + +[![](../images/thumbnails/2020-10-27-ipados-14-ban-gong-ji-lu-yi-ji-yi-dian-guan-yu-whats-a-real-computer-de-gan-xiang-IMG_6355.JPG)](../images/2020-10-27-ipados-14-ban-gong-ji-lu-yi-ji-yi-dian-guan-yu-whats-a-real-computer-de-gan-xiang-IMG_6355.JPG) + +## 一些不容易发现的功能/app + +### 解压缩 + +从 Safari 下载的压缩文档使用默认的文件.app +打开,点选就会解压到当前文件夹,不需要其他操作。 + +### In-App Browser + +在键盘上按 command + W 可以直接回到 app,相当于点「完成」按钮。 + +### Jupyter Notebook + +[Carnets - Jupyter on the +App Store](https://apps.apple.com/us/app/carnets-jupyter/id1450994949) +这是我目前发现的惟一一个不需要任何电脑/服务器独立运行的 Jupyter +Notebook iOS 客户端。具体使用方法是,这个 app +点开是默认文件管理器的样子,然后点选一个 .ipynb +文件直接打开,就能开始编辑了。 + +### Zotero + +虽然我是 [PaperShip - Mendeley & Zotero on the +App Store](https://apps.apple.com/app/papership/id631980748) +的付费用户,但是它的添加功能完全是鸡肋。就在我绝望的时候,なんと!在 +Zotero +网页版登录之后只需要用鼠标在屏幕上点击几下,就会自动变成真的桌面版,然后点「Add +By +Identifier」(魔棒图标),再粘贴论文或者图书的链接,就会自动检测并添加了。 + +![](../images/2020-10-27-ipados-14-ban-gong-ji-lu-yi-ji-yi-dian-guan-yu-whats-a-real-computer-de-gan-xiang-IMG_6357.PNG) + +## 没有 Mac 做不了的事情 & 总结 + +虽然是我太高看 Safari for iOS 了,但是 Blogger +的预览画面是看不了的。无论按屏幕上哪个按钮都没反应,这造成了我不拿回电脑就不能发这篇博客。这件事令我十分愤怒,因为我抵抗了好久的 +Blogger +改版就是以「移动易用性」为卖点的,而且现时点已经不能切换回旧版界面了,但是,呵。 + +还有就是,这是我经常有的需求,有一文件夹的论文 PDF 需要导入 Zotero +并创建条目。这件事如果在桌面版上就是直接拖进窗口,等它慢慢处理就好了,但是在 +iPad 上并没有一个合适的 app 来处理这件事情。 + +以及,虽然这是废话,但是除了在 repo 里直接编辑也没问题的 repo(比如 +GitBook repo,这里特指在 Safari 里编辑,GitHub for iOS +是改不了代码的)之外,写代码是基本不可能的,所以我除了写 Markdown +和在谷歌文档里写点文件之外,几乎什么工作都做不了。当然需要在本地 build +和测试的代码就更不可能了(除非妳有远程服务器然后 SSH +过去然后……但是我并没有。) + +嘛,当然,如果有这些需求的话基本不会只有一个 +iPad;但是电脑总是会坏的,常常有一个 Windows/Mac +备机也不太现实……但由我这段经历可见 iPad 就算是备机也不太合格啊。 + +我对 iOS 最大的牢骚就是,每件事情都必须有专用的 app +才能完成,即使是现在有了 Split View 依然很麻烦。用电脑的话,基本上浏览器 ++ 文本编辑器 + 终端三件套就可以解决 90% 的问题了,然而在 iOS +上简直是天方夜谭。要写文件?下载 iWork + Google suite,运气不好还得在 +Google Drive 和 Google Docs 之间左右横跳。要聊天?在 Mac 上一个 +[Rambox](https://github.com/ramboxapp/community-edition) +就能解决的事情,在 iPad 上要下载一整个文件夹的 app(yes, I am aware of +IM+)。要管理剪贴板?网上有不少步骤几百个我都懒得仔细研究的 +Shortcuts,还得搭配 iCloud 使用。 + +就这,还敢说「什么是电脑」? + +路还远着呢。まだまだだね。 diff --git a/content/posts/2020-11-16-its-more-of-a-funeral-than-celebration.md b/content/posts/2020-11-16-its-more-of-a-funeral-than-celebration.md new file mode 100644 index 0000000..17675d5 --- /dev/null +++ b/content/posts/2020-11-16-its-more-of-a-funeral-than-celebration.md @@ -0,0 +1,36 @@ +--- +author: loikein +published: "2020-11-16T13:44:00+01:00" +slug: 2020-11-16-its-more-of-a-funeral-than-celebration +categories: +- 随笔 +tags: +- Essay +- Politics +title: It's more of a funeral than celebration +--- +Ok, so Biden won. Nicely done US people, or should I say, US electors? + +Four years ago, since the election was called, so many university +professors and other scholars published their depressed open letters +regarding the results. The time was 2016, and I was rather naive and not +defeated by the reality back then, and decided I would wait and see what +would happen. + +Then, well, shall we say, "reality" happened. My personal story on this +matter is probably more dramatic than the collective memory, but that +can wait for another time. + +I am no international relation expert, but even I can see during the +past four years that the age of rationality had gone. Dead cold gone. +The age of Trumpism would be the last time most people sing the praises +and cherish the memory of rationality. After that, finally seeing him go +and relaxed, people will forget about the importance of resisting. + +This is not a warning, but a prediction. Trump has lowered the level of +politics so much so that he might as well just have single-handedly +reshaped the trend of regime development, as well as made the world more +comfortable with autocracy than before. Such a world may not affect us +immediately, but democrats sleep and take holidays while dictators +never. Every day when we are not on edge, holding tight our rationality +and resistance, the big brother takes extra miles. diff --git a/content/posts/2020-12-02-tampon-vs-menstrual-cup-by-menstrual-poverty.md b/content/posts/2020-12-02-tampon-vs-menstrual-cup-by-menstrual-poverty.md new file mode 100644 index 0000000..c14506f --- /dev/null +++ b/content/posts/2020-12-02-tampon-vs-menstrual-cup-by-menstrual-poverty.md @@ -0,0 +1,39 @@ +--- +author: loikein +published: "2020-12-02T00:01:00+01:00" +slug: 2020-12-02-tampon-vs-menstrual-cup-by-menstrual-poverty +categories: +- 购物 +title: 一次月经贫困引发的月经杯 vs 棉条 +--- +近日买了个月经杯,因为棉条实在是太贵了。刚好最近苏格兰的《生理期用品免费供应法》引发了一些讨论,许多人都对月经贫困不以为然,这使我很生气。如果屏幕前的您持同样意见,那么这篇博客(以及我的所有博客)都可以不用看了,世界上博客很多不差我一个。 + +首先说棉条,但必须首先明确,只有导管式棉条才值得用,没有导管的棉条(比如 +ob)应该全部钉上历史的耻辱架。我从高中开始用棉条,算是同龄人(除了出国交换过的)中的先锋。上述出国交换过的朋友在高一跟我短暂地住过同一个宿舍,见证了我网购并第一次使用棉条。高中,大学,一直到两个月前我都是棉条的忠实拥趸,但是事情起变化是在我来到德国之后就开始的。 + +在日本,超市货架上是摆着导管式棉条(苏菲)的,但德国并没有。无论 DM,Rewe 还是各大百货商店,我惟一能找到的就是指入式。怎么说呢……能不能顺利使用指入式棉条完全看当天的运气和天气,我有一阵子能用,另外一阵子它带来的只有纯粹的痛苦。在德国想要买导管式棉条就只能依靠亚马逊,而亚马逊上的 Tampax 货源并不是特别稳定,经常有标题里明明是两盒结果只送来一盒的情况(我自己就碰到两次,还有无数评论表达了类似经验),那么就变成一盒十欧元,里面只有 18 根,按安全标准 4 小时换一次的话这么一盒只够用 3 天(或者 3.6 天,因为晚上不用换),而一般女性月经至少会来 4~7 天就得两盒,这还没算上用棉条几乎必须得搭配的护垫。 + +上个月的某一天,我又一次用完了囤的棉条刚准备下单一波新的,想起上述的槽心事儿,然后想,去它娘的,我必须试试月经杯。 + +月经杯的入门难度在于,第一,它很贵(但是只要能用一年就比棉条便宜了),第二,它看起来真的很吓人。但是贫穷压倒一切,我还是买了。买的是很久以前在豆瓣上看到一篇文章推荐的 Merula Cup,我一直觉得是大学期间看的,但是搜索一下只能搜到去年的[这篇](https://www.douban.com/note/723288765/),不知道是我的记忆出错了还是以前曾经有过一篇文章但是后来删了。 + +下面重点讲讲使用过程和一些感想。 + +买回来先看说明书(虽然电子产品我都不看但保险起见),写着使用前要放一点白醋煮至少五分钟(可以微波炉)。煮完之后放凉一点(。)洗干净手,手不要擦干,拿起月经杯开始折。无论看过多少图片,到实际操作还是不懂折,反正随便折一下有个尖角就行了。 + +折好了捏着,就开始硬塞,这是个单手操作(对比:扯出来的时候是双手操作)。塞的过程跟塞棉条差不多,只要找准位置就行了,指甲不勾到肉的话是不会痛的,就是有些漫长。塞进去之后它是保持着折叠的样子,豆瓣那篇文章也说了,过一阵子才会展开,这其间可以穿上裤子然后该干啥干啥,但是展开的时候会感觉到被弹了一下(不痛,问题不大)。 + +然后一天或者一个晚上过去,要取出来了。这就是噩梦开始的地方。我第一次取完月经杯之后跟朋友聊天说,刚才那五分钟是我人生中最漫长的五分钟。我有理由怀疑搞得这么困难部分原因是 Merula +Cup +是没有出气孔的,所以需要完全靠手动操作来打破负压,而人手的结构,shall we +say,并不适合做这个工作。我一度考虑过要不要给它钻个孔,但是想想由此引发的泄漏风险,还是算了。 + +我假设妳在厕所里,如果不是的话,首先在双脚之间铺几层废纸或者一个盆子。洗干净手,下面是双手操作。一只手松松地扯着拉环(千万注意不要掐到肉),另外一只手的拇指伸进阴道找到杯身圆圆的部位,用力摁下去不要松手,一边摁着一边往下刮,同时扯拉环,直到扯出来为止。恭喜妳获得人类经血一杯,绝对新鲜,其中还漂浮着子宫内膜。此时可以欣赏一番或者心累一番,然后倒掉,然后洗干净手和月经杯,然后再塞一次。 + +我看到网上有些人说破负压食指也可以,这样就是单手操作了,但可能我的食指长的角度不对,怎么都使不上劲,反正如果这句话没有被删掉的话我依然在双手操作。 + +经历过这一切之后,我不知道该怎么看待接下来的人生,所以此处删掉已经写好的两百字。 + +月经杯和棉条相比,优缺点都很突出,但是有一个共同点就是最好搭配护垫使用。棉条使用简单,对卫生程度要求不高,但是贵;月经杯摊下来便宜,但是真的,真的很麻烦,而且必须非常彻底地洗手,不然几乎肯定会感染。另一个意料之外的副作用是月经杯让我感觉腹胀,看了一圈似乎是正常现象,反正……也没有其他更好的选择了。 + +说到其他更好的选择,确实有一个,那就是子宫切除术,不过那就是以后的我才需要考虑的事了…… diff --git a/content/posts/2020-12-07-gains-and-losses-with-online-shopping.md b/content/posts/2020-12-07-gains-and-losses-with-online-shopping.md new file mode 100644 index 0000000..3d0438f --- /dev/null +++ b/content/posts/2020-12-07-gains-and-losses-with-online-shopping.md @@ -0,0 +1,98 @@ +--- +author: loikein +published: "2020-12-07T15:20:00+01:00" +slug: 2020-12-07-gains-and-losses-with-online-shopping +categories: +- 购物 +title: 2020 年 11 月网络购物得与失 +--- +以前还在用饭否的时候关注过一位很有趣的仁兄,非常喜爱[他的博客](https://web.archive.org/web/20200813015953/https://eillo.pw/)上发表的《某年某月网络购物的得与亏》系列。最近想起来这事儿,以及我很久以前其实也写过类似的文章(发在 +LOFTER)但后来懒得一个个写了,感觉每月总结一次是比较合理的方式。本期为试运营。 + +上月主要购物如下,按时间从先到后顺序,坐稳扶好…… + + + +## Merula Cup (Clear) + +![](../images/2020-12-07-2020-nian-11-yue-wang-luo-gou-wu-de-yu-shi-819nNuC-QaL._AC_SX425_.jpg) + +[上一篇](https://blog.loikein.one/2020/12/vs.html)已经详细写了,总结一下就是拆装体验不太好,实际使用体验还是蛮好的。另外我觉得月经杯不是透明色的都是邪教,最近甚至出了一个紫黑色,我晕。 + + + +## Sagrotan Kids Foam Soap for Children (6 pack) + +[![](../images/thumbnails/2020-12-07-2020-nian-11-yue-wang-luo-gou-wu-de-yu-shi-81MS5VwufYL._AC_SX425_.jpg)](../images/2020-12-07-2020-nian-11-yue-wang-luo-gou-wu-de-yu-shi-81MS5VwufYL._AC_SX425_.jpg) + +滴露泡泡洗手液,常规回购。买所谓「儿童版」是因为正常版在亚马逊上太贵,没有其他特别原因。味道有点大,记得一开始不适应,但是我都用到第不知道多少瓶了,鼻子早已失灵。 + + + +## Winter Ear Muffs (Black) + +![](../images/2020-12-07-2020-nian-11-yue-wang-luo-gou-wu-de-yu-shi-417lY7wgJ2L._SY425_.jpg) + +今年冬天特别冷,别说我还剃了头,但是买了这个之后就没戴过帽子,在室内甚至会热到不得不摘下来。这就是幸福的感觉吗。 + + + +## Adonit V-Grip + +![](../images/2020-12-07-2020-nian-11-yue-wang-luo-gou-wu-de-yu-shi-71j7xgWapBL._AC_SX425_.jpg) + +观望一年多买了,功能挺多,但是每个都不太好用,最后又退了。主要原因如下: + +1. 蓝牙快门按钮短按开机,造成任何时候即使关着也碰一下就会开了,非常强迫症不友好,不如没有。 +2. 手机卡子的伸缩部分在冷靴那里而不是下边儿,也就是说无论配什么手机使用,整个手柄都会变长,实在太丑。 + +本来打算换一个再试试的,想了下还是继续观望吧。 + + + +## CAMBIVO Patella Knee Support Strap (Reflective grey) + +![](../images/2020-12-07-2020-nian-11-yue-wang-luo-gou-wu-de-yu-shi-718dDwEOH%2BL._AC_UX425_.jpg) + +虽然被网友教育说慢慢养膝盖,但是总不能不运动,所以买了一对试试。挺好使的,跑步啊波比跳啊都能用。不过这个调节带明显就是为男性设计的,我已经算腿很粗的了,捆好之后末端左右还是要重叠一下,配的小孩用的又太短。 + + + +## Highlander Outdoor Seat (Blue) + +![](../images/2020-12-07-2020-nian-11-yue-wang-luo-gou-wu-de-yu-shi-41IY-OPFW4L._SY425_.jpg) + +现在房里是坐地上,想要个靠背又不好买懒人沙发(我是搬家优先优化,这个话题以后可以写一篇),最后某次看到 +Wirecutter +里有类似推荐的搜了一下就买了。这个里面上下两边各有两根铁管乘着,稍微调紧一点就能拥有很舒适的靠背体验。可惜屁股体验不咋样,不过我本来就有一个很久以前买的高科技坐垫,所以推荐。 + + + +## Raspberry Pi 3 Model B+ + +这个就不需要图片了吧,我买来本来是(呵呵,本来)练习 Linux +安装和重装技术(bootstrap)的,但是歪了一下装了 HomeBridge +之后就没有然后了。HomeBridge 真好用。 + +随便记了下安装过程,在[这里](https://wiki.loikein.one/computer/system-maintenance/raspberry-pi)。 + + + +## Jelly Comb Wireless Bluetooth Keyboard + +![](../images/2020-12-07-2020-nian-11-yue-wang-luo-gou-wu-de-yu-shi-51KLYJIHT4L._SY425_.jpg) + +买来配树莓派的,结果呢,那叫一个烂穿地心,还不如 SSH 或者 VNC +来得舒服。退了。 + + + +## Quimat Touch Shield for Raspberry Pi 3 Kit + +![](../images/2020-12-07-2020-nian-11-yue-wang-luo-gou-wu-de-yu-shi-51bmO69vvxL._SY425_.jpg) + +壳子还不错,屏幕真是大失败,由于不是 HDMI 必须靠 SSH +完成初始设置,然后开机用了一会儿触控就不灵了。别买。 + +另外我给树莓派配的移动电源是两百年前买的 Anker PowerCore Fusion +5000,不过实测插拔插头的时候会断电一瞬间,并不是真的无间断电源,不过该启动的服务都是开机自启动所以其实也没什么。就这样。 diff --git a/content/posts/2020-12-12-i-am-not-going-anywhere.md b/content/posts/2020-12-12-i-am-not-going-anywhere.md new file mode 100644 index 0000000..e849c2c --- /dev/null +++ b/content/posts/2020-12-12-i-am-not-going-anywhere.md @@ -0,0 +1,28 @@ +--- +author: loikein +published: "2020-12-12T04:19:00+01:00" +lastmod: "2021-04-28 21:11:07.845 +0200" +slug: 2020-12-12-i-am-not-going-anywhere +categories: +- 随笔 +tags: +- 自述 +title: どこにも行けない人たち +--- +后续 1:[稍微正常一点的近况报告,以及对生命和人类关系的扭曲理解](../2020-12-28-how-things-have-been-but-less-pessimistic/) + +后续 2:[量子之爱](../2021-04-13-quantum-love/) + +*** + +昨日、自殺寸前だった。静かに、あったかいクーションに囲まれて、どのビルの高さが足りるかと考えてた。 + +モームによると、若いバカしか細かいことと人生の繋がりをしないんだが、若いバカなので敢えてそうする。最近とあるゲームをやったら1つわかったことがある。ゲームやら人生やら、ひたすらストーリーを進むといつか行き止まりにぶつかる。いつの間にか世界と周囲の人々のレベルが上がって相手してくれなくなっちまう。持ってるスキルは変わりなく本物だよ、本物だけど、レベルが低すぎて効かなくなる。 + +私はこんな世界観が嫌いだ。この世に来られて以上ストーリーを観るしかやりたくないんだ。ボスとかダンジョンとかどうでも良くて、ていうか本当は行きたくないんだ。幼い時の国文のテキストに書いてあるお嬢ちゃんのように、道端に座って人の闘う姿を見て拍手するだけの人生を送りたいんだ。だがそれが、ゲームにも人生にも許されてない。そういう人間の居場所はこの世でどこにもない。 + +ゲームのシステムが嫌ならやめばいいけど、世界のシステムが嫌なら、部屋に閉じ込んで泣く以外何もできない。そんなの、なんで始まる前に誰も言ってくれなかった?知ったら即やめたのに、今はもはや脱出できないくらい深く関わってしまった。 + +埋没費用というのがあるから、いつでも遅すぎはないけど、人との関わりを覚えてしまったんだ。私がいなくなったら自分の過ちにする人ができてしまったんだ。そいつの泣き顔が幽霊になっても見たくないんだ。こんな、家族でさえ化け物だというのを友たち扱いしてくれて嬉しくて、ただただ一生後悔させたくない人が今、鎖のように私をこの世界に束縛している。これ以上皮肉の話がどこにある。 + +「旅はいつか終わりを迎える、慌てる必要はない」と先生の一言に今命が掛かっている。旅の全てが思うままに行かないとやめるってのもあれだけど、いつか、どうか、手元のストーリーが全て終わったら、一刻も早く終わらせたいんだ。 diff --git a/content/posts/2020-12-28-how-things-have-been-but-less-pessimistic.md b/content/posts/2020-12-28-how-things-have-been-but-less-pessimistic.md new file mode 100644 index 0000000..9d83a97 --- /dev/null +++ b/content/posts/2020-12-28-how-things-have-been-but-less-pessimistic.md @@ -0,0 +1,31 @@ +--- +author: loikein +published: "2020-12-28T00:55:00+01:00" +slug: 2020-12-28-how-things-have-been-but-less-pessimistic +categories: +- 随笔 +tags: +- 自述 +title: 稍微正常一点的近况报告,以及对生命和人类关系的扭曲理解 +--- +前文:[どこにも行けない人たち](../2020-12-12-i-am-not-going-anywhere/) + +后续:[量子之爱](../2021-04-13-quantum-love/) + +*** + +对不起让各位担心了。我虽然没有完全好起来,但是比上次打开这个博客后台的时候已经好了很多很多。 + +上次发生的事是一个不幸的巧合:我忘记吃药很久了(本身就是个负面循环),现实生活中的杂事堆积,以及不得不在一个晚上之内接受并处理了好几件对今后几年计划可能有负面影响的消息。最后这点尤其不幸,因为虽然我记性惊人地差,但对这种又尴尬又不幸令人想挖个洞钻进去的事情是会记上一辈子的,每次回想起来都是新一轮的自我贬低。我只能尽量不去想。 + +后来当然是一切解决了。人生总是会一切解决的,我一直知道得很清楚,还会用这句话开导别人,但当局者迷也是事实。 + +很久以前在某处看过一个把心理健康比作橡皮筋的比喻,这些年来引用了很多次。令人愉快的事情发生会放松心灵这根皮筋,而负面的事会扯紧它;如果一直崩得太紧的话,总有一天心会失去弹性,或者干脆崩断。我猜测后者是更好的方式,毕竟我是长痛不如短痛的信奉者;很可惜在那之前我的心的皮筋似乎就已经不太保持着它的弹性了。借用最近读过的一篇小说里的话,我感觉我的心很多年前就是个死物了,这一路上有些人和事会让它开始跳动一阵子——那并不是它会重新活过来的保证,因为不知何时某个 trigger 会失灵,就像它开始时那么突然一样。说得跟爱情似的。我,虽然但是这世界上的所有借口,很容易拿各种事情跟爱情相比较。这是不是就是所谓的无可救药的浪漫主义者呢(并不是)。 + +我会非常乐意地承认这是我性格里的重大缺陷:比起真实存在的人,虚拟世界(小说,动画,游戏,等等)和其中的人更容易带给我长久的感情体验。因为一旦把大部分剧情看完了,那么里面的人物就不会产生太大变化;比起真实的人,她们更像时间长河里的一个切片,只要我的性格和口味不基因突变的话就能够一直喜欢下去,即使不再主动关注之后偶尔回想起来还能感受到温暖的余韵,足以照亮一个漫长的冬夜。而大部分真实的人,另一方面,会随着时间不断展露她们性格的无数个侧面,也会随着时间不断变化,这些新的信息和变化并不一定符合我的喜好,虽然会不会对她们自己的生活产生好的影响则是另一回事。此处允许我借用很久以前瓜瓜发给我看的 Daniel Sloss's life as a jigsaw puzzle 里的台词。无论是朋友还是恋人,几个人在一起久了,很容易会发现各自追求的东西和想去到的终点不一样;此时妳有两个问题要问自己:至今为止我们试图磨合的时间是否是浪费生命?我是否要继续浪费我的生命? + +看到这个视频已经是两三年前的事儿了,当时的醍醐感和对自己的释怀我直到现在还记得。这绝不是在否定探索过程的意义,毕竟,在那一段时间内我的心脏确实曾经跳动过。但强迫自己在热情已经消逝后继续撑着,从我数次个人经验来看(两个角度都有),也并不会有更多好事情发生了。我猜这也许就是暗恋回想起来最美好的原因:那个人永远停滞在记忆里的那一瞬间,没有上下文,没有其他角色,没有坏的回忆——像个精美的标本——跟虚拟世界里的人物其实并无差别。 + +至此,算是对最近的自己有个交待了。剩下的事情,就交给时间吧。 + +「旅程总有一天会迎来终点 , 不必匆忙。」 diff --git a/content/posts/2021-01-07-gains-and-losses-with-online-shopping.md b/content/posts/2021-01-07-gains-and-losses-with-online-shopping.md new file mode 100644 index 0000000..e3eb3e5 --- /dev/null +++ b/content/posts/2021-01-07-gains-and-losses-with-online-shopping.md @@ -0,0 +1,84 @@ +--- +author: loikein +published: "2021-01-07T13:09:00+01:00" +slug: 2021-01-07-gains-and-losses-with-online-shopping +categories: +- 购物 +title: 2020 年 12 月网络购物得与失(硬币包,骨传导耳机,代餐) +--- +试运营第二期。 + + + +## Kipling Creativity S Coin Purse (White Metallic) + +![](../images/2021-01-07-2020-nian-12-yue-wang-luo-gou-wu-de-yu-shi-ying-bi-bao-gu-chuan-dao-er-ji-dai-can-31F5TgslGkL._SX425_.jpg) + +就是个小包,稍微比两张信用卡并排放在一起再大一点点,但里面并没有这样的隔层。共有五个隔层,三大二小。正中间那层有额外的拉链,以及小隔层长宽都是放不下信用卡的。 + +这个系列我考虑好久了,以前是看 L +型号(也是五层)想着当随身电线包,后来发现不太需要,于是转而看小号的,感觉如果有个隔层很多的小包的话这个更实用。写的白色,我以为那个 +metallic +只是指送的钥匙扣不是毛绒绒的(其实有点想要毛绒绒的),但结果送来一看是光面涂层的那种材质。也行吧,略微防水了呢。 + +现在每层里放的东西: + +1. 润喉糖;耳塞;止痛药;咖啡杯套(以前出门经常用,结果最近完全没有在外面喝咖啡的机会) +2. (小格)手链(提醒自己在上班模式用,下班了就取下来的那种) +3. 两个 U 盘 +4. (小格)两个戒指 +5. 信用卡饭卡等等;一张纸币;几个硬币 + + + +## Aftershokz Aeropex (Lunar Grey) + +![](../images/2021-01-07-2020-nian-12-yue-wang-luo-gou-wu-de-yu-shi-ying-bi-bao-gu-chuan-dao-er-ji-dai-can-fee_325_225_png) + +之前曾经提到,[我就是那种传说中洗澡的时候也想听点什么的人](https://blog.loikein.one/2020/05/blog-post_51.html)。一直用亚马逊上随便找的便宜耳塞,便宜则已,时不时出点小毛病。双十二……啊不是,Cyber +Monday 的时候痛定思痛,决定买个骨传导耳机。那没得选,只能买韶音了。 + +韶音不同款耳机的防水水平不同,[一点简单的搜索](https://us.aftershokz.com/blogs/news/aeropex-vs-xtrainerz?_pos=1&_sid=830fc1904&_ss=r)之后发现只有 +Aeropex 和 Xtrainerz 足够洗澡用,而后者并不是蓝牙耳机,那又没得选了。 + +现在用了将近一个月,先说对于不同场景的感想: + +洗澡:实践证明骨传导即使最大音量(对耳朵不好不要模仿)也无法盖过花洒的声音,因此从第二次使用开始我都加戴耳塞了。然而附赠的耳塞是普通海绵耳塞,不防水的。我之前就有一副 Alpine +音乐耳塞(就是放在上面的包里的),但是如果没有类似辅助的话不太能洗澡用。 + +- 如果有耳塞的话,自带的耳塞 EQ + 还是调得挺好的,同时按音量加减键就能开关。 +- 另外,音乐耳塞的主要功能并不是防水,而是能够比较均匀地过滤所有频率的声音,不会有海绵耳塞那种雾蒙蒙的感觉,还能洗。除了价格之外完胜呢…… + +通勤: + +- 公交:依然音量问题,而且如果是坐巴士的话噪音比洗澡大多了,而且安全起见在外面不适合戴耳塞。だめだね…だめよ…だめなのよ… +- 走路/骑车:完美。 + +运动:没用过。我运动都是戴 AirPods,夏天凉快,冬天外面可以盖个耳罩。 + +蓝牙的感想:虽然说有所谓「双联模式」,但连接的两个设备必须**同时**处在蓝牙范围内,不然就会开始持续语音警告。因此同时连着手机和 +pad,然后出门的时候把 pad +放在家里这种操作是不可能的,导致事实上只能断开一个再连下一个。 + +私人感想:我每天屏幕看久了是会头痛的(跟咖啡因不足产生的头痛 CD +是独立的呢,恭喜贺喜),但是用其他耳机没注意过这个问题。现在发现,Aeropex +戴久了也会延续这个头痛,难道是因为……?脑壳振动……?(。) + + + +## Huel Hot & Savoury (Tomato & Herb; Mexican Chilli) + +![](../images/2021-01-07-2020-nian-12-yue-wang-luo-gou-wu-de-yu-shi-ying-bi-bao-gu-chuan-dao-er-ji-dai-can-huel_hot___savoury_320x.jpg) + +我到达这个产品的经历是这样的:思考屯粮 → 思考代餐 → +思考代餐粉可能并不等于完全食 → 打开 [完全食 - +Wikipedia](https://ja.wikipedia.org/wiki/%E5%AE%8C%E5%85%A8%E9%A3%9F) → +看到一个没见过的牌子 → 点进去官网发现有不是饮料或者糊糊的产品 → +立即购买(靠) + +我对糊糊本身不反对,但是从自己几年前的经历来看(以及科学,但主要是切身体验),长时间不吃固态食品会导致牙齿和肠胃功能弱化,然后如果突然又吃固态食品的话会很难受。当然搭配些水果之类的可能就没这个问题了但是总之……不太合适。 + +送个勺子一次两勺,可以直接热水冲泡或者微波炉加热,泡好之后呢看起来和吃起来都像一大碗比较稠的稀饭。一开始感觉有些淡,吃个一两次就习惯了。另外似乎是全素的,虽然我是肉食主义者,但既然都考虑吃代餐了说明对食物要求没那么高,那其实也不是不可以。味道是真的好。 + +以上。 diff --git a/content/posts/2021-02-04-gains-and-losses-with-online-shopping.md b/content/posts/2021-02-04-gains-and-losses-with-online-shopping.md new file mode 100644 index 0000000..fa44f33 --- /dev/null +++ b/content/posts/2021-02-04-gains-and-losses-with-online-shopping.md @@ -0,0 +1,36 @@ +--- +author: loikein +published: "2021-02-04T11:36:00+01:00" +slug: 2021-02-04-gains-and-losses-with-online-shopping +categories: +- 购物 +title: 2021 年 1 月网络购物得与失 +--- +妳以为我什么都没买,其实是我在其他地方花了些钱(aka +游戏氪金),不好意思买东西罢了。 + + +## Ringke Variation Laptop Stand + +{{< figure name="2021-02-04-shopping-1.jpg" alt="Ringke Variation Laptop Stand" >}} + +两年前纯粹是因为好看买了 elago Portable Flip Stand,但其实这货除了好看就没其他优点了,磁力很弱,容易歪来歪去,之类的。之前电脑送修,需要拆下来,再贴回去之后就老爱掉,终于受不了了。 + +对比了 MOFT(不是 Z 的普通版本)之后决定买这个是因为感觉折法相对简单一点,当然最主要是便宜。现在也用了将近一个月了,特别好,总之就是很省心,可以推荐。 + +## The Great Courses series + +{{< figure name="2021-02-04-shopping-2.jpg" alt="The Neuroscience of Everyday Life" >}} + +{{< figure name="2021-02-04-shopping-3.jpg" alt="The Science of Information" >}} + +{{< figure name="2021-02-04-shopping-4.jpg" alt="Cognitive Behavioral Therapy" >}} + +{{< figure name="2021-02-04-shopping-5.jpg" alt="The Story of Human Language" >}} + +朋友推荐了这个有声书系列,最近才想起来,刚好(。)Audible 里累积了四个积分,我就挑了四本从题目来看最感兴趣的。 + +当然买书如那什么读书如那什么,那我必然是下载了还没听的对吧。下次一定下次一定。 + + +没了。 diff --git a/content/posts/2021-02-22-shimeji-for-macos.md b/content/posts/2021-02-22-shimeji-for-macos.md new file mode 100644 index 0000000..ccc2610 --- /dev/null +++ b/content/posts/2021-02-22-shimeji-for-macos.md @@ -0,0 +1,65 @@ +--- +author: loikein +published: "2021-02-22T12:59:00+01:00" +lastmod: "2021-05-01 01:52:03.316 +0200" +slug: 2021-02-22-shimeji-for-macos +categories: +- 笔记 +tags: +- macOS +title: Shimeji(桌宠) for macOS +--- +English version: [Shimeji for Mac - wiki](https://wiki.loikein.one/computer/other-software/shimeji-for-mac) + +*** + +事情是这样的。2014 年以前我只有一台服役十多年的 ThinkPad,一旦开了 Shimeji 就不能开其他程序了(靠);而 2014 年以后我甚至不再拥有自己的 Windows 机了。同人界一直以来的通识是,Mac 不能用 Shimeji,为什么不能呢,不知道,有没有人试过呢,不知道,从古至今有没有成功过呢,也不知道。 + +但是昨晚偶尔刷推刷到了一个……十分可爱的 Shimeji。真的太可爱了。我马上决定在面试前夜抽出亿点点时间研究一下,务必让它出现在我的桌面上。 + +先说结果。我的电脑是 Intel Mac,但是有人提到过 10.16 也能用,这就不知道是 Intel 还是 ARM 了。 + +- 硬件:MacBook Pro (13-inch, 2018, Four Thunderbolt 3 Ports) +- 系统:macOS 10.15.7 +- CPU 使用:10% 左右 +- 内存占用:300 MB 左右 + +怎么说呢……虽然也就是一个 Chrome tab 的事儿(。)这没个好点的电脑还真不敢整天开着桌宠。另外这个占用量跟屏幕上的小人数量无关,无论有多少个在场都是差不多的。 + +更新:毛象网友要求了效果图,我简单录了一个。视屏里是接下来会用到的来自 [-Mac- 2PUS and 2PUK -Mac- Shimeji by lalala00000007 on DeviantArt](https://www.deviantart.com/lalala00000007/art/Mac-2PUS-and-2PUK-Mac-Shimeji-360524267) 的阿尔。 + +{{< video name="2021-02-22-shimeji-for-macos" >}} + +*** + +目前网上惟一还有用的教程是[这条推特](https://twitter.com/zkdlsoo/status/986176637946359808?s=20),但是坑也不是没有的。我整理了一下,以下是全过程。 + +1. 下载妳想要的 Shimeji,解压出来,放在(假设说) `folder1` 里面。 +2. 下载安装 [Java 6](https://support.apple.com/kb/DL1572?locale=en_US),有 Homebrew 的朋友可以使用 `$ brew install java6`。安装完无需重启。 +3. 前往 [-Mac- 2PUS and 2PUK -Mac- Shimeji by lalala00000007 on DeviantArt](https://www.deviantart.com/lalala00000007/art/Mac-2PUS-and-2PUK-Mac-Shimeji-360524267),下载 2P!England (single) 或者 2P!America (single) 中的任意一个,注意密码是不一样的(黑塔利亚,我的黑塔利亚) +4. 解压出来,放在 `folder2` 里面。 +5. 先运行一下试试看。右键 `Shimeji.app` 点选`显示包内容`,走到 `Shimeji.app/Contents/Resources/Java/`,双击运行 `Shimeji.jar`。黑塔小人出现了吗?反正在我的电脑上是出现了的。 +6. 建议此时右键 `Shimeji.jar`,点选`制作替身`,然后把替身剪切粘贴(`cmd-C`,`option-cmd-V`)到 `folder2` 的顶层,这样就不用每次都走来走去了。 +7. 把 `folder2` 里的 `img` 文件夹重命名一下,比如说改成 `img_2`。 +8. 复制 `folder1` 里的 `img` 文件夹,粘贴到 `folder2` 里。从这往后 `folder1` 就用不上了,可以删掉了。 + 1. 观察 `img_2` 的文件结构,它包含了一个 `icon.png` 和数量不等的 `shimeXX.png`。 + 2. 观察 `img` 的文件结构,如果跟 `img_2` 不一样的话(比如 `shimeXX.png` 放在一个单独的文件夹里之类的)照着改好,务必保持一致。 +9. 此时再运行 `Shimeji.jar` 试试,应该能看到妳希望的小人出现在桌面上了。如果没有就是 `img` 结构不对,啊,打回重做。 + +是不是很简单呢(河鳝的微笑) + +*** + +为不会日语的朋友翻译一下 Shimeji 的菜单,从上到下分别是: + +- 增加一只 +- 所有小人聚到一起 +- 清屏到只剩一只 +- 恢复窗口(至今没发现有什么用,它会动我的窗口吗?)(还真会!但是恢复不了,爱了) +- 退出 + +此外,Shimeji 运行的时候会在 Dock 里显示为名为 java 的图标。对这个图标右键`选项 > 分配给所有桌面`就可以实现切换 Space 的时候保留当前屏幕上的小人,不选的话就每个 Space +都单独计算)。如果小人刚好趴在一个不是最大化的窗口上面,关闭窗口或者切换 +Space 的时候就会掉下来,超可爱的啦。 + +終わり! diff --git a/content/posts/2021-04-13-quantum-love.md b/content/posts/2021-04-13-quantum-love.md new file mode 100644 index 0000000..74d7106 --- /dev/null +++ b/content/posts/2021-04-13-quantum-love.md @@ -0,0 +1,48 @@ +--- +author: loikein +published: "2021-04-13T19:48:00+02:00" +lastmod: "2021-04-28 23:10:42.052 +0200" +slug: 2021-04-13-quantum-love +categories: +- 随笔 +tags: +- 自述 +title: 量子之爱 +description: "对人类关系的扭曲理解之二。求求了您能一口气写完吗。" +--- +前文 1:[どこにも行けない人たち](../2020-12-12-i-am-not-going-anywhere/) + +前文 2:[稍微正常一点的近况报告,以及对生命和人类关系的扭曲理解](../2020-12-28-how-things-have-been-but-less-pessimistic/) + +已经是第三篇了呢,怎么还一篇比一篇长。人生连续剧? + +*** + +之前发生了两件让我思考好一阵子的事儿。一个是一位象友发了这段话: + +> 我的爱是不会消失的。\[…\] 除非我对另一个人的认知发生改变,我的爱才会消失。如果那个人还是我心目中的那个人,爱就不会消失。 + +这在我看来简直是天方夜谭。纵然每个人对爱的体验都是独特的,但我几乎没有经历过不会消失的爱,而且更多时候不是对方改变了,而是我自己改变了。再要细细追究的话,不是我改变了,而是我不知何时与为何对对方产生的爱,不知何时与为何又消失了。 + +这个博客也进入第四个年头了。一开始我把草稿箱当日记本用,因此草稿数量相当惊人。偶尔回看起来,想起自己也曾试图相信恒久不变的爱是存在的。但在这之后的几年间,我与女性男性都谈过恋爱,更是多年以来某位不具名亲戚的惟一指定恋爱顾问,要我说,其实我并不是真的摒弃了「永远」的概念,也不是觉得不存在能始终如一的人,但,占总人口比例是多少?需要多少年的时间来验证?在这期间又该如何保证自己这方不首先败给时间呢?差一年一个月一天一个时辰,都不算永远,还不如直接假装它不存在吧。 + +我并不总是「既然一定会结束那就干脆不要开始」派,但确实是「一旦我不想继续了就必须马上结束」派。开始恋爱可能是件相对简单的事情,因为我确实是有点儿[恋爱脑,或者说恋爱体质](../2017-07-01-romance-oriented/)(未公开,链接仅供自己参考)的。但是因为「爱消失了」这么文青(读作:扯蛋而且像不定时炸弹一样的原因,跟一个谈了几个月甚至几年的恋人分手,彼此的体验还确实都是有点蛋碎的。再进一步,在已经知道了自己就是这么飘忽的人的情况下,就连开始一段关系都仿佛是对彼此的不尊重和不负责任(我虽然是这么飘忽的人却也有这么严格的道德感,这真是一件奇怪的事情)。 + +在此我需要对吃了螃蟹的几位前任致以发自内心的歉意,我是个渣渣,我确实不配跟任何人在一起。 + +在快两年前的[这篇博文](../2019-09-09-community-of-lonly-lovages/)里,就已经表达过了这样的念头:「我必须完全忘记自己谈恋爱的可能性,完全摒弃爱情的概念」,才能获得自由和独立,才能不被自己的念头束缚着生活。这个想法到今天也没有改变过。所谓忘记就是完全忘记啊,忽略掉人类是一种可以当作恋爱或者性行为对象的存在。听起来挺中二或者说 dehumanising 的,但是,怎么说呢,对于我这种性倾向也一团乱麻的人而言,习惯之后还是蛮简单的。这个话题就要等我再有勇气一点之后才能公开谈论了。 + +*** + +另一件事是,另一位象友转载了毛姆《作家笔记》中的「世上有两种友谊(There are two kinds of friendship)」选段(南京大学出版社,13 ~ 14 页)。这本书挺容易找的,就不在这里贴了。 + +这是使我如醍醐灌顶的一篇文章,其实[前文 1](../2020-12-12-i-am-not-going-anywhere/)里就已经略微引用过了。用毛姆的话来说,我的友谊存在两个固有矛盾。第一:我分辨不出肉体本能所产生的友谊跟爱情之间的差别,而爱情非我所欲,因此如果基于肉体本能的友谊发生了的话我就会尽力忽略它。以前不懂这个道理,也没现在这么自闭,确实结交过不少由于本能而产生亲近感的朋友,但无一不是共同的环境瓦解(比如重新分班、毕业、转校之类的)而渐渐不再联系了。目前看来,仅就我自己而言,但凡不是出自知性(「个性,情感,活跃的思想」)的友谊都不能长久,这其实也包括了亲戚。 + +话题稍微扯远一点。我一直觉得「亲戚」这种关系是挺微妙的,因为与亲戚之间由于血缘的原因几乎必然产生本能的亲近感。但可能是我过于薄情吧,我觉得并不是说我们是亲属关系,我就必须和妳「搞好关系」。任何两个人之间的关系好都是互相选择的结果,哪怕是亲戚也得有这么个过程才行。远到八辈子打不着的堂表姐妹兄弟,近到父母孩子,我认为都必须有某种程度上的知性的互相认同,才可能有自然的良好的关系,不然就是硬拗,就恩搁那儿演,可能对方满意了,但我一点儿都不开心,这能算良好关系吗? +这么想想,当我的长辈还是有点恶心的,妳如果不能从知性上吸引我,我对妳就除了能拿到压岁钱和陪伴我喜欢的另外的亲戚的感激之外没有任何想法了,我跟妳拜年啊问候啊就跟给上班打卡的感觉没什么两样。但中国式的长辈,就是习惯把小辈当婴儿,什么都不说,但又指望对方能「懂自己」。开什么天大的玩笑,我都还不喜欢妳呢,我才不想费那个劲儿去懂妳。也怪不得我妈曾经骂我是怪物噢。她可能以为我不记得了,搞不好她自己都不记得了,毕竟都快过去二十年了,但是我一辈子都不会忘记她说「你这个怪物」的那个晚上。 +如果没有那一天,我现在会是这个性格吗?不好说,但是这件事确实在某种程度上助长了我的自我认同,感觉像被盖了个公章,理直气壮。这就是标准的叛逆吧。不过「叛逆」这个词难道不是暗含着「孩子是家长的所有物」的思想?算了,不展开了。 + +回到先前的话题。固有矛盾之二,我一直认为自己是个未确诊的 ADHD 患者,反应到性格上就是,我的思维从不停止漫无边际地运转,除非强迫自己集中或者耳机正在播放(这也是我喜欢音乐和播客的一小部分原因)。这不是个好事情,在入睡方面是个大问题,在与人交往上尤甚。妳要么得像扯着脱缰的野马一样扯着我的思维,或者自己也是个脱缰的野马,要么得顺着我乱跑。而且,因为不知道为什么的原因,我经常时不时想自己待着一会儿,在有其他非陌生人在场的情况下我根本无法进行创意活动,比如写发在这个博客里的随笔和诗,这是维持我心理稳定的重要手段。因此无论如何都还得「在两次会面之间留足时间」。说实话,这样的人不是没有,但是想要积极地寻找,体验也还是有点蛋碎的。种种原因,造就了我越来越少主动地在现实生活中结交别人,即使认识了新的熟人,也懒得费劲尝试着发展成更亲近的朋友。 + +有意思的是,网络交友却很容易满足我的社交需求,因为首先没有任何人会期待一个网友随时在线,所以想自己呆几天的时候只要不上线几天就可以了。而且越过网络,几乎根本不可能知道对方几个眼睛几个嘴巴,就更无从谈起由于肉体本能而产生亲近,因此网络交友本质上是知性的。这就非常舒服了。 +惟一的缺点可能是,我确实更喜欢跟朋友面对面交流。真的,我就没见过比我自己更难搞的人。_Ready Player One_ 的世界快点到来吧。 diff --git a/content/posts/2021-04-26-hugo-custom-css.md b/content/posts/2021-04-26-hugo-custom-css.md new file mode 100644 index 0000000..310550e --- /dev/null +++ b/content/posts/2021-04-26-hugo-custom-css.md @@ -0,0 +1,131 @@ +--- +author: loikein +published: "2021-04-26 22:25:05.631 +0200" +lastmod: "2021-05-03 15:22:55.905 +0200" +slug: 2021-04-26-hugo-custom-css-the-right-way +categories: +- 笔记 +tags: +- Hugo +title: 如何在 Hugo 中添加自定义 CSS +description: 又名:浪费生命的一百种方法 +--- +基本都是 rant,太长不想看的朋友可以直接拉到文章末尾看代码。 + +*** + +发现了这个,改天研究一下……:[Best way to include JavaScript libraries in Hugo sites - support - HUGO](https://discourse.gohugo.io/t/best-way-to-include-javascript-libraries-in-hugo-sites/13614/2) + +*** + +这并不是我用 Hugo 做的第一个网站,但[之前那个网站](https://notes.loikein.one/)内容非常之单一,主题也是我随便挑了一个,几乎只改了颜色就直接用了。 + +那个主题是 Yihui 改过的,可以添加自定义 CSS 代码,`head.html` 里面的 [layout 是这样的](https://github.com/yihui/hugo-lithium/blob/master/layouts/partials/head.html#L35-L37): + +```html +{{ range .Site.Params.customCSS }} + +{{ end }} +``` + +示例 config: + +```yaml +params: + customCSS: + - "/css/1.css" + - "/css/2.css" +``` + +示例 file tree: + +``` +static/ +└── css + ├── 1.css + └── 2.css +``` + + +这个方法代码简洁,逻辑清晰,可以说是什么都好,但是有一点不好:它跟 Hugo 的文件结构背道而驰,导致 Hugo 内置的很多方便的方程(比如 CSS minifier)无法使用。 + +*** + +我一直没怎么在意过这个事情,直到昨天查了一下怎么给单独页面添加 CSS([Using an additional specific css style for a page - HUGO](https://discourse.gohugo.io/t/using-an-additional-specific-css-style-for-a-page/26547)),突然发现诶,别人添加自定义 CSS 的代码跟我的好像不太一样…… + +这位名为 Polarhardboiled 的网友是这么写的: + +```html +{{ with $.Resources.GetMatch "**.css*" }} +{{ $style := . | minify | fingerprint }} + +{{ end }} +``` + +我第一反应是,哦,Hugo 好像是有内置 CSS minifier 方程的,那我也像她那样加上 `| minify | fingerprint` 不就行了?对不起,无论怎么写都是 Hugo server error。 + +首先点醒我的是这个 issue: +[Minification example not working · Issue #6646 · gohugoio/hugo](https://github.com/gohugoio/hugo/issues/6646)。其中提到,Hugo 的 CSS 和 JS 文档(resources,哈)应该放在 `assets/` 而不是 `static/` 下面。 + +{{< sticker name="question.jpg" h=120 animated="false" >}} + + + +好,那我把 `css/` 挪到 `assets/` 下面总行了吧? +对不起,`GetMatch` 只能 get 到一个文件。我甚至不知道为什么这么重要的事情没有在 Hugo 文档的任何一页写到,而是藏在八百年前的一个 issue 里:[The big assets handling / resource transformation funcs naming thread · Issue #4854 · gohugoio/hugo · GitHub](https://github.com/gohugoio/hugo/issues/4854) + +{{< sticker name="scream" h=200 >}} + +为表达我的愤慨,在此全文抄写该表格。事实上,最重要的前三个方程完全没有详细文档。人干事?恩?(注意大小写有意义,比如 `Resources.GetMatch` 和 `resources.GetMatch` 是两个不同的方程,大写的 `Resources` 是给 [Page Bundle](https://gohugo.io/content-management/page-resources/) 用的。) + +| Current Name | What is it | +|------------|--------------| +| resources.Get | Creates a new `Resource` object given a path to a file in `/assets` (configurable). This also works for images that you can then scale. Anything with a MIME type recognized by Hugo (and you can define your own if you want). | +| resources.GetMatch | Same as `resources.Get`, but uses pattern matching to find the first match. | +| resources.Match | Create a slice of `Resource` objects matching the given pattern. See `resources.Concat` for a function that could use this. | +| resources.ToCSS | Transform a `Resource` to CSS based on the source MIME type. In the first version, we will support SCSS. An implementation note here is that we will persist the result of this transformation, so if you later run this from a non-SASS-enabled Hugo, it will still work. When we finally get some proper plugin support in Hugo, these resource transformations will be candidates to queue up and send to external processors. | +| resources.PostCSS | See [#4858](https://github.com/gohugoio/hugo/issues/4858) | +| resources.Minify | Minifies the given `Resource` based on the source MIME type. Currently supports `css`, `js`, `json`, `html`, `svg`, `xml`. It will get a new `RelPermalink` and `Permalink`, e.g. `/css/main.min.css`. | +| resources.Fingerprint | Creates a fingerprinted version of the given `Resource`; it will get a new `RelPermalink` and `Permalink`, e.g. `/css/main.eae6b4ebececc2bbd7490966a5e01bcc.css`. It defaults to `sha256`, but you can pass either `md5`, `sha256` or `sha512` as an argument. | +| Integrity | Available as `.Data.Integrity` on fingerprinted resources. See [Subresource Integrity - Web security \| MDN](https://developer.mozilla.org/en-US/docs/Web/Security/Subresource_Integrity). Note that if you want the `Integrity`, but don't care about the fingerprinting (aka cache-busting part), you can just apply the fingerprint function, and just use `.Data.Integrity` (i.e. not use `RelPermalink` etc.) | +| resources.Concat | Concatenates a list of `Resource` objects. Think of this as a poor man's bundler. | +| resources.ExecuteAsTemplate | Parses and executes the given `Resource` and data context (e.g. `.Site`) as a Go template. Use your imagination for use cases for this one. | +| resources.FromString | Create a `Resource` from a string. | + +*** + +总之,浪费了一些生命,[再学了一点 `resources.Concat`](https://discourse.gohugo.io/t/combining-css-files-into-one-file/20380/4) 之后,以下是最终版本: + +```html +{{ if .Site.Params.customCSS }} +{{ $style := resources.Match "css/**.css" | resources.Concat "custom.css" | minify | fingerprint }} + +{{ end }} +``` + +当然理论上也可以直接用 SCSS 啊,改一下 match,再在 `minify` 前加上 `toCSS | ` 就可以了。 + +示例 config: + +```yaml +params: + customCSS: true +``` + +示例 file tree: + +``` +assets/ +└── css + ├── 1.css + └── 2.css +``` + +以上。教练我一天之内都不想写代码了。 diff --git a/content/projects.md b/content/projects.md new file mode 100644 index 0000000..788df1d --- /dev/null +++ b/content/projects.md @@ -0,0 +1,59 @@ +--- +author: loikein +published: "2020-05-31T16:55:00.000+02:00" +lastmod: "2020-05-31T16:55:25.462+02:00" +slug: projects +tags: +- pages +title: 个人项目 +_build: + list: never +--- + +## [编程](https://github.com/loikein) + +![Github Calendar](https://ghchart.rshah.org/loikein) + + +## [摄影](https://www.instagram.com/loikein/) + + +## 翻译 + +### 诗歌 + +- [英译中:Litany in Which Certain Things Are Crossed Out by Richard Siken](https://loikein.blogspot.com/2019/06/litany-in-which-certain-things-are.html) + + +### 歌词 + +- [日译中:たった 1 つの想い by KOKIA](/posts/2016-06-23-tatta-hitotuno-omoi-by-kokia/) +- [日译中:陽炎 by 鬼束ちひろ](/posts/2019-09-14-kagerou-by-onitsuka-chihiro/) +- [日译中:黒い羊 by 欅坂 46](/posts/2019-09-20-kuroi-hitsuji-by-keyakizaka46/) +- [日译中:ヒッチコック by ヨルシカ](/posts/2019-10-05-hitchcock-by-yorushika/) +- [日译中:Sincerely, by THE CHARM PARK](/posts/2019-10-26-sincerely-by-the-charm-park/) +- [日译中:愛を両手に by ACIDMAN](/posts/2019-11-10-ai-wo-ryoute-ni-by-acidman/) +- [日译中:青春脱出速度 by 神様、僕は気づいてしまった](/posts/2019-12-14-seishun-datshutsu-sokudo-by-kami-sama-boku-wa-kizuiteshimatta/) +- [日译中:Apologies (feat.sleepy.ab) by 福原美穂](/posts/2020-03-06-apologies-feat-sleepy-ab-by-fukuhara-miho/) + + +### 短文 + +- [英译中:Constitution of the Republic of Užupis](/posts/2019-12-15-constitution-of-the-republic-of-uzupis/) +- [英译中:Unlocking the Creative Body by Elliott Fienberg](/posts/2020-02-09-unlocking-the-creative-body-by-elliott-fienberg/) + + +## 睡不着博物馆 + +在失眠的夜晚制作简短的博物列表,包括音乐、图片、电影、书籍等。 +It's good to remember stuff. + +1. [S.H.E.](/posts/2018-01-25-sleepless-museum-001-s-h-e/) +2. [国产电视剧插曲](/posts/2018-01-25-sleepless-museum-002-songs-from-chinese-dramas/) +3. [华文字体](/posts/2018-01-29-sleepless-museum-003-sinotype-fonts/) +4. [Apple Person](/posts/2018-01-30-sleepless-museum-004-apple-person/) +5. [Japan shopping list](/posts/2018-05-21-sleepless-museum-005-japan-shopping-list/) +6. [早稻田大学的自贩机](/posts/2018-09-20-sleepless-museum-006-vending-machines-at-waseda/) +7. [Westlife](/posts/2019-02-14-sleepless-museum-007-westlife/) +8. [YouTubers](/posts/2019-08-29-sleepless-museum-008-youtubers/) +9. [电子设备](/posts/2020-01-31-sleepless-museum-009-digital-gadgets/) diff --git a/content/toolbox.md b/content/toolbox.md new file mode 100644 index 0000000..4f73260 --- /dev/null +++ b/content/toolbox.md @@ -0,0 +1,212 @@ +--- +author: loikein +published: "2020-09-07T15:20:00.000+02:00" +lastmod: "2020-11-15T17:15:06.812+01:00" +slug: toolbox +tags: +- pages +title: 工具箱 +_build: + list: never +--- + +[实验田](/playground/) + +## 下载器 + +- ~~[百度网盘直链下载助手](https://github.com/syhyz1990%20/baiduyun)~~ 已死 +- ~~[PanDownload 网⻚版](https://www.baiduwp.com/)~~ 已死 +- [微博秒拍视频下载](https://weibomiaopai.com/) +- ~~[本地 YouTube 下载器](https://greasyfork.org/zh-%20CN/scripts/369400-local-youtube-downloader) 高清需要自行合成~~ +- [soimort/you-get](https://github.com/soimort/you-get) YouTube、b 站、各种各样的下载器 +- [Youtube Subtitle Downloader v20](https://greasyfork.org/zh-CN/scripts/5368-youtube-subtitle-downloader-%20v20) +- [视频解析网](https://www.parsevideo.com/) +- [ViDL for Mac](https://omz-software.com/vidl/) \- 下载 YouTube 的小软件,有转码、提取音频功能 + + +## 汉语辞典 + +- [漢典](https://www.zdic.net/) +- [古漢語詞源字典(網絡版)](http://edoc.uchicago.edu/edoc2013/zh_digitaledoc_index.php) +- [历版辞海](http://chlb.cishu.com.cn/) + + +## 知网工具 + +- [iData - 知识检索](https://www.cn-ki.net/) (需要 注册,每天可预览 / 下载 5 篇) +- [科技文献 \- 上海研发公共服务平台](http://lib.sstir.cn/) (需要手机注册,注册后会给一 些积分,登录也会给积分) + + +## 电子书 + +- [Jiumo Search 鸠摩搜索](https://www.jiumodiary.com/) +- [i-Book.in](https://book.tstrs.me/) \- 中文 PDF +- [Library Genesis](http://93.174.95.27/) +- [Library Index | Memory of the World](https://www.memoryoftheworld.org/blog/2014/10/28/index/) +- [AudioBook Bay](http://abbaudiobooks.com/) (需要注册,Torrent 账户是免费的) +- [扫地僧的橱柜](https://ebooksplan.club/) \- 每周一书,etc +- [LibriVox | free public domain audiobooks](https://librivox.org/) + + +## 博文美化 + +- [GitHub Gist](https://gist.github.com/) \- 代码语法高亮 (~~纠结过程:[博文代码高亮及针对本博客的显示优化](https://loikein.blogspot.com/2018/09/blog-post.html)~~) +- [Blogger 归档页面考](https://loikein.blogspot.com/2018/11/blogger.html) +- [把链接做成卡片形式:一个纯 html 的尝试](https://loikein.blogspot.com/2018/11/html.html) + + +## 字体 + +- [Google Webfonts Helper](https://google-webfonts-helper.herokuapp.com/fonts) +- [Canva Font Combinations](https://www.canva.com/font-combinations/) \- 英文字体凑对 +- [Fonts In Use – Type at work in the real world.](https://fontsinuse.com/) \- 英文字体组合实例 +- [Verified Logo Fonts - Font in logo](https://www.fontinlogo.com/verified) \- 品牌标志中的字体 +- [Home - Free Faces](https://freefaces.gallery/) \- 一些免费英文字体 +- [Open Foundry](https://open-foundry.com/) \- 一些开源英文字体 +- [The Ultimate Oldschool PC Font Pack: Font Index](https://int10h.org/oldschool-pc-fonts/fontlist/) \- 旧电脑的终端英文字体 +- [Ugly Gerry](https://www.uglygerry.com/) \- Gerrymandering 字体 +- [Shake - The Typeface with Parkinson's](https://writewithparkinsons.com/) +- [フォント配布ページ – たぬきフォント](https://tanukifont.com/category/font/font-download/) \- 自由字体设计师 +- [Maniackers Design](https://mksd.jp/designfont.html) \- 自由/免费字体设计工作室(需确认商用许可) +- [2020 年用、日本語のフリーフォント 418 種類のまとめ](https://coliss.com/articles/freebies/japanese-free-fonts.html) +- [RAPTORTYPE](https://microraptor.booth.pm/) \- 字体设计师的商店,有免费的 +- [〓(ぼんのう)堂](https://shokaki.booth.pm/) \- 字体设计师的商店,有免费的 +- [Free Fonts | HvD Fonts](https://www.hvdfonts.com/fonts/free) \- 字体设计工作室的商店(免费部分) + + +## 配色 + +- [Accessible Colors | WCAG 2.0 AA and AAA color contrast checker](https://accessible-colors.com/) \- 检查对比度,建议一个替换颜色 +- [Tanaguru Contrast-Finder](https://contrast-finder.tanaguru.com/) \- 检查对比度,建议一堆替换颜色 +- [Color.review](https://color.review/) \- 检查对比度,显示色盘,网页预览 +- [Data Viz Color Palette Generator (for Charts & Dashboards)](https://learnui.design/tools/data-color-picker.html) \- 定义两个颜色,然后获得 1 - 6 个过度色 +- [chroma.js palette helper](https://gka.github.io/palettes/) \- 定义 n 个颜色,然后获得 n 个过度色 +- [Happy Hues - Curated colors in context.](https://www.happyhues.co/) \- 固定色盘,网页预览 +- [Tailwind Ink](https://tailwind.ink/) \- Colour scheme 生成器 +- HSL 色彩空间 + - [HSL Color Picker - by Brandon Mathis](http://hslpicker.com/#00ffb7) \- HSL 色盘 + - [HSL Random Color Generator](http://www.mattgroeber.com/utilities/random-color-generator/) \- 随机 HSL 生成器 +- 孟塞尔颜色系统 & OSA-UCS 统一色标 + - [Munsell Color Palette](http://pteromys.melonisland.net/munsell/) \- 非常全面的孟塞尔色盘 + - [Virtual Munsell Color Wheel)](http://www.andrewwerth.com/color/) \- 更简洁实用的孟塞尔色盘 + - ~~[Munsell for Designers](http://projects.kumpf.cc/projects/MunsellForDesigners/index.html) \- 用一个 Hex 生成颜色系统~~ Hue friends 非常不准 + - [Optical Society of America Uniform Color Scales (OSA-UCS)](http://handprint.com/HP/WCL/IMG/OSA/index.html) \- OSA-UCS 色标全图 + - [RGB Chart & Multi Tool](http://www.perbang.dk/rgb/) \- Hex → 孟塞尔 + - [Hex Color Codes, Paint Matching and Color Picker](https://encycolorpedia.com/) \- 各种 ⇄ 孟塞尔 +- CIELAB / CIELUV + - [CIELAB and CIECAM02 color picker](https://rufflewind.com/_urandom/colorpicker/) \- 色盘 + - [Lch and Lab colour and gradient picker — David Johnstone](http://davidjohnstone.net/pages/lch-lab-colour-gradient-picker) \- 色盘 & 渐变生成器 + - [HSLuv - Human-friendly HSL](https://www.hsluv.org/) \- CIELUV 色盘 + - [Colorpicker for data | tristen](http://tristen.ca/hcl-picker/#/hlc/6/1/15534C/E2E062) \- 渐变生成器 + + +## 图标 + +- [favicon 制作](https://tool.lu/favicon/) +- [Zondicons](http://www.zondicons.com/icons.html) +- [CSS Icons](https://css.gg/app) \- 纯 CSS 制作的各种图标,[代码开源](https://github.com/astrit/css.gg) +- [API for Web Icons | SVGBox.net](https://svgbox.net/) \- 纯 SVG 制作的各种图标/国旗/动画 +- [icono | Pure CSS icons](https://saeedalipoor.github.io/icono/) \- 另外一个, [代码在这里](https://github.com/saeedalipoor/icono) + + +## 背景 + +- [Cool Backgrounds](https://coolbackgrounds.io/) \- 渐变/三角背景生成器 +- [Patternizer](https://patternizer.com/xbbh) \- 条纹/格子背景生成器 +- [bansal-io/pattern.css](https://github.com/bansal-io/pattern.css) \- CSS 条纹/格子/点点背景 +- [Hero Patterns](https://www.heropatterns.com/) \- 花纹背景生成器 + + +## SVG +- [Blobmaker](https://www.blobmaker.app/) \- 可爱泡泡生成器 +- [SvgPathEditor](https://yqnn.github.io/svg-path-editor/) +- [Get Waves – Create SVG waves for your next design](https://getwaves.io/) \- 波浪生成器 + + +## CSS + +- [Interactive CSS Grid Generator | Layoutit Grid](https://grid.layoutit.com/) \- CSS Grid 生成器 +- [Interactive CSS Cheat Sheet](https://htmlcheatsheet.com/css/) \- 偏怀旧效果的 CSS 生成器 +- [Neumorphism/Soft UI CSS shadow generator](https://neumorphism.io/#55b9f3) \- 新渐变主义(自译)效果的按钮生成器 +- [CSS text-stroke generator (text-shadow hack)](https://owumaro.github.io/text-stroke-generator/) \- 文字描边生成器 +- [Make a smooth shadow, friend.](https://brumm.af/shadows) \- 美丽阴影生成器  +- [Box Shadows - Generate CSS Box Shadows](https://box-shadows.co/)\- 稍微简单一点的阴影生成器 +- [Fancy Border Radius Generator](https://9elements.github.io/fancy-border-radius/) \- 简单泡泡生成器 +- [Web Design Experiments by Jen Simmons](https://labs.jensimmons.com/) \- CSS 的排版可能性 +- [Email Design Reference](https://templates.mailchimp.com/) \- 邮件排版工具 +- [The CSS Cascade](https://wattenberger.com/blog/css-cascade) \- 一些 CSS 挑战 +- [KakaCss - 快速生成 Css 样式](https://renzhezhilu.gitee.io/kakacss/) + + +## 设计 + +- [Open Peeps, Hand-Drawn Illustration Library](https://www.openpeeps.com/) \- 小人头像/半身/全身像生成器 +- [Stubborn - Free Illustrations Generator](https://stubborn.fun/) \- 有脸小人生成器 +- [Humaaans: Mix-&-Match illustration library](https://www.humaaans.com/?ref=producthunt) \- 无脸小人生成器 +- [Illustrations | unDraw](https://undraw.co/illustrations) \- 各种小人插画 +- [Hall of Fame — Pages](https://www.pages.xyz/) \- 设计实例,按页面类型分类 +- [Land-book - the finest hand-picked website inspirations](https://land-book.com/) \- 设计实例,按网站类型分类 +- [SVG-Optimiser](https://petercollingridge.appspot.com/svg-optimiser) +- [Featured Figma Plugins - tovi.fun](https://figma.tovi.fun/) \- Figma 插件推荐(中文) +- [Meta Tags — Preview, Edit and Generate](https://metatags.io/) \- SEO 预览 +- [PageSpeed Insights](https://developers.google.com/speed/pagespeed/insights/?hl=zh-cn) \- 网站测速 + + +## LaTeX 速查 + +- [关于 Pages 文稿、Numbers 表格、Keynote 讲演和 iBooks Author 中的 LaTeX 和 MathML 支持 - Apple 支持](https://support.apple.com/zh-cn/HT202501) +- [常用数学符号的 LaTeX 表示方法](http://mohu.org/info/symbols/symbols.htm) +- [List of LaTeX mathematical symbols - OeisWiki](https://oeis.org/wiki/List_of_LaTeX_mathematical_symbols) +- [Symbols for Preference Relations](http://www.oeconomist.com/blogs/daniel/wp-content/uploads/2011/04/pref_symbols.pdf) +- [Math-Symbols-in-LaTeX/LaTeX-Mathematical-Symbols-Manual.pdf](https://github.com/polossk/Math-Symbols-in-LaTeX/blob/master/LaTeX-Mathematical-Symbols-Manual.pdf) +- [LaTeX and AMS-LaTeX Symbols](https://pic.plover.com/MISC/symbols.pdf) +- [The Comprehensive LaTeX Symbol List](http://tug.ctan.org/info/symbols/comprehensive/symbols-a4.pdf) \- 全表,不到必要的时候不要打开 +- [Online LaTeX Editor](https://latexbase.com/) \- LaTeX 测试 +- [LaTex Style Files](https://web.stanford.edu/~chadj/latex2.html) \- Charles I. Jones 教授的 LaTeX 论文模板 +- [LaTeX Templates](http://www.latextemplates.com/) \- 一大堆很好看的 LaTeX 模板 +- [TikZ and PGF examples](http://www.texample.net/tikz/examples/) \- 一大堆 TikZ 画图模板 + +## 命令行美化/工具 + +- [romkatv/powerlevel10k: A Zsh theme](https://github.com/romkatv/powerlevel10k) \- zsh 主题,设置很多 +- [Gogh - Color Scheme](https://mayccoll.github.io/Gogh/) \- 挑个颜色 +- [dvorka/hstr: bash and zsh shell history suggest box](https://github.com/dvorka/hstr) \- 管理命令历史 +- [Midnight Commander](http://midnight-commander.org/) \- 命令行里的文件管理器 +- [soimort/you-get: Dumb downloader that scrapes the web](https://github.com/soimort/you-get) \- 下载一切视频 + + +## 免登录在线 IDE + +- [jsconsole](https://jsconsole.com/) \- JavaScript +- [JS Bin - Collaborative JavaScript Debugging](https://jsbin.com/?html,css,js,console,output) \- HTML, CSS & JavaScript +- [Repl.it - Online Python Editor and IDE](https://repl.it/languages/python3) \- Python +- [DataCamp Light](https://github.com/datacamp/datacamp-light) \- R + +## 其他编程相关 + +- [Unminify JS, CSS and HTML Code](https://unminify.com/) \- 扩展最小化代码 +- [Unicode codepoint lookup/search tool](http://unicode.scarfboy.com/?s=m%CE%B1%D1%95ter) \- 检查看到的字是不是妳想的那个字 +- [Epoch Converter - Unix Timestamp Converter](https://www.epochconverter.com/) +- [Licenses | Choose a License](https://choosealicense.com/licenses/) +- [GitHub Flavored Markdown language IDs](https://github.com/jmm/gfm-lang-ids/wiki/GitHub-Flavored-Markdown-(GFM)-language-IDs) +- [I18n Translation Search Engine| Free i18n Tools for App&Web](https://i18ns.com/index.html) \- 本地化(全球化)速查 +- [Man Pages | ManKier](https://www.mankier.com/) \- `man` 速查 + +## 杂项 + +- [browser tab notepad](https://loikein.blogspot.com/2018/10/browser-tab-notepad.html) +- [Mac 重装清单](https://loikein.blogspot.com/2018/08/mac.html) +- [Photopea | Online Photo Editor](https://www.photopea.com/) +- [全角半角変換ツール](https://so-zou.jp/web-app/text/fullwidth-halfwidth/) +- [中国語カタカナ変換](https://dokochina.com/katakana.php) +- [Free Online OCR - convert PDF to Word, Images to text, JPEG to Word](https://www.onlineocr.net/zh_hans/) \- 在线图片 OCR +- [jbarlow83/OCRmyPDF](https://github.com/jbarlow83/OCRmyPDF) \- 本地 PDF OCR,支持多语言混排 +- [Test if a site is blocked in China](https://www.comparitech.com/privacy-security-tools/blockedinchina/) +- [玄派中文人名生成器](https://www.xuanpai.com/tool/names?xing=&ming=&name_num=3&sex=3) +- [ColouriseSG](https://colourise.sg/) \- 给黑白照片上色 +- [Sierra Death Generator](http://deathgenerator.com/#ugg) \- 各种游戏的画面生成器 +- [PineTools](https://pinetools.com/) \- 杂七杂八的小工具,还没细看,先马着 +- [Research Tools](http://openmetric.org/tool/) \- 各种学术研究/找资料相关工具 +- [Complete list: Plug, socket & voltage by country - World Standards](https://www.worldstandards.eu/electricity/plug-voltage-by-country/) \- 世界各地的瓦数/插头形状 +- [免费在线视频压缩工具](https://www.apowersoft.cn/compress-video-online) + diff --git a/i18n/de.yaml b/i18n/de.yaml new file mode 100644 index 0000000..ef8091d --- /dev/null +++ b/i18n/de.yaml @@ -0,0 +1,2 @@ +- id: last_mod_on + translation: Zuletzt bearbeitet am diff --git a/i18n/en.yaml b/i18n/en.yaml new file mode 100644 index 0000000..e6279b5 --- /dev/null +++ b/i18n/en.yaml @@ -0,0 +1,4 @@ +- id: last_mod_on + translation: Last modified on +- id: published_on + translation: Pulished on diff --git a/i18n/fr.yaml b/i18n/fr.yaml new file mode 100644 index 0000000..3f3cdb4 --- /dev/null +++ b/i18n/fr.yaml @@ -0,0 +1,2 @@ +- id: last_mod_on + translation: Dernière modification le diff --git a/i18n/zh-hant.yaml b/i18n/zh-hant.yaml new file mode 100644 index 0000000..75ffce5 --- /dev/null +++ b/i18n/zh-hant.yaml @@ -0,0 +1,2 @@ +- id: last_mod_on + translation: 上次修改於 diff --git a/i18n/zh.yaml b/i18n/zh.yaml new file mode 100644 index 0000000..fbe19d6 --- /dev/null +++ b/i18n/zh.yaml @@ -0,0 +1,8 @@ +- id: last_mod_on + translation: 最后修改: +- id: published_on + translation: 发布时间: +- id: no_newer_posts + translation: 这就是最新的文章了。 +- id: no_older_posts + translation: 没有更黑的黑历史啦。 diff --git a/layouts/_default/archive-1.html b/layouts/_default/archive-1.html new file mode 100644 index 0000000..5881b3c --- /dev/null +++ b/layouts/_default/archive-1.html @@ -0,0 +1,49 @@ +{{ define "main" }} +
+
+
+
+
{{ .Title }}
+
+ +
+
+ +{{ .Content }} + +{{ $type := .Type }} +{{ $.Scratch.Set "count" 1 }} + + {{ range (.Site.RegularPages.GroupByDate "2006") }} + {{ if and (gt .Key 1) (gt (where .Pages "Type" $type) 0) }} + + {{ range (where .Pages "Type" $type) }} + {{ if (eq ($.Scratch.Get "count") 1) }} + {{ $.Scratch.Set "count" 0 }} +

{{ .Date.Format "2006" }}

+ {{ end }} + {{ end }} + + {{ $.Scratch.Set "count" 1 }} + + + + {{ end }} +{{ end }} + +
+
+
+
+
+{{ end }} diff --git a/layouts/_default/archive.html b/layouts/_default/archive.html new file mode 100644 index 0000000..992cfac --- /dev/null +++ b/layouts/_default/archive.html @@ -0,0 +1,45 @@ +{{ define "main" }} +
+
+
+
+
{{ .Title }}
+
+ +
+
+ +{{ .Content }} + +{{- $type := .Type -}} + +{{- range (.Site.RegularPages.GroupByDate "2006") -}} + +{{- $articles := (where .Pages "Type" $type) -}} + +{{- $articles_count := len $articles -}} + +{{ if and (gt .Key 1) (gt $articles_count 0) }} +{{- range $index, $value := (where .Pages "Type" $type) -}} + {{ if not $index }} + +

{{ .Date.Format "2006" }} / {{ $articles_count }} post{{ if ne $articles_count 1 }}s{{ end }}

+ +{{ end }} +{{ end }} + +
+
+
+
+
+{{ end }} diff --git a/layouts/_default/section.html b/layouts/_default/section.html new file mode 100644 index 0000000..ef65b71 --- /dev/null +++ b/layouts/_default/section.html @@ -0,0 +1,36 @@ +{{ define "main" }} +
+
+ {{ range .Paginator.Pages.GroupByDate "2006" }} + +
+
+
+
+ {{ .Key }} / + +
+
+
+
+
+ {{ range .Pages }} + +
+
+
+
+ {{.Title}} +
+ {{ partial "post-item-meta.html" . }} +
+
+
+
+ {{ end }} + {{ end }} +
+
+ +{{ end }} diff --git a/layouts/_default/single.html b/layouts/_default/single.html new file mode 100644 index 0000000..7f12ff0 --- /dev/null +++ b/layouts/_default/single.html @@ -0,0 +1,127 @@ +{{ define "main" }} +
+
+
+ {{ $post_class := "post-head-wrapper-text-only"}} + {{ $featured_image := .Params.featured_image }} + {{ if $featured_image }} + {{ $post_class = "post-head-wrapper"}} + {{ end }} + +
+
+
{{- .Title -}}
+ {{- if .Params.description -}} +
+ {{- .Params.description -}} +
+ {{- end -}} + +
+
+ +
+ {{ if .Params.enableVue }} +
+ {{ else }} +
+ {{ end }} + {{.Content}} +
+
+
+ + {{ if ne .Params._build.list "never"}} + + {{ end }} +
+ {{ if eq .Params.comment false }} +

+ {{ i18n "comments_disabled" }} +

+ {{ else }} + {{- partial "comment.html" . -}} + {{ end }} +
+
+
+
+{{ end }} diff --git a/layouts/_default/taxonomy.html b/layouts/_default/taxonomy.html new file mode 100644 index 0000000..87340d0 --- /dev/null +++ b/layouts/_default/taxonomy.html @@ -0,0 +1,44 @@ +{{ define "main" }} +
+
+
+
+
+
+ {{.CurrentSection.Title}} / {{ .Title }} / + {{ $pageCount := len .Pages }} + {{ $pageCount }} post{{ if ne $pageCount 1 }}s{{ end }} +
+
+
+
+ {{- range .Paginator.Pages -}} + +
+
+
+
+ {{.Title}} +
+ {{ partial "post-item-meta.html" . }} +
+ {{ $featured_image := .Params.featured_image }} + {{ if $featured_image }} + {{ $image := .Resources.GetMatch (.Params.featured_image) }} +
+
+
+ {{ end }} +
+
+
+ {{- end -}} +
+
+{{ end }} diff --git a/layouts/_default/terms.html b/layouts/_default/terms.html new file mode 100644 index 0000000..215e80a --- /dev/null +++ b/layouts/_default/terms.html @@ -0,0 +1,32 @@ +{{ define "main" }} +
+
+ +
+
+
+
+ {{.Title}} / +
+
+
+
+
+ + {{ range .Paginator.Pages }} + +
+
+
+
+ {{.Title}} +
+
+
+
+
+ {{ end }} +
+
+ +{{ end }} diff --git a/layouts/partials/head.html b/layouts/partials/head.html new file mode 100644 index 0000000..1468c8d --- /dev/null +++ b/layouts/partials/head.html @@ -0,0 +1,136 @@ + +{{.Title}} - {{ .Site.Params.title }} + +{{ $description := .Params.description}} +{{if .IsHome}} + {{ $description = .Site.Params.description}} +{{end}} + + + + + + + + + + + +{{if .Site.Params.enableOpenGraph}} +{{ template "_internal/opengraph.html" . }} +{{end}} + + +{{if .Site.Params.enableTwitterCards}} +{{ template "_internal/twitter_cards.html" . }} +{{end}} + + +{{ if .Site.GoogleAnalytics }} +{{ template "_internal/google_analytics.html" . }} +{{ end }} + + +{{ if .Params.noindex }} + +{{ end }} + + + + + + + + +{{if .Site.Params.manifest}} + +{{end}} + +{{ if .Site.Params.favicon }} + + +{{ end }} + +{{ $styles := resources.Get "scss/journal.scss" | toCSS | minify | fingerprint }} + + +{{ if not .Site.Params.disableDarkmode }} +{{ $darkmode := resources.Get "scss/dark-mode.scss" | toCSS | minify | fingerprint }} + +{{ end }} + + +{{ if .Site.Params.customCSS }} +{{ $style := resources.Match "css/**.css" | resources.Concat "custom.css" | minify | fingerprint }} + +{{ end }} + + +{{ with $.Resources.GetMatch "**.css" }} +{{ $style := . | minify | fingerprint }} + +{{ end }} + + + + +{{ if .Params.enableMathJax }} + {{ partial "mathjax.html" . }} +{{ end }} + +{{ if and (not (.Params.disableToC) ) (.IsPage) }} + {{ if .Site.Params.disableAutoCollapse }} + + {{ else }} + + {{ end }} +{{ end }} + +{{ if and (.Site.Params.enableGitalk) (.IsPage) }} + + + + +{{ end }} + +{{ if and (.Site.Params.livereId) (.IsPage) }} + +{{ end }} + +{{ if and (.Site.Params.enableValine) (.IsPage) }} + +{{ end }} + +{{ if .Site.Params.disqusShortname }} + +{{ end }} + + diff --git a/layouts/partials/post-item-meta.html b/layouts/partials/post-item-meta.html new file mode 100644 index 0000000..68ddb54 --- /dev/null +++ b/layouts/partials/post-item-meta.html @@ -0,0 +1,33 @@ +
+ + + {{- if gt .Params.categories 0 -}} + folder + {{ range .Params.categories }}{{ . }} {{ end }} + {{- end -}} + + {{- if gt .Params.tags 0 -}} + label + {{ range .Params.tags }}{{ . }} {{ end }} + {{- end -}} + + + {{ if .Site.Params.enableReadingTime }} + schedule + {{ $readTime := mul (div (countwords .Content) 220.0) 60 }} + + {{ $minutes := math.Floor (div $readTime 60) }} + {{ $seconds := mod $readTime 60 }} + + {{ if gt $minutes 0}} + {{ $minutes }} {{ cond (eq $minutes 1) "minute" "min" }} + {{ end }} + {{ $seconds }} {{ cond (eq $seconds 1) "second" "s" }} + {{ end }} + + + {{ if .Draft }} +   + {{ i18n "draft" }} + {{ end }} +
diff --git a/layouts/shortcodes/bilibili.html b/layouts/shortcodes/bilibili.html new file mode 100644 index 0000000..10d757b --- /dev/null +++ b/layouts/shortcodes/bilibili.html @@ -0,0 +1,13 @@ +{{ $videoID := index .Params 0 }} +{{ $pageNum := index .Params 1 | default 1}} +{{ $4x3 := .Get "4x3" | default "false" }} + +{{ if (findRE "^[bB][vV][0-9a-zA-Z]+$" $videoID) }} +
+ +
+{{ else }} +
+ +
+{{ end }} diff --git a/layouts/shortcodes/codepen.html b/layouts/shortcodes/codepen.html new file mode 100644 index 0000000..0215c63 --- /dev/null +++ b/layouts/shortcodes/codepen.html @@ -0,0 +1,18 @@ +{{/* DEFAULTS */}} +{{ $user := "loikein" }} +{{ $height := 400 }} +{{ $tab := "result" }}{{/* html|css|js|result */}} +{{ $theme := "dark" }}{{/* create on codepen.io */}} + +

+See the Pen note-attrib-selector by loikein (@loikein) on CodePen. +

+ diff --git a/layouts/shortcodes/col.html b/layouts/shortcodes/col.html new file mode 100644 index 0000000..ac43ecd --- /dev/null +++ b/layouts/shortcodes/col.html @@ -0,0 +1 @@ +
{{ .Inner | markdownify }}
diff --git a/layouts/shortcodes/figure.html b/layouts/shortcodes/figure.html new file mode 100644 index 0000000..b40a6d4 --- /dev/null +++ b/layouts/shortcodes/figure.html @@ -0,0 +1,32 @@ +{{ $name := .Get "name" | default (.Get 0) }} +{{ $folder := .Get "folder" | default "post-img" }} +{{ $height := .Get "h" | default 200 }} +{{ $alt := .Get "alt" | default "image" }} + + + {{- if .Get "link" -}} + + {{- end -}} + {{ $alt | markdownify| plainify }} + {{- if .Get "link" }}{{ end -}} + {{- if or (or (.Get "title") (.Get "caption")) (.Get "attr") -}} +
+ {{ with (.Get "title") -}} +

{{ . }}

+ {{- end -}} + {{- if or (.Get "caption") (.Get "attr") -}}

+ {{- .Get "caption" | markdownify -}} + {{- with .Get "attrlink" }} + + {{- end -}} + {{- .Get "attr" | markdownify -}} + {{- if .Get "attrlink" }}{{ end }}

+ {{- end }} +
+ {{- end }} + diff --git a/layouts/shortcodes/mstdn.html b/layouts/shortcodes/mstdn.html new file mode 100644 index 0000000..7eceb00 --- /dev/null +++ b/layouts/shortcodes/mstdn.html @@ -0,0 +1,8 @@ +{{- $prefix := "https://" -}} +{{- $baseUrl := .Get 0 -}} +{{- $id := .Get 1 -}} +{{- $json := getJSON $prefix $baseUrl "/api/v1/statuses/" $id -}} +
+ {{- $json.content | markdownify -}} +

— {{- $json.account.display_name -}} (@{{- $json.account.acct -}}) {{- dateFormat "January 2, 2006" $json.created_at -}}

+
diff --git a/layouts/shortcodes/preview.html b/layouts/shortcodes/preview.html new file mode 100644 index 0000000..2e35b19 --- /dev/null +++ b/layouts/shortcodes/preview.html @@ -0,0 +1,19 @@ +{{ with getJSON (printf "https://api.microlink.io/?url=%s" (.Get "src")) }} + +{{ end }} diff --git a/layouts/shortcodes/row.html b/layouts/shortcodes/row.html new file mode 100644 index 0000000..1570262 --- /dev/null +++ b/layouts/shortcodes/row.html @@ -0,0 +1 @@ +
{{ .Inner }}
diff --git a/layouts/shortcodes/sticker.html b/layouts/shortcodes/sticker.html new file mode 100644 index 0000000..19577eb --- /dev/null +++ b/layouts/shortcodes/sticker.html @@ -0,0 +1,15 @@ +{{ $name := .Get "name" | default (.Get 0) }} +{{ $folder := .Get "folder" | default "sticker" }} +{{ $height := .Get "h" | default 150 }} +{{ $alt := .Get "alt" | default "animated sticker" }} +{{ $animated := .Get "animated" | default "true" }} +{{ $loop := .Get "loop" | default "true" }} + +{{ with $animated }}{{ if eq . "true" }} + +{{ else }} + +{{ end }}{{ end }} diff --git a/layouts/shortcodes/video.html b/layouts/shortcodes/video.html new file mode 100644 index 0000000..ae47023 --- /dev/null +++ b/layouts/shortcodes/video.html @@ -0,0 +1,8 @@ +{{ $name := .Get "name" | default (.Get 0) }} +{{ $folder := .Get "folder" | default "post-vid" }} +{{ $height := .Get "h" | default 200 }} +{{ $alt := .Get "alt" | default "video" }} + + diff --git a/layouts/shortcodes/youtube.html b/layouts/shortcodes/youtube.html new file mode 100644 index 0000000..3cce00f --- /dev/null +++ b/layouts/shortcodes/youtube.html @@ -0,0 +1,7 @@ +{{ $id := .Get "id" | default (.Get 0) }} +{{ $4x3 := .Get "4x3" | default "false" }} +{{ $title := .Get "title" | default "YouTube Video" }} + +
+ +
diff --git a/static/post-img/2017-06-27-parable-of-the-polygons-notes-on-schelling-1971-clark-1991-%25E5%25B1%258F%25E5%25B9%2595%25E5%25BF%25AB%25E7%2585%25A7%2B2017-06-16%2B08.48.27.png b/static/post-img/2017-06-27-parable-of-the-polygons-notes-on-schelling-1971-clark-1991-%25E5%25B1%258F%25E5%25B9%2595%25E5%25BF%25AB%25E7%2585%25A7%2B2017-06-16%2B08.48.27.png new file mode 100644 index 0000000..daad2e7 Binary files /dev/null and b/static/post-img/2017-06-27-parable-of-the-polygons-notes-on-schelling-1971-clark-1991-%25E5%25B1%258F%25E5%25B9%2595%25E5%25BF%25AB%25E7%2585%25A7%2B2017-06-16%2B08.48.27.png differ diff --git a/static/post-img/2017-06-27-parable-of-the-polygons-notes-on-schelling-1971-clark-1991-%25E5%25B1%258F%25E5%25B9%2595%25E5%25BF%25AB%25E7%2585%25A7%2B2017-06-16%2B09.17.36.png b/static/post-img/2017-06-27-parable-of-the-polygons-notes-on-schelling-1971-clark-1991-%25E5%25B1%258F%25E5%25B9%2595%25E5%25BF%25AB%25E7%2585%25A7%2B2017-06-16%2B09.17.36.png new file mode 100644 index 0000000..9ee44d5 Binary files /dev/null and b/static/post-img/2017-06-27-parable-of-the-polygons-notes-on-schelling-1971-clark-1991-%25E5%25B1%258F%25E5%25B9%2595%25E5%25BF%25AB%25E7%2585%25A7%2B2017-06-16%2B09.17.36.png differ diff --git a/static/post-img/2017-06-27-parable-of-the-polygons-notes-on-schelling-1971-clark-1991-%25E5%25B1%258F%25E5%25B9%2595%25E5%25BF%25AB%25E7%2585%25A7%2B2017-06-16%2B09.22.20.png b/static/post-img/2017-06-27-parable-of-the-polygons-notes-on-schelling-1971-clark-1991-%25E5%25B1%258F%25E5%25B9%2595%25E5%25BF%25AB%25E7%2585%25A7%2B2017-06-16%2B09.22.20.png new file mode 100644 index 0000000..cbfcbe8 Binary files /dev/null and b/static/post-img/2017-06-27-parable-of-the-polygons-notes-on-schelling-1971-clark-1991-%25E5%25B1%258F%25E5%25B9%2595%25E5%25BF%25AB%25E7%2585%25A7%2B2017-06-16%2B09.22.20.png differ diff --git a/static/post-img/2017-06-27-parable-of-the-polygons-notes-on-schelling-1971-clark-1991-BIG_GRAPH-2.png b/static/post-img/2017-06-27-parable-of-the-polygons-notes-on-schelling-1971-clark-1991-BIG_GRAPH-2.png new file mode 100644 index 0000000..50df74f Binary files /dev/null and b/static/post-img/2017-06-27-parable-of-the-polygons-notes-on-schelling-1971-clark-1991-BIG_GRAPH-2.png differ diff --git a/static/post-img/2017-06-27-parable-of-the-polygons-notes-on-schelling-1971-clark-1991-BIG_GRAPH-b.png b/static/post-img/2017-06-27-parable-of-the-polygons-notes-on-schelling-1971-clark-1991-BIG_GRAPH-b.png new file mode 100644 index 0000000..7f64af5 Binary files /dev/null and b/static/post-img/2017-06-27-parable-of-the-polygons-notes-on-schelling-1971-clark-1991-BIG_GRAPH-b.png differ diff --git a/static/post-img/2017-06-27-parable-of-the-polygons-notes-on-schelling-1971-clark-1991-Fig%2B10.png b/static/post-img/2017-06-27-parable-of-the-polygons-notes-on-schelling-1971-clark-1991-Fig%2B10.png new file mode 100644 index 0000000..0c3154f Binary files /dev/null and b/static/post-img/2017-06-27-parable-of-the-polygons-notes-on-schelling-1971-clark-1991-Fig%2B10.png differ diff --git a/static/post-img/2017-06-27-parable-of-the-polygons-notes-on-schelling-1971-clark-1991-Fig%2B18.1-a.png b/static/post-img/2017-06-27-parable-of-the-polygons-notes-on-schelling-1971-clark-1991-Fig%2B18.1-a.png new file mode 100644 index 0000000..d36d2a5 Binary files /dev/null and b/static/post-img/2017-06-27-parable-of-the-polygons-notes-on-schelling-1971-clark-1991-Fig%2B18.1-a.png differ diff --git a/static/post-img/2017-06-27-parable-of-the-polygons-notes-on-schelling-1971-clark-1991-Fig%2B18.2-a.png b/static/post-img/2017-06-27-parable-of-the-polygons-notes-on-schelling-1971-clark-1991-Fig%2B18.2-a.png new file mode 100644 index 0000000..ded3e57 Binary files /dev/null and b/static/post-img/2017-06-27-parable-of-the-polygons-notes-on-schelling-1971-clark-1991-Fig%2B18.2-a.png differ diff --git a/static/post-img/2017-06-27-parable-of-the-polygons-notes-on-schelling-1971-clark-1991-Fig%2B18.3.png b/static/post-img/2017-06-27-parable-of-the-polygons-notes-on-schelling-1971-clark-1991-Fig%2B18.3.png new file mode 100644 index 0000000..bad6dec Binary files /dev/null and b/static/post-img/2017-06-27-parable-of-the-polygons-notes-on-schelling-1971-clark-1991-Fig%2B18.3.png differ diff --git a/static/post-img/2017-06-27-parable-of-the-polygons-notes-on-schelling-1971-clark-1991-Fig%2B3.png b/static/post-img/2017-06-27-parable-of-the-polygons-notes-on-schelling-1971-clark-1991-Fig%2B3.png new file mode 100644 index 0000000..0dbced5 Binary files /dev/null and b/static/post-img/2017-06-27-parable-of-the-polygons-notes-on-schelling-1971-clark-1991-Fig%2B3.png differ diff --git a/static/post-img/2017-06-27-parable-of-the-polygons-notes-on-schelling-1971-clark-1991-Fig%2B4.png b/static/post-img/2017-06-27-parable-of-the-polygons-notes-on-schelling-1971-clark-1991-Fig%2B4.png new file mode 100644 index 0000000..2958253 Binary files /dev/null and b/static/post-img/2017-06-27-parable-of-the-polygons-notes-on-schelling-1971-clark-1991-Fig%2B4.png differ diff --git a/static/post-img/2017-06-27-parable-of-the-polygons-notes-on-schelling-1971-clark-1991-Fig%2B6-dup.png b/static/post-img/2017-06-27-parable-of-the-polygons-notes-on-schelling-1971-clark-1991-Fig%2B6-dup.png new file mode 100644 index 0000000..8ae3a66 Binary files /dev/null and b/static/post-img/2017-06-27-parable-of-the-polygons-notes-on-schelling-1971-clark-1991-Fig%2B6-dup.png differ diff --git a/static/post-img/2017-06-27-parable-of-the-polygons-notes-on-schelling-1971-clark-1991-Fig%2B6.png b/static/post-img/2017-06-27-parable-of-the-polygons-notes-on-schelling-1971-clark-1991-Fig%2B6.png new file mode 100644 index 0000000..fdaeef3 Binary files /dev/null and b/static/post-img/2017-06-27-parable-of-the-polygons-notes-on-schelling-1971-clark-1991-Fig%2B6.png differ diff --git a/static/post-img/2017-06-27-parable-of-the-polygons-notes-on-schelling-1971-clark-1991-Fig%2B7-1.png b/static/post-img/2017-06-27-parable-of-the-polygons-notes-on-schelling-1971-clark-1991-Fig%2B7-1.png new file mode 100644 index 0000000..8d218dd Binary files /dev/null and b/static/post-img/2017-06-27-parable-of-the-polygons-notes-on-schelling-1971-clark-1991-Fig%2B7-1.png differ diff --git a/static/post-img/2017-06-27-parable-of-the-polygons-notes-on-schelling-1971-clark-1991-Fig%2B7.png b/static/post-img/2017-06-27-parable-of-the-polygons-notes-on-schelling-1971-clark-1991-Fig%2B7.png new file mode 100644 index 0000000..bb6f2ab Binary files /dev/null and b/static/post-img/2017-06-27-parable-of-the-polygons-notes-on-schelling-1971-clark-1991-Fig%2B7.png differ diff --git a/static/post-img/2017-06-27-parable-of-the-polygons-notes-on-schelling-1971-clark-1991-Fig%2B8.png b/static/post-img/2017-06-27-parable-of-the-polygons-notes-on-schelling-1971-clark-1991-Fig%2B8.png new file mode 100644 index 0000000..afcbaf6 Binary files /dev/null and b/static/post-img/2017-06-27-parable-of-the-polygons-notes-on-schelling-1971-clark-1991-Fig%2B8.png differ diff --git a/static/post-img/2017-09-14-ru-guo-bu-bao-chi-yi-ding-ju-chi-wo-jiu-zuo-bu-chu-ru-ci-si-ren-hua-de-you-xi-cong-nicky-case-de-mo-ni-chu-ju-2014-shuo-qi-2goxSlZ.gif b/static/post-img/2017-09-14-ru-guo-bu-bao-chi-yi-ding-ju-chi-wo-jiu-zuo-bu-chu-ru-ci-si-ren-hua-de-you-xi-cong-nicky-case-de-mo-ni-chu-ju-2014-shuo-qi-2goxSlZ.gif new file mode 100644 index 0000000..48b33d7 Binary files /dev/null and b/static/post-img/2017-09-14-ru-guo-bu-bao-chi-yi-ding-ju-chi-wo-jiu-zuo-bu-chu-ru-ci-si-ren-hua-de-you-xi-cong-nicky-case-de-mo-ni-chu-ju-2014-shuo-qi-2goxSlZ.gif differ diff --git a/static/post-img/2017-09-14-ru-guo-bu-bao-chi-yi-ding-ju-chi-wo-jiu-zuo-bu-chu-ru-ci-si-ren-hua-de-you-xi-cong-nicky-case-de-mo-ni-chu-ju-2014-shuo-qi-6f398580gy1fjj6mh7d3vj20c822x4ch.png b/static/post-img/2017-09-14-ru-guo-bu-bao-chi-yi-ding-ju-chi-wo-jiu-zuo-bu-chu-ru-ci-si-ren-hua-de-you-xi-cong-nicky-case-de-mo-ni-chu-ju-2014-shuo-qi-6f398580gy1fjj6mh7d3vj20c822x4ch.png new file mode 100644 index 0000000..d1c476f Binary files /dev/null and b/static/post-img/2017-09-14-ru-guo-bu-bao-chi-yi-ding-ju-chi-wo-jiu-zuo-bu-chu-ru-ci-si-ren-hua-de-you-xi-cong-nicky-case-de-mo-ni-chu-ju-2014-shuo-qi-6f398580gy1fjj6mh7d3vj20c822x4ch.png differ diff --git a/static/post-img/2017-12-20-global-consciousness-dot-three-body-5cfa7b50ly1fmnnof2wqpj208k04njsa.png b/static/post-img/2017-12-20-global-consciousness-dot-three-body-5cfa7b50ly1fmnnof2wqpj208k04njsa.png new file mode 100644 index 0000000..f2ac035 Binary files /dev/null and b/static/post-img/2017-12-20-global-consciousness-dot-three-body-5cfa7b50ly1fmnnof2wqpj208k04njsa.png differ diff --git a/static/post-img/2018-01-30-shui-bu-zhao-bo-wu-guan-004-apple-person-%25E5%2588%2598%25E5%25AE%25B6%25E8%2595%25B4.png b/static/post-img/2018-01-30-shui-bu-zhao-bo-wu-guan-004-apple-person-%25E5%2588%2598%25E5%25AE%25B6%25E8%2595%25B4.png new file mode 100644 index 0000000..5264843 Binary files /dev/null and b/static/post-img/2018-01-30-shui-bu-zhao-bo-wu-guan-004-apple-person-%25E5%2588%2598%25E5%25AE%25B6%25E8%2595%25B4.png differ diff --git a/static/post-img/2018-01-30-shui-bu-zhao-bo-wu-guan-004-apple-person-%25E6%2588%25B4%25E8%258D%25A3%25E5%25BE%25B7.png b/static/post-img/2018-01-30-shui-bu-zhao-bo-wu-guan-004-apple-person-%25E6%2588%25B4%25E8%258D%25A3%25E5%25BE%25B7.png new file mode 100644 index 0000000..b1e755b Binary files /dev/null and b/static/post-img/2018-01-30-shui-bu-zhao-bo-wu-guan-004-apple-person-%25E6%2588%25B4%25E8%258D%25A3%25E5%25BE%25B7.png differ diff --git a/static/post-img/2018-01-30-shui-bu-zhao-bo-wu-guan-004-apple-person-%25E6%259D%258E%25E7%25BE%258E%25E5%25B2%259A.png b/static/post-img/2018-01-30-shui-bu-zhao-bo-wu-guan-004-apple-person-%25E6%259D%258E%25E7%25BE%258E%25E5%25B2%259A.png new file mode 100644 index 0000000..fc0e8f3 Binary files /dev/null and b/static/post-img/2018-01-30-shui-bu-zhao-bo-wu-guan-004-apple-person-%25E6%259D%258E%25E7%25BE%258E%25E5%25B2%259A.png differ diff --git a/static/post-img/2018-01-30-shui-bu-zhao-bo-wu-guan-004-apple-person-%25E6%25AD%25A6%25E8%258C%25B5%25E6%2580%25A1.png b/static/post-img/2018-01-30-shui-bu-zhao-bo-wu-guan-004-apple-person-%25E6%25AD%25A6%25E8%258C%25B5%25E6%2580%25A1.png new file mode 100644 index 0000000..ba50cc6 Binary files /dev/null and b/static/post-img/2018-01-30-shui-bu-zhao-bo-wu-guan-004-apple-person-%25E6%25AD%25A6%25E8%258C%25B5%25E6%2580%25A1.png differ diff --git a/static/post-img/2018-01-30-shui-bu-zhao-bo-wu-guan-004-apple-person-%25E7%2581%258C%25E5%25AE%25B6%25E9%2594%25AE.png b/static/post-img/2018-01-30-shui-bu-zhao-bo-wu-guan-004-apple-person-%25E7%2581%258C%25E5%25AE%25B6%25E9%2594%25AE.png new file mode 100644 index 0000000..62e6157 Binary files /dev/null and b/static/post-img/2018-01-30-shui-bu-zhao-bo-wu-guan-004-apple-person-%25E7%2581%258C%25E5%25AE%25B6%25E9%2594%25AE.png differ diff --git a/static/post-img/2018-01-30-shui-bu-zhao-bo-wu-guan-004-apple-person-%25E8%2594%25A1%25E8%258B%25A5%25E8%258F%2581.png b/static/post-img/2018-01-30-shui-bu-zhao-bo-wu-guan-004-apple-person-%25E8%2594%25A1%25E8%258B%25A5%25E8%258F%2581.png new file mode 100644 index 0000000..caa2809 Binary files /dev/null and b/static/post-img/2018-01-30-shui-bu-zhao-bo-wu-guan-004-apple-person-%25E8%2594%25A1%25E8%258B%25A5%25E8%258F%2581.png differ diff --git a/static/post-img/2018-05-21-shui-bu-zhao-bo-wu-guan-005-japan-shopping-list-31a3FxnF0EL.jpg b/static/post-img/2018-05-21-shui-bu-zhao-bo-wu-guan-005-japan-shopping-list-31a3FxnF0EL.jpg new file mode 100644 index 0000000..924662e Binary files /dev/null and b/static/post-img/2018-05-21-shui-bu-zhao-bo-wu-guan-005-japan-shopping-list-31a3FxnF0EL.jpg differ diff --git a/static/post-img/2018-05-21-shui-bu-zhao-bo-wu-guan-005-japan-shopping-list-418l70KdZnL.jpg b/static/post-img/2018-05-21-shui-bu-zhao-bo-wu-guan-005-japan-shopping-list-418l70KdZnL.jpg new file mode 100644 index 0000000..7d7baea Binary files /dev/null and b/static/post-img/2018-05-21-shui-bu-zhao-bo-wu-guan-005-japan-shopping-list-418l70KdZnL.jpg differ diff --git a/static/post-img/2018-05-21-shui-bu-zhao-bo-wu-guan-005-japan-shopping-list-41N2XmzlsoL.jpg b/static/post-img/2018-05-21-shui-bu-zhao-bo-wu-guan-005-japan-shopping-list-41N2XmzlsoL.jpg new file mode 100644 index 0000000..4a09cbe Binary files /dev/null and b/static/post-img/2018-05-21-shui-bu-zhao-bo-wu-guan-005-japan-shopping-list-41N2XmzlsoL.jpg differ diff --git a/static/post-img/2018-05-21-shui-bu-zhao-bo-wu-guan-005-japan-shopping-list-41wNksCkJ6L._SL1000_.jpg b/static/post-img/2018-05-21-shui-bu-zhao-bo-wu-guan-005-japan-shopping-list-41wNksCkJ6L._SL1000_.jpg new file mode 100644 index 0000000..acbc9d3 Binary files /dev/null and b/static/post-img/2018-05-21-shui-bu-zhao-bo-wu-guan-005-japan-shopping-list-41wNksCkJ6L._SL1000_.jpg differ diff --git a/static/post-img/2018-05-21-shui-bu-zhao-bo-wu-guan-005-japan-shopping-list-4547315138173_1260.jpg b/static/post-img/2018-05-21-shui-bu-zhao-bo-wu-guan-005-japan-shopping-list-4547315138173_1260.jpg new file mode 100644 index 0000000..277dd54 Binary files /dev/null and b/static/post-img/2018-05-21-shui-bu-zhao-bo-wu-guan-005-japan-shopping-list-4547315138173_1260.jpg differ diff --git a/static/post-img/2018-05-21-shui-bu-zhao-bo-wu-guan-005-japan-shopping-list-4549337077560_1260.jpg b/static/post-img/2018-05-21-shui-bu-zhao-bo-wu-guan-005-japan-shopping-list-4549337077560_1260.jpg new file mode 100644 index 0000000..63e6b83 Binary files /dev/null and b/static/post-img/2018-05-21-shui-bu-zhao-bo-wu-guan-005-japan-shopping-list-4549337077560_1260.jpg differ diff --git a/static/post-img/2018-05-21-shui-bu-zhao-bo-wu-guan-005-japan-shopping-list-51%2Bo%2BipPi1L._SL800_.jpg b/static/post-img/2018-05-21-shui-bu-zhao-bo-wu-guan-005-japan-shopping-list-51%2Bo%2BipPi1L._SL800_.jpg new file mode 100644 index 0000000..411212d Binary files /dev/null and b/static/post-img/2018-05-21-shui-bu-zhao-bo-wu-guan-005-japan-shopping-list-51%2Bo%2BipPi1L._SL800_.jpg differ diff --git a/static/post-img/2018-05-21-shui-bu-zhao-bo-wu-guan-005-japan-shopping-list-51UAa48GqWL._SL1000_.jpg b/static/post-img/2018-05-21-shui-bu-zhao-bo-wu-guan-005-japan-shopping-list-51UAa48GqWL._SL1000_.jpg new file mode 100644 index 0000000..ea62c6d Binary files /dev/null and b/static/post-img/2018-05-21-shui-bu-zhao-bo-wu-guan-005-japan-shopping-list-51UAa48GqWL._SL1000_.jpg differ diff --git a/static/post-img/2018-05-21-shui-bu-zhao-bo-wu-guan-005-japan-shopping-list-51elY6P9G4L._SL1000_.jpg b/static/post-img/2018-05-21-shui-bu-zhao-bo-wu-guan-005-japan-shopping-list-51elY6P9G4L._SL1000_.jpg new file mode 100644 index 0000000..363a7fd Binary files /dev/null and b/static/post-img/2018-05-21-shui-bu-zhao-bo-wu-guan-005-japan-shopping-list-51elY6P9G4L._SL1000_.jpg differ diff --git a/static/post-img/2018-05-21-shui-bu-zhao-bo-wu-guan-005-japan-shopping-list-51mz3CGyRPL._SL1000_.jpg b/static/post-img/2018-05-21-shui-bu-zhao-bo-wu-guan-005-japan-shopping-list-51mz3CGyRPL._SL1000_.jpg new file mode 100644 index 0000000..0610d6c Binary files /dev/null and b/static/post-img/2018-05-21-shui-bu-zhao-bo-wu-guan-005-japan-shopping-list-51mz3CGyRPL._SL1000_.jpg differ diff --git a/static/post-img/2018-05-21-shui-bu-zhao-bo-wu-guan-005-japan-shopping-list-51ucShvbgPL._SL1000_.jpg b/static/post-img/2018-05-21-shui-bu-zhao-bo-wu-guan-005-japan-shopping-list-51ucShvbgPL._SL1000_.jpg new file mode 100644 index 0000000..ec5736a Binary files /dev/null and b/static/post-img/2018-05-21-shui-bu-zhao-bo-wu-guan-005-japan-shopping-list-51ucShvbgPL._SL1000_.jpg differ diff --git a/static/post-img/2018-05-21-shui-bu-zhao-bo-wu-guan-005-japan-shopping-list-51xbNWoUI7L._SL1000_.jpg b/static/post-img/2018-05-21-shui-bu-zhao-bo-wu-guan-005-japan-shopping-list-51xbNWoUI7L._SL1000_.jpg new file mode 100644 index 0000000..ff0e662 Binary files /dev/null and b/static/post-img/2018-05-21-shui-bu-zhao-bo-wu-guan-005-japan-shopping-list-51xbNWoUI7L._SL1000_.jpg differ diff --git a/static/post-img/2018-05-21-shui-bu-zhao-bo-wu-guan-005-japan-shopping-list-51yNIRmrowL._SL1001_.jpg b/static/post-img/2018-05-21-shui-bu-zhao-bo-wu-guan-005-japan-shopping-list-51yNIRmrowL._SL1001_.jpg new file mode 100644 index 0000000..8dc737a Binary files /dev/null and b/static/post-img/2018-05-21-shui-bu-zhao-bo-wu-guan-005-japan-shopping-list-51yNIRmrowL._SL1001_.jpg differ diff --git a/static/post-img/2018-05-21-shui-bu-zhao-bo-wu-guan-005-japan-shopping-list-616rWsz6YWL._SL1200_.jpg b/static/post-img/2018-05-21-shui-bu-zhao-bo-wu-guan-005-japan-shopping-list-616rWsz6YWL._SL1200_.jpg new file mode 100644 index 0000000..ca5c021 Binary files /dev/null and b/static/post-img/2018-05-21-shui-bu-zhao-bo-wu-guan-005-japan-shopping-list-616rWsz6YWL._SL1200_.jpg differ diff --git a/static/post-img/2018-05-21-shui-bu-zhao-bo-wu-guan-005-japan-shopping-list-61YRPVTq8NL._SL1000_.jpg b/static/post-img/2018-05-21-shui-bu-zhao-bo-wu-guan-005-japan-shopping-list-61YRPVTq8NL._SL1000_.jpg new file mode 100644 index 0000000..700a4c4 Binary files /dev/null and b/static/post-img/2018-05-21-shui-bu-zhao-bo-wu-guan-005-japan-shopping-list-61YRPVTq8NL._SL1000_.jpg differ diff --git a/static/post-img/2018-05-21-shui-bu-zhao-bo-wu-guan-005-japan-shopping-list-71DhixNC9OL._SL1130_.jpg b/static/post-img/2018-05-21-shui-bu-zhao-bo-wu-guan-005-japan-shopping-list-71DhixNC9OL._SL1130_.jpg new file mode 100644 index 0000000..820e754 Binary files /dev/null and b/static/post-img/2018-05-21-shui-bu-zhao-bo-wu-guan-005-japan-shopping-list-71DhixNC9OL._SL1130_.jpg differ diff --git a/static/post-img/2018-05-21-shui-bu-zhao-bo-wu-guan-005-japan-shopping-list-71fQZfz5moL._SL1500_.jpg b/static/post-img/2018-05-21-shui-bu-zhao-bo-wu-guan-005-japan-shopping-list-71fQZfz5moL._SL1500_.jpg new file mode 100644 index 0000000..a046e93 Binary files /dev/null and b/static/post-img/2018-05-21-shui-bu-zhao-bo-wu-guan-005-japan-shopping-list-71fQZfz5moL._SL1500_.jpg differ diff --git a/static/post-img/2018-05-21-shui-bu-zhao-bo-wu-guan-005-japan-shopping-list-81bM3WxVcxL._SL1500_.jpg b/static/post-img/2018-05-21-shui-bu-zhao-bo-wu-guan-005-japan-shopping-list-81bM3WxVcxL._SL1500_.jpg new file mode 100644 index 0000000..54644f7 Binary files /dev/null and b/static/post-img/2018-05-21-shui-bu-zhao-bo-wu-guan-005-japan-shopping-list-81bM3WxVcxL._SL1500_.jpg differ diff --git a/static/post-img/2018-05-21-shui-bu-zhao-bo-wu-guan-005-japan-shopping-list-81vMaN7iypL._SL1500_.jpg b/static/post-img/2018-05-21-shui-bu-zhao-bo-wu-guan-005-japan-shopping-list-81vMaN7iypL._SL1500_.jpg new file mode 100644 index 0000000..6c402dd Binary files /dev/null and b/static/post-img/2018-05-21-shui-bu-zhao-bo-wu-guan-005-japan-shopping-list-81vMaN7iypL._SL1500_.jpg differ diff --git a/static/post-img/2018-09-18-me-vs-tables-in-ulysses.png b/static/post-img/2018-09-18-me-vs-tables-in-ulysses.png new file mode 100644 index 0000000..5a7a971 Binary files /dev/null and b/static/post-img/2018-09-18-me-vs-tables-in-ulysses.png differ diff --git a/static/post-img/2018-10-21-bo-en-di-shi-tian-chi-zhu-jiao-tong-guang-jie-kan-bing-5090tf01-01-10.jpg b/static/post-img/2018-10-21-bo-en-di-shi-tian-chi-zhu-jiao-tong-guang-jie-kan-bing-5090tf01-01-10.jpg new file mode 100644 index 0000000..d9f8c02 Binary files /dev/null and b/static/post-img/2018-10-21-bo-en-di-shi-tian-chi-zhu-jiao-tong-guang-jie-kan-bing-5090tf01-01-10.jpg differ diff --git a/static/post-img/2018-11-15-jupyter-zi-jiu-ri-ji-1-xia-zai-pei-zhi-r-pei-zhi-r-embed-in-python-za-qi-za-ba-Screenshot%2B2018-11-15%2Bat%2B21.35.19.png b/static/post-img/2018-11-15-jupyter-zi-jiu-ri-ji-1-xia-zai-pei-zhi-r-pei-zhi-r-embed-in-python-za-qi-za-ba-Screenshot%2B2018-11-15%2Bat%2B21.35.19.png new file mode 100644 index 0000000..8e61771 Binary files /dev/null and b/static/post-img/2018-11-15-jupyter-zi-jiu-ri-ji-1-xia-zai-pei-zhi-r-pei-zhi-r-embed-in-python-za-qi-za-ba-Screenshot%2B2018-11-15%2Bat%2B21.35.19.png differ diff --git a/static/post-img/2018-11-25-jupyter-zi-jiu-ri-ji-4-jupytext-zong-jie-Screenshot%2B2018-11-25%2Bat%2B19.19.30.png b/static/post-img/2018-11-25-jupyter-zi-jiu-ri-ji-4-jupytext-zong-jie-Screenshot%2B2018-11-25%2Bat%2B19.19.30.png new file mode 100644 index 0000000..4c3f832 Binary files /dev/null and b/static/post-img/2018-11-25-jupyter-zi-jiu-ri-ji-4-jupytext-zong-jie-Screenshot%2B2018-11-25%2Bat%2B19.19.30.png differ diff --git a/static/post-img/2018-11-25-jupyter-zi-jiu-ri-ji-4-jupytext-zong-jie-Screenshot%2B2018-11-25%2Bat%2B19.20.39.png b/static/post-img/2018-11-25-jupyter-zi-jiu-ri-ji-4-jupytext-zong-jie-Screenshot%2B2018-11-25%2Bat%2B19.20.39.png new file mode 100644 index 0000000..fa91c40 Binary files /dev/null and b/static/post-img/2018-11-25-jupyter-zi-jiu-ri-ji-4-jupytext-zong-jie-Screenshot%2B2018-11-25%2Bat%2B19.20.39.png differ diff --git a/static/post-img/2018-11-25-jupyter-zi-jiu-ri-ji-4-jupytext-zong-jie-Screenshot%2B2018-11-25%2Bat%2B19.30.20.png b/static/post-img/2018-11-25-jupyter-zi-jiu-ri-ji-4-jupytext-zong-jie-Screenshot%2B2018-11-25%2Bat%2B19.30.20.png new file mode 100644 index 0000000..a03bfd0 Binary files /dev/null and b/static/post-img/2018-11-25-jupyter-zi-jiu-ri-ji-4-jupytext-zong-jie-Screenshot%2B2018-11-25%2Bat%2B19.30.20.png differ diff --git a/static/post-img/2019-01-06-blogdown-ri-ji-cong-ru-men-dao-huan-mei-fang-qi-%25E5%25B1%258F%25E5%25B9%2595%25E5%25BF%25AB%25E7%2585%25A7%2B2019-01-03%2B10.13.37.png b/static/post-img/2019-01-06-blogdown-ri-ji-cong-ru-men-dao-huan-mei-fang-qi-%25E5%25B1%258F%25E5%25B9%2595%25E5%25BF%25AB%25E7%2585%25A7%2B2019-01-03%2B10.13.37.png new file mode 100644 index 0000000..cb8c0f8 Binary files /dev/null and b/static/post-img/2019-01-06-blogdown-ri-ji-cong-ru-men-dao-huan-mei-fang-qi-%25E5%25B1%258F%25E5%25B9%2595%25E5%25BF%25AB%25E7%2585%25A7%2B2019-01-03%2B10.13.37.png differ diff --git a/static/post-img/2019-01-06-blogdown-ri-ji-cong-ru-men-dao-huan-mei-fang-qi-%25E5%25B1%258F%25E5%25B9%2595%25E5%25BF%25AB%25E7%2585%25A7%2B2019-01-06%2B12.17.33.png b/static/post-img/2019-01-06-blogdown-ri-ji-cong-ru-men-dao-huan-mei-fang-qi-%25E5%25B1%258F%25E5%25B9%2595%25E5%25BF%25AB%25E7%2585%25A7%2B2019-01-06%2B12.17.33.png new file mode 100644 index 0000000..cb6ac4b Binary files /dev/null and b/static/post-img/2019-01-06-blogdown-ri-ji-cong-ru-men-dao-huan-mei-fang-qi-%25E5%25B1%258F%25E5%25B9%2595%25E5%25BF%25AB%25E7%2585%25A7%2B2019-01-06%2B12.17.33.png differ diff --git a/static/post-img/2019-04-20-yi-zhang-ming-xin-pian-a-postcard-IMG_7870.jpg b/static/post-img/2019-04-20-yi-zhang-ming-xin-pian-a-postcard-IMG_7870.jpg new file mode 100644 index 0000000..bce07e2 Binary files /dev/null and b/static/post-img/2019-04-20-yi-zhang-ming-xin-pian-a-postcard-IMG_7870.jpg differ diff --git a/static/post-img/2019-07-13-yong-ifttt-tong-bu-ge-lei-she-jiao-wang-zhan-zhi-mastodon-jie-duan-xing-zong-jie-%25E5%25B1%258F%25E5%25B9%2595%25E5%25BF%25AB%25E7%2585%25A7%2B2019-07-13%2B10.18.05.png b/static/post-img/2019-07-13-yong-ifttt-tong-bu-ge-lei-she-jiao-wang-zhan-zhi-mastodon-jie-duan-xing-zong-jie-%25E5%25B1%258F%25E5%25B9%2595%25E5%25BF%25AB%25E7%2585%25A7%2B2019-07-13%2B10.18.05.png new file mode 100644 index 0000000..8b266b7 Binary files /dev/null and b/static/post-img/2019-07-13-yong-ifttt-tong-bu-ge-lei-she-jiao-wang-zhan-zhi-mastodon-jie-duan-xing-zong-jie-%25E5%25B1%258F%25E5%25B9%2595%25E5%25BF%25AB%25E7%2585%25A7%2B2019-07-13%2B10.18.05.png differ diff --git a/static/post-img/2019-08-07-pawoo-mastodon-ding-zhi-qian-se-zhu-ti-2019-8-7-mathjax-xian-shi-%25E5%25B1%258F%25E5%25B9%2595%25E5%25BF%25AB%25E7%2585%25A7%2B2019-07-12%2B12.11.38.png b/static/post-img/2019-08-07-pawoo-mastodon-ding-zhi-qian-se-zhu-ti-2019-8-7-mathjax-xian-shi-%25E5%25B1%258F%25E5%25B9%2595%25E5%25BF%25AB%25E7%2585%25A7%2B2019-07-12%2B12.11.38.png new file mode 100644 index 0000000..0ce5ac6 Binary files /dev/null and b/static/post-img/2019-08-07-pawoo-mastodon-ding-zhi-qian-se-zhu-ti-2019-8-7-mathjax-xian-shi-%25E5%25B1%258F%25E5%25B9%2595%25E5%25BF%25AB%25E7%2585%25A7%2B2019-07-12%2B12.11.38.png differ diff --git a/static/post-img/2019-08-07-pawoo-mastodon-ding-zhi-qian-se-zhu-ti-2019-8-7-mathjax-xian-shi-%25E5%25B1%258F%25E5%25B9%2595%25E5%25BF%25AB%25E7%2585%25A7%2B2019-08-07%2B15.54.17.png b/static/post-img/2019-08-07-pawoo-mastodon-ding-zhi-qian-se-zhu-ti-2019-8-7-mathjax-xian-shi-%25E5%25B1%258F%25E5%25B9%2595%25E5%25BF%25AB%25E7%2585%25A7%2B2019-08-07%2B15.54.17.png new file mode 100644 index 0000000..55efbe5 Binary files /dev/null and b/static/post-img/2019-08-07-pawoo-mastodon-ding-zhi-qian-se-zhu-ti-2019-8-7-mathjax-xian-shi-%25E5%25B1%258F%25E5%25B9%2595%25E5%25BF%25AB%25E7%2585%25A7%2B2019-08-07%2B15.54.17.png differ diff --git a/static/post-img/2019-08-07-pawoo-mastodon-ding-zhi-qian-se-zhu-ti-2019-8-7-mathjax-xian-shi-141745_after.png b/static/post-img/2019-08-07-pawoo-mastodon-ding-zhi-qian-se-zhu-ti-2019-8-7-mathjax-xian-shi-141745_after.png new file mode 100644 index 0000000..129d093 Binary files /dev/null and b/static/post-img/2019-08-07-pawoo-mastodon-ding-zhi-qian-se-zhu-ti-2019-8-7-mathjax-xian-shi-141745_after.png differ diff --git a/static/post-img/2019-11-10-journal-day-8-macbook-gets-very-warm-overnight-while-closed-connected-to-power-adapter-Screenshot%2B2020-03-08%2Bat%2B19.29.45.png b/static/post-img/2019-11-10-journal-day-8-macbook-gets-very-warm-overnight-while-closed-connected-to-power-adapter-Screenshot%2B2020-03-08%2Bat%2B19.29.45.png new file mode 100644 index 0000000..ead03ae Binary files /dev/null and b/static/post-img/2019-11-10-journal-day-8-macbook-gets-very-warm-overnight-while-closed-connected-to-power-adapter-Screenshot%2B2020-03-08%2Bat%2B19.29.45.png differ diff --git a/static/post-img/2019-11-10-journal-day-8-macbook-gets-very-warm-overnight-while-closed-connected-to-power-adapter-Screenshot%2B2020-03-08%2Bat%2B19.29.57.png b/static/post-img/2019-11-10-journal-day-8-macbook-gets-very-warm-overnight-while-closed-connected-to-power-adapter-Screenshot%2B2020-03-08%2Bat%2B19.29.57.png new file mode 100644 index 0000000..6853c09 Binary files /dev/null and b/static/post-img/2019-11-10-journal-day-8-macbook-gets-very-warm-overnight-while-closed-connected-to-power-adapter-Screenshot%2B2020-03-08%2Bat%2B19.29.57.png differ diff --git a/static/post-img/2019-11-10-journal-day-8-macbook-gets-very-warm-overnight-while-closed-connected-to-power-adapter-Screenshot%2B2020-03-08%2Bat%2B19.30.07.png b/static/post-img/2019-11-10-journal-day-8-macbook-gets-very-warm-overnight-while-closed-connected-to-power-adapter-Screenshot%2B2020-03-08%2Bat%2B19.30.07.png new file mode 100644 index 0000000..908a8d0 Binary files /dev/null and b/static/post-img/2019-11-10-journal-day-8-macbook-gets-very-warm-overnight-while-closed-connected-to-power-adapter-Screenshot%2B2020-03-08%2Bat%2B19.30.07.png differ diff --git a/static/post-img/2019-12-12-the-case-of-power-dynamics-hierarchy-harassment-whatever-you-call-it-%25E6%2588%25AA%25E5%25B1%258F2019-12-1222.23.26.png b/static/post-img/2019-12-12-the-case-of-power-dynamics-hierarchy-harassment-whatever-you-call-it-%25E6%2588%25AA%25E5%25B1%258F2019-12-1222.23.26.png new file mode 100644 index 0000000..fe9d79b Binary files /dev/null and b/static/post-img/2019-12-12-the-case-of-power-dynamics-hierarchy-harassment-whatever-you-call-it-%25E6%2588%25AA%25E5%25B1%258F2019-12-1222.23.26.png differ diff --git a/static/post-img/2020-03-09-zai-tan-tong-bu-she-jiao-wang-zhan-zhi-mastodon-wei-bo-rss-yuan-sheng-tu-pian-%25E6%2588%25AA%25E5%25B1%258F2020-03-0918.04.24.png b/static/post-img/2020-03-09-zai-tan-tong-bu-she-jiao-wang-zhan-zhi-mastodon-wei-bo-rss-yuan-sheng-tu-pian-%25E6%2588%25AA%25E5%25B1%258F2020-03-0918.04.24.png new file mode 100644 index 0000000..be9d8ce Binary files /dev/null and b/static/post-img/2020-03-09-zai-tan-tong-bu-she-jiao-wang-zhan-zhi-mastodon-wei-bo-rss-yuan-sheng-tu-pian-%25E6%2588%25AA%25E5%25B1%258F2020-03-0918.04.24.png differ diff --git a/static/post-img/2020-03-09-zai-tan-tong-bu-she-jiao-wang-zhan-zhi-mastodon-wei-bo-rss-yuan-sheng-tu-pian-%25E6%2588%25AA%25E5%25B1%258F2020-03-0918.49.48.png b/static/post-img/2020-03-09-zai-tan-tong-bu-she-jiao-wang-zhan-zhi-mastodon-wei-bo-rss-yuan-sheng-tu-pian-%25E6%2588%25AA%25E5%25B1%258F2020-03-0918.49.48.png new file mode 100644 index 0000000..50a1f5d Binary files /dev/null and b/static/post-img/2020-03-09-zai-tan-tong-bu-she-jiao-wang-zhan-zhi-mastodon-wei-bo-rss-yuan-sheng-tu-pian-%25E6%2588%25AA%25E5%25B1%258F2020-03-0918.49.48.png differ diff --git a/static/post-img/2020-03-25-mac-zsh-shang-shi-yong-neofetch-zuo-wei-huan-ying-yu-motd-%25E6%2588%25AA%25E5%25B1%258F2020-03-2519.26.16.png b/static/post-img/2020-03-25-mac-zsh-shang-shi-yong-neofetch-zuo-wei-huan-ying-yu-motd-%25E6%2588%25AA%25E5%25B1%258F2020-03-2519.26.16.png new file mode 100644 index 0000000..e0c340f Binary files /dev/null and b/static/post-img/2020-03-25-mac-zsh-shang-shi-yong-neofetch-zuo-wei-huan-ying-yu-motd-%25E6%2588%25AA%25E5%25B1%258F2020-03-2519.26.16.png differ diff --git a/static/post-img/2020-03-29-rang-nai-de-ios-ipados-geng-hao-yong-xi-tong-she-zhi-IMG_115.JPEG b/static/post-img/2020-03-29-rang-nai-de-ios-ipados-geng-hao-yong-xi-tong-she-zhi-IMG_115.JPEG new file mode 100644 index 0000000..898fcaa Binary files /dev/null and b/static/post-img/2020-03-29-rang-nai-de-ios-ipados-geng-hao-yong-xi-tong-she-zhi-IMG_115.JPEG differ diff --git a/static/post-img/2020-03-29-rang-nai-de-ios-ipados-geng-hao-yong-xi-tong-she-zhi-IMG_119.JPEG b/static/post-img/2020-03-29-rang-nai-de-ios-ipados-geng-hao-yong-xi-tong-she-zhi-IMG_119.JPEG new file mode 100644 index 0000000..7a8b3e7 Binary files /dev/null and b/static/post-img/2020-03-29-rang-nai-de-ios-ipados-geng-hao-yong-xi-tong-she-zhi-IMG_119.JPEG differ diff --git a/static/post-img/2020-03-29-rang-nai-de-ios-ipados-geng-hao-yong-xi-tong-she-zhi-IMG_5958.JPEG b/static/post-img/2020-03-29-rang-nai-de-ios-ipados-geng-hao-yong-xi-tong-she-zhi-IMG_5958.JPEG new file mode 100644 index 0000000..fe12080 Binary files /dev/null and b/static/post-img/2020-03-29-rang-nai-de-ios-ipados-geng-hao-yong-xi-tong-she-zhi-IMG_5958.JPEG differ diff --git a/static/post-img/2020-03-29-rang-nai-de-ios-ipados-geng-hao-yong-xi-tong-she-zhi-IMG_5970.JPEG b/static/post-img/2020-03-29-rang-nai-de-ios-ipados-geng-hao-yong-xi-tong-she-zhi-IMG_5970.JPEG new file mode 100644 index 0000000..b131467 Binary files /dev/null and b/static/post-img/2020-03-29-rang-nai-de-ios-ipados-geng-hao-yong-xi-tong-she-zhi-IMG_5970.JPEG differ diff --git a/static/post-img/2020-03-29-rang-nai-de-ios-ipados-geng-hao-yong-xi-tong-she-zhi-IMG_5980.JPEG b/static/post-img/2020-03-29-rang-nai-de-ios-ipados-geng-hao-yong-xi-tong-she-zhi-IMG_5980.JPEG new file mode 100644 index 0000000..f876c74 Binary files /dev/null and b/static/post-img/2020-03-29-rang-nai-de-ios-ipados-geng-hao-yong-xi-tong-she-zhi-IMG_5980.JPEG differ diff --git a/static/post-img/2020-04-15-zi-ding-yi-yu-ming-cai-de-keng-blogger-github-page-%25E6%2588%25AA%25E5%25B1%258F2020-04-15%2B19.31.25.png b/static/post-img/2020-04-15-zi-ding-yi-yu-ming-cai-de-keng-blogger-github-page-%25E6%2588%25AA%25E5%25B1%258F2020-04-15%2B19.31.25.png new file mode 100644 index 0000000..3b72e64 Binary files /dev/null and b/static/post-img/2020-04-15-zi-ding-yi-yu-ming-cai-de-keng-blogger-github-page-%25E6%2588%25AA%25E5%25B1%258F2020-04-15%2B19.31.25.png differ diff --git a/static/post-img/2020-04-15-zi-ding-yi-yu-ming-cai-de-keng-blogger-github-page-%25E6%2588%25AA%25E5%25B1%258F2020-04-15%2B19.43.26.png b/static/post-img/2020-04-15-zi-ding-yi-yu-ming-cai-de-keng-blogger-github-page-%25E6%2588%25AA%25E5%25B1%258F2020-04-15%2B19.43.26.png new file mode 100644 index 0000000..a932219 Binary files /dev/null and b/static/post-img/2020-04-15-zi-ding-yi-yu-ming-cai-de-keng-blogger-github-page-%25E6%2588%25AA%25E5%25B1%258F2020-04-15%2B19.43.26.png differ diff --git a/static/post-img/2020-04-15-zi-ding-yi-yu-ming-cai-de-keng-blogger-github-page-%25E6%2588%25AA%25E5%25B1%258F2020-04-15%2B19.46.03.png b/static/post-img/2020-04-15-zi-ding-yi-yu-ming-cai-de-keng-blogger-github-page-%25E6%2588%25AA%25E5%25B1%258F2020-04-15%2B19.46.03.png new file mode 100644 index 0000000..d12ac8c Binary files /dev/null and b/static/post-img/2020-04-15-zi-ding-yi-yu-ming-cai-de-keng-blogger-github-page-%25E6%2588%25AA%25E5%25B1%258F2020-04-15%2B19.46.03.png differ diff --git a/static/post-img/2020-04-18-zhe-teng-mac-wo-xiang-yao-yi-ge-gen-rstudio-yi-yang-de-terminal-%25E6%2588%25AA%25E5%25B1%258F2020-04-17%2B11.11.12.png b/static/post-img/2020-04-18-zhe-teng-mac-wo-xiang-yao-yi-ge-gen-rstudio-yi-yang-de-terminal-%25E6%2588%25AA%25E5%25B1%258F2020-04-17%2B11.11.12.png new file mode 100644 index 0000000..e3149b2 Binary files /dev/null and b/static/post-img/2020-04-18-zhe-teng-mac-wo-xiang-yao-yi-ge-gen-rstudio-yi-yang-de-terminal-%25E6%2588%25AA%25E5%25B1%258F2020-04-17%2B11.11.12.png differ diff --git a/static/post-img/2020-05-18-bo-ke-shi-jie-de-yao-qing-han-ting-bo-ke-fa-xian-xin-bo-ke-yong-bo-ke-gai-shan-sheng-huo-PNG%25E5%259B%25BE%25E5%2583%258F.png b/static/post-img/2020-05-18-bo-ke-shi-jie-de-yao-qing-han-ting-bo-ke-fa-xian-xin-bo-ke-yong-bo-ke-gai-shan-sheng-huo-PNG%25E5%259B%25BE%25E5%2583%258F.png new file mode 100644 index 0000000..12644d6 Binary files /dev/null and b/static/post-img/2020-05-18-bo-ke-shi-jie-de-yao-qing-han-ting-bo-ke-fa-xian-xin-bo-ke-yong-bo-ke-gai-shan-sheng-huo-PNG%25E5%259B%25BE%25E5%2583%258F.png differ diff --git a/static/post-img/2020-05-21-digital-zettelkasten-101-aka-my-second-great-markdown-editor-contest-%25E6%2588%25AA%25E5%25B1%258F2020-05-21%2B21.17.25.png b/static/post-img/2020-05-21-digital-zettelkasten-101-aka-my-second-great-markdown-editor-contest-%25E6%2588%25AA%25E5%25B1%258F2020-05-21%2B21.17.25.png new file mode 100644 index 0000000..718d994 Binary files /dev/null and b/static/post-img/2020-05-21-digital-zettelkasten-101-aka-my-second-great-markdown-editor-contest-%25E6%2588%25AA%25E5%25B1%258F2020-05-21%2B21.17.25.png differ diff --git a/static/post-img/2020-05-21-digital-zettelkasten-101-aka-my-second-great-markdown-editor-contest-STIIITCH_2020_05_21_08_05_23.JPEG b/static/post-img/2020-05-21-digital-zettelkasten-101-aka-my-second-great-markdown-editor-contest-STIIITCH_2020_05_21_08_05_23.JPEG new file mode 100644 index 0000000..a873db9 Binary files /dev/null and b/static/post-img/2020-05-21-digital-zettelkasten-101-aka-my-second-great-markdown-editor-contest-STIIITCH_2020_05_21_08_05_23.JPEG differ diff --git a/static/post-img/2020-05-24-git-error-refusing.png b/static/post-img/2020-05-24-git-error-refusing.png new file mode 100644 index 0000000..1824626 Binary files /dev/null and b/static/post-img/2020-05-24-git-error-refusing.png differ diff --git a/static/post-img/2020-10-27-ipados-14-ban-gong-ji-lu-yi-ji-yi-dian-guan-yu-whats-a-real-computer-de-gan-xiang-%25E6%259C%25AA%25E5%2591%25BD%25E5%2590%258D.png b/static/post-img/2020-10-27-ipados-14-ban-gong-ji-lu-yi-ji-yi-dian-guan-yu-whats-a-real-computer-de-gan-xiang-%25E6%259C%25AA%25E5%2591%25BD%25E5%2590%258D.png new file mode 100644 index 0000000..55d1121 Binary files /dev/null and b/static/post-img/2020-10-27-ipados-14-ban-gong-ji-lu-yi-ji-yi-dian-guan-yu-whats-a-real-computer-de-gan-xiang-%25E6%259C%25AA%25E5%2591%25BD%25E5%2590%258D.png differ diff --git a/static/post-img/2020-10-27-ipados-14-ban-gong-ji-lu-yi-ji-yi-dian-guan-yu-whats-a-real-computer-de-gan-xiang-IMG_6355.JPG b/static/post-img/2020-10-27-ipados-14-ban-gong-ji-lu-yi-ji-yi-dian-guan-yu-whats-a-real-computer-de-gan-xiang-IMG_6355.JPG new file mode 100644 index 0000000..4bf8a3d Binary files /dev/null and b/static/post-img/2020-10-27-ipados-14-ban-gong-ji-lu-yi-ji-yi-dian-guan-yu-whats-a-real-computer-de-gan-xiang-IMG_6355.JPG differ diff --git a/static/post-img/2020-10-27-ipados-14-ban-gong-ji-lu-yi-ji-yi-dian-guan-yu-whats-a-real-computer-de-gan-xiang-IMG_6357.PNG b/static/post-img/2020-10-27-ipados-14-ban-gong-ji-lu-yi-ji-yi-dian-guan-yu-whats-a-real-computer-de-gan-xiang-IMG_6357.PNG new file mode 100644 index 0000000..44260fb Binary files /dev/null and b/static/post-img/2020-10-27-ipados-14-ban-gong-ji-lu-yi-ji-yi-dian-guan-yu-whats-a-real-computer-de-gan-xiang-IMG_6357.PNG differ diff --git a/static/post-img/2020-12-07-2020-nian-11-yue-wang-luo-gou-wu-de-yu-shi-417lY7wgJ2L._SY425_.jpg b/static/post-img/2020-12-07-2020-nian-11-yue-wang-luo-gou-wu-de-yu-shi-417lY7wgJ2L._SY425_.jpg new file mode 100644 index 0000000..0a41dc3 Binary files /dev/null and b/static/post-img/2020-12-07-2020-nian-11-yue-wang-luo-gou-wu-de-yu-shi-417lY7wgJ2L._SY425_.jpg differ diff --git a/static/post-img/2020-12-07-2020-nian-11-yue-wang-luo-gou-wu-de-yu-shi-41IY-OPFW4L._SY425_.jpg b/static/post-img/2020-12-07-2020-nian-11-yue-wang-luo-gou-wu-de-yu-shi-41IY-OPFW4L._SY425_.jpg new file mode 100644 index 0000000..f59b98f Binary files /dev/null and b/static/post-img/2020-12-07-2020-nian-11-yue-wang-luo-gou-wu-de-yu-shi-41IY-OPFW4L._SY425_.jpg differ diff --git a/static/post-img/2020-12-07-2020-nian-11-yue-wang-luo-gou-wu-de-yu-shi-51KLYJIHT4L._SY425_.jpg b/static/post-img/2020-12-07-2020-nian-11-yue-wang-luo-gou-wu-de-yu-shi-51KLYJIHT4L._SY425_.jpg new file mode 100644 index 0000000..43c9a07 Binary files /dev/null and b/static/post-img/2020-12-07-2020-nian-11-yue-wang-luo-gou-wu-de-yu-shi-51KLYJIHT4L._SY425_.jpg differ diff --git a/static/post-img/2020-12-07-2020-nian-11-yue-wang-luo-gou-wu-de-yu-shi-51bmO69vvxL._SY425_.jpg b/static/post-img/2020-12-07-2020-nian-11-yue-wang-luo-gou-wu-de-yu-shi-51bmO69vvxL._SY425_.jpg new file mode 100644 index 0000000..cefb2e7 Binary files /dev/null and b/static/post-img/2020-12-07-2020-nian-11-yue-wang-luo-gou-wu-de-yu-shi-51bmO69vvxL._SY425_.jpg differ diff --git a/static/post-img/2020-12-07-2020-nian-11-yue-wang-luo-gou-wu-de-yu-shi-718dDwEOH%2BL._AC_UX425_.jpg b/static/post-img/2020-12-07-2020-nian-11-yue-wang-luo-gou-wu-de-yu-shi-718dDwEOH%2BL._AC_UX425_.jpg new file mode 100644 index 0000000..73f68ad Binary files /dev/null and b/static/post-img/2020-12-07-2020-nian-11-yue-wang-luo-gou-wu-de-yu-shi-718dDwEOH%2BL._AC_UX425_.jpg differ diff --git a/static/post-img/2020-12-07-2020-nian-11-yue-wang-luo-gou-wu-de-yu-shi-71j7xgWapBL._AC_SX425_.jpg b/static/post-img/2020-12-07-2020-nian-11-yue-wang-luo-gou-wu-de-yu-shi-71j7xgWapBL._AC_SX425_.jpg new file mode 100644 index 0000000..7c4f16d Binary files /dev/null and b/static/post-img/2020-12-07-2020-nian-11-yue-wang-luo-gou-wu-de-yu-shi-71j7xgWapBL._AC_SX425_.jpg differ diff --git a/static/post-img/2020-12-07-2020-nian-11-yue-wang-luo-gou-wu-de-yu-shi-819nNuC-QaL._AC_SX425_.jpg b/static/post-img/2020-12-07-2020-nian-11-yue-wang-luo-gou-wu-de-yu-shi-819nNuC-QaL._AC_SX425_.jpg new file mode 100644 index 0000000..196e978 Binary files /dev/null and b/static/post-img/2020-12-07-2020-nian-11-yue-wang-luo-gou-wu-de-yu-shi-819nNuC-QaL._AC_SX425_.jpg differ diff --git a/static/post-img/2020-12-07-2020-nian-11-yue-wang-luo-gou-wu-de-yu-shi-81MS5VwufYL._AC_SX425_.jpg b/static/post-img/2020-12-07-2020-nian-11-yue-wang-luo-gou-wu-de-yu-shi-81MS5VwufYL._AC_SX425_.jpg new file mode 100644 index 0000000..fae09d4 Binary files /dev/null and b/static/post-img/2020-12-07-2020-nian-11-yue-wang-luo-gou-wu-de-yu-shi-81MS5VwufYL._AC_SX425_.jpg differ diff --git a/static/post-img/2021-01-07-2020-nian-12-yue-wang-luo-gou-wu-de-yu-shi-ying-bi-bao-gu-chuan-dao-er-ji-dai-can-31F5TgslGkL._SX425_.jpg b/static/post-img/2021-01-07-2020-nian-12-yue-wang-luo-gou-wu-de-yu-shi-ying-bi-bao-gu-chuan-dao-er-ji-dai-can-31F5TgslGkL._SX425_.jpg new file mode 100644 index 0000000..2c1a9bd Binary files /dev/null and b/static/post-img/2021-01-07-2020-nian-12-yue-wang-luo-gou-wu-de-yu-shi-ying-bi-bao-gu-chuan-dao-er-ji-dai-can-31F5TgslGkL._SX425_.jpg differ diff --git a/static/post-img/2021-01-07-2020-nian-12-yue-wang-luo-gou-wu-de-yu-shi-ying-bi-bao-gu-chuan-dao-er-ji-dai-can-fee_325_225_png b/static/post-img/2021-01-07-2020-nian-12-yue-wang-luo-gou-wu-de-yu-shi-ying-bi-bao-gu-chuan-dao-er-ji-dai-can-fee_325_225_png new file mode 100644 index 0000000..f126b69 Binary files /dev/null and b/static/post-img/2021-01-07-2020-nian-12-yue-wang-luo-gou-wu-de-yu-shi-ying-bi-bao-gu-chuan-dao-er-ji-dai-can-fee_325_225_png differ diff --git a/static/post-img/2021-01-07-2020-nian-12-yue-wang-luo-gou-wu-de-yu-shi-ying-bi-bao-gu-chuan-dao-er-ji-dai-can-huel_hot___savoury_320x.jpg b/static/post-img/2021-01-07-2020-nian-12-yue-wang-luo-gou-wu-de-yu-shi-ying-bi-bao-gu-chuan-dao-er-ji-dai-can-huel_hot___savoury_320x.jpg new file mode 100644 index 0000000..2ea5a00 Binary files /dev/null and b/static/post-img/2021-01-07-2020-nian-12-yue-wang-luo-gou-wu-de-yu-shi-ying-bi-bao-gu-chuan-dao-er-ji-dai-can-huel_hot___savoury_320x.jpg differ diff --git a/static/post-img/2021-02-04-shopping-1.jpg b/static/post-img/2021-02-04-shopping-1.jpg new file mode 100644 index 0000000..462aad6 Binary files /dev/null and b/static/post-img/2021-02-04-shopping-1.jpg differ diff --git a/static/post-img/2021-02-04-shopping-2.jpg b/static/post-img/2021-02-04-shopping-2.jpg new file mode 100644 index 0000000..d7e721b Binary files /dev/null and b/static/post-img/2021-02-04-shopping-2.jpg differ diff --git a/static/post-img/2021-02-04-shopping-3.jpg b/static/post-img/2021-02-04-shopping-3.jpg new file mode 100644 index 0000000..a387670 Binary files /dev/null and b/static/post-img/2021-02-04-shopping-3.jpg differ diff --git a/static/post-img/2021-02-04-shopping-4.jpg b/static/post-img/2021-02-04-shopping-4.jpg new file mode 100644 index 0000000..f84137a Binary files /dev/null and b/static/post-img/2021-02-04-shopping-4.jpg differ diff --git a/static/post-img/2021-02-04-shopping-5.jpg b/static/post-img/2021-02-04-shopping-5.jpg new file mode 100644 index 0000000..9c2f226 Binary files /dev/null and b/static/post-img/2021-02-04-shopping-5.jpg differ diff --git a/static/post-img/ELs5nzWXkAAUa7G-orig.jpg b/static/post-img/ELs5nzWXkAAUa7G-orig.jpg new file mode 100644 index 0000000..8214ac8 Binary files /dev/null and b/static/post-img/ELs5nzWXkAAUa7G-orig.jpg differ diff --git a/static/post-img/background-sky.jpg b/static/post-img/background-sky.jpg new file mode 100644 index 0000000..d260321 Binary files /dev/null and b/static/post-img/background-sky.jpg differ diff --git a/static/post-img/sinotype-fonts-stcaiyun.jpeg b/static/post-img/sinotype-fonts-stcaiyun.jpeg new file mode 100644 index 0000000..edf79b0 Binary files /dev/null and b/static/post-img/sinotype-fonts-stcaiyun.jpeg differ diff --git a/static/post-img/sinotype-fonts-stfangsong.jpeg b/static/post-img/sinotype-fonts-stfangsong.jpeg new file mode 100644 index 0000000..3626ed1 Binary files /dev/null and b/static/post-img/sinotype-fonts-stfangsong.jpeg differ diff --git a/static/post-img/sinotype-fonts-sthupo.jpeg b/static/post-img/sinotype-fonts-sthupo.jpeg new file mode 100644 index 0000000..37196ad Binary files /dev/null and b/static/post-img/sinotype-fonts-sthupo.jpeg differ diff --git a/static/post-img/sinotype-fonts-stkaiti.jpeg b/static/post-img/sinotype-fonts-stkaiti.jpeg new file mode 100644 index 0000000..b715142 Binary files /dev/null and b/static/post-img/sinotype-fonts-stkaiti.jpeg differ diff --git a/static/post-img/sinotype-fonts-stlishu.jpeg b/static/post-img/sinotype-fonts-stlishu.jpeg new file mode 100644 index 0000000..aa3cf60 Binary files /dev/null and b/static/post-img/sinotype-fonts-stlishu.jpeg differ diff --git a/static/post-img/sinotype-fonts-stsongti.jpeg b/static/post-img/sinotype-fonts-stsongti.jpeg new file mode 100644 index 0000000..0ed6156 Binary files /dev/null and b/static/post-img/sinotype-fonts-stsongti.jpeg differ diff --git a/static/post-img/sinotype-fonts-stxihei.jpeg b/static/post-img/sinotype-fonts-stxihei.jpeg new file mode 100644 index 0000000..525f12a Binary files /dev/null and b/static/post-img/sinotype-fonts-stxihei.jpeg differ diff --git a/static/post-img/sinotype-fonts-stxingkai.jpeg b/static/post-img/sinotype-fonts-stxingkai.jpeg new file mode 100644 index 0000000..dd24dfa Binary files /dev/null and b/static/post-img/sinotype-fonts-stxingkai.jpeg differ diff --git a/static/post-img/sinotype-fonts-stxinwei.jpeg b/static/post-img/sinotype-fonts-stxinwei.jpeg new file mode 100644 index 0000000..bfa5bd1 Binary files /dev/null and b/static/post-img/sinotype-fonts-stxinwei.jpeg differ diff --git a/static/post-vid/2021-02-22-shimeji-for-macos.mp4 b/static/post-vid/2021-02-22-shimeji-for-macos.mp4 new file mode 100644 index 0000000..39357d6 Binary files /dev/null and b/static/post-vid/2021-02-22-shimeji-for-macos.mp4 differ diff --git a/static/post-vid/ios-alarm-clock.mp4 b/static/post-vid/ios-alarm-clock.mp4 new file mode 100644 index 0000000..ecb65a3 Binary files /dev/null and b/static/post-vid/ios-alarm-clock.mp4 differ diff --git a/static/sticker/nice.gif b/static/sticker/nice.gif new file mode 100644 index 0000000..9733bd6 Binary files /dev/null and b/static/sticker/nice.gif differ diff --git a/static/sticker/nice.mp4 b/static/sticker/nice.mp4 new file mode 100644 index 0000000..8899e1a Binary files /dev/null and b/static/sticker/nice.mp4 differ diff --git a/static/sticker/question.jpg b/static/sticker/question.jpg new file mode 100644 index 0000000..6f4beb0 Binary files /dev/null and b/static/sticker/question.jpg differ diff --git a/static/sticker/scream.gif b/static/sticker/scream.gif new file mode 100644 index 0000000..c7e3beb Binary files /dev/null and b/static/sticker/scream.gif differ diff --git a/static/sticker/scream.mp4 b/static/sticker/scream.mp4 new file mode 100644 index 0000000..0e47497 Binary files /dev/null and b/static/sticker/scream.mp4 differ diff --git a/static/sticker/works-on-my-machine.png b/static/sticker/works-on-my-machine.png new file mode 100644 index 0000000..825a2f2 Binary files /dev/null and b/static/sticker/works-on-my-machine.png differ diff --git a/themes/diary/.github/ISSUE_TEMPLATE/bug_report.md b/themes/diary/.github/ISSUE_TEMPLATE/bug_report.md new file mode 100644 index 0000000..ffdca0a --- /dev/null +++ b/themes/diary/.github/ISSUE_TEMPLATE/bug_report.md @@ -0,0 +1,28 @@ +--- +name: Bug report +about: Create a report to help us improve +title: '' +labels: '' +assignees: '' + +--- + +**Describe the bug** +A clear and concise description of what the bug is. + +**To Reproduce** +Steps to reproduce the behavior. + +**Expected behavior** +A clear and concise description of what you expected to happen. + +**Screenshots** +If applicable, add screenshots to help explain your problem. + +**Environment** +Your Hugo version, generated from `hugo version`. +(OS information also included in hugo version, so you don't need to tell this.) +And your browser's basic information. + +**Additional context** +Add any other context about the problem here. diff --git a/themes/diary/LICENSE b/themes/diary/LICENSE new file mode 100644 index 0000000..b5eeb5f --- /dev/null +++ b/themes/diary/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2019 Rise + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. \ No newline at end of file diff --git a/themes/diary/README.md b/themes/diary/README.md new file mode 100644 index 0000000..0da0be7 --- /dev/null +++ b/themes/diary/README.md @@ -0,0 +1,126 @@ +# hugo-theme-diary +![](https://img.shields.io/badge/license-MIT-blue.svg) + +隻言片語・於此匯聚 + +Moments piled up. + +A Hugo theme ported from [SumiMakito/hexo-theme-Journal](https://github.com/SumiMakito/hexo-theme-Journal/). + +## Links + +**Some useful links here:** + +[Live Demo](https://amazingrise.net/) + +[Intro Video](https://www.bilibili.com/video/av84273002) + +[Changelog (Progress and TODO List)](https://github.com/AmazingRise/hugo-theme-diary/projects/) + +[Project Wiki](https://github.com/amazingrise/hugo-theme-diary/wiki) + +Original Author: [SumiMakito](https://github.com/SumiMakito) + + +## Features + +Features in the ori.: + +- Simple and easy to customize +- Concentrated on reading and writing (find a Markdown editor then) experience +- Mobile-friendly & widescreen-friendly +- Flexible commenting control + +Features in this ported version: + +- Add Gitalk and Valine intergration. +- Customizable color scheme. (Some bug in original version, fixed.) +- Firefox-friendly. (CSS issue in original version, fixed.) +- `featured_image` url bug is fixed. +- Table of Contents with scroll spy and auto collapse. +- Dark mode. +- MathJax support. (Needs to be enabled manually, see [the project wiki](https://github.com/amazingrise/hugo-theme-diary/wiki) for details.) +- Google Custom Search Engine support. +- Internationalization(i18n) support, with English, French and Chinese(Simplified and Traditional). +- Inserting figures more easily, see [wiki](https://github.com/AmazingRise/hugo-theme-diary/wiki/Inserting-Figures) for details. + +## Quick Start + +If your website is using Git as version control, please do as follows: + +1. Fetch the theme dir. + +From the root of your Hugo site, open the terminal and execute: +```bash +git submodule add https://github.com/AmazingRise/hugo-theme-diary.git themes/diary +``` +2. Update git repository. + +Then update the git repository from the root of your site: +```bash +git submodule update --remote --merge +``` + +3. Run example site. + +From the root of themes/diary/exampleSite: +```bash +hugo server --themesDir ../.. +``` +## Personalization + +### Example config + +See [/exampleSite/config.toml](https://github.com/AmazingRise/hugo-theme-diary/blob/master/exampleSite/config.toml) + +### Customization + +Please visit [the project wiki](https://github.com/amazingrise/hugo-theme-diary/wiki) for more details. + +[Settings of Table of Contents](https://github.com/AmazingRise/hugo-theme-diary/wiki/Table-Of-Contents) + +[Disable Dark Mode](https://github.com/AmazingRise/hugo-theme-diary/wiki/Dark-Mode) + +[Enable MathJax](https://github.com/AmazingRise/hugo-theme-diary/wiki/MathJax) + +[Add or disable comment area](https://github.com/AmazingRise/hugo-theme-diary/wiki/Comment-Area) + +[Add Google Search Box on your site](https://github.com/AmazingRise/hugo-theme-diary/wiki/Customization#add-google-search-box-on-your-site) + +[Customizations](https://github.com/AmazingRise/hugo-theme-diary/wiki/Customization) + +[Taxonomies and Sections (Archive, Categories and Tags)](https://github.com/AmazingRise/hugo-theme-diary/wiki/Taxonomies-and-Sections-(Archive,-Categories-and-Tags)) + +[RSS Feed](https://github.com/AmazingRise/hugo-theme-diary/wiki/RSS-Feed) + +[Meta Data of posts](https://github.com/AmazingRise/hugo-theme-diary/wiki/Post's-meta-data) + +[Enable Reading Time](https://github.com/AmazingRise/hugo-theme-diary/wiki/Reading-Time) + +[Internationalization](https://github.com/AmazingRise/hugo-theme-diary/wiki/Internationalization) + +## Comparison + +For details about the difference lies in the new version, please click [here.](https://github.com/AmazingRise/hugo-theme-diary/wiki/Comparison) + +## Screenshots + +Site Main Page + +![](https://raw.githubusercontent.com/AmazingRise/hugo-theme-diary/master/images/tn.png) + +An essay with picture. + +![](https://raw.githubusercontent.com/AmazingRise/hugo-theme-diary/master/images/essay.png) + +Table of Contents with scroll spy. + +![](https://raw.githubusercontent.com/AmazingRise/hugo-theme-diary/master/images/essay2.png) + +Mobile View: Main Page + +![](https://raw.githubusercontent.com/AmazingRise/hugo-theme-diary/master/images/m_main.png) + +Mobile View: Drawer + +![](https://raw.githubusercontent.com/AmazingRise/hugo-theme-diary/master/images/m_drawer.png) \ No newline at end of file diff --git a/themes/diary/archetypes/default.md b/themes/diary/archetypes/default.md new file mode 100644 index 0000000..f8184fe --- /dev/null +++ b/themes/diary/archetypes/default.md @@ -0,0 +1,12 @@ +--- +title: "" +date: +description: "" +tags: [] +featured_image: "" +# images is optional, but needed for showing Twitter Card +images: [] +categories: +comment : true +draft: true +--- diff --git a/themes/diary/assets/scss/dark-mode.scss b/themes/diary/assets/scss/dark-mode.scss new file mode 100644 index 0000000..7bbd9cc --- /dev/null +++ b/themes/diary/assets/scss/dark-mode.scss @@ -0,0 +1,252 @@ +@import "journal"; + +$light-accent: lighten($color-accent, 10%); +$deep-light-accent: lighten($color-accent, 30%); +$dark-mode-text: darken(#FFF, 10%); + +$dark-mode-back-container-background: #212121; +$dark-mode-front-container-background: #282828; + +body.night { + background: $dark-mode-back-container-background; + :root{ + --color_555: #ccc; + --color_ededed: #000; + } + + img { + opacity: .8; + } + + blockquote { + * { + color: $deep-light-accent !important; + } + } + + a { + color: $light-accent; + &:hover { + color: $deep-light-accent !important; + } + @media screen and (max-width: $single-column-max-width) { + &:hover { + text-decoration: none !important; + } + } + } + + code:not([data-lang]) { + color: $deep-light-accent !important; + } + + pre { + code:not([data-lang]) { + background: none !important; + color: $dark-mode-text !important; + } + } + + table * { + color: $dark-mode-text; + } + + .side-container { + $nav-item-hover-background-alpha: 0.02; + $nav-item-hover-indicator-alpha: 0.6; + $nav-item-hover-color-darken: 30%; + $nav-item-active-background-alpha: 0.03; + $nav-item-active-color-darken: 20%; + * { + color: $dark-mode-text; + } + .nav-head { + //border-right: 4px solid $color-accent; + &:hover { + border-right: 2px solid + rgba($color-accent, $nav-item-hover-indicator-alpha); + background: rgba($color-accent, $nav-item-hover-background-alpha); + color: lighten($color-accent, $nav-item-hover-color-darken); + } + &.active { + border-right: 2px solid $color-accent; + background: rgba($color-accent, $nav-item-active-background-alpha); + color: lighten($color-accent, $nav-item-active-color-darken); + } + } + + .nav-link-list { + $nav-item-hover-indicator-alpha: 0.6; + $nav-item-hover-color-lighten: 30%; + $nav-item-active-background-alpha: 0.1; + $nav-item-active-color-lighten: 20%; + flex-grow: 1; + .nav-link-item { + color: $dark-mode-text !important; + //border-right: 4px solid transparent; + &:hover { + border-right: 2px solid + rgba($color-accent, $nav-item-hover-indicator-alpha); + color: lighten($color-accent, $nav-item-hover-color-lighten) !important; + } + &.active { + border-right: 2px solid $color-accent; + background: rgba($color-accent, $nav-item-active-background-alpha); + color: lighten($color-accent, $nav-item-active-color-lighten) !important; + } + } + } + } + .stream-container { + .post-head-wrapper-text-only *{ + color: $dark-mode-text; + } + .post{ + background: $dark-mode-front-container-background; + @media screen and (max-width: $single-column-max-width) { + background: $dark-mode-back-container-background; + } + .post-pagination a:not([href]){ + color: $dark-mode-text; + } + .post-comment-wrapper * { + color: $dark-mode-text; + } + } + .post-list-container { + -webkit-transition: all 0.5s ease; + -moz-transition: all 0.5s ease; + -o-transition: all 0.5s ease; + transition: all 0.5s ease; + background: $dark-mode-front-container-background; + @media screen and (max-width: $single-column-max-width) { + background: $dark-mode-back-container-background; + } + &, + > * { + .post-item-wrapper { + * { + color: $dark-mode-text; + } + .post-item-info-wrapper{ + @media screen and (max-width: $single-column-max-width) { + box-shadow: 0 0 8px rgba(0, 0, 0, 0.1); + background: $dark-mode-front-container-background; + } + } + + @media screen and (max-width: $single-column-max-width) { + box-shadow: 0 0 8px rgba(0, 0, 0, 0.1); + background: $dark-mode-front-container-background; + } + &:not(.post-item-wrapper-no-hover):hover { + background: rgba(255,255,255, 0.03); + * { + color: $deep-light-accent !important; + } + } + } + } + } + + } + + .single-column-nav-container { + * { + color: $dark-mode-text; + } + @media screen and (max-width: $single-column-max-width) { + .nav-dropdown-toggle { + &:hover { + color: #3f587d !important; + } + } + .navbar-brand { + color: $dark-mode-text; + &:hover { + color: $dark-mode-text; + } + } + .nav-background { + background: $dark-mode-front-container-background; + box-shadow: 0 2px 2px rgba(0, 0, 0, 0.2); + } + } + } + + .single-column-header-container { + @media screen and (max-width: $single-column-max-width) { + * { + font-family: $sans-preferred-font-list; + color: $deep-light-accent; + } + .single-column-header-title { + color: $dark-mode-text; + } + .single-column-header-subtitle { + color: $dark-mode-text; + } + } + } + + + .single-column-drawer-container { + @media screen and (max-width: $single-column-max-width) { + .drawer-content { + background: $dark-mode-front-container-background; + .toc{ + background-color: lighten($dark-mode-front-container-background,10%); + } + .drawer-menu { + .drawer-menu-item { + color: $dark-mode-text; + &.active { + border-right: 2px solid $color-accent; + color: $light-accent; + } + } + } + } + } + } + + #single-column-footer { + color: $dark-mode-text; + } + + .toc{ + background-color: $dark-mode-front-container-background; + *{ + color: $dark-mode-text; + } + a { + color: $dark-mode-text; + } + .toc-active{ + color: $light-accent !important; + } + } + + .post-body p,h1,h2,h3,h4,h5,h6,li { + color: $dark-mode-text; + *:not(a){ + color: $dark-mode-text; + } + } + .pagination * { + color: $dark-mode-text; + } + + .vwrap * { + color: $dark-mode-text !important; + } + + .vcontent p { + color: $dark-mode-text !important; + } + + .gsc-control-searchbox-only table *{ + color: black !important; + } + +} diff --git a/themes/diary/assets/scss/journal.scss b/themes/diary/assets/scss/journal.scss new file mode 100644 index 0000000..5a50579 --- /dev/null +++ b/themes/diary/assets/scss/journal.scss @@ -0,0 +1,1097 @@ +$color-accent: #037BBA; +//$color-accent: #330000; +$back-container-background: #fcfcfc; +$front-container-background: #ffffff; + +$default-font-list: "Lora", "Noto Serif SC"; +$mono-font-list: "Fira Mono", "Cousine", Monaco, Menlo, "Source Code Pro", + monospace; +$sans-preferred-font-list: "Montserrat", "Roboto", "Source Sans Pro", + "Helvetica", $default-font-list; + +$side-container-width: 25%; //280px; +$extra-container-width: 25%; +$extra-container-pagination-width: 64px; +$stream-container-max-width: 1620px; + +$nav-title-size: 30px; +$nav-subtitle-size: 18px; +$nav-link-size: 20px; +$nav-footer-size: 12px; +$post-title-size: 30px; +$post-subtitle-size: 14px; +$post-summary-size: 16px; +$post-body-size: 16px; +$post-meta-size: 16px; +$tag-category-title-size: 22px; +$toc-size: 16px; + +$dark-accent: darken($color-accent, 10%); +$deep-dark-accent: darken($color-accent, 50%); +$color-text: $deep-dark-accent; + +@if lightness($color-accent) <20% { + $dark-accent: $color-accent; + $deep-dark-accent: $color-accent; + $color-text: $deep-dark-accent; +} + +$single-column-max-width: 1020px; +$single-column-drawer-width: 260px; +$single-column-nav-title-size: 28px; +$single-column-nav-subtitle-size: 20px; +$single-column-nav-link-size: 18px; +$single-column-nav-footer-size: 13px; +$single-column-post-title-size: 22px; +$single-column-post-summary-size: 16px; +$single-column-post-body-size: 16px; +$single-column-post-meta-size: 14px; +$single-column-tag-category-title-size: 14px; +$single-column-toc-size: 14px; + +$h1: 30px; +$h-diff: 3px; + +::selection { + background: rgba($color-accent, 0.4); +} + +body { + background: $back-container-background; + padding: 0; + margin: 0; + font-family: $default-font-list; + text-shadow: 1px 1px 1px rgba(0, 0, 0, 0.004); + text-rendering: optimizeLegibility !important; + -webkit-font-smoothing: antialiased !important; + color: $color-text; +} + +* { + color: $deep-dark-accent; + //line-height: 1.7em; + word-wrap: break-word; + box-sizing: border-box; +} + +h1, h2, h3{ + + font-weight: bold; + +} + +h1 { + font-size: $h1; + margin: 20px auto; +} + +h2 { + font-size: $h1 - 2 * $h-diff; + margin: 20px auto; +} + +h3 { + font-size: $h1 - 3 * $h-diff; + margin: 20px auto; +} + +h4 { + font-size: $h1 - 3 * $h-diff; + padding: 20px auto; +} + +h5 { + font-size: $h1 - 3 * $h-diff - 1; + padding: 10px auto; +} + +h6 { + font-size: $h1 - 3 * $h-diff - 2; + padding: 10px auto; +} + +textarea, +select, +input, +button { + outline: none !important; +} + +table { + table-layout: fixed; + overflow-x: scroll; +} + +button { + cursor: hand; + cursor: pointer; +} + +code { + color: $dark-accent; + background: rgba($color-accent, 0.07) !important; + padding: 2px 5px; + border-radius: 3px; + font-family: $mono-font-list; +} + +pre { + //background: rgba(46,46,46, 1) !important; + //color: rgba(255,255,255, 1); + background: rgba($color-accent, 0.07); + padding: 12px 15px; + border-radius: 5px; + font-family: $mono-font-list; + * { + background: none !important; + font-family: $mono-font-list !important; + } + code { + padding: 0; + } +} + +blockquote { + padding: 10px 20px; + border-left: 3px solid rgba($color-accent, 0.7); + color: $dark-accent; + background: rgba($color-accent, 0.05); + p { + margin-bottom: 0; + } + * { + color: $dark-accent; + } +} + +a { + color: $color-accent; + &:hover { + color: darken($color-accent, 10%); + text-underline-position: under; + } + @media screen and (max-width: $single-column-max-width) { + &:hover { + text-decoration: none !important; + } + } +} + +.a-block { + display: block; + text-decoration: none !important; + &:hover { + text-decoration: none !important; + } +} + +.no-margin { + margin: 0; +} + +.no-padding { + padding: 0; +} + +.no-overflow { + overflow: hidden !important; +} + +.animated-visibility { + transition: visibility 0s, opacity 0.5s linear; + visibility: visible; + opacity: 1; +} + +.invisible { + visibility: hidden; + opacity: 0; +} + +.fade-enter-active, +.fade-leave-active { + transition: opacity 0.3s; +} + +.fade-enter, +.fade-leave-to { + opacity: 0; +} + +// dirty hack for livere +#lv-container { + padding: 0 30px; + + @media screen and (max-width: $single-column-max-width) { + padding: 0 15px; + } +} + +.single-column-nav-container { + display: none !important; + @media screen and (max-width: $single-column-max-width) { + display: block !important; + padding: 0; + * { + font-family: $sans-preferred-font-list; + transition: opacity 0.5s ease-in-out; + } + button { + padding: 0; + padding-right: 12px; + padding-left: 12px; + } + .nav-content { + padding: 12px 8px; + justify-content: flex-start; + max-width: unset !important; + } + .navbar-brand { + opacity: 0; + text-align: left; + padding-left: 12px; + //padding-top: 8px; + //justify-content: space-between; + //align-items: stretch; + flex: 1; + } + .nav-dropdown-toggle { + display: flex; + align-content: center; + align-items: center; + justify-items: center; + justify-content: center; + background: none !important; + border: none; + //padding-top: 1px; + &:hover { + color: #3f587d !important; + } + } + .nav-darkmode-toggle { + display: flex; + align-content: center; + align-items: center; + justify-items: center; + justify-content: center; + background: none !important; + border: none; + //padding-top: 1px; + &:hover { + color: #3f587d !important; + } + } + .nav-icon-group { + z-index: 5; + padding-right: 5px; + ul { + list-style: none; + margin: 0; + padding: 0; + } + li { + display: inline; + margin: 0; + padding: 0; + } + } + .nav-icon { + padding: 8px; + } + .nav-background { + opacity: 0; + z-index: -1; + left: 0; + position: absolute; + width: 100%; + height: 100%; + background: white; + -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.2); + -moz-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.2); + box-shadow: 0 1px 1px rgba(0, 0, 0, 0.2); + } + } +} + +.single-column-header-container { + display: none !important; + @media screen and (max-width: $single-column-max-width) { + display: block !important; + padding: 50px 20px 80px 20px; + transition: padding 0.5s ease-in-out, margin 0.5s ease-in-out; + text-align: center; + * { + font-family: $sans-preferred-font-list; + color: $deep-dark-accent; + } + .single-column-header-title { + font-size: $single-column-nav-title-size; + } + .single-column-header-subtitle { + font-size: $single-column-nav-subtitle-size; + } + } +} + +.single-column-drawer-container { + display: none !important; + @media screen and (max-width: $single-column-max-width) { + display: block !important; + position: fixed; + top: 0; + left: -$single-column-drawer-width; + width: $single-column-drawer-width; + height: 100vh; + z-index: 1800; + transition: all 0.3s ease-in-out; + .drawer-content { + background: white; + height: 100%; + width: 100%; + padding: 50px 0 80px 0; + display: flex; + .drawer-menu { + flex-grow: 1; + display: flex; + justify-items: center; + justify-content: center; + flex-direction: column; + $drawer-menu-item-active-background-alpha: 0.1; + $drawer-menu-item-active-color-darken: 30%; + .drawer-menu-item { + font-size: $single-column-nav-link-size; + margin-bottom: 10px; + border-right: 2px solid transparent; + padding: 8px 30px 8px 30px; + cursor: hand; + cursor: pointer; + transition: all 0.2s linear; + color: $deep-dark-accent; + .nav-link-subitem { + font-size: $single-column-nav-link-size; + padding: 2px; + li { + list-style: none; + padding-left: 8px; + } + a { + text-decoration: none; + color: $deep-dark-accent; + } + } + &.active { + border-right: 2px solid $color-accent; + background: rgba( + $color-accent, + $drawer-menu-item-active-background-alpha + ); + color: darken($color-accent, $drawer-menu-item-active-color-darken); + } + } + } + } + } +} + +.single-column-drawer-mask { + display: none !important; + @media screen and (max-width: $single-column-max-width) { + display: block !important; + position: fixed; + top: 0; + bottom: 0; + right: 0; + left: 0; + background: rgba(0, 0, 0, 0.8); + z-index: 1600; + transition: all 0.3s ease-in-out; + } +} + +.single-column-drawer-container-active { + left: 0; + box-shadow: 0 0 8px rgba(0, 0, 0, 0.2); +} + +.side-container { + position: fixed; + top: 0; + height: 100vh; + width: $side-container-width; + text-align: right; + font-family: $sans-preferred-font-list; + padding: 20px 0 50px 0; + //overflow-x: hidden; + //overflow-y: hidden; + display: flex; + flex-direction: column; + justify-content: space-between; + $nav-item-hover-background-alpha: 0.02; + $nav-item-hover-indicator-alpha: 0.6; + $nav-item-hover-color-darken: 30%; + $nav-item-active-background-alpha: 0.03; + $nav-item-active-color-darken: 20%; + .nav-head { + padding: 30px 28px 30px 20px; + cursor: hand; + cursor: pointer; + margin-bottom: 10px; + transition: all 0.2s linear; + color: $deep-dark-accent; + .nav-title { + font-size: $nav-title-size; + line-height: $nav-title-size * 1.4; + } + border-right: 2px solid transparent; + .nav-subtitle { + margin-top: 8px; + font-size: $nav-subtitle-size; + } + &:hover { + border-right: 2px solid + rgba($color-accent, $nav-item-hover-indicator-alpha); + background: rgba($color-accent, $nav-item-hover-background-alpha); + color: darken($color-accent, $nav-item-hover-color-darken); + } + &.active { + border-right: 2px solid $color-accent; + background: rgba($color-accent, $nav-item-active-background-alpha); + color: darken($color-accent, $nav-item-active-color-darken); + } + } + .nav-link-list { + flex-grow: 1; + .nav-link-item { + font-size: $nav-link-size; + margin-bottom: 10px; + border-right: 2px solid transparent; + padding: 8px 28px 8px 30px; + cursor: hand; + cursor: pointer; + transition: all 0.2s linear; + color: $deep-dark-accent; + .nav-link-subitem { + font-size: $nav-link-size - 3px; + li { + list-style: none; + padding-left: 2px; + } + a { + text-decoration: none; + } + } + &:hover { + border-right: 2px solid + rgba($color-accent, $nav-item-hover-indicator-alpha); + background: rgba($color-accent, $nav-item-hover-background-alpha); + color: darken($color-accent, $nav-item-hover-color-darken); + } + &.active { + border-right: 2px solid $color-accent; + background: rgba($color-accent, $nav-item-active-background-alpha); + color: darken($color-accent, $nav-item-active-color-darken); + } + } + } + .nav-footer { + padding: 20px 30px 0 20px; + font-size: $nav-footer-size; + } + @media screen and (max-width: $single-column-max-width) { + display: none; + } +} + +.extra-container { + position: fixed; + top: 0; + right: 0; + + width: $extra-container-width; + /*text-align: right;*/ + font-family: $sans-preferred-font-list; + //overflow-x: hidden; + //overflow-y: hidden; + display: flex; + flex-direction: column; + justify-content: flex-end; + /*padding: 50px 0;*/ + .pagination { + position: fixed; + bottom: 0; + display: flex; + flex-direction: column; + > :not(:last-child) { + // border-bottom: 1px solid rgba(128, 128, 128, 0.12); + } + .pagination-indicator { + display: flex; + flex-direction: column; + align-content: center; + justify-content: center; + align-items: center; + justify-items: center; + width: $extra-container-width; + padding: 15px 0; + font-size: 12px; + width: $extra-container-pagination-width; + font-family: $mono-font-list; + } + .pagination-action { + display: flex; + flex-direction: column; + align-content: center; + justify-content: center; + align-items: center; + justify-items: center; + width: $extra-container-pagination-width; + cursor: hand; + cursor: pointer; + padding: 15px 0; + :not(.pagination-action-icon) { + transition: all 0.2s linear; + font-size: 13px; + font-family: $mono-font-list; + } + .pagination-action-icon { + // margin-right: 4px; + } + * { + transition: all 0.3s linear; + } + &:hover { + text-decoration: none; + * { + color: $dark-accent; + } + } + } + } + @media screen and (max-width: $single-column-max-width) { + display: none; + } +} + +.pagination-bar-container { + position: fixed; + top: 0; + right: 0; + height: 100vh; + width: $side-container-width; + text-align: right; + font-family: $sans-preferred-font-list; + padding: 20px 0; + overflow: scroll; + display: flex; + flex-direction: column; +} + +.stream-container { + padding-left: $side-container-width; + padding-right: $extra-container-width; + width: 100%; + + min-height: 100vh; + @media screen and (max-width: $single-column-max-width) { + padding: 0; + min-height: unset; + } + + .post-list-container { + width: 100%; + min-height: 100vh; + padding: 20px 0 20px 0; + background: $front-container-background; + box-shadow: 0 0 16px rgba(0, 0, 0, 0.12); + + @media screen and (max-width: $single-column-max-width) { + min-height: unset; + padding: 0; + box-shadow: 0 0 0 rgba(0, 0, 0, 0.2); + } + &, + > * { + .post-item-wrapper { + cursor: hand; + cursor: pointer; + .post-item { + margin: 0 28px 0 35px; + padding: 30px 0; + display: flex; + flex-direction: row; + align-items: center; + + @media screen and (max-width: $single-column-max-width) { + flex-direction: column-reverse; + margin: 0 0 15px 0; + padding: 0; + box-shadow: 0 0 8px rgba(0, 0, 0, 0.1); + background: $front-container-background; + } + .post-item-info-wrapper { + flex-grow: 1; + + @media screen and (max-width: $single-column-max-width) { + width: 100%; + padding: 15px 20px; + } + .post-item-title { + font-size: $post-title-size; + font-weight: 600; + font-style: normal; + margin-bottom: 10px; + line-height: 1.5em; + + @media screen and (max-width: $single-column-max-width) { + font-size: $single-column-post-title-size; + margin-bottom: 5px; + } + } + + .post-item-title-small { + font-size: $tag-category-title-size; + margin-bottom: 0; + + @media screen and (max-width: $single-column-max-width) { + font-size: $single-column-tag-category-title-size; + } + } + + .post-item-summary { + font-size: $post-summary-size; + line-height: 1.5em; + margin-bottom: 10px; + + @media screen and (max-width: $single-column-max-width) { + font-size: $single-column-post-summary-size; + margin-bottom: 5px; + } + } + .post-item-meta { + font-size: $post-meta-size; + + @media screen and (max-width: $single-column-max-width) { + font-size: $single-column-post-meta-size; + } + + .draft-label { + color: $color-accent; + border: 1px solid $color-accent; + padding: 0 5px 0 5px ; + border-radius: 10px; + } + } + } + .post-item-image-wrapper { + margin-left: 20px; + @media screen and (max-width: $single-column-max-width) { + width: 100%; + margin-left: 0; + } + .post-item-image { + width: 230px; + height: 120px; + background: no-repeat center; + background-size: cover; + border-radius: 5px; + overflow: hidden; + + @media screen and (max-width: $single-column-max-width) { + width: 100%; + height: 180px; + border-radius: 0; + } + } + } + } + @media screen and (max-width: $single-column-max-width) { + .post-item-no-divider { + border-bottom: none !important; + } + .post-item-no-gaps { + margin: 0; + box-shadow: none; + } + } + + //transition: all 0.2s linear; + * { + transition: all 0.2s linear; + } + &:not(.post-item-wrapper-no-hover):hover { + text-decoration: none; + background: rgba(0, 0, 0, 0.03); + .post-item-title { + text-decoration: underline; + text-decoration-style: 2px solid $color-accent; + text-underline-position: under; + } + * { + color: $dark-accent; + } + + @media screen and (max-width: $single-column-max-width) { + .post-item-title { + text-decoration: none !important; + } + } + } + } + + .post-item-wrapper-no-hover { + cursor: unset; + } + + &:not(:last-child) { + .post-item { + border-bottom: 1px solid rgba(128, 128, 128, 0.12); + + @media screen and (max-width: $single-column-max-width) { + //border-bottom: none !important; + } + } + } + } + } + .post-list-container-no-background { + @media screen and (max-width: $single-column-max-width) { + background: none; + } + } + .post-list-container-shadow { + @media screen and (max-width: $single-column-max-width) { + // box-shadow: 0 -6px 8px -4px rgba(0, 0, 0, 0.1); + box-shadow: 0 0px 8px rgba(0, 0, 0, 0.1); + } + } + .post-list-footer { + text-align: center; + width: 100%; + opacity: 0.3; + color: $deep-dark-accent; + font-family: $default-font-list; + font-size: 13px; + padding: 15px; + } + .post { + + padding: 0 0 20px 0; + .post-head-wrapper { + margin-top: -20px; + background: no-repeat center; + background-size: cover; + position: relative; + padding-top: 140px; + + @media screen and (max-width: $single-column-max-width) { + padding-top: 120px; + } + * { + color: white; + } + .post-title { + padding: 80px 35px 30px 35px; + font-size: $post-title-size; + font-weight: 600; + font-style: normal; + line-height: 1.5em; + background: -moz-linear-gradient( + top, + rgba(0, 0, 0, 0) 0%, + rgba(0, 0, 0, 0.75) 100% + ); /* FF3.6-15 */ + background: -webkit-linear-gradient( + top, + rgba(0, 0, 0, 0) 0%, + rgba(0, 0, 0, 0.75) 100% + ); /* Chrome10-25,Safari5.1-6 */ + background: linear-gradient( + to bottom, + rgba(0, 0, 0, 0) 0%, + rgba(0, 0, 0, 0.75) 100% + ); /* W3C, IE10+, FF16+, Chrome26+, Opera12+, Safari7+ */ + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#c6000000', GradientType=0); /* IE6-9 */ + + @media screen and (max-width: $single-column-max-width) { + font-size: $single-column-post-title-size; + padding: 80px 20px 30px 20px; + } + + .post-subtitle { + font-size: $post-subtitle-size; + line-height: 1.2em !important; + width: 80%; + opacity: 0.6; + padding: 0px 0 8px 0; + } + + .post-meta { + margin: 0; + &, + * { + font-size: 16px; + } + .material-icons { + vertical-align: middle; + margin-bottom: 3px; + } + + @media screen and (max-width: $single-column-max-width) { + &, + * { + font-size: $single-column-post-meta-size; + } + } + } + } + } + + .post-head-wrapper-text-only { + padding: 30px 35px 0 35px; + + @media screen and (max-width: $single-column-max-width) { + padding: 30px 20px 0 20px; + } + .post-title { + font-size: $post-title-size; + font-weight: 600; + font-style: normal; + line-height: 1.5em; + .post-subtitle { + font-size: $post-subtitle-size; + width: 80%; + opacity: 0.6; + padding: 0px 0 8px 0; + } + .post-meta { + margin: 0; + &, + * { + font-size: 16px; + } + .material-icons { + vertical-align: middle; + margin-bottom: 3px; + } + + @media screen and (max-width: $single-column-max-width) { + &, + * { + font-size: $single-column-post-meta-size; + } + } + } + + @media screen and (max-width: $single-column-max-width) { + font-size: $single-column-post-title-size; + } + } + } + + .post-body-wrapper { + padding: 30px 35px 35px 35px; + + @media screen and (max-width: $single-column-max-width) { + padding: 20px 20px 35px 20px; + } + .post-body { + font-size: $post-body-size; + line-height: 1.5em; + * { + word-wrap: break-word; + } + img { + max-width: 100%; + border-radius: 5px; + overflow: hidden; + } + @media screen and (max-width: $single-column-max-width) { + font-size: $single-column-post-body-size; + } + /* + Table of Contents + */ + } + } + + .post-pagination { + padding: 20px 35px; + width: 100%; + display: flex; + justify-content: space-between; + + .newer-posts { + padding-right: 5px; + text-align: left; + width: 50%; + } + + .older-posts { + padding-left: 5px; + text-align: right; + width: 50%; + } + + @media screen and (max-width: $single-column-max-width) { + padding: 20px 20px; + } + } + + .post-comment-wrapper { + iframe { + // Yay a dirty hack + overflow: hidden !important; + } + padding: 20px 35px; + + @media screen and (max-width: $single-column-max-width) { + padding: 20px 20px; + } + } + } + + + + +} + +#single-column-footer { + display: none; + + @media screen and (max-width: $single-column-max-width) { + display: block !important; + text-align: center; + font-size: $single-column-nav-footer-size; + font-family: $sans-preferred-font-list; + padding: 40px 20px 40px 20px; + } +} + +.toc { + float: right; + border-radius: 5px; + margin-left: 30px; + margin-right: 60px; + margin-top: 30px; + max-width: 260px; + max-height: 80vh; + overflow: auto; + background: rgba($color-accent, 0.05); + &, + * { + font-size: $toc-size; + } + ul { + list-style: none; + padding: 0 0 0 20px; + margin: 0; + line-height: 1.7em; + } + .toc-content{ + padding: 20px; + } + .toc-active{ + color: darken($color-accent, 40%) !important; + } + @media screen and (max-width: $single-column-max-width) { + line-height: 2em; + float: none; + margin-top: 30px; + margin-left: 0; + margin-right: 0; + &, + * { + /*font-size: $single-column-toc-size;*/ + } + .toc-content{ + padding: 10px; + } + } +} + +.pagination { + display: none; + + @media screen and (max-width: $single-column-max-width) { + display: flex !important; + flex-direction: row; + justify-content: space-between; + &:not(.index-page) { + margin-top: 15px; + } + .pagination-indicator { + display: flex; + flex-direction: column; + align-content: center; + justify-content: center; + align-items: center; + justify-items: center; + width: $extra-container-width; + padding: 15px 0; + font-size: 12px; + font-family: $mono-font-list; + } + .pagination-action { + display: flex; + flex-direction: column; + align-content: center; + justify-content: center; + align-items: center; + justify-items: center; + width: $extra-container-pagination-width; + cursor: hand; + cursor: pointer; + padding: 15px 0; + :not(.pagination-action-icon) { + transition: all 0.2s linear; + font-size: 13px; + font-family: $mono-font-list; + } + .pagination-action-icon { + // margin-right: 4px; + } + * { + transition: all 0.3s linear; + } + &:hover { + text-decoration: none; + * { + color: $dark-accent; + } + } + } + } +} + +.year { + color: $dark-accent; +} + +mjx-container +{ + overflow-y: hidden !important; +} + +.gsc-control-searchbox-only { + display: flex !important; + background: none !important; + max-width: 70%; + margin-top: 1em; + margin-left: 1.5em; + margin-right: 0.2em; + @media screen and (max-width: $single-column-max-width) { + margin-left: 0.5em; + padding-left: 0.2em; + .gsst_a { + display: none; + } + } +} + +.vwrap * { + color: black !important; +} + +.vcontent p { + color: black !important; +} diff --git a/themes/diary/i18n/de.yaml b/themes/diary/i18n/de.yaml new file mode 100644 index 0000000..77ae03f --- /dev/null +++ b/themes/diary/i18n/de.yaml @@ -0,0 +1,28 @@ +- id: last_mod_on + translation: Zuletzt bearbeitet am {{ .Format "02.01.2006" }} +- id: format_date + translation: '{{ .Format "02.01.2006" }}' +- id: format_date_tosec + translation: '{{ .Format "02.01.2006 15:04" }}' +- id: next_link + translation: Nächste +- id: prev_link + translation: Vorherige +- id: no_newer_posts + translation: Keine neueren Beiträge. +- id: no_older_posts + translation: Keine älteren Beiträge. +- id: comments_disabled + translation: Kommentare deaktiviert. +- id: comments_activate_js + translation: Bitte aktiviere JavaScript um Kommentare zu sehen. +- id: hugo_theme + translation: Hugo Theme +- id: ported_from + translation: Adaptiert von +- id: by + translation: von +- id: draft + translation: ENTWURF +- id: toc_title + translation: INHALTE diff --git a/themes/diary/i18n/en.yaml b/themes/diary/i18n/en.yaml new file mode 100644 index 0000000..812b69c --- /dev/null +++ b/themes/diary/i18n/en.yaml @@ -0,0 +1,28 @@ +- id: last_mod_on + translation: Last modified on {{ .Format "2006-01-02" }} +- id: format_date + translation: '{{ .Format "2006-01-02" }}' +- id: format_date_tosec + translation: '{{ .Format "2006-01-02 15:04" }}' +- id: next_link + translation: Next +- id: prev_link + translation: Previous +- id: no_newer_posts + translation: No newer posts. +- id: no_older_posts + translation: No older posts. +- id: comments_disabled + translation: Comments Disabled. +- id: comments_activate_js + translation: Please activate JavaScript to view comments. +- id: hugo_theme + translation: Hugo Theme +- id: ported_from + translation: Ported from +- id: by + translation: by +- id: draft + translation: DRAFT +- id: toc_title + translation: CATALOG diff --git a/themes/diary/i18n/fr.yaml b/themes/diary/i18n/fr.yaml new file mode 100644 index 0000000..cd2b862 --- /dev/null +++ b/themes/diary/i18n/fr.yaml @@ -0,0 +1,28 @@ +- id: last_mod_on + translation: Dernière modification le {{ .Format "02/01/2006" }} +- id: format_date + translation: '{{ .Format "02/01/2006" }}' +- id: format_date_tosec + translation: '{{ .Format "02/01/2006 15h04" }}' +- id: next_link + translation: Suivant +- id: prev_link + translation: Précédent +- id: no_newer_posts + translation: Pas de post plus récent. +- id: no_older_posts + translation: Pas de post plus ancien. +- id: comments_disabled + translation: Commentaires Désactivés. +- id: comments_activate_js + translation: Veuillez activer JavaScript pour utiliser le système de commentaires. +- id: hugo_theme + translation: Theme Hugo +- id: ported_from + translation: Adapté de +- id: by + translation: par +- id: draft + translation: BROUILLON +- id: toc_title + translation: TABLE diff --git a/themes/diary/i18n/zh-hant.yaml b/themes/diary/i18n/zh-hant.yaml new file mode 100644 index 0000000..b745bd4 --- /dev/null +++ b/themes/diary/i18n/zh-hant.yaml @@ -0,0 +1,28 @@ +- id: last_mod_on + translation: 上次修改於 {{ .Format "2006-01-02" }} +- id: format_date + translation: '{{ .Format "2006-01-02" }}' +- id: format_date_tosec + translation: '{{ .Format "2006-01-02 15:04" }}' +- id: next_link + translation: 下回 +- id: prev_link + translation: 上回 +- id: no_newer_posts + translation: 已經到底啦。 +- id: no_older_posts + translation: 這是最舊的文章了。 +- id: comments_disabled + translation: 此篇文章的評論功能已經停用。 +- id: comments_activate_js + translation: 請開啓 JavaScript 以便使用評論服務。 +- id: hugo_theme + translation: Hugo Theme +- id: ported_from + translation: 移植自 +- id: by + translation: by +- id: draft + translation: 草稿 +- id: toc_title + translation: 目錄 diff --git a/themes/diary/i18n/zh.yaml b/themes/diary/i18n/zh.yaml new file mode 100644 index 0000000..7bad92f --- /dev/null +++ b/themes/diary/i18n/zh.yaml @@ -0,0 +1,28 @@ +- id: last_mod_on + translation: 最后修改于 {{ .Format "2006-01-02" }} +- id: format_date + translation: '{{ .Format "2006-01-02" }}' +- id: format_date_tosec + translation: '{{ .Format "2006-01-02 15:04" }}' +- id: next_link + translation: '下回' +- id: prev_link + translation: '上回' +- id: no_newer_posts + translation: 已经到头啦。 +- id: no_older_posts + translation: 这是最旧的文章了。 +- id: comments_disabled + translation: 此篇文章的评论功能已经停用。 +- id: comments_activate_js + translation: 请开启 JavaScript 以便使用评论服务。 +- id: hugo_theme + translation: Hugo Theme +- id: ported_from + translation: 移植自 +- id: by + translation: by +- id: draft + translation: 草稿 +- id: toc_title + translation: 目录 diff --git a/themes/diary/images/essay.png b/themes/diary/images/essay.png new file mode 100644 index 0000000..37bf8fe Binary files /dev/null and b/themes/diary/images/essay.png differ diff --git a/themes/diary/images/essay2.png b/themes/diary/images/essay2.png new file mode 100644 index 0000000..ca3acae Binary files /dev/null and b/themes/diary/images/essay2.png differ diff --git a/themes/diary/images/m_drawer.png b/themes/diary/images/m_drawer.png new file mode 100644 index 0000000..86f590a Binary files /dev/null and b/themes/diary/images/m_drawer.png differ diff --git a/themes/diary/images/m_main.png b/themes/diary/images/m_main.png new file mode 100644 index 0000000..5f99924 Binary files /dev/null and b/themes/diary/images/m_main.png differ diff --git a/themes/diary/images/screenshot.png b/themes/diary/images/screenshot.png new file mode 100644 index 0000000..5fdb015 Binary files /dev/null and b/themes/diary/images/screenshot.png differ diff --git a/themes/diary/images/tn.png b/themes/diary/images/tn.png new file mode 100644 index 0000000..edab1ef Binary files /dev/null and b/themes/diary/images/tn.png differ diff --git a/themes/diary/layouts/404.html b/themes/diary/layouts/404.html new file mode 100644 index 0000000..e69de29 diff --git a/themes/diary/layouts/_default/baseof.html b/themes/diary/layouts/_default/baseof.html new file mode 100644 index 0000000..dd7fe01 --- /dev/null +++ b/themes/diary/layouts/_default/baseof.html @@ -0,0 +1,21 @@ + + + {{- partial "head.html" . -}} + +
+ {{- partial "sidebar.html" . -}} + {{- partial "extrabar.html" . -}} + + + {{- partial "mobile-header.html" . -}} + +
+ {{- block "main" . }}{{- end }} +
+ + {{- partial "mobile-footer.html" . -}} + +
+ {{ partial "journal.html" .}} + + diff --git a/themes/diary/layouts/_default/section.html b/themes/diary/layouts/_default/section.html new file mode 100644 index 0000000..d9a9dd8 --- /dev/null +++ b/themes/diary/layouts/_default/section.html @@ -0,0 +1,34 @@ +{{ define "main" }} +
+
+ {{ range .Paginator.Pages.GroupByDate "2006" }} + +
+
+
+
+ {{ .Key }} +
+
+
+
+
+ {{ range .Pages }} + +
+
+
+
+ {{.Title}} +
+ {{ partial "post-item-meta.html" . }} +
+
+
+
+ {{ end }} + {{ end }} +
+
+ +{{ end }} \ No newline at end of file diff --git a/themes/diary/layouts/_default/single.html b/themes/diary/layouts/_default/single.html new file mode 100644 index 0000000..78bc079 --- /dev/null +++ b/themes/diary/layouts/_default/single.html @@ -0,0 +1,113 @@ +{{ define "main" }} +
+
+
+ {{ $post_class := "post-head-wrapper-text-only"}} + {{ $featured_image := .Params.featured_image }} + {{ if $featured_image }} + {{ $post_class = "post-head-wrapper"}} + {{ end }} + +
+
+ {{ .Title }} + {{ if .Params.description }} +
+ {{ .Params.description }} +
+ {{ end }} + +
+
+ +
+ {{ if .Params.enableVue }} +
+ {{ else }} +
+ {{ end }} + {{.Content}} + {{ if not .Lastmod.IsZero }} +
+

{{ i18n "last_mod_on" .Page.Lastmod }}

+ {{ end }} +
+
+ + + +
+ {{ if eq .Params.comment false }} +

+ {{ i18n "comments_disabled" }} +

+ {{ else }} + {{- partial "comment.html" . -}} + {{ end }} +
+
+
+
+{{ end }} diff --git a/themes/diary/layouts/_default/taxonomy.html b/themes/diary/layouts/_default/taxonomy.html new file mode 100644 index 0000000..262a294 --- /dev/null +++ b/themes/diary/layouts/_default/taxonomy.html @@ -0,0 +1,29 @@ +{{ define "main" }} +
+
+
+
+
+
+ {{.FirstSection.Title}} / {{ .Title }} +
+
+
+
+ {{- range .Paginator.Pages -}} + +
+
+
+
+ {{.Title}} +
+ {{ partial "post-item-meta.html" . }} +
+
+
+
+ {{- end -}} +
+
+{{ end }} diff --git a/themes/diary/layouts/_default/terms.html b/themes/diary/layouts/_default/terms.html new file mode 100644 index 0000000..bf511ee --- /dev/null +++ b/themes/diary/layouts/_default/terms.html @@ -0,0 +1,32 @@ +{{ define "main" }} +
+
+ +
+
+
+
+ {{.Title}} +
+
+
+
+
+ + {{ range .Paginator.Pages }} + +
+
+
+
+ {{.Title}} +
+
+
+
+
+ {{ end }} +
+
+ +{{ end }} diff --git a/themes/diary/layouts/index.html b/themes/diary/layouts/index.html new file mode 100644 index 0000000..f404871 --- /dev/null +++ b/themes/diary/layouts/index.html @@ -0,0 +1,40 @@ + +{{ define "main" }} + + +{{ end }} diff --git a/themes/diary/layouts/index.rss.xml b/themes/diary/layouts/index.rss.xml new file mode 100644 index 0000000..0f2e74c --- /dev/null +++ b/themes/diary/layouts/index.rss.xml @@ -0,0 +1,28 @@ + + + {{ if eq .Title .Site.Title }}{{ .Site.Title }}{{ else }}{{ with .Title }}{{.}} on {{ end }}{{ .Site.Title }}{{ end }} + {{ .Permalink }} + Recent content {{ if ne .Title .Site.Title }}{{ with .Title }}in {{.}} {{ end }}{{ end }}on {{ .Site.Title }} + Hugo -- gohugo.io{{ with .Site.LanguageCode }} + {{.}}{{end}}{{ with .Site.Author.email }} + {{.}}{{ with $.Site.Author.name }} ({{.}}){{end}}{{end}}{{ with .Site.Author.email }} + {{.}}{{ with $.Site.Author.name }} ({{.}}){{end}}{{end}}{{ with .Site.Copyright }} + {{.}}{{end}}{{ if not .Date.IsZero }} + {{ .Date.Format "Mon, 02 Jan 2006 15:04:05 -0700" | safeHTML }}{{ end }} + {{ with .OutputFormats.Get "RSS" }} + {{ printf "" .Permalink .MediaType | safeHTML }} + {{ end }} + {{ range .Paginator.Pages }} + {{ if and (.IsPage) (.Params.date) }} + + {{ .Title }} + {{ .Permalink }} + {{ .Date.Format "Mon, 02 Jan 2006 15:04:05 -0700" | safeHTML }} + {{ with .Site.Author.email }}{{.}}{{ with $.Site.Author.name }} ({{.}}){{end}}{{end}} + {{ .Permalink }} + {{ .Site.Title }} {{ .Permalink }} - {{- .Content | html -}} - {{ .Permalink }} - {{.Site.Copyright}} + + {{ end }} + {{ end }} + + \ No newline at end of file diff --git a/themes/diary/layouts/partials/comment.html b/themes/diary/layouts/partials/comment.html new file mode 100644 index 0000000..d73a9a0 --- /dev/null +++ b/themes/diary/layouts/partials/comment.html @@ -0,0 +1,22 @@ +{{ if .Site.Params.disqusShortname }} +
+ +
+ +Comments powered by Disqus +{{ end }} + +{{ if .Site.Params.enableGitalk }} +
+{{ end }} + +{{ if .Site.Params.enableValine }} +
+ +{{ end }} + +{{ if .Site.Params.livereId }} +
+ +
+{{ end }} diff --git a/themes/diary/layouts/partials/copyright.html b/themes/diary/layouts/partials/copyright.html new file mode 100644 index 0000000..69ee264 --- /dev/null +++ b/themes/diary/layouts/partials/copyright.html @@ -0,0 +1,12 @@ + +{{ i18n "hugo_theme" }} Diary {{ i18n "by" }} Rise +
+{{ i18n "ported_from" }} Makito's Journal.
+
+ +© + {{ if .Site.Copyright }} + {{ .Site.Copyright }} + {{ else }} + {{.Site.Home.Date.Year}} {{.Site.Title}} + {{ end }} diff --git a/themes/diary/layouts/partials/extrabar.html b/themes/diary/layouts/partials/extrabar.html new file mode 100644 index 0000000..0fc84fb --- /dev/null +++ b/themes/diary/layouts/partials/extrabar.html @@ -0,0 +1,53 @@ +
+ {{ if and (isset .Site.Params "googlesearchcode") (.IsHome) }} + +
+ {{ end }} + {{ if and (not (.Site.Params.disableToC) ) (.IsPage) }} +
+ {{- partial "toc.html" . -}} +
+ {{ end }} + +
diff --git a/themes/diary/layouts/partials/head.html b/themes/diary/layouts/partials/head.html new file mode 100644 index 0000000..bf58d73 --- /dev/null +++ b/themes/diary/layouts/partials/head.html @@ -0,0 +1,120 @@ + +{{.Title}} + +{{ $description := .Params.description}} +{{if .IsHome}} + {{ $description = .Site.Params.description}} +{{end}} + + + + + + + + + + + +{{if .Site.Params.enableOpenGraph}} +{{ template "_internal/opengraph.html" . }} +{{end}} + + +{{if .Site.Params.enableTwitterCards}} +{{ template "_internal/twitter_cards.html" . }} +{{end}} + + + +{{ if .Site.GoogleAnalytics }} +{{ template "_internal/google_analytics.html" . }} +{{ end }} + + + + + + + + +{{if .Site.Params.manifest}} + +{{end}} + +{{ if .Site.Params.favicon }} + + +{{ end }} + +{{ $styles := resources.Get "scss/journal.scss" | toCSS | minify | fingerprint }} + + +{{ if not .Site.Params.disableDarkmode }} +{{ $darkmode := resources.Get "scss/dark-mode.scss" | toCSS | minify | fingerprint }} + +{{ end }} + + + + +{{ if .Params.enableMathJax }} + {{ partial "mathjax.html" . }} +{{ end }} + +{{ if and (not (.Params.disableToC) ) (.IsPage) }} + {{ if .Site.Params.disableAutoCollapse }} + + {{ else }} + + {{ end }} +{{ end }} + +{{ if and (.Site.Params.enableGitalk) (.IsPage) }} + + + + +{{ end }} + +{{ if and (.Site.Params.livereId) (.IsPage) }} + +{{ end }} + +{{ if and (.Site.Params.enableValine) (.IsPage) }} + +{{ end }} + +{{ if .Site.Params.disqusShortname }} + +{{ end }} + + diff --git a/themes/diary/layouts/partials/journal.html b/themes/diary/layouts/partials/journal.html new file mode 100644 index 0000000..2f89c96 --- /dev/null +++ b/themes/diary/layouts/partials/journal.html @@ -0,0 +1,112 @@ + + + \ No newline at end of file diff --git a/themes/diary/layouts/partials/mathjax.html b/themes/diary/layouts/partials/mathjax.html new file mode 100644 index 0000000..386b8d7 --- /dev/null +++ b/themes/diary/layouts/partials/mathjax.html @@ -0,0 +1,36 @@ + + + + + + + diff --git a/themes/diary/layouts/partials/mobile-footer.html b/themes/diary/layouts/partials/mobile-footer.html new file mode 100644 index 0000000..2749af3 --- /dev/null +++ b/themes/diary/layouts/partials/mobile-footer.html @@ -0,0 +1,4 @@ +{{- partial "mobile-paginator.html" . -}} + \ No newline at end of file diff --git a/themes/diary/layouts/partials/mobile-header.html b/themes/diary/layouts/partials/mobile-header.html new file mode 100644 index 0000000..2276cc9 --- /dev/null +++ b/themes/diary/layouts/partials/mobile-header.html @@ -0,0 +1,72 @@ +
+
+
+ {{ if and (isset .Site.Params "googlesearchcode") (.IsHome) }} + +
+ {{ end }} + {{ $current := .Permalink | absLangURL }} + {{ range .Site.Menus.main }} + {{$actived := "false"}} + + {{if hasPrefix $current (.URL|absLangURL)}} + {{$actived = "active"}} + {{end}} + {{ if .HasChildren }} + + {{ range .Children }} +
  • {{ .Name }}
  • + {{ end }} +
    + {{ else }} + + + {{ .Name }} + + {{ end }} + {{ end }} + {{ if and (not (.Site.Params.disableToC) ) (.IsPage) }} +
    + {{- partial "toc.html" . -}} +
    + {{ end }} +
    +
    +
    + +
    +
    + + diff --git a/themes/diary/layouts/partials/mobile-paginator.html b/themes/diary/layouts/partials/mobile-paginator.html new file mode 100644 index 0000000..d1a1bb3 --- /dev/null +++ b/themes/diary/layouts/partials/mobile-paginator.html @@ -0,0 +1,31 @@ +{{ if .Paginator }} +{{ if gt .Paginator.TotalPages 1 }} + +{{ end }} + +{{ end }} \ No newline at end of file diff --git a/themes/diary/layouts/partials/post-item-meta.html b/themes/diary/layouts/partials/post-item-meta.html new file mode 100644 index 0000000..c089076 --- /dev/null +++ b/themes/diary/layouts/partials/post-item-meta.html @@ -0,0 +1,22 @@ +
    + {{ i18n "format_date" .PublishDate }} +   + + {{ if .Site.Params.enableReadingTime }} + schedule + {{ $readTime := mul (div (countwords .Content) 220.0) 60 }} + + {{ $minutes := math.Floor (div $readTime 60) }} + {{ $seconds := mod $readTime 60 }} + + {{ if gt $minutes 0}} + {{ $minutes }} {{ cond (eq $minutes 1) "minute" "min" }} + {{ end }} + {{ $seconds }} {{ cond (eq $seconds 1) "second" "s" }} + {{ end }} + +   + {{ if .Draft }} + {{ i18n "draft" }} + {{ end }} +
    diff --git a/themes/diary/layouts/partials/sidebar.html b/themes/diary/layouts/partials/sidebar.html new file mode 100644 index 0000000..459965f --- /dev/null +++ b/themes/diary/layouts/partials/sidebar.html @@ -0,0 +1,46 @@ +
    + {{ if eq .Title .Site.Title}} + + {{ else }} + + {{ end }} + + {{ with .Site.Params.subtitle }} + + {{ end }} + + + + + + + + +
    \ No newline at end of file diff --git a/themes/diary/layouts/partials/toc.html b/themes/diary/layouts/partials/toc.html new file mode 100644 index 0000000..ee6736e --- /dev/null +++ b/themes/diary/layouts/partials/toc.html @@ -0,0 +1,42 @@ +{{ $headers := findRE "(.|\n])+?" .Content }} + +{{ if ge (len $headers) 1 }} +
    + + {{ $h1_n := len (findRE "(.|\n])+?" .Content) }} + {{ $re := (cond (eq $h1_n 0) "- {{ i18n "toc_title" }} - + {{ $scratch := newScratch }} + {{ $scratch.Set "prev_heading" 1 }} +
      + {{ range $headers }} + {{ $header := . }} + {{ range first 1 (findRE $re $header 1) }} + {{ range findRE $renum . 1 }} + {{ $next_heading := (cond (eq $h1_n 0) (sub (int .) 1 ) (int . ) ) }} + {{ $prev_heading := $scratch.Get "prev_heading"}} + {{ if lt $next_heading $prev_heading }} + {{ range seq (sub $prev_heading $next_heading) }} +
    + {{ end }} + {{ end }} + {{ if gt $next_heading $prev_heading }} + {{ range seq (sub $next_heading $prev_heading) }} +
      + {{ end }} + {{ end }} + {{ $anchorId := (replaceRE ".* id=\"(.*?)\".*" "$1" $header ) }} +
    • + + {{ $header | plainify | htmlUnescape }} + +
    • + + {{ $scratch.Set "prev_heading" $next_heading }} + {{ end }} + {{ end }} + {{ end }} +
    +
    +{{ end }} diff --git a/themes/diary/layouts/shortcodes/insertFigure.html b/themes/diary/layouts/shortcodes/insertFigure.html new file mode 100644 index 0000000..e220646 --- /dev/null +++ b/themes/diary/layouts/shortcodes/insertFigure.html @@ -0,0 +1,34 @@ + +{{ $img := .Get "img" }} +{{ $caption := .Get "caption" }} +{{ $command := .Get "command" }} +{{ $options := .Get "options" }} +{{ $align := .Get "align" }} + +{{ $original := .Page.Resources.GetMatch (printf "*%s*" $img) }} +{{ $new := "" }} + +{{ if eq $command "Fit" }} + {{ $new = $original.Fit $options }} +{{ else if eq $command "Fill" }} + {{ $new = $original.Fill $options }} +{{ else if eq $command "Resize" }} + {{ $new = $original.Resize $options }} +{{ else if eq $command "Original" }} + {{ $new = $original }} +{{ else }} + {{ errorf "Invalid image processing command: Must be one of Fit, Fill, Resize, Original." }} +{{ end }} + +
    + + + +
    + {{ $caption | markdownify }} +
    +
    \ No newline at end of file diff --git a/themes/diary/static/images/Pope-Edouard-de-Beaumont-1844.jpg b/themes/diary/static/images/Pope-Edouard-de-Beaumont-1844.jpg new file mode 100644 index 0000000..a4b5d0f Binary files /dev/null and b/themes/diary/static/images/Pope-Edouard-de-Beaumont-1844.jpg differ diff --git a/themes/diary/static/images/Victor_Hugo-Hunchback.jpg b/themes/diary/static/images/Victor_Hugo-Hunchback.jpg new file mode 100644 index 0000000..20a243d Binary files /dev/null and b/themes/diary/static/images/Victor_Hugo-Hunchback.jpg differ diff --git a/themes/diary/static/images/chinese.jpg b/themes/diary/static/images/chinese.jpg new file mode 100644 index 0000000..6dc62b3 Binary files /dev/null and b/themes/diary/static/images/chinese.jpg differ diff --git a/themes/diary/static/images/esmeralda.jpg b/themes/diary/static/images/esmeralda.jpg new file mode 100644 index 0000000..59a28c2 Binary files /dev/null and b/themes/diary/static/images/esmeralda.jpg differ diff --git a/themes/diary/static/images/notebook.jpg b/themes/diary/static/images/notebook.jpg new file mode 100644 index 0000000..934af26 Binary files /dev/null and b/themes/diary/static/images/notebook.jpg differ diff --git a/themes/diary/static/js/journal.js b/themes/diary/static/js/journal.js new file mode 100644 index 0000000..fe6d4fe --- /dev/null +++ b/themes/diary/static/js/journal.js @@ -0,0 +1,28 @@ +new SmoothScroll('a#globalBackToTop'); + +Vue.component('parent',{ + props:['name','type'], + data: function () { + return { + isHidden: true + } + }, + template: ` +
    + {{ name }} + +
    + ` +}); + +$().ready(function(){ + var elems = $("table"); + elems.each(function(idx){ + $(this).addClass('table-striped'); + $(this).addClass('table'); + $(this).addClass('table-responsive'); + $(this).addClass('table-hover'); + }); +}); \ No newline at end of file diff --git a/themes/diary/static/js/loadCSS.js b/themes/diary/static/js/loadCSS.js new file mode 100644 index 0000000..0ba961a --- /dev/null +++ b/themes/diary/static/js/loadCSS.js @@ -0,0 +1,79 @@ +/*! loadCSS. [c]2017 Filament Group, Inc. MIT License */ +(function(w){ + "use strict"; + /* exported loadCSS */ + var loadCSS = function( href, before, media ){ + // Arguments explained: + // `href` [REQUIRED] is the URL for your CSS file. + // `before` [OPTIONAL] is the element the script should use as a reference for injecting our stylesheet before + // By default, loadCSS attempts to inject the link after the last stylesheet or script in the DOM. However, you might desire a more specific location in your document. + // `media` [OPTIONAL] is the media type or query of the stylesheet. By default it will be 'all' + var doc = w.document; + var ss = doc.createElement( "link" ); + var ref; + if( before ){ + ref = before; + } + else { + var refs = ( doc.body || doc.getElementsByTagName( "head" )[ 0 ] ).childNodes; + ref = refs[ refs.length - 1]; + } + + var sheets = doc.styleSheets; + ss.rel = "stylesheet"; + ss.href = href; + // temporarily set media to something inapplicable to ensure it'll fetch without blocking render + ss.media = "only x"; + + // wait until body is defined before injecting link. This ensures a non-blocking load in IE11. + function ready( cb ){ + if( doc.body ){ + return cb(); + } + setTimeout(function(){ + ready( cb ); + }); + } + // Inject link + // Note: the ternary preserves the existing behavior of "before" argument, but we could choose to change the argument to "after" in a later release and standardize on ref.nextSibling for all refs + // Note: `insertBefore` is used instead of `appendChild`, for safety re: http://www.paulirish.com/2011/surefire-dom-element-insertion/ + ready( function(){ + ref.parentNode.insertBefore( ss, ( before ? ref : ref.nextSibling ) ); + }); + // A method (exposed on return object for external use) that mimics onload by polling document.styleSheets until it includes the new sheet. + var onloadcssdefined = function( cb ){ + var resolvedHref = ss.href; + var i = sheets.length; + while( i-- ){ + if( sheets[ i ].href === resolvedHref ){ + return cb(); + } + } + setTimeout(function() { + onloadcssdefined( cb ); + }); + }; + + function loadCB(){ + if( ss.addEventListener ){ + ss.removeEventListener( "load", loadCB ); + } + ss.media = media || "all"; + } + + // once loaded, set link's media back to `all` so that the stylesheet applies once it loads + if( ss.addEventListener ){ + ss.addEventListener( "load", loadCB); + } + ss.onloadcssdefined = onloadcssdefined; + onloadcssdefined( loadCB ); + return ss; + }; + // commonjs + if( typeof exports !== "undefined" ){ + exports.loadCSS = loadCSS; + } + else { + w.loadCSS = loadCSS; + } +}( typeof global !== "undefined" ? global : this )); \ No newline at end of file diff --git a/themes/diary/static/js/toc-collapse.js b/themes/diary/static/js/toc-collapse.js new file mode 100644 index 0000000..fa51778 --- /dev/null +++ b/themes/diary/static/js/toc-collapse.js @@ -0,0 +1,224 @@ +var spy = function () { + var elems = $(":header"); + if (elems.length == 0) { + return; + } + var currentTop = $(window).scrollTop(); + var currentBottom = $(window).scrollTop() + $(window).height(); + var pageBottom = $('#EOF').offset().top; + + var meetUnread = false + var currentIndex = elems.length - 1 + elems.each(function (idx) { + var elemTop = $(this).offset().top; + var id = $(this).attr('id'); + var navElem = $('#' + id + '-nav'); + if (currentTop + $(this).height() >= elemTop) { + navElem.addClass('toc-active'); + } else { + if (meetUnread == false) { + meetUnread = true + currentIndex = idx - 1 + } + navElem.removeClass('toc-active'); + } + }) + if (currentBottom >= pageBottom) { + currentIndex = -1 + } + //console.log(currentIndex); + //Collapse them + collapseOthers(currentIndex); +} + +var onNavClick = function (name) { + var elems = $(":header"); + elems.each(function (idx) { + var id = $(this).attr('id'); + if (name == '#' + id + '-nav'){ + collapseOthers(idx); + return; + } + }); +} + +var collapseOthers = function (currentIndex) { + if (currentIndex == -1) { + $(".collapse").each(function (idx) { + $(this).collapse("hide"); + }); + return; + } + var elems = $(":header"); + //console.log(currentIndex); + currentId = "#" + elems[currentIndex].id + "-nav"; + + $(currentId).parents(".collapse").each(function (idx) { + $(this).collapse("show"); + }); + $(currentId).parent().next().filter(".collapse").collapse("show"); + $(".collapse").not($(currentId).parents()).not($(currentId).parent().next()).each(function (idx) { + $(this).collapse("hide"); + }); +} +$().ready(function () { + spy(); + $(window).bind('scroll', debounce(spy, 250, { 'maxWait': 1000 })); +}); + + +//From https://github.com/lodash/lodash/blob/master/debounce.js +// and https://github.com/lodash/lodash/blob/master/isObject.js + +function debounce(func, wait, options) { + let lastArgs, + lastThis, + maxWait, + result, + timerId, + lastCallTime + + let lastInvokeTime = 0 + let leading = false + let maxing = false + let trailing = true + + // Bypass `requestAnimationFrame` by explicitly setting `wait=0`. + const useRAF = (!wait && wait !== 0 && typeof root.requestAnimationFrame === 'function') + + if (typeof func !== 'function') { + throw new TypeError('Expected a function') + } + function isObject(value) { + const type = typeof value + return value != null && (type === 'object' || type === 'function') + } + + wait = +wait || 0 + if (isObject(options)) { + leading = !!options.leading + maxing = 'maxWait' in options + maxWait = maxing ? Math.max(+options.maxWait || 0, wait) : maxWait + trailing = 'trailing' in options ? !!options.trailing : trailing + } + + function invokeFunc(time) { + const args = lastArgs + const thisArg = lastThis + + lastArgs = lastThis = undefined + lastInvokeTime = time + result = func.apply(thisArg, args) + return result + } + + function startTimer(pendingFunc, wait) { + if (useRAF) { + root.cancelAnimationFrame(timerId) + return root.requestAnimationFrame(pendingFunc) + } + return setTimeout(pendingFunc, wait) + } + + function cancelTimer(id) { + if (useRAF) { + return root.cancelAnimationFrame(id) + } + clearTimeout(id) + } + + function leadingEdge(time) { + // Reset any `maxWait` timer. + lastInvokeTime = time + // Start the timer for the trailing edge. + timerId = startTimer(timerExpired, wait) + // Invoke the leading edge. + return leading ? invokeFunc(time) : result + } + + function remainingWait(time) { + const timeSinceLastCall = time - lastCallTime + const timeSinceLastInvoke = time - lastInvokeTime + const timeWaiting = wait - timeSinceLastCall + + return maxing + ? Math.min(timeWaiting, maxWait - timeSinceLastInvoke) + : timeWaiting + } + + function shouldInvoke(time) { + const timeSinceLastCall = time - lastCallTime + const timeSinceLastInvoke = time - lastInvokeTime + + // Either this is the first call, activity has stopped and we're at the + // trailing edge, the system time has gone backwards and we're treating + // it as the trailing edge, or we've hit the `maxWait` limit. + return (lastCallTime === undefined || (timeSinceLastCall >= wait) || + (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait)) + } + + function timerExpired() { + const time = Date.now() + if (shouldInvoke(time)) { + return trailingEdge(time) + } + // Restart the timer. + timerId = startTimer(timerExpired, remainingWait(time)) + } + + function trailingEdge(time) { + timerId = undefined + + // Only invoke if we have `lastArgs` which means `func` has been + // debounced at least once. + if (trailing && lastArgs) { + return invokeFunc(time) + } + lastArgs = lastThis = undefined + return result + } + + function cancel() { + if (timerId !== undefined) { + cancelTimer(timerId) + } + lastInvokeTime = 0 + lastArgs = lastCallTime = lastThis = timerId = undefined + } + + function flush() { + return timerId === undefined ? result : trailingEdge(Date.now()) + } + + function pending() { + return timerId !== undefined + } + + function debounced(...args) { + const time = Date.now() + const isInvoking = shouldInvoke(time) + + lastArgs = args + lastThis = this + lastCallTime = time + + if (isInvoking) { + if (timerId === undefined) { + return leadingEdge(lastCallTime) + } + if (maxing) { + // Handle invocations in a tight loop. + timerId = startTimer(timerExpired, wait) + return invokeFunc(lastCallTime) + } + } + if (timerId === undefined) { + timerId = startTimer(timerExpired, wait) + } + return result + } + debounced.cancel = cancel + debounced.flush = flush + debounced.pending = pending + return debounced +} diff --git a/themes/diary/static/js/toc.js b/themes/diary/static/js/toc.js new file mode 100644 index 0000000..61fdc93 --- /dev/null +++ b/themes/diary/static/js/toc.js @@ -0,0 +1,55 @@ +var spy = function () { + var elems = $(":header"); + if (elems.length == 0) { + return; + } + var currentTop = $(window).scrollTop(); + var currentBottom = $(window).scrollTop() + $(window).height(); + var pageBottom = $('#EOF').offset().top; + + var meetUnread = false + var currentIndex = -1 + elems.each(function (idx) { + var elemTop = $(this).offset().top; + var id = $(this).attr('id'); + var navElem = $('#' + id + '-nav'); + if (currentTop + $(this).height() >= elemTop || currentBottom >= pageBottom) { + navElem.addClass('toc-active'); + } else { + if (meetUnread == false) { + meetUnread = true + currentIndex = idx - 1 + } + navElem.removeClass('toc-active'); + } + }) +} +$().ready(function () { + $(".collapse").each(function (idx) { + $(this).collapse("show"); + }); + spy(); + $(window).bind('scroll', throttle(spy)); +}); + +function throttle(func, timeout = 250) { + let last; + let timer; + + return function () { + const context = this; + const args = arguments; + const now = +new Date(); + + if (last && now < last + timeout) { + clearTimeout(timer) + timer = setTimeout(function () { + last = now + func.apply(context, args) + }, timeout) + } else { + last = now + func.apply(context, args) + } + } + } \ No newline at end of file diff --git a/themes/diary/static/vendor/css/bootstrap.min.css b/themes/diary/static/vendor/css/bootstrap.min.css new file mode 100644 index 0000000..92e3fe8 --- /dev/null +++ b/themes/diary/static/vendor/css/bootstrap.min.css @@ -0,0 +1,7 @@ +/*! + * Bootstrap v4.3.1 (https://getbootstrap.com/) + * Copyright 2011-2019 The Bootstrap Authors + * Copyright 2011-2019 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + */:root{--blue:#007bff;--indigo:#6610f2;--purple:#6f42c1;--pink:#e83e8c;--red:#dc3545;--orange:#fd7e14;--yellow:#ffc107;--green:#28a745;--teal:#20c997;--cyan:#17a2b8;--white:#fff;--gray:#6c757d;--gray-dark:#343a40;--primary:#007bff;--secondary:#6c757d;--success:#28a745;--info:#17a2b8;--warning:#ffc107;--danger:#dc3545;--light:#f8f9fa;--dark:#343a40;--breakpoint-xs:0;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace}*,::after,::before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}article,aside,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-size:1rem;font-weight:400;line-height:1.5;color:#212529;text-align:left;background-color:#fff}[tabindex="-1"]:focus{outline:0!important}hr{box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem}p{margin-top:0;margin-bottom:1rem}abbr[data-original-title],abbr[title]{text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;border-bottom:0;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}address{margin-bottom:1rem;font-style:normal;line-height:inherit}dl,ol,ul{margin-top:0;margin-bottom:1rem}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#007bff;text-decoration:none;background-color:transparent}a:hover{color:#0056b3;text-decoration:underline}a:not([href]):not([tabindex]){color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus,a:not([href]):not([tabindex]):hover{color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus{outline:0}code,kbd,pre,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;font-size:1em}pre{margin-top:0;margin-bottom:1rem;overflow:auto}figure{margin:0 0 1rem}img{vertical-align:middle;border-style:none}svg{overflow:hidden;vertical-align:middle}table{border-collapse:collapse}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}th{text-align:inherit}label{display:inline-block;margin-bottom:.5rem}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}select{word-wrap:normal}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{margin-bottom:.5rem;font-weight:500;line-height:1.2}.h1,h1{font-size:2.5rem}.h2,h2{font-size:2rem}.h3,h3{font-size:1.75rem}.h4,h4{font-size:1.5rem}.h5,h5{font-size:1.25rem}.h6,h6{font-size:1rem}.lead{font-size:1.25rem;font-weight:300}.display-1{font-size:6rem;font-weight:300;line-height:1.2}.display-2{font-size:5.5rem;font-weight:300;line-height:1.2}.display-3{font-size:4.5rem;font-weight:300;line-height:1.2}.display-4{font-size:3.5rem;font-weight:300;line-height:1.2}hr{margin-top:1rem;margin-bottom:1rem;border:0;border-top:1px solid rgba(0,0,0,.1)}.small,small{font-size:80%;font-weight:400}.mark,mark{padding:.2em;background-color:#fcf8e3}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:.5rem}.initialism{font-size:90%;text-transform:uppercase}.blockquote{margin-bottom:1rem;font-size:1.25rem}.blockquote-footer{display:block;font-size:80%;color:#6c757d}.blockquote-footer::before{content:"\2014\00A0"}.img-fluid{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:#fff;border:1px solid #dee2e6;border-radius:.25rem;max-width:100%;height:auto}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:90%;color:#6c757d}code{font-size:87.5%;color:#e83e8c;word-break:break-word}a>code{color:inherit}kbd{padding:.2rem .4rem;font-size:87.5%;color:#fff;background-color:#212529;border-radius:.2rem}kbd kbd{padding:0;font-size:100%;font-weight:700}pre{display:block;font-size:87.5%;color:#212529}pre code{font-size:inherit;color:inherit;word-break:normal}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:576px){.container{max-width:540px}}@media (min-width:768px){.container{max-width:720px}}@media (min-width:992px){.container{max-width:960px}}@media (min-width:1200px){.container{max-width:1140px}}.container-fluid{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}.row{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-right:-15px;margin-left:-15px}.no-gutters{margin-right:0;margin-left:0}.no-gutters>.col,.no-gutters>[class*=col-]{padding-right:0;padding-left:0}.col,.col-1,.col-10,.col-11,.col-12,.col-2,.col-3,.col-4,.col-5,.col-6,.col-7,.col-8,.col-9,.col-auto,.col-lg,.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-auto,.col-md,.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-auto,.col-sm,.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-auto,.col-xl,.col-xl-1,.col-xl-10,.col-xl-11,.col-xl-12,.col-xl-2,.col-xl-3,.col-xl-4,.col-xl-5,.col-xl-6,.col-xl-7,.col-xl-8,.col-xl-9,.col-xl-auto{position:relative;width:100%;padding-right:15px;padding-left:15px}.col{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.col-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.col-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-first{-ms-flex-order:-1;order:-1}.order-last{-ms-flex-order:13;order:13}.order-0{-ms-flex-order:0;order:0}.order-1{-ms-flex-order:1;order:1}.order-2{-ms-flex-order:2;order:2}.order-3{-ms-flex-order:3;order:3}.order-4{-ms-flex-order:4;order:4}.order-5{-ms-flex-order:5;order:5}.order-6{-ms-flex-order:6;order:6}.order-7{-ms-flex-order:7;order:7}.order-8{-ms-flex-order:8;order:8}.order-9{-ms-flex-order:9;order:9}.order-10{-ms-flex-order:10;order:10}.order-11{-ms-flex-order:11;order:11}.order-12{-ms-flex-order:12;order:12}.offset-1{margin-left:8.333333%}.offset-2{margin-left:16.666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.333333%}.offset-5{margin-left:41.666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.333333%}.offset-8{margin-left:66.666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.333333%}.offset-11{margin-left:91.666667%}@media (min-width:576px){.col-sm{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.col-sm-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.col-sm-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-sm-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-sm-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-sm-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-sm-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-sm-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-sm-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-sm-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-sm-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-sm-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-sm-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-sm-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-sm-first{-ms-flex-order:-1;order:-1}.order-sm-last{-ms-flex-order:13;order:13}.order-sm-0{-ms-flex-order:0;order:0}.order-sm-1{-ms-flex-order:1;order:1}.order-sm-2{-ms-flex-order:2;order:2}.order-sm-3{-ms-flex-order:3;order:3}.order-sm-4{-ms-flex-order:4;order:4}.order-sm-5{-ms-flex-order:5;order:5}.order-sm-6{-ms-flex-order:6;order:6}.order-sm-7{-ms-flex-order:7;order:7}.order-sm-8{-ms-flex-order:8;order:8}.order-sm-9{-ms-flex-order:9;order:9}.order-sm-10{-ms-flex-order:10;order:10}.order-sm-11{-ms-flex-order:11;order:11}.order-sm-12{-ms-flex-order:12;order:12}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.333333%}.offset-sm-2{margin-left:16.666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.333333%}.offset-sm-5{margin-left:41.666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.333333%}.offset-sm-8{margin-left:66.666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.333333%}.offset-sm-11{margin-left:91.666667%}}@media (min-width:768px){.col-md{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.col-md-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.col-md-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-md-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-md-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-md-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-md-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-md-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-md-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-md-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-md-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-md-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-md-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-md-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-md-first{-ms-flex-order:-1;order:-1}.order-md-last{-ms-flex-order:13;order:13}.order-md-0{-ms-flex-order:0;order:0}.order-md-1{-ms-flex-order:1;order:1}.order-md-2{-ms-flex-order:2;order:2}.order-md-3{-ms-flex-order:3;order:3}.order-md-4{-ms-flex-order:4;order:4}.order-md-5{-ms-flex-order:5;order:5}.order-md-6{-ms-flex-order:6;order:6}.order-md-7{-ms-flex-order:7;order:7}.order-md-8{-ms-flex-order:8;order:8}.order-md-9{-ms-flex-order:9;order:9}.order-md-10{-ms-flex-order:10;order:10}.order-md-11{-ms-flex-order:11;order:11}.order-md-12{-ms-flex-order:12;order:12}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.333333%}.offset-md-2{margin-left:16.666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.333333%}.offset-md-5{margin-left:41.666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.333333%}.offset-md-8{margin-left:66.666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.333333%}.offset-md-11{margin-left:91.666667%}}@media (min-width:992px){.col-lg{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.col-lg-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.col-lg-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-lg-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-lg-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-lg-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-lg-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-lg-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-lg-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-lg-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-lg-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-lg-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-lg-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-lg-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-lg-first{-ms-flex-order:-1;order:-1}.order-lg-last{-ms-flex-order:13;order:13}.order-lg-0{-ms-flex-order:0;order:0}.order-lg-1{-ms-flex-order:1;order:1}.order-lg-2{-ms-flex-order:2;order:2}.order-lg-3{-ms-flex-order:3;order:3}.order-lg-4{-ms-flex-order:4;order:4}.order-lg-5{-ms-flex-order:5;order:5}.order-lg-6{-ms-flex-order:6;order:6}.order-lg-7{-ms-flex-order:7;order:7}.order-lg-8{-ms-flex-order:8;order:8}.order-lg-9{-ms-flex-order:9;order:9}.order-lg-10{-ms-flex-order:10;order:10}.order-lg-11{-ms-flex-order:11;order:11}.order-lg-12{-ms-flex-order:12;order:12}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.333333%}.offset-lg-2{margin-left:16.666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.333333%}.offset-lg-5{margin-left:41.666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.333333%}.offset-lg-8{margin-left:66.666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.333333%}.offset-lg-11{margin-left:91.666667%}}@media (min-width:1200px){.col-xl{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.col-xl-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.col-xl-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-xl-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-xl-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-xl-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-xl-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-xl-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-xl-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-xl-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-xl-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-xl-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-xl-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-xl-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-xl-first{-ms-flex-order:-1;order:-1}.order-xl-last{-ms-flex-order:13;order:13}.order-xl-0{-ms-flex-order:0;order:0}.order-xl-1{-ms-flex-order:1;order:1}.order-xl-2{-ms-flex-order:2;order:2}.order-xl-3{-ms-flex-order:3;order:3}.order-xl-4{-ms-flex-order:4;order:4}.order-xl-5{-ms-flex-order:5;order:5}.order-xl-6{-ms-flex-order:6;order:6}.order-xl-7{-ms-flex-order:7;order:7}.order-xl-8{-ms-flex-order:8;order:8}.order-xl-9{-ms-flex-order:9;order:9}.order-xl-10{-ms-flex-order:10;order:10}.order-xl-11{-ms-flex-order:11;order:11}.order-xl-12{-ms-flex-order:12;order:12}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.333333%}.offset-xl-2{margin-left:16.666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.333333%}.offset-xl-5{margin-left:41.666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.333333%}.offset-xl-8{margin-left:66.666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.333333%}.offset-xl-11{margin-left:91.666667%}}.table{width:100%;margin-bottom:1rem;color:#212529}.table td,.table th{padding:.75rem;vertical-align:top;border-top:1px solid #dee2e6}.table thead th{vertical-align:bottom;border-bottom:2px solid #dee2e6}.table tbody+tbody{border-top:2px solid #dee2e6}.table-sm td,.table-sm th{padding:.3rem}.table-bordered{border:1px solid #dee2e6}.table-bordered td,.table-bordered th{border:1px solid #dee2e6}.table-bordered thead td,.table-bordered thead th{border-bottom-width:2px}.table-borderless tbody+tbody,.table-borderless td,.table-borderless th,.table-borderless thead th{border:0}.table-striped tbody tr:nth-of-type(odd){background-color:rgba(0,0,0,.05)}.table-hover tbody tr:hover{color:#212529;background-color:rgba(0,0,0,.075)}.table-primary,.table-primary>td,.table-primary>th{background-color:#b8daff}.table-primary tbody+tbody,.table-primary td,.table-primary th,.table-primary thead th{border-color:#7abaff}.table-hover .table-primary:hover{background-color:#9fcdff}.table-hover .table-primary:hover>td,.table-hover .table-primary:hover>th{background-color:#9fcdff}.table-secondary,.table-secondary>td,.table-secondary>th{background-color:#d6d8db}.table-secondary tbody+tbody,.table-secondary td,.table-secondary th,.table-secondary thead th{border-color:#b3b7bb}.table-hover .table-secondary:hover{background-color:#c8cbcf}.table-hover .table-secondary:hover>td,.table-hover .table-secondary:hover>th{background-color:#c8cbcf}.table-success,.table-success>td,.table-success>th{background-color:#c3e6cb}.table-success tbody+tbody,.table-success td,.table-success th,.table-success thead th{border-color:#8fd19e}.table-hover .table-success:hover{background-color:#b1dfbb}.table-hover .table-success:hover>td,.table-hover .table-success:hover>th{background-color:#b1dfbb}.table-info,.table-info>td,.table-info>th{background-color:#bee5eb}.table-info tbody+tbody,.table-info td,.table-info th,.table-info thead th{border-color:#86cfda}.table-hover .table-info:hover{background-color:#abdde5}.table-hover .table-info:hover>td,.table-hover .table-info:hover>th{background-color:#abdde5}.table-warning,.table-warning>td,.table-warning>th{background-color:#ffeeba}.table-warning tbody+tbody,.table-warning td,.table-warning th,.table-warning thead th{border-color:#ffdf7e}.table-hover .table-warning:hover{background-color:#ffe8a1}.table-hover .table-warning:hover>td,.table-hover .table-warning:hover>th{background-color:#ffe8a1}.table-danger,.table-danger>td,.table-danger>th{background-color:#f5c6cb}.table-danger tbody+tbody,.table-danger td,.table-danger th,.table-danger thead th{border-color:#ed969e}.table-hover .table-danger:hover{background-color:#f1b0b7}.table-hover .table-danger:hover>td,.table-hover .table-danger:hover>th{background-color:#f1b0b7}.table-light,.table-light>td,.table-light>th{background-color:#fdfdfe}.table-light tbody+tbody,.table-light td,.table-light th,.table-light thead th{border-color:#fbfcfc}.table-hover .table-light:hover{background-color:#ececf6}.table-hover .table-light:hover>td,.table-hover .table-light:hover>th{background-color:#ececf6}.table-dark,.table-dark>td,.table-dark>th{background-color:#c6c8ca}.table-dark tbody+tbody,.table-dark td,.table-dark th,.table-dark thead th{border-color:#95999c}.table-hover .table-dark:hover{background-color:#b9bbbe}.table-hover .table-dark:hover>td,.table-hover .table-dark:hover>th{background-color:#b9bbbe}.table-active,.table-active>td,.table-active>th{background-color:rgba(0,0,0,.075)}.table-hover .table-active:hover{background-color:rgba(0,0,0,.075)}.table-hover .table-active:hover>td,.table-hover .table-active:hover>th{background-color:rgba(0,0,0,.075)}.table .thead-dark th{color:#fff;background-color:#343a40;border-color:#454d55}.table .thead-light th{color:#495057;background-color:#e9ecef;border-color:#dee2e6}.table-dark{color:#fff;background-color:#343a40}.table-dark td,.table-dark th,.table-dark thead th{border-color:#454d55}.table-dark.table-bordered{border:0}.table-dark.table-striped tbody tr:nth-of-type(odd){background-color:rgba(255,255,255,.05)}.table-dark.table-hover tbody tr:hover{color:#fff;background-color:rgba(255,255,255,.075)}@media (max-width:575.98px){.table-responsive-sm{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-sm>.table-bordered{border:0}}@media (max-width:767.98px){.table-responsive-md{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-md>.table-bordered{border:0}}@media (max-width:991.98px){.table-responsive-lg{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-lg>.table-bordered{border:0}}@media (max-width:1199.98px){.table-responsive-xl{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-xl>.table-bordered{border:0}}.table-responsive{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive>.table-bordered{border:0}.form-control{display:block;width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;background-color:#fff;background-clip:padding-box;border:1px solid #ced4da;border-radius:.25rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-control{transition:none}}.form-control::-ms-expand{background-color:transparent;border:0}.form-control:focus{color:#495057;background-color:#fff;border-color:#80bdff;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.form-control::-webkit-input-placeholder{color:#6c757d;opacity:1}.form-control::-moz-placeholder{color:#6c757d;opacity:1}.form-control:-ms-input-placeholder{color:#6c757d;opacity:1}.form-control::-ms-input-placeholder{color:#6c757d;opacity:1}.form-control::placeholder{color:#6c757d;opacity:1}.form-control:disabled,.form-control[readonly]{background-color:#e9ecef;opacity:1}select.form-control:focus::-ms-value{color:#495057;background-color:#fff}.form-control-file,.form-control-range{display:block;width:100%}.col-form-label{padding-top:calc(.375rem + 1px);padding-bottom:calc(.375rem + 1px);margin-bottom:0;font-size:inherit;line-height:1.5}.col-form-label-lg{padding-top:calc(.5rem + 1px);padding-bottom:calc(.5rem + 1px);font-size:1.25rem;line-height:1.5}.col-form-label-sm{padding-top:calc(.25rem + 1px);padding-bottom:calc(.25rem + 1px);font-size:.875rem;line-height:1.5}.form-control-plaintext{display:block;width:100%;padding-top:.375rem;padding-bottom:.375rem;margin-bottom:0;line-height:1.5;color:#212529;background-color:transparent;border:solid transparent;border-width:1px 0}.form-control-plaintext.form-control-lg,.form-control-plaintext.form-control-sm{padding-right:0;padding-left:0}.form-control-sm{height:calc(1.5em + .5rem + 2px);padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.form-control-lg{height:calc(1.5em + 1rem + 2px);padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}select.form-control[multiple],select.form-control[size]{height:auto}textarea.form-control{height:auto}.form-group{margin-bottom:1rem}.form-text{display:block;margin-top:.25rem}.form-row{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-right:-5px;margin-left:-5px}.form-row>.col,.form-row>[class*=col-]{padding-right:5px;padding-left:5px}.form-check{position:relative;display:block;padding-left:1.25rem}.form-check-input{position:absolute;margin-top:.3rem;margin-left:-1.25rem}.form-check-input:disabled~.form-check-label{color:#6c757d}.form-check-label{margin-bottom:0}.form-check-inline{display:-ms-inline-flexbox;display:inline-flex;-ms-flex-align:center;align-items:center;padding-left:0;margin-right:.75rem}.form-check-inline .form-check-input{position:static;margin-top:0;margin-right:.3125rem;margin-left:0}.valid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#28a745}.valid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;line-height:1.5;color:#fff;background-color:rgba(40,167,69,.9);border-radius:.25rem}.form-control.is-valid,.was-validated .form-control:valid{border-color:#28a745;padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:center right calc(.375em + .1875rem);background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-valid:focus,.was-validated .form-control:valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.form-control.is-valid~.valid-feedback,.form-control.is-valid~.valid-tooltip,.was-validated .form-control:valid~.valid-feedback,.was-validated .form-control:valid~.valid-tooltip{display:block}.was-validated textarea.form-control:valid,textarea.form-control.is-valid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.custom-select.is-valid,.was-validated .custom-select:valid{border-color:#28a745;padding-right:calc((1em + .75rem) * 3 / 4 + 1.75rem);background:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") no-repeat right .75rem center/8px 10px,url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e") #fff no-repeat center right 1.75rem/calc(.75em + .375rem) calc(.75em + .375rem)}.custom-select.is-valid:focus,.was-validated .custom-select:valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.custom-select.is-valid~.valid-feedback,.custom-select.is-valid~.valid-tooltip,.was-validated .custom-select:valid~.valid-feedback,.was-validated .custom-select:valid~.valid-tooltip{display:block}.form-control-file.is-valid~.valid-feedback,.form-control-file.is-valid~.valid-tooltip,.was-validated .form-control-file:valid~.valid-feedback,.was-validated .form-control-file:valid~.valid-tooltip{display:block}.form-check-input.is-valid~.form-check-label,.was-validated .form-check-input:valid~.form-check-label{color:#28a745}.form-check-input.is-valid~.valid-feedback,.form-check-input.is-valid~.valid-tooltip,.was-validated .form-check-input:valid~.valid-feedback,.was-validated .form-check-input:valid~.valid-tooltip{display:block}.custom-control-input.is-valid~.custom-control-label,.was-validated .custom-control-input:valid~.custom-control-label{color:#28a745}.custom-control-input.is-valid~.custom-control-label::before,.was-validated .custom-control-input:valid~.custom-control-label::before{border-color:#28a745}.custom-control-input.is-valid~.valid-feedback,.custom-control-input.is-valid~.valid-tooltip,.was-validated .custom-control-input:valid~.valid-feedback,.was-validated .custom-control-input:valid~.valid-tooltip{display:block}.custom-control-input.is-valid:checked~.custom-control-label::before,.was-validated .custom-control-input:valid:checked~.custom-control-label::before{border-color:#34ce57;background-color:#34ce57}.custom-control-input.is-valid:focus~.custom-control-label::before,.was-validated .custom-control-input:valid:focus~.custom-control-label::before{box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.custom-control-input.is-valid:focus:not(:checked)~.custom-control-label::before,.was-validated .custom-control-input:valid:focus:not(:checked)~.custom-control-label::before{border-color:#28a745}.custom-file-input.is-valid~.custom-file-label,.was-validated .custom-file-input:valid~.custom-file-label{border-color:#28a745}.custom-file-input.is-valid~.valid-feedback,.custom-file-input.is-valid~.valid-tooltip,.was-validated .custom-file-input:valid~.valid-feedback,.was-validated .custom-file-input:valid~.valid-tooltip{display:block}.custom-file-input.is-valid:focus~.custom-file-label,.was-validated .custom-file-input:valid:focus~.custom-file-label{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#dc3545}.invalid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;line-height:1.5;color:#fff;background-color:rgba(220,53,69,.9);border-radius:.25rem}.form-control.is-invalid,.was-validated .form-control:invalid{border-color:#dc3545;padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23dc3545' viewBox='-2 -2 7 7'%3e%3cpath stroke='%23dc3545' d='M0 0l3 3m0-3L0 3'/%3e%3ccircle r='.5'/%3e%3ccircle cx='3' r='.5'/%3e%3ccircle cy='3' r='.5'/%3e%3ccircle cx='3' cy='3' r='.5'/%3e%3c/svg%3E");background-repeat:no-repeat;background-position:center right calc(.375em + .1875rem);background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-invalid:focus,.was-validated .form-control:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.form-control.is-invalid~.invalid-feedback,.form-control.is-invalid~.invalid-tooltip,.was-validated .form-control:invalid~.invalid-feedback,.was-validated .form-control:invalid~.invalid-tooltip{display:block}.was-validated textarea.form-control:invalid,textarea.form-control.is-invalid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.custom-select.is-invalid,.was-validated .custom-select:invalid{border-color:#dc3545;padding-right:calc((1em + .75rem) * 3 / 4 + 1.75rem);background:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") no-repeat right .75rem center/8px 10px,url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23dc3545' viewBox='-2 -2 7 7'%3e%3cpath stroke='%23dc3545' d='M0 0l3 3m0-3L0 3'/%3e%3ccircle r='.5'/%3e%3ccircle cx='3' r='.5'/%3e%3ccircle cy='3' r='.5'/%3e%3ccircle cx='3' cy='3' r='.5'/%3e%3c/svg%3E") #fff no-repeat center right 1.75rem/calc(.75em + .375rem) calc(.75em + .375rem)}.custom-select.is-invalid:focus,.was-validated .custom-select:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.custom-select.is-invalid~.invalid-feedback,.custom-select.is-invalid~.invalid-tooltip,.was-validated .custom-select:invalid~.invalid-feedback,.was-validated .custom-select:invalid~.invalid-tooltip{display:block}.form-control-file.is-invalid~.invalid-feedback,.form-control-file.is-invalid~.invalid-tooltip,.was-validated .form-control-file:invalid~.invalid-feedback,.was-validated .form-control-file:invalid~.invalid-tooltip{display:block}.form-check-input.is-invalid~.form-check-label,.was-validated .form-check-input:invalid~.form-check-label{color:#dc3545}.form-check-input.is-invalid~.invalid-feedback,.form-check-input.is-invalid~.invalid-tooltip,.was-validated .form-check-input:invalid~.invalid-feedback,.was-validated .form-check-input:invalid~.invalid-tooltip{display:block}.custom-control-input.is-invalid~.custom-control-label,.was-validated .custom-control-input:invalid~.custom-control-label{color:#dc3545}.custom-control-input.is-invalid~.custom-control-label::before,.was-validated .custom-control-input:invalid~.custom-control-label::before{border-color:#dc3545}.custom-control-input.is-invalid~.invalid-feedback,.custom-control-input.is-invalid~.invalid-tooltip,.was-validated .custom-control-input:invalid~.invalid-feedback,.was-validated .custom-control-input:invalid~.invalid-tooltip{display:block}.custom-control-input.is-invalid:checked~.custom-control-label::before,.was-validated .custom-control-input:invalid:checked~.custom-control-label::before{border-color:#e4606d;background-color:#e4606d}.custom-control-input.is-invalid:focus~.custom-control-label::before,.was-validated .custom-control-input:invalid:focus~.custom-control-label::before{box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.custom-control-input.is-invalid:focus:not(:checked)~.custom-control-label::before,.was-validated .custom-control-input:invalid:focus:not(:checked)~.custom-control-label::before{border-color:#dc3545}.custom-file-input.is-invalid~.custom-file-label,.was-validated .custom-file-input:invalid~.custom-file-label{border-color:#dc3545}.custom-file-input.is-invalid~.invalid-feedback,.custom-file-input.is-invalid~.invalid-tooltip,.was-validated .custom-file-input:invalid~.invalid-feedback,.was-validated .custom-file-input:invalid~.invalid-tooltip{display:block}.custom-file-input.is-invalid:focus~.custom-file-label,.was-validated .custom-file-input:invalid:focus~.custom-file-label{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.form-inline{display:-ms-flexbox;display:flex;-ms-flex-flow:row wrap;flex-flow:row wrap;-ms-flex-align:center;align-items:center}.form-inline .form-check{width:100%}@media (min-width:576px){.form-inline label{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;margin-bottom:0}.form-inline .form-group{display:-ms-flexbox;display:flex;-ms-flex:0 0 auto;flex:0 0 auto;-ms-flex-flow:row wrap;flex-flow:row wrap;-ms-flex-align:center;align-items:center;margin-bottom:0}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-plaintext{display:inline-block}.form-inline .custom-select,.form-inline .input-group{width:auto}.form-inline .form-check{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:auto;padding-left:0}.form-inline .form-check-input{position:relative;-ms-flex-negative:0;flex-shrink:0;margin-top:0;margin-right:.25rem;margin-left:0}.form-inline .custom-control{-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center}.form-inline .custom-control-label{margin-bottom:0}}.btn{display:inline-block;font-weight:400;color:#212529;text-align:center;vertical-align:middle;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:transparent;border:1px solid transparent;padding:.375rem .75rem;font-size:1rem;line-height:1.5;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.btn{transition:none}}.btn:hover{color:#212529;text-decoration:none}.btn.focus,.btn:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.btn.disabled,.btn:disabled{opacity:.65}a.btn.disabled,fieldset:disabled a.btn{pointer-events:none}.btn-primary{color:#fff;background-color:#007bff;border-color:#007bff}.btn-primary:hover{color:#fff;background-color:#0069d9;border-color:#0062cc}.btn-primary.focus,.btn-primary:focus{box-shadow:0 0 0 .2rem rgba(38,143,255,.5)}.btn-primary.disabled,.btn-primary:disabled{color:#fff;background-color:#007bff;border-color:#007bff}.btn-primary:not(:disabled):not(.disabled).active,.btn-primary:not(:disabled):not(.disabled):active,.show>.btn-primary.dropdown-toggle{color:#fff;background-color:#0062cc;border-color:#005cbf}.btn-primary:not(:disabled):not(.disabled).active:focus,.btn-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(38,143,255,.5)}.btn-secondary{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary:hover{color:#fff;background-color:#5a6268;border-color:#545b62}.btn-secondary.focus,.btn-secondary:focus{box-shadow:0 0 0 .2rem rgba(130,138,145,.5)}.btn-secondary.disabled,.btn-secondary:disabled{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary:not(:disabled):not(.disabled).active,.btn-secondary:not(:disabled):not(.disabled):active,.show>.btn-secondary.dropdown-toggle{color:#fff;background-color:#545b62;border-color:#4e555b}.btn-secondary:not(:disabled):not(.disabled).active:focus,.btn-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(130,138,145,.5)}.btn-success{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success:hover{color:#fff;background-color:#218838;border-color:#1e7e34}.btn-success.focus,.btn-success:focus{box-shadow:0 0 0 .2rem rgba(72,180,97,.5)}.btn-success.disabled,.btn-success:disabled{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success:not(:disabled):not(.disabled).active,.btn-success:not(:disabled):not(.disabled):active,.show>.btn-success.dropdown-toggle{color:#fff;background-color:#1e7e34;border-color:#1c7430}.btn-success:not(:disabled):not(.disabled).active:focus,.btn-success:not(:disabled):not(.disabled):active:focus,.show>.btn-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(72,180,97,.5)}.btn-info{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info:hover{color:#fff;background-color:#138496;border-color:#117a8b}.btn-info.focus,.btn-info:focus{box-shadow:0 0 0 .2rem rgba(58,176,195,.5)}.btn-info.disabled,.btn-info:disabled{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info:not(:disabled):not(.disabled).active,.btn-info:not(:disabled):not(.disabled):active,.show>.btn-info.dropdown-toggle{color:#fff;background-color:#117a8b;border-color:#10707f}.btn-info:not(:disabled):not(.disabled).active:focus,.btn-info:not(:disabled):not(.disabled):active:focus,.show>.btn-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(58,176,195,.5)}.btn-warning{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning:hover{color:#212529;background-color:#e0a800;border-color:#d39e00}.btn-warning.focus,.btn-warning:focus{box-shadow:0 0 0 .2rem rgba(222,170,12,.5)}.btn-warning.disabled,.btn-warning:disabled{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning:not(:disabled):not(.disabled).active,.btn-warning:not(:disabled):not(.disabled):active,.show>.btn-warning.dropdown-toggle{color:#212529;background-color:#d39e00;border-color:#c69500}.btn-warning:not(:disabled):not(.disabled).active:focus,.btn-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(222,170,12,.5)}.btn-danger{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger:hover{color:#fff;background-color:#c82333;border-color:#bd2130}.btn-danger.focus,.btn-danger:focus{box-shadow:0 0 0 .2rem rgba(225,83,97,.5)}.btn-danger.disabled,.btn-danger:disabled{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger:not(:disabled):not(.disabled).active,.btn-danger:not(:disabled):not(.disabled):active,.show>.btn-danger.dropdown-toggle{color:#fff;background-color:#bd2130;border-color:#b21f2d}.btn-danger:not(:disabled):not(.disabled).active:focus,.btn-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(225,83,97,.5)}.btn-light{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light:hover{color:#212529;background-color:#e2e6ea;border-color:#dae0e5}.btn-light.focus,.btn-light:focus{box-shadow:0 0 0 .2rem rgba(216,217,219,.5)}.btn-light.disabled,.btn-light:disabled{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light:not(:disabled):not(.disabled).active,.btn-light:not(:disabled):not(.disabled):active,.show>.btn-light.dropdown-toggle{color:#212529;background-color:#dae0e5;border-color:#d3d9df}.btn-light:not(:disabled):not(.disabled).active:focus,.btn-light:not(:disabled):not(.disabled):active:focus,.show>.btn-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(216,217,219,.5)}.btn-dark{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark:hover{color:#fff;background-color:#23272b;border-color:#1d2124}.btn-dark.focus,.btn-dark:focus{box-shadow:0 0 0 .2rem rgba(82,88,93,.5)}.btn-dark.disabled,.btn-dark:disabled{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark:not(:disabled):not(.disabled).active,.btn-dark:not(:disabled):not(.disabled):active,.show>.btn-dark.dropdown-toggle{color:#fff;background-color:#1d2124;border-color:#171a1d}.btn-dark:not(:disabled):not(.disabled).active:focus,.btn-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(82,88,93,.5)}.btn-outline-primary{color:#007bff;border-color:#007bff}.btn-outline-primary:hover{color:#fff;background-color:#007bff;border-color:#007bff}.btn-outline-primary.focus,.btn-outline-primary:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-outline-primary.disabled,.btn-outline-primary:disabled{color:#007bff;background-color:transparent}.btn-outline-primary:not(:disabled):not(.disabled).active,.btn-outline-primary:not(:disabled):not(.disabled):active,.show>.btn-outline-primary.dropdown-toggle{color:#fff;background-color:#007bff;border-color:#007bff}.btn-outline-primary:not(:disabled):not(.disabled).active:focus,.btn-outline-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-outline-secondary{color:#6c757d;border-color:#6c757d}.btn-outline-secondary:hover{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-outline-secondary.focus,.btn-outline-secondary:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-outline-secondary.disabled,.btn-outline-secondary:disabled{color:#6c757d;background-color:transparent}.btn-outline-secondary:not(:disabled):not(.disabled).active,.btn-outline-secondary:not(:disabled):not(.disabled):active,.show>.btn-outline-secondary.dropdown-toggle{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-outline-secondary:not(:disabled):not(.disabled).active:focus,.btn-outline-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-outline-success{color:#28a745;border-color:#28a745}.btn-outline-success:hover{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success.focus,.btn-outline-success:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-outline-success.disabled,.btn-outline-success:disabled{color:#28a745;background-color:transparent}.btn-outline-success:not(:disabled):not(.disabled).active,.btn-outline-success:not(:disabled):not(.disabled):active,.show>.btn-outline-success.dropdown-toggle{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success:not(:disabled):not(.disabled).active:focus,.btn-outline-success:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-outline-info{color:#17a2b8;border-color:#17a2b8}.btn-outline-info:hover{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info.focus,.btn-outline-info:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-outline-info.disabled,.btn-outline-info:disabled{color:#17a2b8;background-color:transparent}.btn-outline-info:not(:disabled):not(.disabled).active,.btn-outline-info:not(:disabled):not(.disabled):active,.show>.btn-outline-info.dropdown-toggle{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info:not(:disabled):not(.disabled).active:focus,.btn-outline-info:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-outline-warning{color:#ffc107;border-color:#ffc107}.btn-outline-warning:hover{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning.focus,.btn-outline-warning:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-outline-warning.disabled,.btn-outline-warning:disabled{color:#ffc107;background-color:transparent}.btn-outline-warning:not(:disabled):not(.disabled).active,.btn-outline-warning:not(:disabled):not(.disabled):active,.show>.btn-outline-warning.dropdown-toggle{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning:not(:disabled):not(.disabled).active:focus,.btn-outline-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-outline-danger{color:#dc3545;border-color:#dc3545}.btn-outline-danger:hover{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-outline-danger.focus,.btn-outline-danger:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-outline-danger.disabled,.btn-outline-danger:disabled{color:#dc3545;background-color:transparent}.btn-outline-danger:not(:disabled):not(.disabled).active,.btn-outline-danger:not(:disabled):not(.disabled):active,.show>.btn-outline-danger.dropdown-toggle{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-outline-danger:not(:disabled):not(.disabled).active:focus,.btn-outline-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-outline-light{color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:hover{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light.focus,.btn-outline-light:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-light.disabled,.btn-outline-light:disabled{color:#f8f9fa;background-color:transparent}.btn-outline-light:not(:disabled):not(.disabled).active,.btn-outline-light:not(:disabled):not(.disabled):active,.show>.btn-outline-light.dropdown-toggle{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:not(:disabled):not(.disabled).active:focus,.btn-outline-light:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-dark{color:#343a40;border-color:#343a40}.btn-outline-dark:hover{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark.focus,.btn-outline-dark:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-outline-dark.disabled,.btn-outline-dark:disabled{color:#343a40;background-color:transparent}.btn-outline-dark:not(:disabled):not(.disabled).active,.btn-outline-dark:not(:disabled):not(.disabled):active,.show>.btn-outline-dark.dropdown-toggle{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark:not(:disabled):not(.disabled).active:focus,.btn-outline-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-link{font-weight:400;color:#007bff;text-decoration:none}.btn-link:hover{color:#0056b3;text-decoration:underline}.btn-link.focus,.btn-link:focus{text-decoration:underline;box-shadow:none}.btn-link.disabled,.btn-link:disabled{color:#6c757d;pointer-events:none}.btn-group-lg>.btn,.btn-lg{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.btn-group-sm>.btn,.btn-sm{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:.5rem}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.fade{transition:opacity .15s linear}@media (prefers-reduced-motion:reduce){.fade{transition:none}}.fade:not(.show){opacity:0}.collapse:not(.show){display:none}.collapsing{position:relative;height:0;overflow:hidden;transition:height .35s ease}@media (prefers-reduced-motion:reduce){.collapsing{transition:none}}.dropdown,.dropleft,.dropright,.dropup{position:relative}.dropdown-toggle{white-space:nowrap}.dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent}.dropdown-toggle:empty::after{margin-left:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:10rem;padding:.5rem 0;margin:.125rem 0 0;font-size:1rem;color:#212529;text-align:left;list-style:none;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.15);border-radius:.25rem}.dropdown-menu-left{right:auto;left:0}.dropdown-menu-right{right:0;left:auto}@media (min-width:576px){.dropdown-menu-sm-left{right:auto;left:0}.dropdown-menu-sm-right{right:0;left:auto}}@media (min-width:768px){.dropdown-menu-md-left{right:auto;left:0}.dropdown-menu-md-right{right:0;left:auto}}@media (min-width:992px){.dropdown-menu-lg-left{right:auto;left:0}.dropdown-menu-lg-right{right:0;left:auto}}@media (min-width:1200px){.dropdown-menu-xl-left{right:auto;left:0}.dropdown-menu-xl-right{right:0;left:auto}}.dropup .dropdown-menu{top:auto;bottom:100%;margin-top:0;margin-bottom:.125rem}.dropup .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:0;border-right:.3em solid transparent;border-bottom:.3em solid;border-left:.3em solid transparent}.dropup .dropdown-toggle:empty::after{margin-left:0}.dropright .dropdown-menu{top:0;right:auto;left:100%;margin-top:0;margin-left:.125rem}.dropright .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:0;border-bottom:.3em solid transparent;border-left:.3em solid}.dropright .dropdown-toggle:empty::after{margin-left:0}.dropright .dropdown-toggle::after{vertical-align:0}.dropleft .dropdown-menu{top:0;right:100%;left:auto;margin-top:0;margin-right:.125rem}.dropleft .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:""}.dropleft .dropdown-toggle::after{display:none}.dropleft .dropdown-toggle::before{display:inline-block;margin-right:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:.3em solid;border-bottom:.3em solid transparent}.dropleft .dropdown-toggle:empty::after{margin-left:0}.dropleft .dropdown-toggle::before{vertical-align:0}.dropdown-menu[x-placement^=bottom],.dropdown-menu[x-placement^=left],.dropdown-menu[x-placement^=right],.dropdown-menu[x-placement^=top]{right:auto;bottom:auto}.dropdown-divider{height:0;margin:.5rem 0;overflow:hidden;border-top:1px solid #e9ecef}.dropdown-item{display:block;width:100%;padding:.25rem 1.5rem;clear:both;font-weight:400;color:#212529;text-align:inherit;white-space:nowrap;background-color:transparent;border:0}.dropdown-item:focus,.dropdown-item:hover{color:#16181b;text-decoration:none;background-color:#f8f9fa}.dropdown-item.active,.dropdown-item:active{color:#fff;text-decoration:none;background-color:#007bff}.dropdown-item.disabled,.dropdown-item:disabled{color:#6c757d;pointer-events:none;background-color:transparent}.dropdown-menu.show{display:block}.dropdown-header{display:block;padding:.5rem 1.5rem;margin-bottom:0;font-size:.875rem;color:#6c757d;white-space:nowrap}.dropdown-item-text{display:block;padding:.25rem 1.5rem;color:#212529}.btn-group,.btn-group-vertical{position:relative;display:-ms-inline-flexbox;display:inline-flex;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;-ms-flex:1 1 auto;flex:1 1 auto}.btn-group-vertical>.btn:hover,.btn-group>.btn:hover{z-index:1}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus{z-index:1}.btn-toolbar{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-pack:start;justify-content:flex-start}.btn-toolbar .input-group{width:auto}.btn-group>.btn-group:not(:first-child),.btn-group>.btn:not(:first-child){margin-left:-1px}.btn-group>.btn-group:not(:last-child)>.btn,.btn-group>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:not(:first-child)>.btn,.btn-group>.btn:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.dropdown-toggle-split{padding-right:.5625rem;padding-left:.5625rem}.dropdown-toggle-split::after,.dropright .dropdown-toggle-split::after,.dropup .dropdown-toggle-split::after{margin-left:0}.dropleft .dropdown-toggle-split::before{margin-right:0}.btn-group-sm>.btn+.dropdown-toggle-split,.btn-sm+.dropdown-toggle-split{padding-right:.375rem;padding-left:.375rem}.btn-group-lg>.btn+.dropdown-toggle-split,.btn-lg+.dropdown-toggle-split{padding-right:.75rem;padding-left:.75rem}.btn-group-vertical{-ms-flex-direction:column;flex-direction:column;-ms-flex-align:start;align-items:flex-start;-ms-flex-pack:center;justify-content:center}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group{width:100%}.btn-group-vertical>.btn-group:not(:first-child),.btn-group-vertical>.btn:not(:first-child){margin-top:-1px}.btn-group-vertical>.btn-group:not(:last-child)>.btn,.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child)>.btn,.btn-group-vertical>.btn:not(:first-child){border-top-left-radius:0;border-top-right-radius:0}.btn-group-toggle>.btn,.btn-group-toggle>.btn-group>.btn{margin-bottom:0}.btn-group-toggle>.btn input[type=checkbox],.btn-group-toggle>.btn input[type=radio],.btn-group-toggle>.btn-group>.btn input[type=checkbox],.btn-group-toggle>.btn-group>.btn input[type=radio]{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.input-group{position:relative;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:stretch;align-items:stretch;width:100%}.input-group>.custom-file,.input-group>.custom-select,.input-group>.form-control,.input-group>.form-control-plaintext{position:relative;-ms-flex:1 1 auto;flex:1 1 auto;width:1%;margin-bottom:0}.input-group>.custom-file+.custom-file,.input-group>.custom-file+.custom-select,.input-group>.custom-file+.form-control,.input-group>.custom-select+.custom-file,.input-group>.custom-select+.custom-select,.input-group>.custom-select+.form-control,.input-group>.form-control+.custom-file,.input-group>.form-control+.custom-select,.input-group>.form-control+.form-control,.input-group>.form-control-plaintext+.custom-file,.input-group>.form-control-plaintext+.custom-select,.input-group>.form-control-plaintext+.form-control{margin-left:-1px}.input-group>.custom-file .custom-file-input:focus~.custom-file-label,.input-group>.custom-select:focus,.input-group>.form-control:focus{z-index:3}.input-group>.custom-file .custom-file-input:focus{z-index:4}.input-group>.custom-select:not(:last-child),.input-group>.form-control:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.custom-select:not(:first-child),.input-group>.form-control:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.input-group>.custom-file{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.input-group>.custom-file:not(:last-child) .custom-file-label,.input-group>.custom-file:not(:last-child) .custom-file-label::after{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.custom-file:not(:first-child) .custom-file-label{border-top-left-radius:0;border-bottom-left-radius:0}.input-group-append,.input-group-prepend{display:-ms-flexbox;display:flex}.input-group-append .btn,.input-group-prepend .btn{position:relative;z-index:2}.input-group-append .btn:focus,.input-group-prepend .btn:focus{z-index:3}.input-group-append .btn+.btn,.input-group-append .btn+.input-group-text,.input-group-append .input-group-text+.btn,.input-group-append .input-group-text+.input-group-text,.input-group-prepend .btn+.btn,.input-group-prepend .btn+.input-group-text,.input-group-prepend .input-group-text+.btn,.input-group-prepend .input-group-text+.input-group-text{margin-left:-1px}.input-group-prepend{margin-right:-1px}.input-group-append{margin-left:-1px}.input-group-text{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;padding:.375rem .75rem;margin-bottom:0;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;text-align:center;white-space:nowrap;background-color:#e9ecef;border:1px solid #ced4da;border-radius:.25rem}.input-group-text input[type=checkbox],.input-group-text input[type=radio]{margin-top:0}.input-group-lg>.custom-select,.input-group-lg>.form-control:not(textarea){height:calc(1.5em + 1rem + 2px)}.input-group-lg>.custom-select,.input-group-lg>.form-control,.input-group-lg>.input-group-append>.btn,.input-group-lg>.input-group-append>.input-group-text,.input-group-lg>.input-group-prepend>.btn,.input-group-lg>.input-group-prepend>.input-group-text{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.input-group-sm>.custom-select,.input-group-sm>.form-control:not(textarea){height:calc(1.5em + .5rem + 2px)}.input-group-sm>.custom-select,.input-group-sm>.form-control,.input-group-sm>.input-group-append>.btn,.input-group-sm>.input-group-append>.input-group-text,.input-group-sm>.input-group-prepend>.btn,.input-group-sm>.input-group-prepend>.input-group-text{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.input-group-lg>.custom-select,.input-group-sm>.custom-select{padding-right:1.75rem}.input-group>.input-group-append:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group>.input-group-append:last-child>.input-group-text:not(:last-child),.input-group>.input-group-append:not(:last-child)>.btn,.input-group>.input-group-append:not(:last-child)>.input-group-text,.input-group>.input-group-prepend>.btn,.input-group>.input-group-prepend>.input-group-text{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.input-group-append>.btn,.input-group>.input-group-append>.input-group-text,.input-group>.input-group-prepend:first-child>.btn:not(:first-child),.input-group>.input-group-prepend:first-child>.input-group-text:not(:first-child),.input-group>.input-group-prepend:not(:first-child)>.btn,.input-group>.input-group-prepend:not(:first-child)>.input-group-text{border-top-left-radius:0;border-bottom-left-radius:0}.custom-control{position:relative;display:block;min-height:1.5rem;padding-left:1.5rem}.custom-control-inline{display:-ms-inline-flexbox;display:inline-flex;margin-right:1rem}.custom-control-input{position:absolute;z-index:-1;opacity:0}.custom-control-input:checked~.custom-control-label::before{color:#fff;border-color:#007bff;background-color:#007bff}.custom-control-input:focus~.custom-control-label::before{box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-control-input:focus:not(:checked)~.custom-control-label::before{border-color:#80bdff}.custom-control-input:not(:disabled):active~.custom-control-label::before{color:#fff;background-color:#b3d7ff;border-color:#b3d7ff}.custom-control-input:disabled~.custom-control-label{color:#6c757d}.custom-control-input:disabled~.custom-control-label::before{background-color:#e9ecef}.custom-control-label{position:relative;margin-bottom:0;vertical-align:top}.custom-control-label::before{position:absolute;top:.25rem;left:-1.5rem;display:block;width:1rem;height:1rem;pointer-events:none;content:"";background-color:#fff;border:#adb5bd solid 1px}.custom-control-label::after{position:absolute;top:.25rem;left:-1.5rem;display:block;width:1rem;height:1rem;content:"";background:no-repeat 50%/50% 50%}.custom-checkbox .custom-control-label::before{border-radius:.25rem}.custom-checkbox .custom-control-input:checked~.custom-control-label::after{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3e%3c/svg%3e")}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label::before{border-color:#007bff;background-color:#007bff}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label::after{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 4'%3e%3cpath stroke='%23fff' d='M0 2h4'/%3e%3c/svg%3e")}.custom-checkbox .custom-control-input:disabled:checked~.custom-control-label::before{background-color:rgba(0,123,255,.5)}.custom-checkbox .custom-control-input:disabled:indeterminate~.custom-control-label::before{background-color:rgba(0,123,255,.5)}.custom-radio .custom-control-label::before{border-radius:50%}.custom-radio .custom-control-input:checked~.custom-control-label::after{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e")}.custom-radio .custom-control-input:disabled:checked~.custom-control-label::before{background-color:rgba(0,123,255,.5)}.custom-switch{padding-left:2.25rem}.custom-switch .custom-control-label::before{left:-2.25rem;width:1.75rem;pointer-events:all;border-radius:.5rem}.custom-switch .custom-control-label::after{top:calc(.25rem + 2px);left:calc(-2.25rem + 2px);width:calc(1rem - 4px);height:calc(1rem - 4px);background-color:#adb5bd;border-radius:.5rem;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-transform .15s ease-in-out;transition:transform .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:transform .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-transform .15s ease-in-out}@media (prefers-reduced-motion:reduce){.custom-switch .custom-control-label::after{transition:none}}.custom-switch .custom-control-input:checked~.custom-control-label::after{background-color:#fff;-webkit-transform:translateX(.75rem);transform:translateX(.75rem)}.custom-switch .custom-control-input:disabled:checked~.custom-control-label::before{background-color:rgba(0,123,255,.5)}.custom-select{display:inline-block;width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem 1.75rem .375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;vertical-align:middle;background:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") no-repeat right .75rem center/8px 10px;background-color:#fff;border:1px solid #ced4da;border-radius:.25rem;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-select:focus{border-color:#80bdff;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-select:focus::-ms-value{color:#495057;background-color:#fff}.custom-select[multiple],.custom-select[size]:not([size="1"]){height:auto;padding-right:.75rem;background-image:none}.custom-select:disabled{color:#6c757d;background-color:#e9ecef}.custom-select::-ms-expand{display:none}.custom-select-sm{height:calc(1.5em + .5rem + 2px);padding-top:.25rem;padding-bottom:.25rem;padding-left:.5rem;font-size:.875rem}.custom-select-lg{height:calc(1.5em + 1rem + 2px);padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;font-size:1.25rem}.custom-file{position:relative;display:inline-block;width:100%;height:calc(1.5em + .75rem + 2px);margin-bottom:0}.custom-file-input{position:relative;z-index:2;width:100%;height:calc(1.5em + .75rem + 2px);margin:0;opacity:0}.custom-file-input:focus~.custom-file-label{border-color:#80bdff;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-file-input:disabled~.custom-file-label{background-color:#e9ecef}.custom-file-input:lang(en)~.custom-file-label::after{content:"Browse"}.custom-file-input~.custom-file-label[data-browse]::after{content:attr(data-browse)}.custom-file-label{position:absolute;top:0;right:0;left:0;z-index:1;height:calc(1.5em + .75rem + 2px);padding:.375rem .75rem;font-weight:400;line-height:1.5;color:#495057;background-color:#fff;border:1px solid #ced4da;border-radius:.25rem}.custom-file-label::after{position:absolute;top:0;right:0;bottom:0;z-index:3;display:block;height:calc(1.5em + .75rem);padding:.375rem .75rem;line-height:1.5;color:#495057;content:"Browse";background-color:#e9ecef;border-left:inherit;border-radius:0 .25rem .25rem 0}.custom-range{width:100%;height:calc(1rem + .4rem);padding:0;background-color:transparent;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-range:focus{outline:0}.custom-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range:focus::-ms-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range::-moz-focus-outer{border:0}.custom-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-.25rem;background-color:#007bff;border:0;border-radius:1rem;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-webkit-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-webkit-slider-thumb{transition:none}}.custom-range::-webkit-slider-thumb:active{background-color:#b3d7ff}.custom-range::-webkit-slider-runnable-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.custom-range::-moz-range-thumb{width:1rem;height:1rem;background-color:#007bff;border:0;border-radius:1rem;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-moz-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-moz-range-thumb{transition:none}}.custom-range::-moz-range-thumb:active{background-color:#b3d7ff}.custom-range::-moz-range-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.custom-range::-ms-thumb{width:1rem;height:1rem;margin-top:0;margin-right:.2rem;margin-left:.2rem;background-color:#007bff;border:0;border-radius:1rem;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-ms-thumb{transition:none}}.custom-range::-ms-thumb:active{background-color:#b3d7ff}.custom-range::-ms-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:transparent;border-color:transparent;border-width:.5rem}.custom-range::-ms-fill-lower{background-color:#dee2e6;border-radius:1rem}.custom-range::-ms-fill-upper{margin-right:15px;background-color:#dee2e6;border-radius:1rem}.custom-range:disabled::-webkit-slider-thumb{background-color:#adb5bd}.custom-range:disabled::-webkit-slider-runnable-track{cursor:default}.custom-range:disabled::-moz-range-thumb{background-color:#adb5bd}.custom-range:disabled::-moz-range-track{cursor:default}.custom-range:disabled::-ms-thumb{background-color:#adb5bd}.custom-control-label::before,.custom-file-label,.custom-select{transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.custom-control-label::before,.custom-file-label,.custom-select{transition:none}}.nav{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link{display:block;padding:.5rem 1rem}.nav-link:focus,.nav-link:hover{text-decoration:none}.nav-link.disabled{color:#6c757d;pointer-events:none;cursor:default}.nav-tabs{border-bottom:1px solid #dee2e6}.nav-tabs .nav-item{margin-bottom:-1px}.nav-tabs .nav-link{border:1px solid transparent;border-top-left-radius:.25rem;border-top-right-radius:.25rem}.nav-tabs .nav-link:focus,.nav-tabs .nav-link:hover{border-color:#e9ecef #e9ecef #dee2e6}.nav-tabs .nav-link.disabled{color:#6c757d;background-color:transparent;border-color:transparent}.nav-tabs .nav-item.show .nav-link,.nav-tabs .nav-link.active{color:#495057;background-color:#fff;border-color:#dee2e6 #dee2e6 #fff}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.nav-pills .nav-link{border-radius:.25rem}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:#fff;background-color:#007bff}.nav-fill .nav-item{-ms-flex:1 1 auto;flex:1 1 auto;text-align:center}.nav-justified .nav-item{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;text-align:center}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.navbar{position:relative;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between;padding:.5rem 1rem}.navbar>.container,.navbar>.container-fluid{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between}.navbar-brand{display:inline-block;padding-top:.3125rem;padding-bottom:.3125rem;margin-right:1rem;font-size:1.25rem;line-height:inherit;white-space:nowrap}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}.navbar-nav{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;padding-left:0;margin-bottom:0;list-style:none}.navbar-nav .nav-link{padding-right:0;padding-left:0}.navbar-nav .dropdown-menu{position:static;float:none}.navbar-text{display:inline-block;padding-top:.5rem;padding-bottom:.5rem}.navbar-collapse{-ms-flex-preferred-size:100%;flex-basis:100%;-ms-flex-positive:1;flex-grow:1;-ms-flex-align:center;align-items:center}.navbar-toggler{padding:.25rem .75rem;font-size:1.25rem;line-height:1;background-color:transparent;border:1px solid transparent;border-radius:.25rem}.navbar-toggler:focus,.navbar-toggler:hover{text-decoration:none}.navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;content:"";background:no-repeat center center;background-size:100% 100%}@media (max-width:575.98px){.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid{padding-right:0;padding-left:0}}@media (min-width:576px){.navbar-expand-sm{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-sm .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-sm .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}}@media (max-width:767.98px){.navbar-expand-md>.container,.navbar-expand-md>.container-fluid{padding-right:0;padding-left:0}}@media (min-width:768px){.navbar-expand-md{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-md .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-md .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-md>.container,.navbar-expand-md>.container-fluid{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-md .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}}@media (max-width:991.98px){.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid{padding-right:0;padding-left:0}}@media (min-width:992px){.navbar-expand-lg{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-lg .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-lg .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-lg .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-lg .navbar-toggler{display:none}}@media (max-width:1199.98px){.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid{padding-right:0;padding-left:0}}@media (min-width:1200px){.navbar-expand-xl{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-xl .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xl .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-xl .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}}.navbar-expand{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand>.container,.navbar-expand>.container-fluid{padding-right:0;padding-left:0}.navbar-expand .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand>.container,.navbar-expand>.container-fluid{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand .navbar-toggler{display:none}.navbar-light .navbar-brand{color:rgba(0,0,0,.9)}.navbar-light .navbar-brand:focus,.navbar-light .navbar-brand:hover{color:rgba(0,0,0,.9)}.navbar-light .navbar-nav .nav-link{color:rgba(0,0,0,.5)}.navbar-light .navbar-nav .nav-link:focus,.navbar-light .navbar-nav .nav-link:hover{color:rgba(0,0,0,.7)}.navbar-light .navbar-nav .nav-link.disabled{color:rgba(0,0,0,.3)}.navbar-light .navbar-nav .active>.nav-link,.navbar-light .navbar-nav .nav-link.active,.navbar-light .navbar-nav .nav-link.show,.navbar-light .navbar-nav .show>.nav-link{color:rgba(0,0,0,.9)}.navbar-light .navbar-toggler{color:rgba(0,0,0,.5);border-color:rgba(0,0,0,.1)}.navbar-light .navbar-toggler-icon{background-image:url("data:image/svg+xml,%3csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3e%3cpath stroke='rgba(0, 0, 0, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.navbar-light .navbar-text{color:rgba(0,0,0,.5)}.navbar-light .navbar-text a{color:rgba(0,0,0,.9)}.navbar-light .navbar-text a:focus,.navbar-light .navbar-text a:hover{color:rgba(0,0,0,.9)}.navbar-dark .navbar-brand{color:#fff}.navbar-dark .navbar-brand:focus,.navbar-dark .navbar-brand:hover{color:#fff}.navbar-dark .navbar-nav .nav-link{color:rgba(255,255,255,.5)}.navbar-dark .navbar-nav .nav-link:focus,.navbar-dark .navbar-nav .nav-link:hover{color:rgba(255,255,255,.75)}.navbar-dark .navbar-nav .nav-link.disabled{color:rgba(255,255,255,.25)}.navbar-dark .navbar-nav .active>.nav-link,.navbar-dark .navbar-nav .nav-link.active,.navbar-dark .navbar-nav .nav-link.show,.navbar-dark .navbar-nav .show>.nav-link{color:#fff}.navbar-dark .navbar-toggler{color:rgba(255,255,255,.5);border-color:rgba(255,255,255,.1)}.navbar-dark .navbar-toggler-icon{background-image:url("data:image/svg+xml,%3csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3e%3cpath stroke='rgba(255, 255, 255, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.navbar-dark .navbar-text{color:rgba(255,255,255,.5)}.navbar-dark .navbar-text a{color:#fff}.navbar-dark .navbar-text a:focus,.navbar-dark .navbar-text a:hover{color:#fff}.card{position:relative;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;min-width:0;word-wrap:break-word;background-color:#fff;background-clip:border-box;border:1px solid rgba(0,0,0,.125);border-radius:.25rem}.card>hr{margin-right:0;margin-left:0}.card>.list-group:first-child .list-group-item:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.card>.list-group:last-child .list-group-item:last-child{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.card-body{-ms-flex:1 1 auto;flex:1 1 auto;padding:1.25rem}.card-title{margin-bottom:.75rem}.card-subtitle{margin-top:-.375rem;margin-bottom:0}.card-text:last-child{margin-bottom:0}.card-link:hover{text-decoration:none}.card-link+.card-link{margin-left:1.25rem}.card-header{padding:.75rem 1.25rem;margin-bottom:0;background-color:rgba(0,0,0,.03);border-bottom:1px solid rgba(0,0,0,.125)}.card-header:first-child{border-radius:calc(.25rem - 1px) calc(.25rem - 1px) 0 0}.card-header+.list-group .list-group-item:first-child{border-top:0}.card-footer{padding:.75rem 1.25rem;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.125)}.card-footer:last-child{border-radius:0 0 calc(.25rem - 1px) calc(.25rem - 1px)}.card-header-tabs{margin-right:-.625rem;margin-bottom:-.75rem;margin-left:-.625rem;border-bottom:0}.card-header-pills{margin-right:-.625rem;margin-left:-.625rem}.card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:1.25rem}.card-img{width:100%;border-radius:calc(.25rem - 1px)}.card-img-top{width:100%;border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.card-img-bottom{width:100%;border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.card-deck{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}.card-deck .card{margin-bottom:15px}@media (min-width:576px){.card-deck{-ms-flex-flow:row wrap;flex-flow:row wrap;margin-right:-15px;margin-left:-15px}.card-deck .card{display:-ms-flexbox;display:flex;-ms-flex:1 0 0%;flex:1 0 0%;-ms-flex-direction:column;flex-direction:column;margin-right:15px;margin-bottom:0;margin-left:15px}}.card-group{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}.card-group>.card{margin-bottom:15px}@media (min-width:576px){.card-group{-ms-flex-flow:row wrap;flex-flow:row wrap}.card-group>.card{-ms-flex:1 0 0%;flex:1 0 0%;margin-bottom:0}.card-group>.card+.card{margin-left:0;border-left:0}.card-group>.card:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.card-group>.card:not(:last-child) .card-header,.card-group>.card:not(:last-child) .card-img-top{border-top-right-radius:0}.card-group>.card:not(:last-child) .card-footer,.card-group>.card:not(:last-child) .card-img-bottom{border-bottom-right-radius:0}.card-group>.card:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.card-group>.card:not(:first-child) .card-header,.card-group>.card:not(:first-child) .card-img-top{border-top-left-radius:0}.card-group>.card:not(:first-child) .card-footer,.card-group>.card:not(:first-child) .card-img-bottom{border-bottom-left-radius:0}}.card-columns .card{margin-bottom:.75rem}@media (min-width:576px){.card-columns{-webkit-column-count:3;-moz-column-count:3;column-count:3;-webkit-column-gap:1.25rem;-moz-column-gap:1.25rem;column-gap:1.25rem;orphans:1;widows:1}.card-columns .card{display:inline-block;width:100%}}.accordion>.card{overflow:hidden}.accordion>.card:not(:first-of-type) .card-header:first-child{border-radius:0}.accordion>.card:not(:first-of-type):not(:last-of-type){border-bottom:0;border-radius:0}.accordion>.card:first-of-type{border-bottom:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.accordion>.card:last-of-type{border-top-left-radius:0;border-top-right-radius:0}.accordion>.card .card-header{margin-bottom:-1px}.breadcrumb{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;padding:.75rem 1rem;margin-bottom:1rem;list-style:none;background-color:#e9ecef;border-radius:.25rem}.breadcrumb-item+.breadcrumb-item{padding-left:.5rem}.breadcrumb-item+.breadcrumb-item::before{display:inline-block;padding-right:.5rem;color:#6c757d;content:"/"}.breadcrumb-item+.breadcrumb-item:hover::before{text-decoration:underline}.breadcrumb-item+.breadcrumb-item:hover::before{text-decoration:none}.breadcrumb-item.active{color:#6c757d}.pagination{display:-ms-flexbox;display:flex;padding-left:0;list-style:none;border-radius:.25rem}.page-link{position:relative;display:block;padding:.5rem .75rem;margin-left:-1px;line-height:1.25;color:#007bff;background-color:#fff;border:1px solid #dee2e6}.page-link:hover{z-index:2;color:#0056b3;text-decoration:none;background-color:#e9ecef;border-color:#dee2e6}.page-link:focus{z-index:2;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.page-item:first-child .page-link{margin-left:0;border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.page-item:last-child .page-link{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.page-item.active .page-link{z-index:1;color:#fff;background-color:#007bff;border-color:#007bff}.page-item.disabled .page-link{color:#6c757d;pointer-events:none;cursor:auto;background-color:#fff;border-color:#dee2e6}.pagination-lg .page-link{padding:.75rem 1.5rem;font-size:1.25rem;line-height:1.5}.pagination-lg .page-item:first-child .page-link{border-top-left-radius:.3rem;border-bottom-left-radius:.3rem}.pagination-lg .page-item:last-child .page-link{border-top-right-radius:.3rem;border-bottom-right-radius:.3rem}.pagination-sm .page-link{padding:.25rem .5rem;font-size:.875rem;line-height:1.5}.pagination-sm .page-item:first-child .page-link{border-top-left-radius:.2rem;border-bottom-left-radius:.2rem}.pagination-sm .page-item:last-child .page-link{border-top-right-radius:.2rem;border-bottom-right-radius:.2rem}.badge{display:inline-block;padding:.25em .4em;font-size:75%;font-weight:700;line-height:1;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.badge{transition:none}}a.badge:focus,a.badge:hover{text-decoration:none}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.badge-pill{padding-right:.6em;padding-left:.6em;border-radius:10rem}.badge-primary{color:#fff;background-color:#007bff}a.badge-primary:focus,a.badge-primary:hover{color:#fff;background-color:#0062cc}a.badge-primary.focus,a.badge-primary:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.badge-secondary{color:#fff;background-color:#6c757d}a.badge-secondary:focus,a.badge-secondary:hover{color:#fff;background-color:#545b62}a.badge-secondary.focus,a.badge-secondary:focus{outline:0;box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.badge-success{color:#fff;background-color:#28a745}a.badge-success:focus,a.badge-success:hover{color:#fff;background-color:#1e7e34}a.badge-success.focus,a.badge-success:focus{outline:0;box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.badge-info{color:#fff;background-color:#17a2b8}a.badge-info:focus,a.badge-info:hover{color:#fff;background-color:#117a8b}a.badge-info.focus,a.badge-info:focus{outline:0;box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.badge-warning{color:#212529;background-color:#ffc107}a.badge-warning:focus,a.badge-warning:hover{color:#212529;background-color:#d39e00}a.badge-warning.focus,a.badge-warning:focus{outline:0;box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.badge-danger{color:#fff;background-color:#dc3545}a.badge-danger:focus,a.badge-danger:hover{color:#fff;background-color:#bd2130}a.badge-danger.focus,a.badge-danger:focus{outline:0;box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.badge-light{color:#212529;background-color:#f8f9fa}a.badge-light:focus,a.badge-light:hover{color:#212529;background-color:#dae0e5}a.badge-light.focus,a.badge-light:focus{outline:0;box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.badge-dark{color:#fff;background-color:#343a40}a.badge-dark:focus,a.badge-dark:hover{color:#fff;background-color:#1d2124}a.badge-dark.focus,a.badge-dark:focus{outline:0;box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.jumbotron{padding:2rem 1rem;margin-bottom:2rem;background-color:#e9ecef;border-radius:.3rem}@media (min-width:576px){.jumbotron{padding:4rem 2rem}}.jumbotron-fluid{padding-right:0;padding-left:0;border-radius:0}.alert{position:relative;padding:.75rem 1.25rem;margin-bottom:1rem;border:1px solid transparent;border-radius:.25rem}.alert-heading{color:inherit}.alert-link{font-weight:700}.alert-dismissible{padding-right:4rem}.alert-dismissible .close{position:absolute;top:0;right:0;padding:.75rem 1.25rem;color:inherit}.alert-primary{color:#004085;background-color:#cce5ff;border-color:#b8daff}.alert-primary hr{border-top-color:#9fcdff}.alert-primary .alert-link{color:#002752}.alert-secondary{color:#383d41;background-color:#e2e3e5;border-color:#d6d8db}.alert-secondary hr{border-top-color:#c8cbcf}.alert-secondary .alert-link{color:#202326}.alert-success{color:#155724;background-color:#d4edda;border-color:#c3e6cb}.alert-success hr{border-top-color:#b1dfbb}.alert-success .alert-link{color:#0b2e13}.alert-info{color:#0c5460;background-color:#d1ecf1;border-color:#bee5eb}.alert-info hr{border-top-color:#abdde5}.alert-info .alert-link{color:#062c33}.alert-warning{color:#856404;background-color:#fff3cd;border-color:#ffeeba}.alert-warning hr{border-top-color:#ffe8a1}.alert-warning .alert-link{color:#533f03}.alert-danger{color:#721c24;background-color:#f8d7da;border-color:#f5c6cb}.alert-danger hr{border-top-color:#f1b0b7}.alert-danger .alert-link{color:#491217}.alert-light{color:#818182;background-color:#fefefe;border-color:#fdfdfe}.alert-light hr{border-top-color:#ececf6}.alert-light .alert-link{color:#686868}.alert-dark{color:#1b1e21;background-color:#d6d8d9;border-color:#c6c8ca}.alert-dark hr{border-top-color:#b9bbbe}.alert-dark .alert-link{color:#040505}@-webkit-keyframes progress-bar-stripes{from{background-position:1rem 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:1rem 0}to{background-position:0 0}}.progress{display:-ms-flexbox;display:flex;height:1rem;overflow:hidden;font-size:.75rem;background-color:#e9ecef;border-radius:.25rem}.progress-bar{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:center;justify-content:center;color:#fff;text-align:center;white-space:nowrap;background-color:#007bff;transition:width .6s ease}@media (prefers-reduced-motion:reduce){.progress-bar{transition:none}}.progress-bar-striped{background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-size:1rem 1rem}.progress-bar-animated{-webkit-animation:progress-bar-stripes 1s linear infinite;animation:progress-bar-stripes 1s linear infinite}@media (prefers-reduced-motion:reduce){.progress-bar-animated{-webkit-animation:none;animation:none}}.media{display:-ms-flexbox;display:flex;-ms-flex-align:start;align-items:flex-start}.media-body{-ms-flex:1;flex:1}.list-group{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;padding-left:0;margin-bottom:0}.list-group-item-action{width:100%;color:#495057;text-align:inherit}.list-group-item-action:focus,.list-group-item-action:hover{z-index:1;color:#495057;text-decoration:none;background-color:#f8f9fa}.list-group-item-action:active{color:#212529;background-color:#e9ecef}.list-group-item{position:relative;display:block;padding:.75rem 1.25rem;margin-bottom:-1px;background-color:#fff;border:1px solid rgba(0,0,0,.125)}.list-group-item:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.list-group-item.disabled,.list-group-item:disabled{color:#6c757d;pointer-events:none;background-color:#fff}.list-group-item.active{z-index:2;color:#fff;background-color:#007bff;border-color:#007bff}.list-group-horizontal{-ms-flex-direction:row;flex-direction:row}.list-group-horizontal .list-group-item{margin-right:-1px;margin-bottom:0}.list-group-horizontal .list-group-item:first-child{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal .list-group-item:last-child{margin-right:0;border-top-right-radius:.25rem;border-bottom-right-radius:.25rem;border-bottom-left-radius:0}@media (min-width:576px){.list-group-horizontal-sm{-ms-flex-direction:row;flex-direction:row}.list-group-horizontal-sm .list-group-item{margin-right:-1px;margin-bottom:0}.list-group-horizontal-sm .list-group-item:first-child{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-sm .list-group-item:last-child{margin-right:0;border-top-right-radius:.25rem;border-bottom-right-radius:.25rem;border-bottom-left-radius:0}}@media (min-width:768px){.list-group-horizontal-md{-ms-flex-direction:row;flex-direction:row}.list-group-horizontal-md .list-group-item{margin-right:-1px;margin-bottom:0}.list-group-horizontal-md .list-group-item:first-child{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-md .list-group-item:last-child{margin-right:0;border-top-right-radius:.25rem;border-bottom-right-radius:.25rem;border-bottom-left-radius:0}}@media (min-width:992px){.list-group-horizontal-lg{-ms-flex-direction:row;flex-direction:row}.list-group-horizontal-lg .list-group-item{margin-right:-1px;margin-bottom:0}.list-group-horizontal-lg .list-group-item:first-child{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-lg .list-group-item:last-child{margin-right:0;border-top-right-radius:.25rem;border-bottom-right-radius:.25rem;border-bottom-left-radius:0}}@media (min-width:1200px){.list-group-horizontal-xl{-ms-flex-direction:row;flex-direction:row}.list-group-horizontal-xl .list-group-item{margin-right:-1px;margin-bottom:0}.list-group-horizontal-xl .list-group-item:first-child{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-xl .list-group-item:last-child{margin-right:0;border-top-right-radius:.25rem;border-bottom-right-radius:.25rem;border-bottom-left-radius:0}}.list-group-flush .list-group-item{border-right:0;border-left:0;border-radius:0}.list-group-flush .list-group-item:last-child{margin-bottom:-1px}.list-group-flush:first-child .list-group-item:first-child{border-top:0}.list-group-flush:last-child .list-group-item:last-child{margin-bottom:0;border-bottom:0}.list-group-item-primary{color:#004085;background-color:#b8daff}.list-group-item-primary.list-group-item-action:focus,.list-group-item-primary.list-group-item-action:hover{color:#004085;background-color:#9fcdff}.list-group-item-primary.list-group-item-action.active{color:#fff;background-color:#004085;border-color:#004085}.list-group-item-secondary{color:#383d41;background-color:#d6d8db}.list-group-item-secondary.list-group-item-action:focus,.list-group-item-secondary.list-group-item-action:hover{color:#383d41;background-color:#c8cbcf}.list-group-item-secondary.list-group-item-action.active{color:#fff;background-color:#383d41;border-color:#383d41}.list-group-item-success{color:#155724;background-color:#c3e6cb}.list-group-item-success.list-group-item-action:focus,.list-group-item-success.list-group-item-action:hover{color:#155724;background-color:#b1dfbb}.list-group-item-success.list-group-item-action.active{color:#fff;background-color:#155724;border-color:#155724}.list-group-item-info{color:#0c5460;background-color:#bee5eb}.list-group-item-info.list-group-item-action:focus,.list-group-item-info.list-group-item-action:hover{color:#0c5460;background-color:#abdde5}.list-group-item-info.list-group-item-action.active{color:#fff;background-color:#0c5460;border-color:#0c5460}.list-group-item-warning{color:#856404;background-color:#ffeeba}.list-group-item-warning.list-group-item-action:focus,.list-group-item-warning.list-group-item-action:hover{color:#856404;background-color:#ffe8a1}.list-group-item-warning.list-group-item-action.active{color:#fff;background-color:#856404;border-color:#856404}.list-group-item-danger{color:#721c24;background-color:#f5c6cb}.list-group-item-danger.list-group-item-action:focus,.list-group-item-danger.list-group-item-action:hover{color:#721c24;background-color:#f1b0b7}.list-group-item-danger.list-group-item-action.active{color:#fff;background-color:#721c24;border-color:#721c24}.list-group-item-light{color:#818182;background-color:#fdfdfe}.list-group-item-light.list-group-item-action:focus,.list-group-item-light.list-group-item-action:hover{color:#818182;background-color:#ececf6}.list-group-item-light.list-group-item-action.active{color:#fff;background-color:#818182;border-color:#818182}.list-group-item-dark{color:#1b1e21;background-color:#c6c8ca}.list-group-item-dark.list-group-item-action:focus,.list-group-item-dark.list-group-item-action:hover{color:#1b1e21;background-color:#b9bbbe}.list-group-item-dark.list-group-item-action.active{color:#fff;background-color:#1b1e21;border-color:#1b1e21}.close{float:right;font-size:1.5rem;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.5}.close:hover{color:#000;text-decoration:none}.close:not(:disabled):not(.disabled):focus,.close:not(:disabled):not(.disabled):hover{opacity:.75}button.close{padding:0;background-color:transparent;border:0;-webkit-appearance:none;-moz-appearance:none;appearance:none}a.close.disabled{pointer-events:none}.toast{max-width:350px;overflow:hidden;font-size:.875rem;background-color:rgba(255,255,255,.85);background-clip:padding-box;border:1px solid rgba(0,0,0,.1);box-shadow:0 .25rem .75rem rgba(0,0,0,.1);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);opacity:0;border-radius:.25rem}.toast:not(:last-child){margin-bottom:.75rem}.toast.showing{opacity:1}.toast.show{display:block;opacity:1}.toast.hide{display:none}.toast-header{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;padding:.25rem .75rem;color:#6c757d;background-color:rgba(255,255,255,.85);background-clip:padding-box;border-bottom:1px solid rgba(0,0,0,.05)}.toast-body{padding:.75rem}.modal-open{overflow:hidden}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal{position:fixed;top:0;left:0;z-index:1050;display:none;width:100%;height:100%;overflow:hidden;outline:0}.modal-dialog{position:relative;width:auto;margin:.5rem;pointer-events:none}.modal.fade .modal-dialog{transition:-webkit-transform .3s ease-out;transition:transform .3s ease-out;transition:transform .3s ease-out,-webkit-transform .3s ease-out;-webkit-transform:translate(0,-50px);transform:translate(0,-50px)}@media (prefers-reduced-motion:reduce){.modal.fade .modal-dialog{transition:none}}.modal.show .modal-dialog{-webkit-transform:none;transform:none}.modal-dialog-scrollable{display:-ms-flexbox;display:flex;max-height:calc(100% - 1rem)}.modal-dialog-scrollable .modal-content{max-height:calc(100vh - 1rem);overflow:hidden}.modal-dialog-scrollable .modal-footer,.modal-dialog-scrollable .modal-header{-ms-flex-negative:0;flex-shrink:0}.modal-dialog-scrollable .modal-body{overflow-y:auto}.modal-dialog-centered{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;min-height:calc(100% - 1rem)}.modal-dialog-centered::before{display:block;height:calc(100vh - 1rem);content:""}.modal-dialog-centered.modal-dialog-scrollable{-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:center;justify-content:center;height:100%}.modal-dialog-centered.modal-dialog-scrollable .modal-content{max-height:none}.modal-dialog-centered.modal-dialog-scrollable::before{content:none}.modal-content{position:relative;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;width:100%;pointer-events:auto;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem;outline:0}.modal-backdrop{position:fixed;top:0;left:0;z-index:1040;width:100vw;height:100vh;background-color:#000}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:.5}.modal-header{display:-ms-flexbox;display:flex;-ms-flex-align:start;align-items:flex-start;-ms-flex-pack:justify;justify-content:space-between;padding:1rem 1rem;border-bottom:1px solid #dee2e6;border-top-left-radius:.3rem;border-top-right-radius:.3rem}.modal-header .close{padding:1rem 1rem;margin:-1rem -1rem -1rem auto}.modal-title{margin-bottom:0;line-height:1.5}.modal-body{position:relative;-ms-flex:1 1 auto;flex:1 1 auto;padding:1rem}.modal-footer{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:end;justify-content:flex-end;padding:1rem;border-top:1px solid #dee2e6;border-bottom-right-radius:.3rem;border-bottom-left-radius:.3rem}.modal-footer>:not(:first-child){margin-left:.25rem}.modal-footer>:not(:last-child){margin-right:.25rem}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:576px){.modal-dialog{max-width:500px;margin:1.75rem auto}.modal-dialog-scrollable{max-height:calc(100% - 3.5rem)}.modal-dialog-scrollable .modal-content{max-height:calc(100vh - 3.5rem)}.modal-dialog-centered{min-height:calc(100% - 3.5rem)}.modal-dialog-centered::before{height:calc(100vh - 3.5rem)}.modal-sm{max-width:300px}}@media (min-width:992px){.modal-lg,.modal-xl{max-width:800px}}@media (min-width:1200px){.modal-xl{max-width:1140px}}.tooltip{position:absolute;z-index:1070;display:block;margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;opacity:0}.tooltip.show{opacity:.9}.tooltip .arrow{position:absolute;display:block;width:.8rem;height:.4rem}.tooltip .arrow::before{position:absolute;content:"";border-color:transparent;border-style:solid}.bs-tooltip-auto[x-placement^=top],.bs-tooltip-top{padding:.4rem 0}.bs-tooltip-auto[x-placement^=top] .arrow,.bs-tooltip-top .arrow{bottom:0}.bs-tooltip-auto[x-placement^=top] .arrow::before,.bs-tooltip-top .arrow::before{top:0;border-width:.4rem .4rem 0;border-top-color:#000}.bs-tooltip-auto[x-placement^=right],.bs-tooltip-right{padding:0 .4rem}.bs-tooltip-auto[x-placement^=right] .arrow,.bs-tooltip-right .arrow{left:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=right] .arrow::before,.bs-tooltip-right .arrow::before{right:0;border-width:.4rem .4rem .4rem 0;border-right-color:#000}.bs-tooltip-auto[x-placement^=bottom],.bs-tooltip-bottom{padding:.4rem 0}.bs-tooltip-auto[x-placement^=bottom] .arrow,.bs-tooltip-bottom .arrow{top:0}.bs-tooltip-auto[x-placement^=bottom] .arrow::before,.bs-tooltip-bottom .arrow::before{bottom:0;border-width:0 .4rem .4rem;border-bottom-color:#000}.bs-tooltip-auto[x-placement^=left],.bs-tooltip-left{padding:0 .4rem}.bs-tooltip-auto[x-placement^=left] .arrow,.bs-tooltip-left .arrow{right:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=left] .arrow::before,.bs-tooltip-left .arrow::before{left:0;border-width:.4rem 0 .4rem .4rem;border-left-color:#000}.tooltip-inner{max-width:200px;padding:.25rem .5rem;color:#fff;text-align:center;background-color:#000;border-radius:.25rem}.popover{position:absolute;top:0;left:0;z-index:1060;display:block;max-width:276px;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem}.popover .arrow{position:absolute;display:block;width:1rem;height:.5rem;margin:0 .3rem}.popover .arrow::after,.popover .arrow::before{position:absolute;display:block;content:"";border-color:transparent;border-style:solid}.bs-popover-auto[x-placement^=top],.bs-popover-top{margin-bottom:.5rem}.bs-popover-auto[x-placement^=top]>.arrow,.bs-popover-top>.arrow{bottom:calc((.5rem + 1px) * -1)}.bs-popover-auto[x-placement^=top]>.arrow::before,.bs-popover-top>.arrow::before{bottom:0;border-width:.5rem .5rem 0;border-top-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=top]>.arrow::after,.bs-popover-top>.arrow::after{bottom:1px;border-width:.5rem .5rem 0;border-top-color:#fff}.bs-popover-auto[x-placement^=right],.bs-popover-right{margin-left:.5rem}.bs-popover-auto[x-placement^=right]>.arrow,.bs-popover-right>.arrow{left:calc((.5rem + 1px) * -1);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=right]>.arrow::before,.bs-popover-right>.arrow::before{left:0;border-width:.5rem .5rem .5rem 0;border-right-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=right]>.arrow::after,.bs-popover-right>.arrow::after{left:1px;border-width:.5rem .5rem .5rem 0;border-right-color:#fff}.bs-popover-auto[x-placement^=bottom],.bs-popover-bottom{margin-top:.5rem}.bs-popover-auto[x-placement^=bottom]>.arrow,.bs-popover-bottom>.arrow{top:calc((.5rem + 1px) * -1)}.bs-popover-auto[x-placement^=bottom]>.arrow::before,.bs-popover-bottom>.arrow::before{top:0;border-width:0 .5rem .5rem .5rem;border-bottom-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=bottom]>.arrow::after,.bs-popover-bottom>.arrow::after{top:1px;border-width:0 .5rem .5rem .5rem;border-bottom-color:#fff}.bs-popover-auto[x-placement^=bottom] .popover-header::before,.bs-popover-bottom .popover-header::before{position:absolute;top:0;left:50%;display:block;width:1rem;margin-left:-.5rem;content:"";border-bottom:1px solid #f7f7f7}.bs-popover-auto[x-placement^=left],.bs-popover-left{margin-right:.5rem}.bs-popover-auto[x-placement^=left]>.arrow,.bs-popover-left>.arrow{right:calc((.5rem + 1px) * -1);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=left]>.arrow::before,.bs-popover-left>.arrow::before{right:0;border-width:.5rem 0 .5rem .5rem;border-left-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=left]>.arrow::after,.bs-popover-left>.arrow::after{right:1px;border-width:.5rem 0 .5rem .5rem;border-left-color:#fff}.popover-header{padding:.5rem .75rem;margin-bottom:0;font-size:1rem;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.popover-header:empty{display:none}.popover-body{padding:.5rem .75rem;color:#212529}.carousel{position:relative}.carousel.pointer-event{-ms-touch-action:pan-y;touch-action:pan-y}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner::after{display:block;clear:both;content:""}.carousel-item{position:relative;display:none;float:left;width:100%;margin-right:-100%;-webkit-backface-visibility:hidden;backface-visibility:hidden;transition:-webkit-transform .6s ease-in-out;transition:transform .6s ease-in-out;transition:transform .6s ease-in-out,-webkit-transform .6s ease-in-out}@media (prefers-reduced-motion:reduce){.carousel-item{transition:none}}.carousel-item-next,.carousel-item-prev,.carousel-item.active{display:block}.active.carousel-item-right,.carousel-item-next:not(.carousel-item-left){-webkit-transform:translateX(100%);transform:translateX(100%)}.active.carousel-item-left,.carousel-item-prev:not(.carousel-item-right){-webkit-transform:translateX(-100%);transform:translateX(-100%)}.carousel-fade .carousel-item{opacity:0;transition-property:opacity;-webkit-transform:none;transform:none}.carousel-fade .carousel-item-next.carousel-item-left,.carousel-fade .carousel-item-prev.carousel-item-right,.carousel-fade .carousel-item.active{z-index:1;opacity:1}.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{z-index:0;opacity:0;transition:0s .6s opacity}@media (prefers-reduced-motion:reduce){.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{transition:none}}.carousel-control-next,.carousel-control-prev{position:absolute;top:0;bottom:0;z-index:1;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:15%;color:#fff;text-align:center;opacity:.5;transition:opacity .15s ease}@media (prefers-reduced-motion:reduce){.carousel-control-next,.carousel-control-prev{transition:none}}.carousel-control-next:focus,.carousel-control-next:hover,.carousel-control-prev:focus,.carousel-control-prev:hover{color:#fff;text-decoration:none;outline:0;opacity:.9}.carousel-control-prev{left:0}.carousel-control-next{right:0}.carousel-control-next-icon,.carousel-control-prev-icon{display:inline-block;width:20px;height:20px;background:no-repeat 50%/100% 100%}.carousel-control-prev-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3e%3cpath d='M5.25 0l-4 4 4 4 1.5-1.5-2.5-2.5 2.5-2.5-1.5-1.5z'/%3e%3c/svg%3e")}.carousel-control-next-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3e%3cpath d='M2.75 0l-1.5 1.5 2.5 2.5-2.5 2.5 1.5 1.5 4-4-4-4z'/%3e%3c/svg%3e")}.carousel-indicators{position:absolute;right:0;bottom:0;left:0;z-index:15;display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center;padding-left:0;margin-right:15%;margin-left:15%;list-style:none}.carousel-indicators li{box-sizing:content-box;-ms-flex:0 1 auto;flex:0 1 auto;width:30px;height:3px;margin-right:3px;margin-left:3px;text-indent:-999px;cursor:pointer;background-color:#fff;background-clip:padding-box;border-top:10px solid transparent;border-bottom:10px solid transparent;opacity:.5;transition:opacity .6s ease}@media (prefers-reduced-motion:reduce){.carousel-indicators li{transition:none}}.carousel-indicators .active{opacity:1}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center}@-webkit-keyframes spinner-border{to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes spinner-border{to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.spinner-border{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;border:.25em solid currentColor;border-right-color:transparent;border-radius:50%;-webkit-animation:spinner-border .75s linear infinite;animation:spinner-border .75s linear infinite}.spinner-border-sm{width:1rem;height:1rem;border-width:.2em}@-webkit-keyframes spinner-grow{0%{-webkit-transform:scale(0);transform:scale(0)}50%{opacity:1}}@keyframes spinner-grow{0%{-webkit-transform:scale(0);transform:scale(0)}50%{opacity:1}}.spinner-grow{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;background-color:currentColor;border-radius:50%;opacity:0;-webkit-animation:spinner-grow .75s linear infinite;animation:spinner-grow .75s linear infinite}.spinner-grow-sm{width:1rem;height:1rem}.align-baseline{vertical-align:baseline!important}.align-top{vertical-align:top!important}.align-middle{vertical-align:middle!important}.align-bottom{vertical-align:bottom!important}.align-text-bottom{vertical-align:text-bottom!important}.align-text-top{vertical-align:text-top!important}.bg-primary{background-color:#007bff!important}a.bg-primary:focus,a.bg-primary:hover,button.bg-primary:focus,button.bg-primary:hover{background-color:#0062cc!important}.bg-secondary{background-color:#6c757d!important}a.bg-secondary:focus,a.bg-secondary:hover,button.bg-secondary:focus,button.bg-secondary:hover{background-color:#545b62!important}.bg-success{background-color:#28a745!important}a.bg-success:focus,a.bg-success:hover,button.bg-success:focus,button.bg-success:hover{background-color:#1e7e34!important}.bg-info{background-color:#17a2b8!important}a.bg-info:focus,a.bg-info:hover,button.bg-info:focus,button.bg-info:hover{background-color:#117a8b!important}.bg-warning{background-color:#ffc107!important}a.bg-warning:focus,a.bg-warning:hover,button.bg-warning:focus,button.bg-warning:hover{background-color:#d39e00!important}.bg-danger{background-color:#dc3545!important}a.bg-danger:focus,a.bg-danger:hover,button.bg-danger:focus,button.bg-danger:hover{background-color:#bd2130!important}.bg-light{background-color:#f8f9fa!important}a.bg-light:focus,a.bg-light:hover,button.bg-light:focus,button.bg-light:hover{background-color:#dae0e5!important}.bg-dark{background-color:#343a40!important}a.bg-dark:focus,a.bg-dark:hover,button.bg-dark:focus,button.bg-dark:hover{background-color:#1d2124!important}.bg-white{background-color:#fff!important}.bg-transparent{background-color:transparent!important}.border{border:1px solid #dee2e6!important}.border-top{border-top:1px solid #dee2e6!important}.border-right{border-right:1px solid #dee2e6!important}.border-bottom{border-bottom:1px solid #dee2e6!important}.border-left{border-left:1px solid #dee2e6!important}.border-0{border:0!important}.border-top-0{border-top:0!important}.border-right-0{border-right:0!important}.border-bottom-0{border-bottom:0!important}.border-left-0{border-left:0!important}.border-primary{border-color:#007bff!important}.border-secondary{border-color:#6c757d!important}.border-success{border-color:#28a745!important}.border-info{border-color:#17a2b8!important}.border-warning{border-color:#ffc107!important}.border-danger{border-color:#dc3545!important}.border-light{border-color:#f8f9fa!important}.border-dark{border-color:#343a40!important}.border-white{border-color:#fff!important}.rounded-sm{border-radius:.2rem!important}.rounded{border-radius:.25rem!important}.rounded-top{border-top-left-radius:.25rem!important;border-top-right-radius:.25rem!important}.rounded-right{border-top-right-radius:.25rem!important;border-bottom-right-radius:.25rem!important}.rounded-bottom{border-bottom-right-radius:.25rem!important;border-bottom-left-radius:.25rem!important}.rounded-left{border-top-left-radius:.25rem!important;border-bottom-left-radius:.25rem!important}.rounded-lg{border-radius:.3rem!important}.rounded-circle{border-radius:50%!important}.rounded-pill{border-radius:50rem!important}.rounded-0{border-radius:0!important}.clearfix::after{display:block;clear:both;content:""}.d-none{display:none!important}.d-inline{display:inline!important}.d-inline-block{display:inline-block!important}.d-block{display:block!important}.d-table{display:table!important}.d-table-row{display:table-row!important}.d-table-cell{display:table-cell!important}.d-flex{display:-ms-flexbox!important;display:flex!important}.d-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}@media (min-width:576px){.d-sm-none{display:none!important}.d-sm-inline{display:inline!important}.d-sm-inline-block{display:inline-block!important}.d-sm-block{display:block!important}.d-sm-table{display:table!important}.d-sm-table-row{display:table-row!important}.d-sm-table-cell{display:table-cell!important}.d-sm-flex{display:-ms-flexbox!important;display:flex!important}.d-sm-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}@media (min-width:768px){.d-md-none{display:none!important}.d-md-inline{display:inline!important}.d-md-inline-block{display:inline-block!important}.d-md-block{display:block!important}.d-md-table{display:table!important}.d-md-table-row{display:table-row!important}.d-md-table-cell{display:table-cell!important}.d-md-flex{display:-ms-flexbox!important;display:flex!important}.d-md-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}@media (min-width:992px){.d-lg-none{display:none!important}.d-lg-inline{display:inline!important}.d-lg-inline-block{display:inline-block!important}.d-lg-block{display:block!important}.d-lg-table{display:table!important}.d-lg-table-row{display:table-row!important}.d-lg-table-cell{display:table-cell!important}.d-lg-flex{display:-ms-flexbox!important;display:flex!important}.d-lg-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}@media (min-width:1200px){.d-xl-none{display:none!important}.d-xl-inline{display:inline!important}.d-xl-inline-block{display:inline-block!important}.d-xl-block{display:block!important}.d-xl-table{display:table!important}.d-xl-table-row{display:table-row!important}.d-xl-table-cell{display:table-cell!important}.d-xl-flex{display:-ms-flexbox!important;display:flex!important}.d-xl-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}@media print{.d-print-none{display:none!important}.d-print-inline{display:inline!important}.d-print-inline-block{display:inline-block!important}.d-print-block{display:block!important}.d-print-table{display:table!important}.d-print-table-row{display:table-row!important}.d-print-table-cell{display:table-cell!important}.d-print-flex{display:-ms-flexbox!important;display:flex!important}.d-print-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}.embed-responsive{position:relative;display:block;width:100%;padding:0;overflow:hidden}.embed-responsive::before{display:block;content:""}.embed-responsive .embed-responsive-item,.embed-responsive embed,.embed-responsive iframe,.embed-responsive object,.embed-responsive video{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.embed-responsive-21by9::before{padding-top:42.857143%}.embed-responsive-16by9::before{padding-top:56.25%}.embed-responsive-4by3::before{padding-top:75%}.embed-responsive-1by1::before{padding-top:100%}.flex-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-center{-ms-flex-align:center!important;align-items:center!important}.align-items-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}@media (min-width:576px){.flex-sm-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-sm-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-sm-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-sm-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-sm-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-sm-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-sm-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-sm-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-sm-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-sm-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-sm-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-sm-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-sm-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-sm-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-sm-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-sm-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-sm-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-sm-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-sm-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-sm-center{-ms-flex-align:center!important;align-items:center!important}.align-items-sm-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-sm-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-sm-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-sm-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-sm-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-sm-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-sm-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-sm-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-sm-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-sm-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-sm-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-sm-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-sm-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-sm-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}@media (min-width:768px){.flex-md-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-md-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-md-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-md-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-md-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-md-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-md-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-md-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-md-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-md-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-md-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-md-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-md-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-md-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-md-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-md-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-md-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-md-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-md-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-md-center{-ms-flex-align:center!important;align-items:center!important}.align-items-md-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-md-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-md-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-md-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-md-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-md-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-md-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-md-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-md-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-md-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-md-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-md-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-md-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-md-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}@media (min-width:992px){.flex-lg-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-lg-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-lg-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-lg-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-lg-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-lg-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-lg-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-lg-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-lg-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-lg-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-lg-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-lg-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-lg-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-lg-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-lg-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-lg-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-lg-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-lg-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-lg-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-lg-center{-ms-flex-align:center!important;align-items:center!important}.align-items-lg-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-lg-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-lg-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-lg-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-lg-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-lg-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-lg-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-lg-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-lg-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-lg-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-lg-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-lg-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-lg-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-lg-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}@media (min-width:1200px){.flex-xl-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-xl-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-xl-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-xl-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-xl-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-xl-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-xl-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-xl-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-xl-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-xl-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-xl-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-xl-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-xl-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-xl-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-xl-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-xl-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-xl-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-xl-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-xl-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-xl-center{-ms-flex-align:center!important;align-items:center!important}.align-items-xl-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-xl-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-xl-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-xl-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-xl-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-xl-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-xl-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-xl-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-xl-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-xl-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-xl-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-xl-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-xl-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-xl-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}.float-left{float:left!important}.float-right{float:right!important}.float-none{float:none!important}@media (min-width:576px){.float-sm-left{float:left!important}.float-sm-right{float:right!important}.float-sm-none{float:none!important}}@media (min-width:768px){.float-md-left{float:left!important}.float-md-right{float:right!important}.float-md-none{float:none!important}}@media (min-width:992px){.float-lg-left{float:left!important}.float-lg-right{float:right!important}.float-lg-none{float:none!important}}@media (min-width:1200px){.float-xl-left{float:left!important}.float-xl-right{float:right!important}.float-xl-none{float:none!important}}.overflow-auto{overflow:auto!important}.overflow-hidden{overflow:hidden!important}.position-static{position:static!important}.position-relative{position:relative!important}.position-absolute{position:absolute!important}.position-fixed{position:fixed!important}.position-sticky{position:-webkit-sticky!important;position:sticky!important}.fixed-top{position:fixed;top:0;right:0;left:0;z-index:1030}.fixed-bottom{position:fixed;right:0;bottom:0;left:0;z-index:1030}@supports ((position:-webkit-sticky) or (position:sticky)){.sticky-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;overflow:visible;clip:auto;white-space:normal}.shadow-sm{box-shadow:0 .125rem .25rem rgba(0,0,0,.075)!important}.shadow{box-shadow:0 .5rem 1rem rgba(0,0,0,.15)!important}.shadow-lg{box-shadow:0 1rem 3rem rgba(0,0,0,.175)!important}.shadow-none{box-shadow:none!important}.w-25{width:25%!important}.w-50{width:50%!important}.w-75{width:75%!important}.w-100{width:100%!important}.w-auto{width:auto!important}.h-25{height:25%!important}.h-50{height:50%!important}.h-75{height:75%!important}.h-100{height:100%!important}.h-auto{height:auto!important}.mw-100{max-width:100%!important}.mh-100{max-height:100%!important}.min-vw-100{min-width:100vw!important}.min-vh-100{min-height:100vh!important}.vw-100{width:100vw!important}.vh-100{height:100vh!important}.stretched-link::after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;pointer-events:auto;content:"";background-color:rgba(0,0,0,0)}.m-0{margin:0!important}.mt-0,.my-0{margin-top:0!important}.mr-0,.mx-0{margin-right:0!important}.mb-0,.my-0{margin-bottom:0!important}.ml-0,.mx-0{margin-left:0!important}.m-1{margin:.25rem!important}.mt-1,.my-1{margin-top:.25rem!important}.mr-1,.mx-1{margin-right:.25rem!important}.mb-1,.my-1{margin-bottom:.25rem!important}.ml-1,.mx-1{margin-left:.25rem!important}.m-2{margin:.5rem!important}.mt-2,.my-2{margin-top:.5rem!important}.mr-2,.mx-2{margin-right:.5rem!important}.mb-2,.my-2{margin-bottom:.5rem!important}.ml-2,.mx-2{margin-left:.5rem!important}.m-3{margin:1rem!important}.mt-3,.my-3{margin-top:1rem!important}.mr-3,.mx-3{margin-right:1rem!important}.mb-3,.my-3{margin-bottom:1rem!important}.ml-3,.mx-3{margin-left:1rem!important}.m-4{margin:1.5rem!important}.mt-4,.my-4{margin-top:1.5rem!important}.mr-4,.mx-4{margin-right:1.5rem!important}.mb-4,.my-4{margin-bottom:1.5rem!important}.ml-4,.mx-4{margin-left:1.5rem!important}.m-5{margin:3rem!important}.mt-5,.my-5{margin-top:3rem!important}.mr-5,.mx-5{margin-right:3rem!important}.mb-5,.my-5{margin-bottom:3rem!important}.ml-5,.mx-5{margin-left:3rem!important}.p-0{padding:0!important}.pt-0,.py-0{padding-top:0!important}.pr-0,.px-0{padding-right:0!important}.pb-0,.py-0{padding-bottom:0!important}.pl-0,.px-0{padding-left:0!important}.p-1{padding:.25rem!important}.pt-1,.py-1{padding-top:.25rem!important}.pr-1,.px-1{padding-right:.25rem!important}.pb-1,.py-1{padding-bottom:.25rem!important}.pl-1,.px-1{padding-left:.25rem!important}.p-2{padding:.5rem!important}.pt-2,.py-2{padding-top:.5rem!important}.pr-2,.px-2{padding-right:.5rem!important}.pb-2,.py-2{padding-bottom:.5rem!important}.pl-2,.px-2{padding-left:.5rem!important}.p-3{padding:1rem!important}.pt-3,.py-3{padding-top:1rem!important}.pr-3,.px-3{padding-right:1rem!important}.pb-3,.py-3{padding-bottom:1rem!important}.pl-3,.px-3{padding-left:1rem!important}.p-4{padding:1.5rem!important}.pt-4,.py-4{padding-top:1.5rem!important}.pr-4,.px-4{padding-right:1.5rem!important}.pb-4,.py-4{padding-bottom:1.5rem!important}.pl-4,.px-4{padding-left:1.5rem!important}.p-5{padding:3rem!important}.pt-5,.py-5{padding-top:3rem!important}.pr-5,.px-5{padding-right:3rem!important}.pb-5,.py-5{padding-bottom:3rem!important}.pl-5,.px-5{padding-left:3rem!important}.m-n1{margin:-.25rem!important}.mt-n1,.my-n1{margin-top:-.25rem!important}.mr-n1,.mx-n1{margin-right:-.25rem!important}.mb-n1,.my-n1{margin-bottom:-.25rem!important}.ml-n1,.mx-n1{margin-left:-.25rem!important}.m-n2{margin:-.5rem!important}.mt-n2,.my-n2{margin-top:-.5rem!important}.mr-n2,.mx-n2{margin-right:-.5rem!important}.mb-n2,.my-n2{margin-bottom:-.5rem!important}.ml-n2,.mx-n2{margin-left:-.5rem!important}.m-n3{margin:-1rem!important}.mt-n3,.my-n3{margin-top:-1rem!important}.mr-n3,.mx-n3{margin-right:-1rem!important}.mb-n3,.my-n3{margin-bottom:-1rem!important}.ml-n3,.mx-n3{margin-left:-1rem!important}.m-n4{margin:-1.5rem!important}.mt-n4,.my-n4{margin-top:-1.5rem!important}.mr-n4,.mx-n4{margin-right:-1.5rem!important}.mb-n4,.my-n4{margin-bottom:-1.5rem!important}.ml-n4,.mx-n4{margin-left:-1.5rem!important}.m-n5{margin:-3rem!important}.mt-n5,.my-n5{margin-top:-3rem!important}.mr-n5,.mx-n5{margin-right:-3rem!important}.mb-n5,.my-n5{margin-bottom:-3rem!important}.ml-n5,.mx-n5{margin-left:-3rem!important}.m-auto{margin:auto!important}.mt-auto,.my-auto{margin-top:auto!important}.mr-auto,.mx-auto{margin-right:auto!important}.mb-auto,.my-auto{margin-bottom:auto!important}.ml-auto,.mx-auto{margin-left:auto!important}@media (min-width:576px){.m-sm-0{margin:0!important}.mt-sm-0,.my-sm-0{margin-top:0!important}.mr-sm-0,.mx-sm-0{margin-right:0!important}.mb-sm-0,.my-sm-0{margin-bottom:0!important}.ml-sm-0,.mx-sm-0{margin-left:0!important}.m-sm-1{margin:.25rem!important}.mt-sm-1,.my-sm-1{margin-top:.25rem!important}.mr-sm-1,.mx-sm-1{margin-right:.25rem!important}.mb-sm-1,.my-sm-1{margin-bottom:.25rem!important}.ml-sm-1,.mx-sm-1{margin-left:.25rem!important}.m-sm-2{margin:.5rem!important}.mt-sm-2,.my-sm-2{margin-top:.5rem!important}.mr-sm-2,.mx-sm-2{margin-right:.5rem!important}.mb-sm-2,.my-sm-2{margin-bottom:.5rem!important}.ml-sm-2,.mx-sm-2{margin-left:.5rem!important}.m-sm-3{margin:1rem!important}.mt-sm-3,.my-sm-3{margin-top:1rem!important}.mr-sm-3,.mx-sm-3{margin-right:1rem!important}.mb-sm-3,.my-sm-3{margin-bottom:1rem!important}.ml-sm-3,.mx-sm-3{margin-left:1rem!important}.m-sm-4{margin:1.5rem!important}.mt-sm-4,.my-sm-4{margin-top:1.5rem!important}.mr-sm-4,.mx-sm-4{margin-right:1.5rem!important}.mb-sm-4,.my-sm-4{margin-bottom:1.5rem!important}.ml-sm-4,.mx-sm-4{margin-left:1.5rem!important}.m-sm-5{margin:3rem!important}.mt-sm-5,.my-sm-5{margin-top:3rem!important}.mr-sm-5,.mx-sm-5{margin-right:3rem!important}.mb-sm-5,.my-sm-5{margin-bottom:3rem!important}.ml-sm-5,.mx-sm-5{margin-left:3rem!important}.p-sm-0{padding:0!important}.pt-sm-0,.py-sm-0{padding-top:0!important}.pr-sm-0,.px-sm-0{padding-right:0!important}.pb-sm-0,.py-sm-0{padding-bottom:0!important}.pl-sm-0,.px-sm-0{padding-left:0!important}.p-sm-1{padding:.25rem!important}.pt-sm-1,.py-sm-1{padding-top:.25rem!important}.pr-sm-1,.px-sm-1{padding-right:.25rem!important}.pb-sm-1,.py-sm-1{padding-bottom:.25rem!important}.pl-sm-1,.px-sm-1{padding-left:.25rem!important}.p-sm-2{padding:.5rem!important}.pt-sm-2,.py-sm-2{padding-top:.5rem!important}.pr-sm-2,.px-sm-2{padding-right:.5rem!important}.pb-sm-2,.py-sm-2{padding-bottom:.5rem!important}.pl-sm-2,.px-sm-2{padding-left:.5rem!important}.p-sm-3{padding:1rem!important}.pt-sm-3,.py-sm-3{padding-top:1rem!important}.pr-sm-3,.px-sm-3{padding-right:1rem!important}.pb-sm-3,.py-sm-3{padding-bottom:1rem!important}.pl-sm-3,.px-sm-3{padding-left:1rem!important}.p-sm-4{padding:1.5rem!important}.pt-sm-4,.py-sm-4{padding-top:1.5rem!important}.pr-sm-4,.px-sm-4{padding-right:1.5rem!important}.pb-sm-4,.py-sm-4{padding-bottom:1.5rem!important}.pl-sm-4,.px-sm-4{padding-left:1.5rem!important}.p-sm-5{padding:3rem!important}.pt-sm-5,.py-sm-5{padding-top:3rem!important}.pr-sm-5,.px-sm-5{padding-right:3rem!important}.pb-sm-5,.py-sm-5{padding-bottom:3rem!important}.pl-sm-5,.px-sm-5{padding-left:3rem!important}.m-sm-n1{margin:-.25rem!important}.mt-sm-n1,.my-sm-n1{margin-top:-.25rem!important}.mr-sm-n1,.mx-sm-n1{margin-right:-.25rem!important}.mb-sm-n1,.my-sm-n1{margin-bottom:-.25rem!important}.ml-sm-n1,.mx-sm-n1{margin-left:-.25rem!important}.m-sm-n2{margin:-.5rem!important}.mt-sm-n2,.my-sm-n2{margin-top:-.5rem!important}.mr-sm-n2,.mx-sm-n2{margin-right:-.5rem!important}.mb-sm-n2,.my-sm-n2{margin-bottom:-.5rem!important}.ml-sm-n2,.mx-sm-n2{margin-left:-.5rem!important}.m-sm-n3{margin:-1rem!important}.mt-sm-n3,.my-sm-n3{margin-top:-1rem!important}.mr-sm-n3,.mx-sm-n3{margin-right:-1rem!important}.mb-sm-n3,.my-sm-n3{margin-bottom:-1rem!important}.ml-sm-n3,.mx-sm-n3{margin-left:-1rem!important}.m-sm-n4{margin:-1.5rem!important}.mt-sm-n4,.my-sm-n4{margin-top:-1.5rem!important}.mr-sm-n4,.mx-sm-n4{margin-right:-1.5rem!important}.mb-sm-n4,.my-sm-n4{margin-bottom:-1.5rem!important}.ml-sm-n4,.mx-sm-n4{margin-left:-1.5rem!important}.m-sm-n5{margin:-3rem!important}.mt-sm-n5,.my-sm-n5{margin-top:-3rem!important}.mr-sm-n5,.mx-sm-n5{margin-right:-3rem!important}.mb-sm-n5,.my-sm-n5{margin-bottom:-3rem!important}.ml-sm-n5,.mx-sm-n5{margin-left:-3rem!important}.m-sm-auto{margin:auto!important}.mt-sm-auto,.my-sm-auto{margin-top:auto!important}.mr-sm-auto,.mx-sm-auto{margin-right:auto!important}.mb-sm-auto,.my-sm-auto{margin-bottom:auto!important}.ml-sm-auto,.mx-sm-auto{margin-left:auto!important}}@media (min-width:768px){.m-md-0{margin:0!important}.mt-md-0,.my-md-0{margin-top:0!important}.mr-md-0,.mx-md-0{margin-right:0!important}.mb-md-0,.my-md-0{margin-bottom:0!important}.ml-md-0,.mx-md-0{margin-left:0!important}.m-md-1{margin:.25rem!important}.mt-md-1,.my-md-1{margin-top:.25rem!important}.mr-md-1,.mx-md-1{margin-right:.25rem!important}.mb-md-1,.my-md-1{margin-bottom:.25rem!important}.ml-md-1,.mx-md-1{margin-left:.25rem!important}.m-md-2{margin:.5rem!important}.mt-md-2,.my-md-2{margin-top:.5rem!important}.mr-md-2,.mx-md-2{margin-right:.5rem!important}.mb-md-2,.my-md-2{margin-bottom:.5rem!important}.ml-md-2,.mx-md-2{margin-left:.5rem!important}.m-md-3{margin:1rem!important}.mt-md-3,.my-md-3{margin-top:1rem!important}.mr-md-3,.mx-md-3{margin-right:1rem!important}.mb-md-3,.my-md-3{margin-bottom:1rem!important}.ml-md-3,.mx-md-3{margin-left:1rem!important}.m-md-4{margin:1.5rem!important}.mt-md-4,.my-md-4{margin-top:1.5rem!important}.mr-md-4,.mx-md-4{margin-right:1.5rem!important}.mb-md-4,.my-md-4{margin-bottom:1.5rem!important}.ml-md-4,.mx-md-4{margin-left:1.5rem!important}.m-md-5{margin:3rem!important}.mt-md-5,.my-md-5{margin-top:3rem!important}.mr-md-5,.mx-md-5{margin-right:3rem!important}.mb-md-5,.my-md-5{margin-bottom:3rem!important}.ml-md-5,.mx-md-5{margin-left:3rem!important}.p-md-0{padding:0!important}.pt-md-0,.py-md-0{padding-top:0!important}.pr-md-0,.px-md-0{padding-right:0!important}.pb-md-0,.py-md-0{padding-bottom:0!important}.pl-md-0,.px-md-0{padding-left:0!important}.p-md-1{padding:.25rem!important}.pt-md-1,.py-md-1{padding-top:.25rem!important}.pr-md-1,.px-md-1{padding-right:.25rem!important}.pb-md-1,.py-md-1{padding-bottom:.25rem!important}.pl-md-1,.px-md-1{padding-left:.25rem!important}.p-md-2{padding:.5rem!important}.pt-md-2,.py-md-2{padding-top:.5rem!important}.pr-md-2,.px-md-2{padding-right:.5rem!important}.pb-md-2,.py-md-2{padding-bottom:.5rem!important}.pl-md-2,.px-md-2{padding-left:.5rem!important}.p-md-3{padding:1rem!important}.pt-md-3,.py-md-3{padding-top:1rem!important}.pr-md-3,.px-md-3{padding-right:1rem!important}.pb-md-3,.py-md-3{padding-bottom:1rem!important}.pl-md-3,.px-md-3{padding-left:1rem!important}.p-md-4{padding:1.5rem!important}.pt-md-4,.py-md-4{padding-top:1.5rem!important}.pr-md-4,.px-md-4{padding-right:1.5rem!important}.pb-md-4,.py-md-4{padding-bottom:1.5rem!important}.pl-md-4,.px-md-4{padding-left:1.5rem!important}.p-md-5{padding:3rem!important}.pt-md-5,.py-md-5{padding-top:3rem!important}.pr-md-5,.px-md-5{padding-right:3rem!important}.pb-md-5,.py-md-5{padding-bottom:3rem!important}.pl-md-5,.px-md-5{padding-left:3rem!important}.m-md-n1{margin:-.25rem!important}.mt-md-n1,.my-md-n1{margin-top:-.25rem!important}.mr-md-n1,.mx-md-n1{margin-right:-.25rem!important}.mb-md-n1,.my-md-n1{margin-bottom:-.25rem!important}.ml-md-n1,.mx-md-n1{margin-left:-.25rem!important}.m-md-n2{margin:-.5rem!important}.mt-md-n2,.my-md-n2{margin-top:-.5rem!important}.mr-md-n2,.mx-md-n2{margin-right:-.5rem!important}.mb-md-n2,.my-md-n2{margin-bottom:-.5rem!important}.ml-md-n2,.mx-md-n2{margin-left:-.5rem!important}.m-md-n3{margin:-1rem!important}.mt-md-n3,.my-md-n3{margin-top:-1rem!important}.mr-md-n3,.mx-md-n3{margin-right:-1rem!important}.mb-md-n3,.my-md-n3{margin-bottom:-1rem!important}.ml-md-n3,.mx-md-n3{margin-left:-1rem!important}.m-md-n4{margin:-1.5rem!important}.mt-md-n4,.my-md-n4{margin-top:-1.5rem!important}.mr-md-n4,.mx-md-n4{margin-right:-1.5rem!important}.mb-md-n4,.my-md-n4{margin-bottom:-1.5rem!important}.ml-md-n4,.mx-md-n4{margin-left:-1.5rem!important}.m-md-n5{margin:-3rem!important}.mt-md-n5,.my-md-n5{margin-top:-3rem!important}.mr-md-n5,.mx-md-n5{margin-right:-3rem!important}.mb-md-n5,.my-md-n5{margin-bottom:-3rem!important}.ml-md-n5,.mx-md-n5{margin-left:-3rem!important}.m-md-auto{margin:auto!important}.mt-md-auto,.my-md-auto{margin-top:auto!important}.mr-md-auto,.mx-md-auto{margin-right:auto!important}.mb-md-auto,.my-md-auto{margin-bottom:auto!important}.ml-md-auto,.mx-md-auto{margin-left:auto!important}}@media (min-width:992px){.m-lg-0{margin:0!important}.mt-lg-0,.my-lg-0{margin-top:0!important}.mr-lg-0,.mx-lg-0{margin-right:0!important}.mb-lg-0,.my-lg-0{margin-bottom:0!important}.ml-lg-0,.mx-lg-0{margin-left:0!important}.m-lg-1{margin:.25rem!important}.mt-lg-1,.my-lg-1{margin-top:.25rem!important}.mr-lg-1,.mx-lg-1{margin-right:.25rem!important}.mb-lg-1,.my-lg-1{margin-bottom:.25rem!important}.ml-lg-1,.mx-lg-1{margin-left:.25rem!important}.m-lg-2{margin:.5rem!important}.mt-lg-2,.my-lg-2{margin-top:.5rem!important}.mr-lg-2,.mx-lg-2{margin-right:.5rem!important}.mb-lg-2,.my-lg-2{margin-bottom:.5rem!important}.ml-lg-2,.mx-lg-2{margin-left:.5rem!important}.m-lg-3{margin:1rem!important}.mt-lg-3,.my-lg-3{margin-top:1rem!important}.mr-lg-3,.mx-lg-3{margin-right:1rem!important}.mb-lg-3,.my-lg-3{margin-bottom:1rem!important}.ml-lg-3,.mx-lg-3{margin-left:1rem!important}.m-lg-4{margin:1.5rem!important}.mt-lg-4,.my-lg-4{margin-top:1.5rem!important}.mr-lg-4,.mx-lg-4{margin-right:1.5rem!important}.mb-lg-4,.my-lg-4{margin-bottom:1.5rem!important}.ml-lg-4,.mx-lg-4{margin-left:1.5rem!important}.m-lg-5{margin:3rem!important}.mt-lg-5,.my-lg-5{margin-top:3rem!important}.mr-lg-5,.mx-lg-5{margin-right:3rem!important}.mb-lg-5,.my-lg-5{margin-bottom:3rem!important}.ml-lg-5,.mx-lg-5{margin-left:3rem!important}.p-lg-0{padding:0!important}.pt-lg-0,.py-lg-0{padding-top:0!important}.pr-lg-0,.px-lg-0{padding-right:0!important}.pb-lg-0,.py-lg-0{padding-bottom:0!important}.pl-lg-0,.px-lg-0{padding-left:0!important}.p-lg-1{padding:.25rem!important}.pt-lg-1,.py-lg-1{padding-top:.25rem!important}.pr-lg-1,.px-lg-1{padding-right:.25rem!important}.pb-lg-1,.py-lg-1{padding-bottom:.25rem!important}.pl-lg-1,.px-lg-1{padding-left:.25rem!important}.p-lg-2{padding:.5rem!important}.pt-lg-2,.py-lg-2{padding-top:.5rem!important}.pr-lg-2,.px-lg-2{padding-right:.5rem!important}.pb-lg-2,.py-lg-2{padding-bottom:.5rem!important}.pl-lg-2,.px-lg-2{padding-left:.5rem!important}.p-lg-3{padding:1rem!important}.pt-lg-3,.py-lg-3{padding-top:1rem!important}.pr-lg-3,.px-lg-3{padding-right:1rem!important}.pb-lg-3,.py-lg-3{padding-bottom:1rem!important}.pl-lg-3,.px-lg-3{padding-left:1rem!important}.p-lg-4{padding:1.5rem!important}.pt-lg-4,.py-lg-4{padding-top:1.5rem!important}.pr-lg-4,.px-lg-4{padding-right:1.5rem!important}.pb-lg-4,.py-lg-4{padding-bottom:1.5rem!important}.pl-lg-4,.px-lg-4{padding-left:1.5rem!important}.p-lg-5{padding:3rem!important}.pt-lg-5,.py-lg-5{padding-top:3rem!important}.pr-lg-5,.px-lg-5{padding-right:3rem!important}.pb-lg-5,.py-lg-5{padding-bottom:3rem!important}.pl-lg-5,.px-lg-5{padding-left:3rem!important}.m-lg-n1{margin:-.25rem!important}.mt-lg-n1,.my-lg-n1{margin-top:-.25rem!important}.mr-lg-n1,.mx-lg-n1{margin-right:-.25rem!important}.mb-lg-n1,.my-lg-n1{margin-bottom:-.25rem!important}.ml-lg-n1,.mx-lg-n1{margin-left:-.25rem!important}.m-lg-n2{margin:-.5rem!important}.mt-lg-n2,.my-lg-n2{margin-top:-.5rem!important}.mr-lg-n2,.mx-lg-n2{margin-right:-.5rem!important}.mb-lg-n2,.my-lg-n2{margin-bottom:-.5rem!important}.ml-lg-n2,.mx-lg-n2{margin-left:-.5rem!important}.m-lg-n3{margin:-1rem!important}.mt-lg-n3,.my-lg-n3{margin-top:-1rem!important}.mr-lg-n3,.mx-lg-n3{margin-right:-1rem!important}.mb-lg-n3,.my-lg-n3{margin-bottom:-1rem!important}.ml-lg-n3,.mx-lg-n3{margin-left:-1rem!important}.m-lg-n4{margin:-1.5rem!important}.mt-lg-n4,.my-lg-n4{margin-top:-1.5rem!important}.mr-lg-n4,.mx-lg-n4{margin-right:-1.5rem!important}.mb-lg-n4,.my-lg-n4{margin-bottom:-1.5rem!important}.ml-lg-n4,.mx-lg-n4{margin-left:-1.5rem!important}.m-lg-n5{margin:-3rem!important}.mt-lg-n5,.my-lg-n5{margin-top:-3rem!important}.mr-lg-n5,.mx-lg-n5{margin-right:-3rem!important}.mb-lg-n5,.my-lg-n5{margin-bottom:-3rem!important}.ml-lg-n5,.mx-lg-n5{margin-left:-3rem!important}.m-lg-auto{margin:auto!important}.mt-lg-auto,.my-lg-auto{margin-top:auto!important}.mr-lg-auto,.mx-lg-auto{margin-right:auto!important}.mb-lg-auto,.my-lg-auto{margin-bottom:auto!important}.ml-lg-auto,.mx-lg-auto{margin-left:auto!important}}@media (min-width:1200px){.m-xl-0{margin:0!important}.mt-xl-0,.my-xl-0{margin-top:0!important}.mr-xl-0,.mx-xl-0{margin-right:0!important}.mb-xl-0,.my-xl-0{margin-bottom:0!important}.ml-xl-0,.mx-xl-0{margin-left:0!important}.m-xl-1{margin:.25rem!important}.mt-xl-1,.my-xl-1{margin-top:.25rem!important}.mr-xl-1,.mx-xl-1{margin-right:.25rem!important}.mb-xl-1,.my-xl-1{margin-bottom:.25rem!important}.ml-xl-1,.mx-xl-1{margin-left:.25rem!important}.m-xl-2{margin:.5rem!important}.mt-xl-2,.my-xl-2{margin-top:.5rem!important}.mr-xl-2,.mx-xl-2{margin-right:.5rem!important}.mb-xl-2,.my-xl-2{margin-bottom:.5rem!important}.ml-xl-2,.mx-xl-2{margin-left:.5rem!important}.m-xl-3{margin:1rem!important}.mt-xl-3,.my-xl-3{margin-top:1rem!important}.mr-xl-3,.mx-xl-3{margin-right:1rem!important}.mb-xl-3,.my-xl-3{margin-bottom:1rem!important}.ml-xl-3,.mx-xl-3{margin-left:1rem!important}.m-xl-4{margin:1.5rem!important}.mt-xl-4,.my-xl-4{margin-top:1.5rem!important}.mr-xl-4,.mx-xl-4{margin-right:1.5rem!important}.mb-xl-4,.my-xl-4{margin-bottom:1.5rem!important}.ml-xl-4,.mx-xl-4{margin-left:1.5rem!important}.m-xl-5{margin:3rem!important}.mt-xl-5,.my-xl-5{margin-top:3rem!important}.mr-xl-5,.mx-xl-5{margin-right:3rem!important}.mb-xl-5,.my-xl-5{margin-bottom:3rem!important}.ml-xl-5,.mx-xl-5{margin-left:3rem!important}.p-xl-0{padding:0!important}.pt-xl-0,.py-xl-0{padding-top:0!important}.pr-xl-0,.px-xl-0{padding-right:0!important}.pb-xl-0,.py-xl-0{padding-bottom:0!important}.pl-xl-0,.px-xl-0{padding-left:0!important}.p-xl-1{padding:.25rem!important}.pt-xl-1,.py-xl-1{padding-top:.25rem!important}.pr-xl-1,.px-xl-1{padding-right:.25rem!important}.pb-xl-1,.py-xl-1{padding-bottom:.25rem!important}.pl-xl-1,.px-xl-1{padding-left:.25rem!important}.p-xl-2{padding:.5rem!important}.pt-xl-2,.py-xl-2{padding-top:.5rem!important}.pr-xl-2,.px-xl-2{padding-right:.5rem!important}.pb-xl-2,.py-xl-2{padding-bottom:.5rem!important}.pl-xl-2,.px-xl-2{padding-left:.5rem!important}.p-xl-3{padding:1rem!important}.pt-xl-3,.py-xl-3{padding-top:1rem!important}.pr-xl-3,.px-xl-3{padding-right:1rem!important}.pb-xl-3,.py-xl-3{padding-bottom:1rem!important}.pl-xl-3,.px-xl-3{padding-left:1rem!important}.p-xl-4{padding:1.5rem!important}.pt-xl-4,.py-xl-4{padding-top:1.5rem!important}.pr-xl-4,.px-xl-4{padding-right:1.5rem!important}.pb-xl-4,.py-xl-4{padding-bottom:1.5rem!important}.pl-xl-4,.px-xl-4{padding-left:1.5rem!important}.p-xl-5{padding:3rem!important}.pt-xl-5,.py-xl-5{padding-top:3rem!important}.pr-xl-5,.px-xl-5{padding-right:3rem!important}.pb-xl-5,.py-xl-5{padding-bottom:3rem!important}.pl-xl-5,.px-xl-5{padding-left:3rem!important}.m-xl-n1{margin:-.25rem!important}.mt-xl-n1,.my-xl-n1{margin-top:-.25rem!important}.mr-xl-n1,.mx-xl-n1{margin-right:-.25rem!important}.mb-xl-n1,.my-xl-n1{margin-bottom:-.25rem!important}.ml-xl-n1,.mx-xl-n1{margin-left:-.25rem!important}.m-xl-n2{margin:-.5rem!important}.mt-xl-n2,.my-xl-n2{margin-top:-.5rem!important}.mr-xl-n2,.mx-xl-n2{margin-right:-.5rem!important}.mb-xl-n2,.my-xl-n2{margin-bottom:-.5rem!important}.ml-xl-n2,.mx-xl-n2{margin-left:-.5rem!important}.m-xl-n3{margin:-1rem!important}.mt-xl-n3,.my-xl-n3{margin-top:-1rem!important}.mr-xl-n3,.mx-xl-n3{margin-right:-1rem!important}.mb-xl-n3,.my-xl-n3{margin-bottom:-1rem!important}.ml-xl-n3,.mx-xl-n3{margin-left:-1rem!important}.m-xl-n4{margin:-1.5rem!important}.mt-xl-n4,.my-xl-n4{margin-top:-1.5rem!important}.mr-xl-n4,.mx-xl-n4{margin-right:-1.5rem!important}.mb-xl-n4,.my-xl-n4{margin-bottom:-1.5rem!important}.ml-xl-n4,.mx-xl-n4{margin-left:-1.5rem!important}.m-xl-n5{margin:-3rem!important}.mt-xl-n5,.my-xl-n5{margin-top:-3rem!important}.mr-xl-n5,.mx-xl-n5{margin-right:-3rem!important}.mb-xl-n5,.my-xl-n5{margin-bottom:-3rem!important}.ml-xl-n5,.mx-xl-n5{margin-left:-3rem!important}.m-xl-auto{margin:auto!important}.mt-xl-auto,.my-xl-auto{margin-top:auto!important}.mr-xl-auto,.mx-xl-auto{margin-right:auto!important}.mb-xl-auto,.my-xl-auto{margin-bottom:auto!important}.ml-xl-auto,.mx-xl-auto{margin-left:auto!important}}.text-monospace{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace!important}.text-justify{text-align:justify!important}.text-wrap{white-space:normal!important}.text-nowrap{white-space:nowrap!important}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-left{text-align:left!important}.text-right{text-align:right!important}.text-center{text-align:center!important}@media (min-width:576px){.text-sm-left{text-align:left!important}.text-sm-right{text-align:right!important}.text-sm-center{text-align:center!important}}@media (min-width:768px){.text-md-left{text-align:left!important}.text-md-right{text-align:right!important}.text-md-center{text-align:center!important}}@media (min-width:992px){.text-lg-left{text-align:left!important}.text-lg-right{text-align:right!important}.text-lg-center{text-align:center!important}}@media (min-width:1200px){.text-xl-left{text-align:left!important}.text-xl-right{text-align:right!important}.text-xl-center{text-align:center!important}}.text-lowercase{text-transform:lowercase!important}.text-uppercase{text-transform:uppercase!important}.text-capitalize{text-transform:capitalize!important}.font-weight-light{font-weight:300!important}.font-weight-lighter{font-weight:lighter!important}.font-weight-normal{font-weight:400!important}.font-weight-bold{font-weight:700!important}.font-weight-bolder{font-weight:bolder!important}.font-italic{font-style:italic!important}.text-white{color:#fff!important}.text-primary{color:#007bff!important}a.text-primary:focus,a.text-primary:hover{color:#0056b3!important}.text-secondary{color:#6c757d!important}a.text-secondary:focus,a.text-secondary:hover{color:#494f54!important}.text-success{color:#28a745!important}a.text-success:focus,a.text-success:hover{color:#19692c!important}.text-info{color:#17a2b8!important}a.text-info:focus,a.text-info:hover{color:#0f6674!important}.text-warning{color:#ffc107!important}a.text-warning:focus,a.text-warning:hover{color:#ba8b00!important}.text-danger{color:#dc3545!important}a.text-danger:focus,a.text-danger:hover{color:#a71d2a!important}.text-light{color:#f8f9fa!important}a.text-light:focus,a.text-light:hover{color:#cbd3da!important}.text-dark{color:#343a40!important}a.text-dark:focus,a.text-dark:hover{color:#121416!important}.text-body{color:#212529!important}.text-muted{color:#6c757d!important}.text-black-50{color:rgba(0,0,0,.5)!important}.text-white-50{color:rgba(255,255,255,.5)!important}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.text-decoration-none{text-decoration:none!important}.text-break{word-break:break-word!important;overflow-wrap:break-word!important}.text-reset{color:inherit!important}.visible{visibility:visible!important}.invisible{visibility:hidden!important}@media print{*,::after,::before{text-shadow:none!important;box-shadow:none!important}a:not(.btn){text-decoration:underline}abbr[title]::after{content:" (" attr(title) ")"}pre{white-space:pre-wrap!important}blockquote,pre{border:1px solid #adb5bd;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}@page{size:a3}body{min-width:992px!important}.container{min-width:992px!important}.navbar{display:none}.badge{border:1px solid #000}.table{border-collapse:collapse!important}.table td,.table th{background-color:#fff!important}.table-bordered td,.table-bordered th{border:1px solid #dee2e6!important}.table-dark{color:inherit}.table-dark tbody+tbody,.table-dark td,.table-dark th,.table-dark thead th{border-color:#dee2e6}.table .thead-dark th{color:inherit;border-color:#dee2e6}} +/*# sourceMappingURL=bootstrap.min.css.map */ \ No newline at end of file diff --git a/themes/diary/static/vendor/css/bootstrap.min.css.map b/themes/diary/static/vendor/css/bootstrap.min.css.map new file mode 100644 index 0000000..1e9cb78 --- /dev/null +++ b/themes/diary/static/vendor/css/bootstrap.min.css.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../scss/bootstrap.scss","../../scss/_root.scss","../../scss/_reboot.scss","dist/css/bootstrap.css","../../scss/vendor/_rfs.scss","bootstrap.css","../../scss/mixins/_hover.scss","../../scss/_type.scss","../../scss/mixins/_lists.scss","../../scss/_images.scss","../../scss/mixins/_image.scss","../../scss/mixins/_border-radius.scss","../../scss/_code.scss","../../scss/_grid.scss","../../scss/mixins/_grid.scss","../../scss/mixins/_breakpoints.scss","../../scss/mixins/_grid-framework.scss","../../scss/_tables.scss","../../scss/mixins/_table-row.scss","../../scss/_forms.scss","../../scss/mixins/_transition.scss","../../scss/mixins/_forms.scss","../../scss/mixins/_gradients.scss","../../scss/_buttons.scss","../../scss/mixins/_buttons.scss","../../scss/_transitions.scss","../../scss/_dropdown.scss","../../scss/mixins/_caret.scss","../../scss/mixins/_nav-divider.scss","../../scss/_button-group.scss","../../scss/_input-group.scss","../../scss/_custom-forms.scss","../../scss/_nav.scss","../../scss/_navbar.scss","../../scss/_card.scss","../../scss/_breadcrumb.scss","../../scss/_pagination.scss","../../scss/mixins/_pagination.scss","../../scss/_badge.scss","../../scss/mixins/_badge.scss","../../scss/_jumbotron.scss","../../scss/_alert.scss","../../scss/mixins/_alert.scss","../../scss/_progress.scss","../../scss/_media.scss","../../scss/_list-group.scss","../../scss/mixins/_list-group.scss","../../scss/_close.scss","../../scss/_toasts.scss","../../scss/_modal.scss","../../scss/_tooltip.scss","../../scss/mixins/_reset-text.scss","../../scss/_popover.scss","../../scss/_carousel.scss","../../scss/mixins/_clearfix.scss","../../scss/_spinners.scss","../../scss/utilities/_align.scss","../../scss/mixins/_background-variant.scss","../../scss/utilities/_background.scss","../../scss/utilities/_borders.scss","../../scss/utilities/_display.scss","../../scss/utilities/_embed.scss","../../scss/utilities/_flex.scss","../../scss/utilities/_float.scss","../../scss/utilities/_overflow.scss","../../scss/utilities/_position.scss","../../scss/utilities/_screenreaders.scss","../../scss/mixins/_screen-reader.scss","../../scss/utilities/_shadows.scss","../../scss/utilities/_sizing.scss","../../scss/utilities/_stretched-link.scss","../../scss/utilities/_spacing.scss","../../scss/utilities/_text.scss","../../scss/mixins/_text-truncate.scss","../../scss/mixins/_text-emphasis.scss","../../scss/mixins/_text-hide.scss","../../scss/utilities/_visibility.scss","../../scss/_print.scss"],"names":[],"mappings":"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","sourcesContent":["/*!\n * Bootstrap v4.3.1 (https://getbootstrap.com/)\n * Copyright 2011-2019 The Bootstrap Authors\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */\n\n@import \"functions\";\n@import \"variables\";\n@import \"mixins\";\n@import \"root\";\n@import \"reboot\";\n@import \"type\";\n@import \"images\";\n@import \"code\";\n@import \"grid\";\n@import \"tables\";\n@import \"forms\";\n@import \"buttons\";\n@import \"transitions\";\n@import \"dropdown\";\n@import \"button-group\";\n@import \"input-group\";\n@import \"custom-forms\";\n@import \"nav\";\n@import \"navbar\";\n@import \"card\";\n@import \"breadcrumb\";\n@import \"pagination\";\n@import \"badge\";\n@import \"jumbotron\";\n@import \"alert\";\n@import \"progress\";\n@import \"media\";\n@import \"list-group\";\n@import \"close\";\n@import \"toasts\";\n@import \"modal\";\n@import \"tooltip\";\n@import \"popover\";\n@import \"carousel\";\n@import \"spinners\";\n@import \"utilities\";\n@import \"print\";\n",":root {\n // Custom variable values only support SassScript inside `#{}`.\n @each $color, $value in $colors {\n --#{$color}: #{$value};\n }\n\n @each $color, $value in $theme-colors {\n --#{$color}: #{$value};\n }\n\n @each $bp, $value in $grid-breakpoints {\n --breakpoint-#{$bp}: #{$value};\n }\n\n // Use `inspect` for lists so that quoted items keep the quotes.\n // See https://github.com/sass/sass/issues/2383#issuecomment-336349172\n --font-family-sans-serif: #{inspect($font-family-sans-serif)};\n --font-family-monospace: #{inspect($font-family-monospace)};\n}\n","// stylelint-disable at-rule-no-vendor-prefix, declaration-no-important, selector-no-qualifying-type, property-no-vendor-prefix\n\n// Reboot\n//\n// Normalization of HTML elements, manually forked from Normalize.css to remove\n// styles targeting irrelevant browsers while applying new styles.\n//\n// Normalize is licensed MIT. https://github.com/necolas/normalize.css\n\n\n// Document\n//\n// 1. Change from `box-sizing: content-box` so that `width` is not affected by `padding` or `border`.\n// 2. Change the default font family in all browsers.\n// 3. Correct the line height in all browsers.\n// 4. Prevent adjustments of font size after orientation changes in IE on Windows Phone and in iOS.\n// 5. Change the default tap highlight to be completely transparent in iOS.\n\n*,\n*::before,\n*::after {\n box-sizing: border-box; // 1\n}\n\nhtml {\n font-family: sans-serif; // 2\n line-height: 1.15; // 3\n -webkit-text-size-adjust: 100%; // 4\n -webkit-tap-highlight-color: rgba($black, 0); // 5\n}\n\n// Shim for \"new\" HTML5 structural elements to display correctly (IE10, older browsers)\n// TODO: remove in v5\n// stylelint-disable-next-line selector-list-comma-newline-after\narticle, aside, figcaption, figure, footer, header, hgroup, main, nav, section {\n display: block;\n}\n\n// Body\n//\n// 1. Remove the margin in all browsers.\n// 2. As a best practice, apply a default `background-color`.\n// 3. Set an explicit initial text-align value so that we can later use\n// the `inherit` value on things like `` elements.\n\nbody {\n margin: 0; // 1\n font-family: $font-family-base;\n @include font-size($font-size-base);\n font-weight: $font-weight-base;\n line-height: $line-height-base;\n color: $body-color;\n text-align: left; // 3\n background-color: $body-bg; // 2\n}\n\n// Suppress the focus outline on elements that cannot be accessed via keyboard.\n// This prevents an unwanted focus outline from appearing around elements that\n// might still respond to pointer events.\n//\n// Credit: https://github.com/suitcss/base\n[tabindex=\"-1\"]:focus {\n outline: 0 !important;\n}\n\n\n// Content grouping\n//\n// 1. Add the correct box sizing in Firefox.\n// 2. Show the overflow in Edge and IE.\n\nhr {\n box-sizing: content-box; // 1\n height: 0; // 1\n overflow: visible; // 2\n}\n\n\n//\n// Typography\n//\n\n// Remove top margins from headings\n//\n// By default, `

    `-`

    ` all receive top and bottom margins. We nuke the top\n// margin for easier control within type scales as it avoids margin collapsing.\n// stylelint-disable-next-line selector-list-comma-newline-after\nh1, h2, h3, h4, h5, h6 {\n margin-top: 0;\n margin-bottom: $headings-margin-bottom;\n}\n\n// Reset margins on paragraphs\n//\n// Similarly, the top margin on `

    `s get reset. However, we also reset the\n// bottom margin to use `rem` units instead of `em`.\np {\n margin-top: 0;\n margin-bottom: $paragraph-margin-bottom;\n}\n\n// Abbreviations\n//\n// 1. Duplicate behavior to the data-* attribute for our tooltip plugin\n// 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.\n// 3. Add explicit cursor to indicate changed behavior.\n// 4. Remove the bottom border in Firefox 39-.\n// 5. Prevent the text-decoration to be skipped.\n\nabbr[title],\nabbr[data-original-title] { // 1\n text-decoration: underline; // 2\n text-decoration: underline dotted; // 2\n cursor: help; // 3\n border-bottom: 0; // 4\n text-decoration-skip-ink: none; // 5\n}\n\naddress {\n margin-bottom: 1rem;\n font-style: normal;\n line-height: inherit;\n}\n\nol,\nul,\ndl {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nol ol,\nul ul,\nol ul,\nul ol {\n margin-bottom: 0;\n}\n\ndt {\n font-weight: $dt-font-weight;\n}\n\ndd {\n margin-bottom: .5rem;\n margin-left: 0; // Undo browser default\n}\n\nblockquote {\n margin: 0 0 1rem;\n}\n\nb,\nstrong {\n font-weight: $font-weight-bolder; // Add the correct font weight in Chrome, Edge, and Safari\n}\n\nsmall {\n @include font-size(80%); // Add the correct font size in all browsers\n}\n\n//\n// Prevent `sub` and `sup` elements from affecting the line height in\n// all browsers.\n//\n\nsub,\nsup {\n position: relative;\n @include font-size(75%);\n line-height: 0;\n vertical-align: baseline;\n}\n\nsub { bottom: -.25em; }\nsup { top: -.5em; }\n\n\n//\n// Links\n//\n\na {\n color: $link-color;\n text-decoration: $link-decoration;\n background-color: transparent; // Remove the gray background on active links in IE 10.\n\n @include hover {\n color: $link-hover-color;\n text-decoration: $link-hover-decoration;\n }\n}\n\n// And undo these styles for placeholder links/named anchors (without href)\n// which have not been made explicitly keyboard-focusable (without tabindex).\n// It would be more straightforward to just use a[href] in previous block, but that\n// causes specificity issues in many other styles that are too complex to fix.\n// See https://github.com/twbs/bootstrap/issues/19402\n\na:not([href]):not([tabindex]) {\n color: inherit;\n text-decoration: none;\n\n @include hover-focus {\n color: inherit;\n text-decoration: none;\n }\n\n &:focus {\n outline: 0;\n }\n}\n\n\n//\n// Code\n//\n\npre,\ncode,\nkbd,\nsamp {\n font-family: $font-family-monospace;\n @include font-size(1em); // Correct the odd `em` font sizing in all browsers.\n}\n\npre {\n // Remove browser default top margin\n margin-top: 0;\n // Reset browser default of `1em` to use `rem`s\n margin-bottom: 1rem;\n // Don't allow content to break outside\n overflow: auto;\n}\n\n\n//\n// Figures\n//\n\nfigure {\n // Apply a consistent margin strategy (matches our type styles).\n margin: 0 0 1rem;\n}\n\n\n//\n// Images and content\n//\n\nimg {\n vertical-align: middle;\n border-style: none; // Remove the border on images inside links in IE 10-.\n}\n\nsvg {\n // Workaround for the SVG overflow bug in IE10/11 is still required.\n // See https://github.com/twbs/bootstrap/issues/26878\n overflow: hidden;\n vertical-align: middle;\n}\n\n\n//\n// Tables\n//\n\ntable {\n border-collapse: collapse; // Prevent double borders\n}\n\ncaption {\n padding-top: $table-cell-padding;\n padding-bottom: $table-cell-padding;\n color: $table-caption-color;\n text-align: left;\n caption-side: bottom;\n}\n\nth {\n // Matches default `` alignment by inheriting from the ``, or the\n // closest parent with a set `text-align`.\n text-align: inherit;\n}\n\n\n//\n// Forms\n//\n\nlabel {\n // Allow labels to use `margin` for spacing.\n display: inline-block;\n margin-bottom: $label-margin-bottom;\n}\n\n// Remove the default `border-radius` that macOS Chrome adds.\n//\n// Details at https://github.com/twbs/bootstrap/issues/24093\nbutton {\n // stylelint-disable-next-line property-blacklist\n border-radius: 0;\n}\n\n// Work around a Firefox/IE bug where the transparent `button` background\n// results in a loss of the default `button` focus styles.\n//\n// Credit: https://github.com/suitcss/base/\nbutton:focus {\n outline: 1px dotted;\n outline: 5px auto -webkit-focus-ring-color;\n}\n\ninput,\nbutton,\nselect,\noptgroup,\ntextarea {\n margin: 0; // Remove the margin in Firefox and Safari\n font-family: inherit;\n @include font-size(inherit);\n line-height: inherit;\n}\n\nbutton,\ninput {\n overflow: visible; // Show the overflow in Edge\n}\n\nbutton,\nselect {\n text-transform: none; // Remove the inheritance of text transform in Firefox\n}\n\n// Remove the inheritance of word-wrap in Safari.\n//\n// Details at https://github.com/twbs/bootstrap/issues/24990\nselect {\n word-wrap: normal;\n}\n\n\n// 1. Prevent a WebKit bug where (2) destroys native `audio` and `video`\n// controls in Android 4.\n// 2. Correct the inability to style clickable types in iOS and Safari.\nbutton,\n[type=\"button\"], // 1\n[type=\"reset\"],\n[type=\"submit\"] {\n -webkit-appearance: button; // 2\n}\n\n// Opinionated: add \"hand\" cursor to non-disabled button elements.\n@if $enable-pointer-cursor-for-buttons {\n button,\n [type=\"button\"],\n [type=\"reset\"],\n [type=\"submit\"] {\n &:not(:disabled) {\n cursor: pointer;\n }\n }\n}\n\n// Remove inner border and padding from Firefox, but don't restore the outline like Normalize.\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n padding: 0;\n border-style: none;\n}\n\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n box-sizing: border-box; // 1. Add the correct box sizing in IE 10-\n padding: 0; // 2. Remove the padding in IE 10-\n}\n\n\ninput[type=\"date\"],\ninput[type=\"time\"],\ninput[type=\"datetime-local\"],\ninput[type=\"month\"] {\n // Remove the default appearance of temporal inputs to avoid a Mobile Safari\n // bug where setting a custom line-height prevents text from being vertically\n // centered within the input.\n // See https://bugs.webkit.org/show_bug.cgi?id=139848\n // and https://github.com/twbs/bootstrap/issues/11266\n -webkit-appearance: listbox;\n}\n\ntextarea {\n overflow: auto; // Remove the default vertical scrollbar in IE.\n // Textareas should really only resize vertically so they don't break their (horizontal) containers.\n resize: vertical;\n}\n\nfieldset {\n // Browsers set a default `min-width: min-content;` on fieldsets,\n // unlike e.g. `

    `s, which have `min-width: 0;` by default.\n // So we reset that to ensure fieldsets behave more like a standard block element.\n // See https://github.com/twbs/bootstrap/issues/12359\n // and https://html.spec.whatwg.org/multipage/#the-fieldset-and-legend-elements\n min-width: 0;\n // Reset the default outline behavior of fieldsets so they don't affect page layout.\n padding: 0;\n margin: 0;\n border: 0;\n}\n\n// 1. Correct the text wrapping in Edge and IE.\n// 2. Correct the color inheritance from `fieldset` elements in IE.\nlegend {\n display: block;\n width: 100%;\n max-width: 100%; // 1\n padding: 0;\n margin-bottom: .5rem;\n @include font-size(1.5rem);\n line-height: inherit;\n color: inherit; // 2\n white-space: normal; // 1\n}\n\nprogress {\n vertical-align: baseline; // Add the correct vertical alignment in Chrome, Firefox, and Opera.\n}\n\n// Correct the cursor style of increment and decrement buttons in Chrome.\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n[type=\"search\"] {\n // This overrides the extra rounded corners on search inputs in iOS so that our\n // `.form-control` class can properly style them. Note that this cannot simply\n // be added to `.form-control` as it's not specific enough. For details, see\n // https://github.com/twbs/bootstrap/issues/11586.\n outline-offset: -2px; // 2. Correct the outline style in Safari.\n -webkit-appearance: none;\n}\n\n//\n// Remove the inner padding in Chrome and Safari on macOS.\n//\n\n[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n//\n// 1. Correct the inability to style clickable types in iOS and Safari.\n// 2. Change font properties to `inherit` in Safari.\n//\n\n::-webkit-file-upload-button {\n font: inherit; // 2\n -webkit-appearance: button; // 1\n}\n\n//\n// Correct element displays\n//\n\noutput {\n display: inline-block;\n}\n\nsummary {\n display: list-item; // Add the correct display in all browsers\n cursor: pointer;\n}\n\ntemplate {\n display: none; // Add the correct display in IE\n}\n\n// Always hide an element with the `hidden` HTML attribute (from PureCSS).\n// Needed for proper display in IE 10-.\n[hidden] {\n display: none !important;\n}\n","/*!\n * Bootstrap v4.3.1 (https://getbootstrap.com/)\n * Copyright 2011-2019 The Bootstrap Authors\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */\n:root {\n --blue: #007bff;\n --indigo: #6610f2;\n --purple: #6f42c1;\n --pink: #e83e8c;\n --red: #dc3545;\n --orange: #fd7e14;\n --yellow: #ffc107;\n --green: #28a745;\n --teal: #20c997;\n --cyan: #17a2b8;\n --white: #fff;\n --gray: #6c757d;\n --gray-dark: #343a40;\n --primary: #007bff;\n --secondary: #6c757d;\n --success: #28a745;\n --info: #17a2b8;\n --warning: #ffc107;\n --danger: #dc3545;\n --light: #f8f9fa;\n --dark: #343a40;\n --breakpoint-xs: 0;\n --breakpoint-sm: 576px;\n --breakpoint-md: 768px;\n --breakpoint-lg: 992px;\n --breakpoint-xl: 1200px;\n --font-family-sans-serif: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n --font-family-monospace: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n}\n\n*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\nhtml {\n font-family: sans-serif;\n line-height: 1.15;\n -webkit-text-size-adjust: 100%;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n}\n\narticle, aside, figcaption, figure, footer, header, hgroup, main, nav, section {\n display: block;\n}\n\nbody {\n margin: 0;\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: #212529;\n text-align: left;\n background-color: #fff;\n}\n\n[tabindex=\"-1\"]:focus {\n outline: 0 !important;\n}\n\nhr {\n box-sizing: content-box;\n height: 0;\n overflow: visible;\n}\n\nh1, h2, h3, h4, h5, h6 {\n margin-top: 0;\n margin-bottom: 0.5rem;\n}\n\np {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nabbr[title],\nabbr[data-original-title] {\n text-decoration: underline;\n -webkit-text-decoration: underline dotted;\n text-decoration: underline dotted;\n cursor: help;\n border-bottom: 0;\n -webkit-text-decoration-skip-ink: none;\n text-decoration-skip-ink: none;\n}\n\naddress {\n margin-bottom: 1rem;\n font-style: normal;\n line-height: inherit;\n}\n\nol,\nul,\ndl {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nol ol,\nul ul,\nol ul,\nul ol {\n margin-bottom: 0;\n}\n\ndt {\n font-weight: 700;\n}\n\ndd {\n margin-bottom: .5rem;\n margin-left: 0;\n}\n\nblockquote {\n margin: 0 0 1rem;\n}\n\nb,\nstrong {\n font-weight: bolder;\n}\n\nsmall {\n font-size: 80%;\n}\n\nsub,\nsup {\n position: relative;\n font-size: 75%;\n line-height: 0;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -.25em;\n}\n\nsup {\n top: -.5em;\n}\n\na {\n color: #007bff;\n text-decoration: none;\n background-color: transparent;\n}\n\na:hover {\n color: #0056b3;\n text-decoration: underline;\n}\n\na:not([href]):not([tabindex]) {\n color: inherit;\n text-decoration: none;\n}\n\na:not([href]):not([tabindex]):hover, a:not([href]):not([tabindex]):focus {\n color: inherit;\n text-decoration: none;\n}\n\na:not([href]):not([tabindex]):focus {\n outline: 0;\n}\n\npre,\ncode,\nkbd,\nsamp {\n font-family: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n font-size: 1em;\n}\n\npre {\n margin-top: 0;\n margin-bottom: 1rem;\n overflow: auto;\n}\n\nfigure {\n margin: 0 0 1rem;\n}\n\nimg {\n vertical-align: middle;\n border-style: none;\n}\n\nsvg {\n overflow: hidden;\n vertical-align: middle;\n}\n\ntable {\n border-collapse: collapse;\n}\n\ncaption {\n padding-top: 0.75rem;\n padding-bottom: 0.75rem;\n color: #6c757d;\n text-align: left;\n caption-side: bottom;\n}\n\nth {\n text-align: inherit;\n}\n\nlabel {\n display: inline-block;\n margin-bottom: 0.5rem;\n}\n\nbutton {\n border-radius: 0;\n}\n\nbutton:focus {\n outline: 1px dotted;\n outline: 5px auto -webkit-focus-ring-color;\n}\n\ninput,\nbutton,\nselect,\noptgroup,\ntextarea {\n margin: 0;\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n}\n\nbutton,\ninput {\n overflow: visible;\n}\n\nbutton,\nselect {\n text-transform: none;\n}\n\nselect {\n word-wrap: normal;\n}\n\nbutton,\n[type=\"button\"],\n[type=\"reset\"],\n[type=\"submit\"] {\n -webkit-appearance: button;\n}\n\nbutton:not(:disabled),\n[type=\"button\"]:not(:disabled),\n[type=\"reset\"]:not(:disabled),\n[type=\"submit\"]:not(:disabled) {\n cursor: pointer;\n}\n\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n padding: 0;\n border-style: none;\n}\n\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n box-sizing: border-box;\n padding: 0;\n}\n\ninput[type=\"date\"],\ninput[type=\"time\"],\ninput[type=\"datetime-local\"],\ninput[type=\"month\"] {\n -webkit-appearance: listbox;\n}\n\ntextarea {\n overflow: auto;\n resize: vertical;\n}\n\nfieldset {\n min-width: 0;\n padding: 0;\n margin: 0;\n border: 0;\n}\n\nlegend {\n display: block;\n width: 100%;\n max-width: 100%;\n padding: 0;\n margin-bottom: .5rem;\n font-size: 1.5rem;\n line-height: inherit;\n color: inherit;\n white-space: normal;\n}\n\nprogress {\n vertical-align: baseline;\n}\n\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n[type=\"search\"] {\n outline-offset: -2px;\n -webkit-appearance: none;\n}\n\n[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n::-webkit-file-upload-button {\n font: inherit;\n -webkit-appearance: button;\n}\n\noutput {\n display: inline-block;\n}\n\nsummary {\n display: list-item;\n cursor: pointer;\n}\n\ntemplate {\n display: none;\n}\n\n[hidden] {\n display: none !important;\n}\n\nh1, h2, h3, h4, h5, h6,\n.h1, .h2, .h3, .h4, .h5, .h6 {\n margin-bottom: 0.5rem;\n font-weight: 500;\n line-height: 1.2;\n}\n\nh1, .h1 {\n font-size: 2.5rem;\n}\n\nh2, .h2 {\n font-size: 2rem;\n}\n\nh3, .h3 {\n font-size: 1.75rem;\n}\n\nh4, .h4 {\n font-size: 1.5rem;\n}\n\nh5, .h5 {\n font-size: 1.25rem;\n}\n\nh6, .h6 {\n font-size: 1rem;\n}\n\n.lead {\n font-size: 1.25rem;\n font-weight: 300;\n}\n\n.display-1 {\n font-size: 6rem;\n font-weight: 300;\n line-height: 1.2;\n}\n\n.display-2 {\n font-size: 5.5rem;\n font-weight: 300;\n line-height: 1.2;\n}\n\n.display-3 {\n font-size: 4.5rem;\n font-weight: 300;\n line-height: 1.2;\n}\n\n.display-4 {\n font-size: 3.5rem;\n font-weight: 300;\n line-height: 1.2;\n}\n\nhr {\n margin-top: 1rem;\n margin-bottom: 1rem;\n border: 0;\n border-top: 1px solid rgba(0, 0, 0, 0.1);\n}\n\nsmall,\n.small {\n font-size: 80%;\n font-weight: 400;\n}\n\nmark,\n.mark {\n padding: 0.2em;\n background-color: #fcf8e3;\n}\n\n.list-unstyled {\n padding-left: 0;\n list-style: none;\n}\n\n.list-inline {\n padding-left: 0;\n list-style: none;\n}\n\n.list-inline-item {\n display: inline-block;\n}\n\n.list-inline-item:not(:last-child) {\n margin-right: 0.5rem;\n}\n\n.initialism {\n font-size: 90%;\n text-transform: uppercase;\n}\n\n.blockquote {\n margin-bottom: 1rem;\n font-size: 1.25rem;\n}\n\n.blockquote-footer {\n display: block;\n font-size: 80%;\n color: #6c757d;\n}\n\n.blockquote-footer::before {\n content: \"\\2014\\00A0\";\n}\n\n.img-fluid {\n max-width: 100%;\n height: auto;\n}\n\n.img-thumbnail {\n padding: 0.25rem;\n background-color: #fff;\n border: 1px solid #dee2e6;\n border-radius: 0.25rem;\n max-width: 100%;\n height: auto;\n}\n\n.figure {\n display: inline-block;\n}\n\n.figure-img {\n margin-bottom: 0.5rem;\n line-height: 1;\n}\n\n.figure-caption {\n font-size: 90%;\n color: #6c757d;\n}\n\ncode {\n font-size: 87.5%;\n color: #e83e8c;\n word-break: break-word;\n}\n\na > code {\n color: inherit;\n}\n\nkbd {\n padding: 0.2rem 0.4rem;\n font-size: 87.5%;\n color: #fff;\n background-color: #212529;\n border-radius: 0.2rem;\n}\n\nkbd kbd {\n padding: 0;\n font-size: 100%;\n font-weight: 700;\n}\n\npre {\n display: block;\n font-size: 87.5%;\n color: #212529;\n}\n\npre code {\n font-size: inherit;\n color: inherit;\n word-break: normal;\n}\n\n.pre-scrollable {\n max-height: 340px;\n overflow-y: scroll;\n}\n\n.container {\n width: 100%;\n padding-right: 15px;\n padding-left: 15px;\n margin-right: auto;\n margin-left: auto;\n}\n\n@media (min-width: 576px) {\n .container {\n max-width: 540px;\n }\n}\n\n@media (min-width: 768px) {\n .container {\n max-width: 720px;\n }\n}\n\n@media (min-width: 992px) {\n .container {\n max-width: 960px;\n }\n}\n\n@media (min-width: 1200px) {\n .container {\n max-width: 1140px;\n }\n}\n\n.container-fluid {\n width: 100%;\n padding-right: 15px;\n padding-left: 15px;\n margin-right: auto;\n margin-left: auto;\n}\n\n.row {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n margin-right: -15px;\n margin-left: -15px;\n}\n\n.no-gutters {\n margin-right: 0;\n margin-left: 0;\n}\n\n.no-gutters > .col,\n.no-gutters > [class*=\"col-\"] {\n padding-right: 0;\n padding-left: 0;\n}\n\n.col-1, .col-2, .col-3, .col-4, .col-5, .col-6, .col-7, .col-8, .col-9, .col-10, .col-11, .col-12, .col,\n.col-auto, .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12, .col-sm,\n.col-sm-auto, .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12, .col-md,\n.col-md-auto, .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12, .col-lg,\n.col-lg-auto, .col-xl-1, .col-xl-2, .col-xl-3, .col-xl-4, .col-xl-5, .col-xl-6, .col-xl-7, .col-xl-8, .col-xl-9, .col-xl-10, .col-xl-11, .col-xl-12, .col-xl,\n.col-xl-auto {\n position: relative;\n width: 100%;\n padding-right: 15px;\n padding-left: 15px;\n}\n\n.col {\n -ms-flex-preferred-size: 0;\n flex-basis: 0;\n -ms-flex-positive: 1;\n flex-grow: 1;\n max-width: 100%;\n}\n\n.col-auto {\n -ms-flex: 0 0 auto;\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n}\n\n.col-1 {\n -ms-flex: 0 0 8.333333%;\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n}\n\n.col-2 {\n -ms-flex: 0 0 16.666667%;\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n}\n\n.col-3 {\n -ms-flex: 0 0 25%;\n flex: 0 0 25%;\n max-width: 25%;\n}\n\n.col-4 {\n -ms-flex: 0 0 33.333333%;\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n}\n\n.col-5 {\n -ms-flex: 0 0 41.666667%;\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n}\n\n.col-6 {\n -ms-flex: 0 0 50%;\n flex: 0 0 50%;\n max-width: 50%;\n}\n\n.col-7 {\n -ms-flex: 0 0 58.333333%;\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n}\n\n.col-8 {\n -ms-flex: 0 0 66.666667%;\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n}\n\n.col-9 {\n -ms-flex: 0 0 75%;\n flex: 0 0 75%;\n max-width: 75%;\n}\n\n.col-10 {\n -ms-flex: 0 0 83.333333%;\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n}\n\n.col-11 {\n -ms-flex: 0 0 91.666667%;\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n}\n\n.col-12 {\n -ms-flex: 0 0 100%;\n flex: 0 0 100%;\n max-width: 100%;\n}\n\n.order-first {\n -ms-flex-order: -1;\n order: -1;\n}\n\n.order-last {\n -ms-flex-order: 13;\n order: 13;\n}\n\n.order-0 {\n -ms-flex-order: 0;\n order: 0;\n}\n\n.order-1 {\n -ms-flex-order: 1;\n order: 1;\n}\n\n.order-2 {\n -ms-flex-order: 2;\n order: 2;\n}\n\n.order-3 {\n -ms-flex-order: 3;\n order: 3;\n}\n\n.order-4 {\n -ms-flex-order: 4;\n order: 4;\n}\n\n.order-5 {\n -ms-flex-order: 5;\n order: 5;\n}\n\n.order-6 {\n -ms-flex-order: 6;\n order: 6;\n}\n\n.order-7 {\n -ms-flex-order: 7;\n order: 7;\n}\n\n.order-8 {\n -ms-flex-order: 8;\n order: 8;\n}\n\n.order-9 {\n -ms-flex-order: 9;\n order: 9;\n}\n\n.order-10 {\n -ms-flex-order: 10;\n order: 10;\n}\n\n.order-11 {\n -ms-flex-order: 11;\n order: 11;\n}\n\n.order-12 {\n -ms-flex-order: 12;\n order: 12;\n}\n\n.offset-1 {\n margin-left: 8.333333%;\n}\n\n.offset-2 {\n margin-left: 16.666667%;\n}\n\n.offset-3 {\n margin-left: 25%;\n}\n\n.offset-4 {\n margin-left: 33.333333%;\n}\n\n.offset-5 {\n margin-left: 41.666667%;\n}\n\n.offset-6 {\n margin-left: 50%;\n}\n\n.offset-7 {\n margin-left: 58.333333%;\n}\n\n.offset-8 {\n margin-left: 66.666667%;\n}\n\n.offset-9 {\n margin-left: 75%;\n}\n\n.offset-10 {\n margin-left: 83.333333%;\n}\n\n.offset-11 {\n margin-left: 91.666667%;\n}\n\n@media (min-width: 576px) {\n .col-sm {\n -ms-flex-preferred-size: 0;\n flex-basis: 0;\n -ms-flex-positive: 1;\n flex-grow: 1;\n max-width: 100%;\n }\n .col-sm-auto {\n -ms-flex: 0 0 auto;\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-sm-1 {\n -ms-flex: 0 0 8.333333%;\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-sm-2 {\n -ms-flex: 0 0 16.666667%;\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-sm-3 {\n -ms-flex: 0 0 25%;\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-sm-4 {\n -ms-flex: 0 0 33.333333%;\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-sm-5 {\n -ms-flex: 0 0 41.666667%;\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-sm-6 {\n -ms-flex: 0 0 50%;\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-sm-7 {\n -ms-flex: 0 0 58.333333%;\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-sm-8 {\n -ms-flex: 0 0 66.666667%;\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-sm-9 {\n -ms-flex: 0 0 75%;\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-sm-10 {\n -ms-flex: 0 0 83.333333%;\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-sm-11 {\n -ms-flex: 0 0 91.666667%;\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-sm-12 {\n -ms-flex: 0 0 100%;\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-sm-first {\n -ms-flex-order: -1;\n order: -1;\n }\n .order-sm-last {\n -ms-flex-order: 13;\n order: 13;\n }\n .order-sm-0 {\n -ms-flex-order: 0;\n order: 0;\n }\n .order-sm-1 {\n -ms-flex-order: 1;\n order: 1;\n }\n .order-sm-2 {\n -ms-flex-order: 2;\n order: 2;\n }\n .order-sm-3 {\n -ms-flex-order: 3;\n order: 3;\n }\n .order-sm-4 {\n -ms-flex-order: 4;\n order: 4;\n }\n .order-sm-5 {\n -ms-flex-order: 5;\n order: 5;\n }\n .order-sm-6 {\n -ms-flex-order: 6;\n order: 6;\n }\n .order-sm-7 {\n -ms-flex-order: 7;\n order: 7;\n }\n .order-sm-8 {\n -ms-flex-order: 8;\n order: 8;\n }\n .order-sm-9 {\n -ms-flex-order: 9;\n order: 9;\n }\n .order-sm-10 {\n -ms-flex-order: 10;\n order: 10;\n }\n .order-sm-11 {\n -ms-flex-order: 11;\n order: 11;\n }\n .order-sm-12 {\n -ms-flex-order: 12;\n order: 12;\n }\n .offset-sm-0 {\n margin-left: 0;\n }\n .offset-sm-1 {\n margin-left: 8.333333%;\n }\n .offset-sm-2 {\n margin-left: 16.666667%;\n }\n .offset-sm-3 {\n margin-left: 25%;\n }\n .offset-sm-4 {\n margin-left: 33.333333%;\n }\n .offset-sm-5 {\n margin-left: 41.666667%;\n }\n .offset-sm-6 {\n margin-left: 50%;\n }\n .offset-sm-7 {\n margin-left: 58.333333%;\n }\n .offset-sm-8 {\n margin-left: 66.666667%;\n }\n .offset-sm-9 {\n margin-left: 75%;\n }\n .offset-sm-10 {\n margin-left: 83.333333%;\n }\n .offset-sm-11 {\n margin-left: 91.666667%;\n }\n}\n\n@media (min-width: 768px) {\n .col-md {\n -ms-flex-preferred-size: 0;\n flex-basis: 0;\n -ms-flex-positive: 1;\n flex-grow: 1;\n max-width: 100%;\n }\n .col-md-auto {\n -ms-flex: 0 0 auto;\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-md-1 {\n -ms-flex: 0 0 8.333333%;\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-md-2 {\n -ms-flex: 0 0 16.666667%;\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-md-3 {\n -ms-flex: 0 0 25%;\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-md-4 {\n -ms-flex: 0 0 33.333333%;\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-md-5 {\n -ms-flex: 0 0 41.666667%;\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-md-6 {\n -ms-flex: 0 0 50%;\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-md-7 {\n -ms-flex: 0 0 58.333333%;\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-md-8 {\n -ms-flex: 0 0 66.666667%;\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-md-9 {\n -ms-flex: 0 0 75%;\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-md-10 {\n -ms-flex: 0 0 83.333333%;\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-md-11 {\n -ms-flex: 0 0 91.666667%;\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-md-12 {\n -ms-flex: 0 0 100%;\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-md-first {\n -ms-flex-order: -1;\n order: -1;\n }\n .order-md-last {\n -ms-flex-order: 13;\n order: 13;\n }\n .order-md-0 {\n -ms-flex-order: 0;\n order: 0;\n }\n .order-md-1 {\n -ms-flex-order: 1;\n order: 1;\n }\n .order-md-2 {\n -ms-flex-order: 2;\n order: 2;\n }\n .order-md-3 {\n -ms-flex-order: 3;\n order: 3;\n }\n .order-md-4 {\n -ms-flex-order: 4;\n order: 4;\n }\n .order-md-5 {\n -ms-flex-order: 5;\n order: 5;\n }\n .order-md-6 {\n -ms-flex-order: 6;\n order: 6;\n }\n .order-md-7 {\n -ms-flex-order: 7;\n order: 7;\n }\n .order-md-8 {\n -ms-flex-order: 8;\n order: 8;\n }\n .order-md-9 {\n -ms-flex-order: 9;\n order: 9;\n }\n .order-md-10 {\n -ms-flex-order: 10;\n order: 10;\n }\n .order-md-11 {\n -ms-flex-order: 11;\n order: 11;\n }\n .order-md-12 {\n -ms-flex-order: 12;\n order: 12;\n }\n .offset-md-0 {\n margin-left: 0;\n }\n .offset-md-1 {\n margin-left: 8.333333%;\n }\n .offset-md-2 {\n margin-left: 16.666667%;\n }\n .offset-md-3 {\n margin-left: 25%;\n }\n .offset-md-4 {\n margin-left: 33.333333%;\n }\n .offset-md-5 {\n margin-left: 41.666667%;\n }\n .offset-md-6 {\n margin-left: 50%;\n }\n .offset-md-7 {\n margin-left: 58.333333%;\n }\n .offset-md-8 {\n margin-left: 66.666667%;\n }\n .offset-md-9 {\n margin-left: 75%;\n }\n .offset-md-10 {\n margin-left: 83.333333%;\n }\n .offset-md-11 {\n margin-left: 91.666667%;\n }\n}\n\n@media (min-width: 992px) {\n .col-lg {\n -ms-flex-preferred-size: 0;\n flex-basis: 0;\n -ms-flex-positive: 1;\n flex-grow: 1;\n max-width: 100%;\n }\n .col-lg-auto {\n -ms-flex: 0 0 auto;\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-lg-1 {\n -ms-flex: 0 0 8.333333%;\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-lg-2 {\n -ms-flex: 0 0 16.666667%;\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-lg-3 {\n -ms-flex: 0 0 25%;\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-lg-4 {\n -ms-flex: 0 0 33.333333%;\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-lg-5 {\n -ms-flex: 0 0 41.666667%;\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-lg-6 {\n -ms-flex: 0 0 50%;\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-lg-7 {\n -ms-flex: 0 0 58.333333%;\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-lg-8 {\n -ms-flex: 0 0 66.666667%;\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-lg-9 {\n -ms-flex: 0 0 75%;\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-lg-10 {\n -ms-flex: 0 0 83.333333%;\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-lg-11 {\n -ms-flex: 0 0 91.666667%;\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-lg-12 {\n -ms-flex: 0 0 100%;\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-lg-first {\n -ms-flex-order: -1;\n order: -1;\n }\n .order-lg-last {\n -ms-flex-order: 13;\n order: 13;\n }\n .order-lg-0 {\n -ms-flex-order: 0;\n order: 0;\n }\n .order-lg-1 {\n -ms-flex-order: 1;\n order: 1;\n }\n .order-lg-2 {\n -ms-flex-order: 2;\n order: 2;\n }\n .order-lg-3 {\n -ms-flex-order: 3;\n order: 3;\n }\n .order-lg-4 {\n -ms-flex-order: 4;\n order: 4;\n }\n .order-lg-5 {\n -ms-flex-order: 5;\n order: 5;\n }\n .order-lg-6 {\n -ms-flex-order: 6;\n order: 6;\n }\n .order-lg-7 {\n -ms-flex-order: 7;\n order: 7;\n }\n .order-lg-8 {\n -ms-flex-order: 8;\n order: 8;\n }\n .order-lg-9 {\n -ms-flex-order: 9;\n order: 9;\n }\n .order-lg-10 {\n -ms-flex-order: 10;\n order: 10;\n }\n .order-lg-11 {\n -ms-flex-order: 11;\n order: 11;\n }\n .order-lg-12 {\n -ms-flex-order: 12;\n order: 12;\n }\n .offset-lg-0 {\n margin-left: 0;\n }\n .offset-lg-1 {\n margin-left: 8.333333%;\n }\n .offset-lg-2 {\n margin-left: 16.666667%;\n }\n .offset-lg-3 {\n margin-left: 25%;\n }\n .offset-lg-4 {\n margin-left: 33.333333%;\n }\n .offset-lg-5 {\n margin-left: 41.666667%;\n }\n .offset-lg-6 {\n margin-left: 50%;\n }\n .offset-lg-7 {\n margin-left: 58.333333%;\n }\n .offset-lg-8 {\n margin-left: 66.666667%;\n }\n .offset-lg-9 {\n margin-left: 75%;\n }\n .offset-lg-10 {\n margin-left: 83.333333%;\n }\n .offset-lg-11 {\n margin-left: 91.666667%;\n }\n}\n\n@media (min-width: 1200px) {\n .col-xl {\n -ms-flex-preferred-size: 0;\n flex-basis: 0;\n -ms-flex-positive: 1;\n flex-grow: 1;\n max-width: 100%;\n }\n .col-xl-auto {\n -ms-flex: 0 0 auto;\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-xl-1 {\n -ms-flex: 0 0 8.333333%;\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-xl-2 {\n -ms-flex: 0 0 16.666667%;\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-xl-3 {\n -ms-flex: 0 0 25%;\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-xl-4 {\n -ms-flex: 0 0 33.333333%;\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-xl-5 {\n -ms-flex: 0 0 41.666667%;\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-xl-6 {\n -ms-flex: 0 0 50%;\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-xl-7 {\n -ms-flex: 0 0 58.333333%;\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-xl-8 {\n -ms-flex: 0 0 66.666667%;\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-xl-9 {\n -ms-flex: 0 0 75%;\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-xl-10 {\n -ms-flex: 0 0 83.333333%;\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-xl-11 {\n -ms-flex: 0 0 91.666667%;\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-xl-12 {\n -ms-flex: 0 0 100%;\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-xl-first {\n -ms-flex-order: -1;\n order: -1;\n }\n .order-xl-last {\n -ms-flex-order: 13;\n order: 13;\n }\n .order-xl-0 {\n -ms-flex-order: 0;\n order: 0;\n }\n .order-xl-1 {\n -ms-flex-order: 1;\n order: 1;\n }\n .order-xl-2 {\n -ms-flex-order: 2;\n order: 2;\n }\n .order-xl-3 {\n -ms-flex-order: 3;\n order: 3;\n }\n .order-xl-4 {\n -ms-flex-order: 4;\n order: 4;\n }\n .order-xl-5 {\n -ms-flex-order: 5;\n order: 5;\n }\n .order-xl-6 {\n -ms-flex-order: 6;\n order: 6;\n }\n .order-xl-7 {\n -ms-flex-order: 7;\n order: 7;\n }\n .order-xl-8 {\n -ms-flex-order: 8;\n order: 8;\n }\n .order-xl-9 {\n -ms-flex-order: 9;\n order: 9;\n }\n .order-xl-10 {\n -ms-flex-order: 10;\n order: 10;\n }\n .order-xl-11 {\n -ms-flex-order: 11;\n order: 11;\n }\n .order-xl-12 {\n -ms-flex-order: 12;\n order: 12;\n }\n .offset-xl-0 {\n margin-left: 0;\n }\n .offset-xl-1 {\n margin-left: 8.333333%;\n }\n .offset-xl-2 {\n margin-left: 16.666667%;\n }\n .offset-xl-3 {\n margin-left: 25%;\n }\n .offset-xl-4 {\n margin-left: 33.333333%;\n }\n .offset-xl-5 {\n margin-left: 41.666667%;\n }\n .offset-xl-6 {\n margin-left: 50%;\n }\n .offset-xl-7 {\n margin-left: 58.333333%;\n }\n .offset-xl-8 {\n margin-left: 66.666667%;\n }\n .offset-xl-9 {\n margin-left: 75%;\n }\n .offset-xl-10 {\n margin-left: 83.333333%;\n }\n .offset-xl-11 {\n margin-left: 91.666667%;\n }\n}\n\n.table {\n width: 100%;\n margin-bottom: 1rem;\n color: #212529;\n}\n\n.table th,\n.table td {\n padding: 0.75rem;\n vertical-align: top;\n border-top: 1px solid #dee2e6;\n}\n\n.table thead th {\n vertical-align: bottom;\n border-bottom: 2px solid #dee2e6;\n}\n\n.table tbody + tbody {\n border-top: 2px solid #dee2e6;\n}\n\n.table-sm th,\n.table-sm td {\n padding: 0.3rem;\n}\n\n.table-bordered {\n border: 1px solid #dee2e6;\n}\n\n.table-bordered th,\n.table-bordered td {\n border: 1px solid #dee2e6;\n}\n\n.table-bordered thead th,\n.table-bordered thead td {\n border-bottom-width: 2px;\n}\n\n.table-borderless th,\n.table-borderless td,\n.table-borderless thead th,\n.table-borderless tbody + tbody {\n border: 0;\n}\n\n.table-striped tbody tr:nth-of-type(odd) {\n background-color: rgba(0, 0, 0, 0.05);\n}\n\n.table-hover tbody tr:hover {\n color: #212529;\n background-color: rgba(0, 0, 0, 0.075);\n}\n\n.table-primary,\n.table-primary > th,\n.table-primary > td {\n background-color: #b8daff;\n}\n\n.table-primary th,\n.table-primary td,\n.table-primary thead th,\n.table-primary tbody + tbody {\n border-color: #7abaff;\n}\n\n.table-hover .table-primary:hover {\n background-color: #9fcdff;\n}\n\n.table-hover .table-primary:hover > td,\n.table-hover .table-primary:hover > th {\n background-color: #9fcdff;\n}\n\n.table-secondary,\n.table-secondary > th,\n.table-secondary > td {\n background-color: #d6d8db;\n}\n\n.table-secondary th,\n.table-secondary td,\n.table-secondary thead th,\n.table-secondary tbody + tbody {\n border-color: #b3b7bb;\n}\n\n.table-hover .table-secondary:hover {\n background-color: #c8cbcf;\n}\n\n.table-hover .table-secondary:hover > td,\n.table-hover .table-secondary:hover > th {\n background-color: #c8cbcf;\n}\n\n.table-success,\n.table-success > th,\n.table-success > td {\n background-color: #c3e6cb;\n}\n\n.table-success th,\n.table-success td,\n.table-success thead th,\n.table-success tbody + tbody {\n border-color: #8fd19e;\n}\n\n.table-hover .table-success:hover {\n background-color: #b1dfbb;\n}\n\n.table-hover .table-success:hover > td,\n.table-hover .table-success:hover > th {\n background-color: #b1dfbb;\n}\n\n.table-info,\n.table-info > th,\n.table-info > td {\n background-color: #bee5eb;\n}\n\n.table-info th,\n.table-info td,\n.table-info thead th,\n.table-info tbody + tbody {\n border-color: #86cfda;\n}\n\n.table-hover .table-info:hover {\n background-color: #abdde5;\n}\n\n.table-hover .table-info:hover > td,\n.table-hover .table-info:hover > th {\n background-color: #abdde5;\n}\n\n.table-warning,\n.table-warning > th,\n.table-warning > td {\n background-color: #ffeeba;\n}\n\n.table-warning th,\n.table-warning td,\n.table-warning thead th,\n.table-warning tbody + tbody {\n border-color: #ffdf7e;\n}\n\n.table-hover .table-warning:hover {\n background-color: #ffe8a1;\n}\n\n.table-hover .table-warning:hover > td,\n.table-hover .table-warning:hover > th {\n background-color: #ffe8a1;\n}\n\n.table-danger,\n.table-danger > th,\n.table-danger > td {\n background-color: #f5c6cb;\n}\n\n.table-danger th,\n.table-danger td,\n.table-danger thead th,\n.table-danger tbody + tbody {\n border-color: #ed969e;\n}\n\n.table-hover .table-danger:hover {\n background-color: #f1b0b7;\n}\n\n.table-hover .table-danger:hover > td,\n.table-hover .table-danger:hover > th {\n background-color: #f1b0b7;\n}\n\n.table-light,\n.table-light > th,\n.table-light > td {\n background-color: #fdfdfe;\n}\n\n.table-light th,\n.table-light td,\n.table-light thead th,\n.table-light tbody + tbody {\n border-color: #fbfcfc;\n}\n\n.table-hover .table-light:hover {\n background-color: #ececf6;\n}\n\n.table-hover .table-light:hover > td,\n.table-hover .table-light:hover > th {\n background-color: #ececf6;\n}\n\n.table-dark,\n.table-dark > th,\n.table-dark > td {\n background-color: #c6c8ca;\n}\n\n.table-dark th,\n.table-dark td,\n.table-dark thead th,\n.table-dark tbody + tbody {\n border-color: #95999c;\n}\n\n.table-hover .table-dark:hover {\n background-color: #b9bbbe;\n}\n\n.table-hover .table-dark:hover > td,\n.table-hover .table-dark:hover > th {\n background-color: #b9bbbe;\n}\n\n.table-active,\n.table-active > th,\n.table-active > td {\n background-color: rgba(0, 0, 0, 0.075);\n}\n\n.table-hover .table-active:hover {\n background-color: rgba(0, 0, 0, 0.075);\n}\n\n.table-hover .table-active:hover > td,\n.table-hover .table-active:hover > th {\n background-color: rgba(0, 0, 0, 0.075);\n}\n\n.table .thead-dark th {\n color: #fff;\n background-color: #343a40;\n border-color: #454d55;\n}\n\n.table .thead-light th {\n color: #495057;\n background-color: #e9ecef;\n border-color: #dee2e6;\n}\n\n.table-dark {\n color: #fff;\n background-color: #343a40;\n}\n\n.table-dark th,\n.table-dark td,\n.table-dark thead th {\n border-color: #454d55;\n}\n\n.table-dark.table-bordered {\n border: 0;\n}\n\n.table-dark.table-striped tbody tr:nth-of-type(odd) {\n background-color: rgba(255, 255, 255, 0.05);\n}\n\n.table-dark.table-hover tbody tr:hover {\n color: #fff;\n background-color: rgba(255, 255, 255, 0.075);\n}\n\n@media (max-width: 575.98px) {\n .table-responsive-sm {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n }\n .table-responsive-sm > .table-bordered {\n border: 0;\n }\n}\n\n@media (max-width: 767.98px) {\n .table-responsive-md {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n }\n .table-responsive-md > .table-bordered {\n border: 0;\n }\n}\n\n@media (max-width: 991.98px) {\n .table-responsive-lg {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n }\n .table-responsive-lg > .table-bordered {\n border: 0;\n }\n}\n\n@media (max-width: 1199.98px) {\n .table-responsive-xl {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n }\n .table-responsive-xl > .table-bordered {\n border: 0;\n }\n}\n\n.table-responsive {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n}\n\n.table-responsive > .table-bordered {\n border: 0;\n}\n\n.form-control {\n display: block;\n width: 100%;\n height: calc(1.5em + 0.75rem + 2px);\n padding: 0.375rem 0.75rem;\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: #495057;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid #ced4da;\n border-radius: 0.25rem;\n transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .form-control {\n transition: none;\n }\n}\n\n.form-control::-ms-expand {\n background-color: transparent;\n border: 0;\n}\n\n.form-control:focus {\n color: #495057;\n background-color: #fff;\n border-color: #80bdff;\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.form-control::-webkit-input-placeholder {\n color: #6c757d;\n opacity: 1;\n}\n\n.form-control::-moz-placeholder {\n color: #6c757d;\n opacity: 1;\n}\n\n.form-control:-ms-input-placeholder {\n color: #6c757d;\n opacity: 1;\n}\n\n.form-control::-ms-input-placeholder {\n color: #6c757d;\n opacity: 1;\n}\n\n.form-control::placeholder {\n color: #6c757d;\n opacity: 1;\n}\n\n.form-control:disabled, .form-control[readonly] {\n background-color: #e9ecef;\n opacity: 1;\n}\n\nselect.form-control:focus::-ms-value {\n color: #495057;\n background-color: #fff;\n}\n\n.form-control-file,\n.form-control-range {\n display: block;\n width: 100%;\n}\n\n.col-form-label {\n padding-top: calc(0.375rem + 1px);\n padding-bottom: calc(0.375rem + 1px);\n margin-bottom: 0;\n font-size: inherit;\n line-height: 1.5;\n}\n\n.col-form-label-lg {\n padding-top: calc(0.5rem + 1px);\n padding-bottom: calc(0.5rem + 1px);\n font-size: 1.25rem;\n line-height: 1.5;\n}\n\n.col-form-label-sm {\n padding-top: calc(0.25rem + 1px);\n padding-bottom: calc(0.25rem + 1px);\n font-size: 0.875rem;\n line-height: 1.5;\n}\n\n.form-control-plaintext {\n display: block;\n width: 100%;\n padding-top: 0.375rem;\n padding-bottom: 0.375rem;\n margin-bottom: 0;\n line-height: 1.5;\n color: #212529;\n background-color: transparent;\n border: solid transparent;\n border-width: 1px 0;\n}\n\n.form-control-plaintext.form-control-sm, .form-control-plaintext.form-control-lg {\n padding-right: 0;\n padding-left: 0;\n}\n\n.form-control-sm {\n height: calc(1.5em + 0.5rem + 2px);\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem;\n line-height: 1.5;\n border-radius: 0.2rem;\n}\n\n.form-control-lg {\n height: calc(1.5em + 1rem + 2px);\n padding: 0.5rem 1rem;\n font-size: 1.25rem;\n line-height: 1.5;\n border-radius: 0.3rem;\n}\n\nselect.form-control[size], select.form-control[multiple] {\n height: auto;\n}\n\ntextarea.form-control {\n height: auto;\n}\n\n.form-group {\n margin-bottom: 1rem;\n}\n\n.form-text {\n display: block;\n margin-top: 0.25rem;\n}\n\n.form-row {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n margin-right: -5px;\n margin-left: -5px;\n}\n\n.form-row > .col,\n.form-row > [class*=\"col-\"] {\n padding-right: 5px;\n padding-left: 5px;\n}\n\n.form-check {\n position: relative;\n display: block;\n padding-left: 1.25rem;\n}\n\n.form-check-input {\n position: absolute;\n margin-top: 0.3rem;\n margin-left: -1.25rem;\n}\n\n.form-check-input:disabled ~ .form-check-label {\n color: #6c757d;\n}\n\n.form-check-label {\n margin-bottom: 0;\n}\n\n.form-check-inline {\n display: -ms-inline-flexbox;\n display: inline-flex;\n -ms-flex-align: center;\n align-items: center;\n padding-left: 0;\n margin-right: 0.75rem;\n}\n\n.form-check-inline .form-check-input {\n position: static;\n margin-top: 0;\n margin-right: 0.3125rem;\n margin-left: 0;\n}\n\n.valid-feedback {\n display: none;\n width: 100%;\n margin-top: 0.25rem;\n font-size: 80%;\n color: #28a745;\n}\n\n.valid-tooltip {\n position: absolute;\n top: 100%;\n z-index: 5;\n display: none;\n max-width: 100%;\n padding: 0.25rem 0.5rem;\n margin-top: .1rem;\n font-size: 0.875rem;\n line-height: 1.5;\n color: #fff;\n background-color: rgba(40, 167, 69, 0.9);\n border-radius: 0.25rem;\n}\n\n.was-validated .form-control:valid, .form-control.is-valid {\n border-color: #28a745;\n padding-right: calc(1.5em + 0.75rem);\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e\");\n background-repeat: no-repeat;\n background-position: center right calc(0.375em + 0.1875rem);\n background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);\n}\n\n.was-validated .form-control:valid:focus, .form-control.is-valid:focus {\n border-color: #28a745;\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);\n}\n\n.was-validated .form-control:valid ~ .valid-feedback,\n.was-validated .form-control:valid ~ .valid-tooltip, .form-control.is-valid ~ .valid-feedback,\n.form-control.is-valid ~ .valid-tooltip {\n display: block;\n}\n\n.was-validated textarea.form-control:valid, textarea.form-control.is-valid {\n padding-right: calc(1.5em + 0.75rem);\n background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem);\n}\n\n.was-validated .custom-select:valid, .custom-select.is-valid {\n border-color: #28a745;\n padding-right: calc((1em + 0.75rem) * 3 / 4 + 1.75rem);\n background: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e\") no-repeat right 0.75rem center/8px 10px, url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e\") #fff no-repeat center right 1.75rem/calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);\n}\n\n.was-validated .custom-select:valid:focus, .custom-select.is-valid:focus {\n border-color: #28a745;\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);\n}\n\n.was-validated .custom-select:valid ~ .valid-feedback,\n.was-validated .custom-select:valid ~ .valid-tooltip, .custom-select.is-valid ~ .valid-feedback,\n.custom-select.is-valid ~ .valid-tooltip {\n display: block;\n}\n\n.was-validated .form-control-file:valid ~ .valid-feedback,\n.was-validated .form-control-file:valid ~ .valid-tooltip, .form-control-file.is-valid ~ .valid-feedback,\n.form-control-file.is-valid ~ .valid-tooltip {\n display: block;\n}\n\n.was-validated .form-check-input:valid ~ .form-check-label, .form-check-input.is-valid ~ .form-check-label {\n color: #28a745;\n}\n\n.was-validated .form-check-input:valid ~ .valid-feedback,\n.was-validated .form-check-input:valid ~ .valid-tooltip, .form-check-input.is-valid ~ .valid-feedback,\n.form-check-input.is-valid ~ .valid-tooltip {\n display: block;\n}\n\n.was-validated .custom-control-input:valid ~ .custom-control-label, .custom-control-input.is-valid ~ .custom-control-label {\n color: #28a745;\n}\n\n.was-validated .custom-control-input:valid ~ .custom-control-label::before, .custom-control-input.is-valid ~ .custom-control-label::before {\n border-color: #28a745;\n}\n\n.was-validated .custom-control-input:valid ~ .valid-feedback,\n.was-validated .custom-control-input:valid ~ .valid-tooltip, .custom-control-input.is-valid ~ .valid-feedback,\n.custom-control-input.is-valid ~ .valid-tooltip {\n display: block;\n}\n\n.was-validated .custom-control-input:valid:checked ~ .custom-control-label::before, .custom-control-input.is-valid:checked ~ .custom-control-label::before {\n border-color: #34ce57;\n background-color: #34ce57;\n}\n\n.was-validated .custom-control-input:valid:focus ~ .custom-control-label::before, .custom-control-input.is-valid:focus ~ .custom-control-label::before {\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);\n}\n\n.was-validated .custom-control-input:valid:focus:not(:checked) ~ .custom-control-label::before, .custom-control-input.is-valid:focus:not(:checked) ~ .custom-control-label::before {\n border-color: #28a745;\n}\n\n.was-validated .custom-file-input:valid ~ .custom-file-label, .custom-file-input.is-valid ~ .custom-file-label {\n border-color: #28a745;\n}\n\n.was-validated .custom-file-input:valid ~ .valid-feedback,\n.was-validated .custom-file-input:valid ~ .valid-tooltip, .custom-file-input.is-valid ~ .valid-feedback,\n.custom-file-input.is-valid ~ .valid-tooltip {\n display: block;\n}\n\n.was-validated .custom-file-input:valid:focus ~ .custom-file-label, .custom-file-input.is-valid:focus ~ .custom-file-label {\n border-color: #28a745;\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);\n}\n\n.invalid-feedback {\n display: none;\n width: 100%;\n margin-top: 0.25rem;\n font-size: 80%;\n color: #dc3545;\n}\n\n.invalid-tooltip {\n position: absolute;\n top: 100%;\n z-index: 5;\n display: none;\n max-width: 100%;\n padding: 0.25rem 0.5rem;\n margin-top: .1rem;\n font-size: 0.875rem;\n line-height: 1.5;\n color: #fff;\n background-color: rgba(220, 53, 69, 0.9);\n border-radius: 0.25rem;\n}\n\n.was-validated .form-control:invalid, .form-control.is-invalid {\n border-color: #dc3545;\n padding-right: calc(1.5em + 0.75rem);\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23dc3545' viewBox='-2 -2 7 7'%3e%3cpath stroke='%23dc3545' d='M0 0l3 3m0-3L0 3'/%3e%3ccircle r='.5'/%3e%3ccircle cx='3' r='.5'/%3e%3ccircle cy='3' r='.5'/%3e%3ccircle cx='3' cy='3' r='.5'/%3e%3c/svg%3E\");\n background-repeat: no-repeat;\n background-position: center right calc(0.375em + 0.1875rem);\n background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);\n}\n\n.was-validated .form-control:invalid:focus, .form-control.is-invalid:focus {\n border-color: #dc3545;\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);\n}\n\n.was-validated .form-control:invalid ~ .invalid-feedback,\n.was-validated .form-control:invalid ~ .invalid-tooltip, .form-control.is-invalid ~ .invalid-feedback,\n.form-control.is-invalid ~ .invalid-tooltip {\n display: block;\n}\n\n.was-validated textarea.form-control:invalid, textarea.form-control.is-invalid {\n padding-right: calc(1.5em + 0.75rem);\n background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem);\n}\n\n.was-validated .custom-select:invalid, .custom-select.is-invalid {\n border-color: #dc3545;\n padding-right: calc((1em + 0.75rem) * 3 / 4 + 1.75rem);\n background: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e\") no-repeat right 0.75rem center/8px 10px, url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23dc3545' viewBox='-2 -2 7 7'%3e%3cpath stroke='%23dc3545' d='M0 0l3 3m0-3L0 3'/%3e%3ccircle r='.5'/%3e%3ccircle cx='3' r='.5'/%3e%3ccircle cy='3' r='.5'/%3e%3ccircle cx='3' cy='3' r='.5'/%3e%3c/svg%3E\") #fff no-repeat center right 1.75rem/calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);\n}\n\n.was-validated .custom-select:invalid:focus, .custom-select.is-invalid:focus {\n border-color: #dc3545;\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);\n}\n\n.was-validated .custom-select:invalid ~ .invalid-feedback,\n.was-validated .custom-select:invalid ~ .invalid-tooltip, .custom-select.is-invalid ~ .invalid-feedback,\n.custom-select.is-invalid ~ .invalid-tooltip {\n display: block;\n}\n\n.was-validated .form-control-file:invalid ~ .invalid-feedback,\n.was-validated .form-control-file:invalid ~ .invalid-tooltip, .form-control-file.is-invalid ~ .invalid-feedback,\n.form-control-file.is-invalid ~ .invalid-tooltip {\n display: block;\n}\n\n.was-validated .form-check-input:invalid ~ .form-check-label, .form-check-input.is-invalid ~ .form-check-label {\n color: #dc3545;\n}\n\n.was-validated .form-check-input:invalid ~ .invalid-feedback,\n.was-validated .form-check-input:invalid ~ .invalid-tooltip, .form-check-input.is-invalid ~ .invalid-feedback,\n.form-check-input.is-invalid ~ .invalid-tooltip {\n display: block;\n}\n\n.was-validated .custom-control-input:invalid ~ .custom-control-label, .custom-control-input.is-invalid ~ .custom-control-label {\n color: #dc3545;\n}\n\n.was-validated .custom-control-input:invalid ~ .custom-control-label::before, .custom-control-input.is-invalid ~ .custom-control-label::before {\n border-color: #dc3545;\n}\n\n.was-validated .custom-control-input:invalid ~ .invalid-feedback,\n.was-validated .custom-control-input:invalid ~ .invalid-tooltip, .custom-control-input.is-invalid ~ .invalid-feedback,\n.custom-control-input.is-invalid ~ .invalid-tooltip {\n display: block;\n}\n\n.was-validated .custom-control-input:invalid:checked ~ .custom-control-label::before, .custom-control-input.is-invalid:checked ~ .custom-control-label::before {\n border-color: #e4606d;\n background-color: #e4606d;\n}\n\n.was-validated .custom-control-input:invalid:focus ~ .custom-control-label::before, .custom-control-input.is-invalid:focus ~ .custom-control-label::before {\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);\n}\n\n.was-validated .custom-control-input:invalid:focus:not(:checked) ~ .custom-control-label::before, .custom-control-input.is-invalid:focus:not(:checked) ~ .custom-control-label::before {\n border-color: #dc3545;\n}\n\n.was-validated .custom-file-input:invalid ~ .custom-file-label, .custom-file-input.is-invalid ~ .custom-file-label {\n border-color: #dc3545;\n}\n\n.was-validated .custom-file-input:invalid ~ .invalid-feedback,\n.was-validated .custom-file-input:invalid ~ .invalid-tooltip, .custom-file-input.is-invalid ~ .invalid-feedback,\n.custom-file-input.is-invalid ~ .invalid-tooltip {\n display: block;\n}\n\n.was-validated .custom-file-input:invalid:focus ~ .custom-file-label, .custom-file-input.is-invalid:focus ~ .custom-file-label {\n border-color: #dc3545;\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);\n}\n\n.form-inline {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-flow: row wrap;\n flex-flow: row wrap;\n -ms-flex-align: center;\n align-items: center;\n}\n\n.form-inline .form-check {\n width: 100%;\n}\n\n@media (min-width: 576px) {\n .form-inline label {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-align: center;\n align-items: center;\n -ms-flex-pack: center;\n justify-content: center;\n margin-bottom: 0;\n }\n .form-inline .form-group {\n display: -ms-flexbox;\n display: flex;\n -ms-flex: 0 0 auto;\n flex: 0 0 auto;\n -ms-flex-flow: row wrap;\n flex-flow: row wrap;\n -ms-flex-align: center;\n align-items: center;\n margin-bottom: 0;\n }\n .form-inline .form-control {\n display: inline-block;\n width: auto;\n vertical-align: middle;\n }\n .form-inline .form-control-plaintext {\n display: inline-block;\n }\n .form-inline .input-group,\n .form-inline .custom-select {\n width: auto;\n }\n .form-inline .form-check {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-align: center;\n align-items: center;\n -ms-flex-pack: center;\n justify-content: center;\n width: auto;\n padding-left: 0;\n }\n .form-inline .form-check-input {\n position: relative;\n -ms-flex-negative: 0;\n flex-shrink: 0;\n margin-top: 0;\n margin-right: 0.25rem;\n margin-left: 0;\n }\n .form-inline .custom-control {\n -ms-flex-align: center;\n align-items: center;\n -ms-flex-pack: center;\n justify-content: center;\n }\n .form-inline .custom-control-label {\n margin-bottom: 0;\n }\n}\n\n.btn {\n display: inline-block;\n font-weight: 400;\n color: #212529;\n text-align: center;\n vertical-align: middle;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n background-color: transparent;\n border: 1px solid transparent;\n padding: 0.375rem 0.75rem;\n font-size: 1rem;\n line-height: 1.5;\n border-radius: 0.25rem;\n transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .btn {\n transition: none;\n }\n}\n\n.btn:hover {\n color: #212529;\n text-decoration: none;\n}\n\n.btn:focus, .btn.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.btn.disabled, .btn:disabled {\n opacity: 0.65;\n}\n\na.btn.disabled,\nfieldset:disabled a.btn {\n pointer-events: none;\n}\n\n.btn-primary {\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.btn-primary:hover {\n color: #fff;\n background-color: #0069d9;\n border-color: #0062cc;\n}\n\n.btn-primary:focus, .btn-primary.focus {\n box-shadow: 0 0 0 0.2rem rgba(38, 143, 255, 0.5);\n}\n\n.btn-primary.disabled, .btn-primary:disabled {\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.btn-primary:not(:disabled):not(.disabled):active, .btn-primary:not(:disabled):not(.disabled).active,\n.show > .btn-primary.dropdown-toggle {\n color: #fff;\n background-color: #0062cc;\n border-color: #005cbf;\n}\n\n.btn-primary:not(:disabled):not(.disabled):active:focus, .btn-primary:not(:disabled):not(.disabled).active:focus,\n.show > .btn-primary.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(38, 143, 255, 0.5);\n}\n\n.btn-secondary {\n color: #fff;\n background-color: #6c757d;\n border-color: #6c757d;\n}\n\n.btn-secondary:hover {\n color: #fff;\n background-color: #5a6268;\n border-color: #545b62;\n}\n\n.btn-secondary:focus, .btn-secondary.focus {\n box-shadow: 0 0 0 0.2rem rgba(130, 138, 145, 0.5);\n}\n\n.btn-secondary.disabled, .btn-secondary:disabled {\n color: #fff;\n background-color: #6c757d;\n border-color: #6c757d;\n}\n\n.btn-secondary:not(:disabled):not(.disabled):active, .btn-secondary:not(:disabled):not(.disabled).active,\n.show > .btn-secondary.dropdown-toggle {\n color: #fff;\n background-color: #545b62;\n border-color: #4e555b;\n}\n\n.btn-secondary:not(:disabled):not(.disabled):active:focus, .btn-secondary:not(:disabled):not(.disabled).active:focus,\n.show > .btn-secondary.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(130, 138, 145, 0.5);\n}\n\n.btn-success {\n color: #fff;\n background-color: #28a745;\n border-color: #28a745;\n}\n\n.btn-success:hover {\n color: #fff;\n background-color: #218838;\n border-color: #1e7e34;\n}\n\n.btn-success:focus, .btn-success.focus {\n box-shadow: 0 0 0 0.2rem rgba(72, 180, 97, 0.5);\n}\n\n.btn-success.disabled, .btn-success:disabled {\n color: #fff;\n background-color: #28a745;\n border-color: #28a745;\n}\n\n.btn-success:not(:disabled):not(.disabled):active, .btn-success:not(:disabled):not(.disabled).active,\n.show > .btn-success.dropdown-toggle {\n color: #fff;\n background-color: #1e7e34;\n border-color: #1c7430;\n}\n\n.btn-success:not(:disabled):not(.disabled):active:focus, .btn-success:not(:disabled):not(.disabled).active:focus,\n.show > .btn-success.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(72, 180, 97, 0.5);\n}\n\n.btn-info {\n color: #fff;\n background-color: #17a2b8;\n border-color: #17a2b8;\n}\n\n.btn-info:hover {\n color: #fff;\n background-color: #138496;\n border-color: #117a8b;\n}\n\n.btn-info:focus, .btn-info.focus {\n box-shadow: 0 0 0 0.2rem rgba(58, 176, 195, 0.5);\n}\n\n.btn-info.disabled, .btn-info:disabled {\n color: #fff;\n background-color: #17a2b8;\n border-color: #17a2b8;\n}\n\n.btn-info:not(:disabled):not(.disabled):active, .btn-info:not(:disabled):not(.disabled).active,\n.show > .btn-info.dropdown-toggle {\n color: #fff;\n background-color: #117a8b;\n border-color: #10707f;\n}\n\n.btn-info:not(:disabled):not(.disabled):active:focus, .btn-info:not(:disabled):not(.disabled).active:focus,\n.show > .btn-info.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(58, 176, 195, 0.5);\n}\n\n.btn-warning {\n color: #212529;\n background-color: #ffc107;\n border-color: #ffc107;\n}\n\n.btn-warning:hover {\n color: #212529;\n background-color: #e0a800;\n border-color: #d39e00;\n}\n\n.btn-warning:focus, .btn-warning.focus {\n box-shadow: 0 0 0 0.2rem rgba(222, 170, 12, 0.5);\n}\n\n.btn-warning.disabled, .btn-warning:disabled {\n color: #212529;\n background-color: #ffc107;\n border-color: #ffc107;\n}\n\n.btn-warning:not(:disabled):not(.disabled):active, .btn-warning:not(:disabled):not(.disabled).active,\n.show > .btn-warning.dropdown-toggle {\n color: #212529;\n background-color: #d39e00;\n border-color: #c69500;\n}\n\n.btn-warning:not(:disabled):not(.disabled):active:focus, .btn-warning:not(:disabled):not(.disabled).active:focus,\n.show > .btn-warning.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(222, 170, 12, 0.5);\n}\n\n.btn-danger {\n color: #fff;\n background-color: #dc3545;\n border-color: #dc3545;\n}\n\n.btn-danger:hover {\n color: #fff;\n background-color: #c82333;\n border-color: #bd2130;\n}\n\n.btn-danger:focus, .btn-danger.focus {\n box-shadow: 0 0 0 0.2rem rgba(225, 83, 97, 0.5);\n}\n\n.btn-danger.disabled, .btn-danger:disabled {\n color: #fff;\n background-color: #dc3545;\n border-color: #dc3545;\n}\n\n.btn-danger:not(:disabled):not(.disabled):active, .btn-danger:not(:disabled):not(.disabled).active,\n.show > .btn-danger.dropdown-toggle {\n color: #fff;\n background-color: #bd2130;\n border-color: #b21f2d;\n}\n\n.btn-danger:not(:disabled):not(.disabled):active:focus, .btn-danger:not(:disabled):not(.disabled).active:focus,\n.show > .btn-danger.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(225, 83, 97, 0.5);\n}\n\n.btn-light {\n color: #212529;\n background-color: #f8f9fa;\n border-color: #f8f9fa;\n}\n\n.btn-light:hover {\n color: #212529;\n background-color: #e2e6ea;\n border-color: #dae0e5;\n}\n\n.btn-light:focus, .btn-light.focus {\n box-shadow: 0 0 0 0.2rem rgba(216, 217, 219, 0.5);\n}\n\n.btn-light.disabled, .btn-light:disabled {\n color: #212529;\n background-color: #f8f9fa;\n border-color: #f8f9fa;\n}\n\n.btn-light:not(:disabled):not(.disabled):active, .btn-light:not(:disabled):not(.disabled).active,\n.show > .btn-light.dropdown-toggle {\n color: #212529;\n background-color: #dae0e5;\n border-color: #d3d9df;\n}\n\n.btn-light:not(:disabled):not(.disabled):active:focus, .btn-light:not(:disabled):not(.disabled).active:focus,\n.show > .btn-light.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(216, 217, 219, 0.5);\n}\n\n.btn-dark {\n color: #fff;\n background-color: #343a40;\n border-color: #343a40;\n}\n\n.btn-dark:hover {\n color: #fff;\n background-color: #23272b;\n border-color: #1d2124;\n}\n\n.btn-dark:focus, .btn-dark.focus {\n box-shadow: 0 0 0 0.2rem rgba(82, 88, 93, 0.5);\n}\n\n.btn-dark.disabled, .btn-dark:disabled {\n color: #fff;\n background-color: #343a40;\n border-color: #343a40;\n}\n\n.btn-dark:not(:disabled):not(.disabled):active, .btn-dark:not(:disabled):not(.disabled).active,\n.show > .btn-dark.dropdown-toggle {\n color: #fff;\n background-color: #1d2124;\n border-color: #171a1d;\n}\n\n.btn-dark:not(:disabled):not(.disabled):active:focus, .btn-dark:not(:disabled):not(.disabled).active:focus,\n.show > .btn-dark.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(82, 88, 93, 0.5);\n}\n\n.btn-outline-primary {\n color: #007bff;\n border-color: #007bff;\n}\n\n.btn-outline-primary:hover {\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.btn-outline-primary:focus, .btn-outline-primary.focus {\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5);\n}\n\n.btn-outline-primary.disabled, .btn-outline-primary:disabled {\n color: #007bff;\n background-color: transparent;\n}\n\n.btn-outline-primary:not(:disabled):not(.disabled):active, .btn-outline-primary:not(:disabled):not(.disabled).active,\n.show > .btn-outline-primary.dropdown-toggle {\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.btn-outline-primary:not(:disabled):not(.disabled):active:focus, .btn-outline-primary:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-primary.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5);\n}\n\n.btn-outline-secondary {\n color: #6c757d;\n border-color: #6c757d;\n}\n\n.btn-outline-secondary:hover {\n color: #fff;\n background-color: #6c757d;\n border-color: #6c757d;\n}\n\n.btn-outline-secondary:focus, .btn-outline-secondary.focus {\n box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5);\n}\n\n.btn-outline-secondary.disabled, .btn-outline-secondary:disabled {\n color: #6c757d;\n background-color: transparent;\n}\n\n.btn-outline-secondary:not(:disabled):not(.disabled):active, .btn-outline-secondary:not(:disabled):not(.disabled).active,\n.show > .btn-outline-secondary.dropdown-toggle {\n color: #fff;\n background-color: #6c757d;\n border-color: #6c757d;\n}\n\n.btn-outline-secondary:not(:disabled):not(.disabled):active:focus, .btn-outline-secondary:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-secondary.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5);\n}\n\n.btn-outline-success {\n color: #28a745;\n border-color: #28a745;\n}\n\n.btn-outline-success:hover {\n color: #fff;\n background-color: #28a745;\n border-color: #28a745;\n}\n\n.btn-outline-success:focus, .btn-outline-success.focus {\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5);\n}\n\n.btn-outline-success.disabled, .btn-outline-success:disabled {\n color: #28a745;\n background-color: transparent;\n}\n\n.btn-outline-success:not(:disabled):not(.disabled):active, .btn-outline-success:not(:disabled):not(.disabled).active,\n.show > .btn-outline-success.dropdown-toggle {\n color: #fff;\n background-color: #28a745;\n border-color: #28a745;\n}\n\n.btn-outline-success:not(:disabled):not(.disabled):active:focus, .btn-outline-success:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-success.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5);\n}\n\n.btn-outline-info {\n color: #17a2b8;\n border-color: #17a2b8;\n}\n\n.btn-outline-info:hover {\n color: #fff;\n background-color: #17a2b8;\n border-color: #17a2b8;\n}\n\n.btn-outline-info:focus, .btn-outline-info.focus {\n box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);\n}\n\n.btn-outline-info.disabled, .btn-outline-info:disabled {\n color: #17a2b8;\n background-color: transparent;\n}\n\n.btn-outline-info:not(:disabled):not(.disabled):active, .btn-outline-info:not(:disabled):not(.disabled).active,\n.show > .btn-outline-info.dropdown-toggle {\n color: #fff;\n background-color: #17a2b8;\n border-color: #17a2b8;\n}\n\n.btn-outline-info:not(:disabled):not(.disabled):active:focus, .btn-outline-info:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-info.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);\n}\n\n.btn-outline-warning {\n color: #ffc107;\n border-color: #ffc107;\n}\n\n.btn-outline-warning:hover {\n color: #212529;\n background-color: #ffc107;\n border-color: #ffc107;\n}\n\n.btn-outline-warning:focus, .btn-outline-warning.focus {\n box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);\n}\n\n.btn-outline-warning.disabled, .btn-outline-warning:disabled {\n color: #ffc107;\n background-color: transparent;\n}\n\n.btn-outline-warning:not(:disabled):not(.disabled):active, .btn-outline-warning:not(:disabled):not(.disabled).active,\n.show > .btn-outline-warning.dropdown-toggle {\n color: #212529;\n background-color: #ffc107;\n border-color: #ffc107;\n}\n\n.btn-outline-warning:not(:disabled):not(.disabled):active:focus, .btn-outline-warning:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-warning.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);\n}\n\n.btn-outline-danger {\n color: #dc3545;\n border-color: #dc3545;\n}\n\n.btn-outline-danger:hover {\n color: #fff;\n background-color: #dc3545;\n border-color: #dc3545;\n}\n\n.btn-outline-danger:focus, .btn-outline-danger.focus {\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);\n}\n\n.btn-outline-danger.disabled, .btn-outline-danger:disabled {\n color: #dc3545;\n background-color: transparent;\n}\n\n.btn-outline-danger:not(:disabled):not(.disabled):active, .btn-outline-danger:not(:disabled):not(.disabled).active,\n.show > .btn-outline-danger.dropdown-toggle {\n color: #fff;\n background-color: #dc3545;\n border-color: #dc3545;\n}\n\n.btn-outline-danger:not(:disabled):not(.disabled):active:focus, .btn-outline-danger:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-danger.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);\n}\n\n.btn-outline-light {\n color: #f8f9fa;\n border-color: #f8f9fa;\n}\n\n.btn-outline-light:hover {\n color: #212529;\n background-color: #f8f9fa;\n border-color: #f8f9fa;\n}\n\n.btn-outline-light:focus, .btn-outline-light.focus {\n box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);\n}\n\n.btn-outline-light.disabled, .btn-outline-light:disabled {\n color: #f8f9fa;\n background-color: transparent;\n}\n\n.btn-outline-light:not(:disabled):not(.disabled):active, .btn-outline-light:not(:disabled):not(.disabled).active,\n.show > .btn-outline-light.dropdown-toggle {\n color: #212529;\n background-color: #f8f9fa;\n border-color: #f8f9fa;\n}\n\n.btn-outline-light:not(:disabled):not(.disabled):active:focus, .btn-outline-light:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-light.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);\n}\n\n.btn-outline-dark {\n color: #343a40;\n border-color: #343a40;\n}\n\n.btn-outline-dark:hover {\n color: #fff;\n background-color: #343a40;\n border-color: #343a40;\n}\n\n.btn-outline-dark:focus, .btn-outline-dark.focus {\n box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);\n}\n\n.btn-outline-dark.disabled, .btn-outline-dark:disabled {\n color: #343a40;\n background-color: transparent;\n}\n\n.btn-outline-dark:not(:disabled):not(.disabled):active, .btn-outline-dark:not(:disabled):not(.disabled).active,\n.show > .btn-outline-dark.dropdown-toggle {\n color: #fff;\n background-color: #343a40;\n border-color: #343a40;\n}\n\n.btn-outline-dark:not(:disabled):not(.disabled):active:focus, .btn-outline-dark:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-dark.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);\n}\n\n.btn-link {\n font-weight: 400;\n color: #007bff;\n text-decoration: none;\n}\n\n.btn-link:hover {\n color: #0056b3;\n text-decoration: underline;\n}\n\n.btn-link:focus, .btn-link.focus {\n text-decoration: underline;\n box-shadow: none;\n}\n\n.btn-link:disabled, .btn-link.disabled {\n color: #6c757d;\n pointer-events: none;\n}\n\n.btn-lg, .btn-group-lg > .btn {\n padding: 0.5rem 1rem;\n font-size: 1.25rem;\n line-height: 1.5;\n border-radius: 0.3rem;\n}\n\n.btn-sm, .btn-group-sm > .btn {\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem;\n line-height: 1.5;\n border-radius: 0.2rem;\n}\n\n.btn-block {\n display: block;\n width: 100%;\n}\n\n.btn-block + .btn-block {\n margin-top: 0.5rem;\n}\n\ninput[type=\"submit\"].btn-block,\ninput[type=\"reset\"].btn-block,\ninput[type=\"button\"].btn-block {\n width: 100%;\n}\n\n.fade {\n transition: opacity 0.15s linear;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .fade {\n transition: none;\n }\n}\n\n.fade:not(.show) {\n opacity: 0;\n}\n\n.collapse:not(.show) {\n display: none;\n}\n\n.collapsing {\n position: relative;\n height: 0;\n overflow: hidden;\n transition: height 0.35s ease;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .collapsing {\n transition: none;\n }\n}\n\n.dropup,\n.dropright,\n.dropdown,\n.dropleft {\n position: relative;\n}\n\n.dropdown-toggle {\n white-space: nowrap;\n}\n\n.dropdown-toggle::after {\n display: inline-block;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n border-top: 0.3em solid;\n border-right: 0.3em solid transparent;\n border-bottom: 0;\n border-left: 0.3em solid transparent;\n}\n\n.dropdown-toggle:empty::after {\n margin-left: 0;\n}\n\n.dropdown-menu {\n position: absolute;\n top: 100%;\n left: 0;\n z-index: 1000;\n display: none;\n float: left;\n min-width: 10rem;\n padding: 0.5rem 0;\n margin: 0.125rem 0 0;\n font-size: 1rem;\n color: #212529;\n text-align: left;\n list-style: none;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid rgba(0, 0, 0, 0.15);\n border-radius: 0.25rem;\n}\n\n.dropdown-menu-left {\n right: auto;\n left: 0;\n}\n\n.dropdown-menu-right {\n right: 0;\n left: auto;\n}\n\n@media (min-width: 576px) {\n .dropdown-menu-sm-left {\n right: auto;\n left: 0;\n }\n .dropdown-menu-sm-right {\n right: 0;\n left: auto;\n }\n}\n\n@media (min-width: 768px) {\n .dropdown-menu-md-left {\n right: auto;\n left: 0;\n }\n .dropdown-menu-md-right {\n right: 0;\n left: auto;\n }\n}\n\n@media (min-width: 992px) {\n .dropdown-menu-lg-left {\n right: auto;\n left: 0;\n }\n .dropdown-menu-lg-right {\n right: 0;\n left: auto;\n }\n}\n\n@media (min-width: 1200px) {\n .dropdown-menu-xl-left {\n right: auto;\n left: 0;\n }\n .dropdown-menu-xl-right {\n right: 0;\n left: auto;\n }\n}\n\n.dropup .dropdown-menu {\n top: auto;\n bottom: 100%;\n margin-top: 0;\n margin-bottom: 0.125rem;\n}\n\n.dropup .dropdown-toggle::after {\n display: inline-block;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n border-top: 0;\n border-right: 0.3em solid transparent;\n border-bottom: 0.3em solid;\n border-left: 0.3em solid transparent;\n}\n\n.dropup .dropdown-toggle:empty::after {\n margin-left: 0;\n}\n\n.dropright .dropdown-menu {\n top: 0;\n right: auto;\n left: 100%;\n margin-top: 0;\n margin-left: 0.125rem;\n}\n\n.dropright .dropdown-toggle::after {\n display: inline-block;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n border-top: 0.3em solid transparent;\n border-right: 0;\n border-bottom: 0.3em solid transparent;\n border-left: 0.3em solid;\n}\n\n.dropright .dropdown-toggle:empty::after {\n margin-left: 0;\n}\n\n.dropright .dropdown-toggle::after {\n vertical-align: 0;\n}\n\n.dropleft .dropdown-menu {\n top: 0;\n right: 100%;\n left: auto;\n margin-top: 0;\n margin-right: 0.125rem;\n}\n\n.dropleft .dropdown-toggle::after {\n display: inline-block;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n}\n\n.dropleft .dropdown-toggle::after {\n display: none;\n}\n\n.dropleft .dropdown-toggle::before {\n display: inline-block;\n margin-right: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n border-top: 0.3em solid transparent;\n border-right: 0.3em solid;\n border-bottom: 0.3em solid transparent;\n}\n\n.dropleft .dropdown-toggle:empty::after {\n margin-left: 0;\n}\n\n.dropleft .dropdown-toggle::before {\n vertical-align: 0;\n}\n\n.dropdown-menu[x-placement^=\"top\"], .dropdown-menu[x-placement^=\"right\"], .dropdown-menu[x-placement^=\"bottom\"], .dropdown-menu[x-placement^=\"left\"] {\n right: auto;\n bottom: auto;\n}\n\n.dropdown-divider {\n height: 0;\n margin: 0.5rem 0;\n overflow: hidden;\n border-top: 1px solid #e9ecef;\n}\n\n.dropdown-item {\n display: block;\n width: 100%;\n padding: 0.25rem 1.5rem;\n clear: both;\n font-weight: 400;\n color: #212529;\n text-align: inherit;\n white-space: nowrap;\n background-color: transparent;\n border: 0;\n}\n\n.dropdown-item:hover, .dropdown-item:focus {\n color: #16181b;\n text-decoration: none;\n background-color: #f8f9fa;\n}\n\n.dropdown-item.active, .dropdown-item:active {\n color: #fff;\n text-decoration: none;\n background-color: #007bff;\n}\n\n.dropdown-item.disabled, .dropdown-item:disabled {\n color: #6c757d;\n pointer-events: none;\n background-color: transparent;\n}\n\n.dropdown-menu.show {\n display: block;\n}\n\n.dropdown-header {\n display: block;\n padding: 0.5rem 1.5rem;\n margin-bottom: 0;\n font-size: 0.875rem;\n color: #6c757d;\n white-space: nowrap;\n}\n\n.dropdown-item-text {\n display: block;\n padding: 0.25rem 1.5rem;\n color: #212529;\n}\n\n.btn-group,\n.btn-group-vertical {\n position: relative;\n display: -ms-inline-flexbox;\n display: inline-flex;\n vertical-align: middle;\n}\n\n.btn-group > .btn,\n.btn-group-vertical > .btn {\n position: relative;\n -ms-flex: 1 1 auto;\n flex: 1 1 auto;\n}\n\n.btn-group > .btn:hover,\n.btn-group-vertical > .btn:hover {\n z-index: 1;\n}\n\n.btn-group > .btn:focus, .btn-group > .btn:active, .btn-group > .btn.active,\n.btn-group-vertical > .btn:focus,\n.btn-group-vertical > .btn:active,\n.btn-group-vertical > .btn.active {\n z-index: 1;\n}\n\n.btn-toolbar {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n -ms-flex-pack: start;\n justify-content: flex-start;\n}\n\n.btn-toolbar .input-group {\n width: auto;\n}\n\n.btn-group > .btn:not(:first-child),\n.btn-group > .btn-group:not(:first-child) {\n margin-left: -1px;\n}\n\n.btn-group > .btn:not(:last-child):not(.dropdown-toggle),\n.btn-group > .btn-group:not(:last-child) > .btn {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n\n.btn-group > .btn:not(:first-child),\n.btn-group > .btn-group:not(:first-child) > .btn {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.dropdown-toggle-split {\n padding-right: 0.5625rem;\n padding-left: 0.5625rem;\n}\n\n.dropdown-toggle-split::after,\n.dropup .dropdown-toggle-split::after,\n.dropright .dropdown-toggle-split::after {\n margin-left: 0;\n}\n\n.dropleft .dropdown-toggle-split::before {\n margin-right: 0;\n}\n\n.btn-sm + .dropdown-toggle-split, .btn-group-sm > .btn + .dropdown-toggle-split {\n padding-right: 0.375rem;\n padding-left: 0.375rem;\n}\n\n.btn-lg + .dropdown-toggle-split, .btn-group-lg > .btn + .dropdown-toggle-split {\n padding-right: 0.75rem;\n padding-left: 0.75rem;\n}\n\n.btn-group-vertical {\n -ms-flex-direction: column;\n flex-direction: column;\n -ms-flex-align: start;\n align-items: flex-start;\n -ms-flex-pack: center;\n justify-content: center;\n}\n\n.btn-group-vertical > .btn,\n.btn-group-vertical > .btn-group {\n width: 100%;\n}\n\n.btn-group-vertical > .btn:not(:first-child),\n.btn-group-vertical > .btn-group:not(:first-child) {\n margin-top: -1px;\n}\n\n.btn-group-vertical > .btn:not(:last-child):not(.dropdown-toggle),\n.btn-group-vertical > .btn-group:not(:last-child) > .btn {\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.btn-group-vertical > .btn:not(:first-child),\n.btn-group-vertical > .btn-group:not(:first-child) > .btn {\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n}\n\n.btn-group-toggle > .btn,\n.btn-group-toggle > .btn-group > .btn {\n margin-bottom: 0;\n}\n\n.btn-group-toggle > .btn input[type=\"radio\"],\n.btn-group-toggle > .btn input[type=\"checkbox\"],\n.btn-group-toggle > .btn-group > .btn input[type=\"radio\"],\n.btn-group-toggle > .btn-group > .btn input[type=\"checkbox\"] {\n position: absolute;\n clip: rect(0, 0, 0, 0);\n pointer-events: none;\n}\n\n.input-group {\n position: relative;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n -ms-flex-align: stretch;\n align-items: stretch;\n width: 100%;\n}\n\n.input-group > .form-control,\n.input-group > .form-control-plaintext,\n.input-group > .custom-select,\n.input-group > .custom-file {\n position: relative;\n -ms-flex: 1 1 auto;\n flex: 1 1 auto;\n width: 1%;\n margin-bottom: 0;\n}\n\n.input-group > .form-control + .form-control,\n.input-group > .form-control + .custom-select,\n.input-group > .form-control + .custom-file,\n.input-group > .form-control-plaintext + .form-control,\n.input-group > .form-control-plaintext + .custom-select,\n.input-group > .form-control-plaintext + .custom-file,\n.input-group > .custom-select + .form-control,\n.input-group > .custom-select + .custom-select,\n.input-group > .custom-select + .custom-file,\n.input-group > .custom-file + .form-control,\n.input-group > .custom-file + .custom-select,\n.input-group > .custom-file + .custom-file {\n margin-left: -1px;\n}\n\n.input-group > .form-control:focus,\n.input-group > .custom-select:focus,\n.input-group > .custom-file .custom-file-input:focus ~ .custom-file-label {\n z-index: 3;\n}\n\n.input-group > .custom-file .custom-file-input:focus {\n z-index: 4;\n}\n\n.input-group > .form-control:not(:last-child),\n.input-group > .custom-select:not(:last-child) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n\n.input-group > .form-control:not(:first-child),\n.input-group > .custom-select:not(:first-child) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.input-group > .custom-file {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-align: center;\n align-items: center;\n}\n\n.input-group > .custom-file:not(:last-child) .custom-file-label,\n.input-group > .custom-file:not(:last-child) .custom-file-label::after {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n\n.input-group > .custom-file:not(:first-child) .custom-file-label {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.input-group-prepend,\n.input-group-append {\n display: -ms-flexbox;\n display: flex;\n}\n\n.input-group-prepend .btn,\n.input-group-append .btn {\n position: relative;\n z-index: 2;\n}\n\n.input-group-prepend .btn:focus,\n.input-group-append .btn:focus {\n z-index: 3;\n}\n\n.input-group-prepend .btn + .btn,\n.input-group-prepend .btn + .input-group-text,\n.input-group-prepend .input-group-text + .input-group-text,\n.input-group-prepend .input-group-text + .btn,\n.input-group-append .btn + .btn,\n.input-group-append .btn + .input-group-text,\n.input-group-append .input-group-text + .input-group-text,\n.input-group-append .input-group-text + .btn {\n margin-left: -1px;\n}\n\n.input-group-prepend {\n margin-right: -1px;\n}\n\n.input-group-append {\n margin-left: -1px;\n}\n\n.input-group-text {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-align: center;\n align-items: center;\n padding: 0.375rem 0.75rem;\n margin-bottom: 0;\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: #495057;\n text-align: center;\n white-space: nowrap;\n background-color: #e9ecef;\n border: 1px solid #ced4da;\n border-radius: 0.25rem;\n}\n\n.input-group-text input[type=\"radio\"],\n.input-group-text input[type=\"checkbox\"] {\n margin-top: 0;\n}\n\n.input-group-lg > .form-control:not(textarea),\n.input-group-lg > .custom-select {\n height: calc(1.5em + 1rem + 2px);\n}\n\n.input-group-lg > .form-control,\n.input-group-lg > .custom-select,\n.input-group-lg > .input-group-prepend > .input-group-text,\n.input-group-lg > .input-group-append > .input-group-text,\n.input-group-lg > .input-group-prepend > .btn,\n.input-group-lg > .input-group-append > .btn {\n padding: 0.5rem 1rem;\n font-size: 1.25rem;\n line-height: 1.5;\n border-radius: 0.3rem;\n}\n\n.input-group-sm > .form-control:not(textarea),\n.input-group-sm > .custom-select {\n height: calc(1.5em + 0.5rem + 2px);\n}\n\n.input-group-sm > .form-control,\n.input-group-sm > .custom-select,\n.input-group-sm > .input-group-prepend > .input-group-text,\n.input-group-sm > .input-group-append > .input-group-text,\n.input-group-sm > .input-group-prepend > .btn,\n.input-group-sm > .input-group-append > .btn {\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem;\n line-height: 1.5;\n border-radius: 0.2rem;\n}\n\n.input-group-lg > .custom-select,\n.input-group-sm > .custom-select {\n padding-right: 1.75rem;\n}\n\n.input-group > .input-group-prepend > .btn,\n.input-group > .input-group-prepend > .input-group-text,\n.input-group > .input-group-append:not(:last-child) > .btn,\n.input-group > .input-group-append:not(:last-child) > .input-group-text,\n.input-group > .input-group-append:last-child > .btn:not(:last-child):not(.dropdown-toggle),\n.input-group > .input-group-append:last-child > .input-group-text:not(:last-child) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n\n.input-group > .input-group-append > .btn,\n.input-group > .input-group-append > .input-group-text,\n.input-group > .input-group-prepend:not(:first-child) > .btn,\n.input-group > .input-group-prepend:not(:first-child) > .input-group-text,\n.input-group > .input-group-prepend:first-child > .btn:not(:first-child),\n.input-group > .input-group-prepend:first-child > .input-group-text:not(:first-child) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.custom-control {\n position: relative;\n display: block;\n min-height: 1.5rem;\n padding-left: 1.5rem;\n}\n\n.custom-control-inline {\n display: -ms-inline-flexbox;\n display: inline-flex;\n margin-right: 1rem;\n}\n\n.custom-control-input {\n position: absolute;\n z-index: -1;\n opacity: 0;\n}\n\n.custom-control-input:checked ~ .custom-control-label::before {\n color: #fff;\n border-color: #007bff;\n background-color: #007bff;\n}\n\n.custom-control-input:focus ~ .custom-control-label::before {\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-control-input:focus:not(:checked) ~ .custom-control-label::before {\n border-color: #80bdff;\n}\n\n.custom-control-input:not(:disabled):active ~ .custom-control-label::before {\n color: #fff;\n background-color: #b3d7ff;\n border-color: #b3d7ff;\n}\n\n.custom-control-input:disabled ~ .custom-control-label {\n color: #6c757d;\n}\n\n.custom-control-input:disabled ~ .custom-control-label::before {\n background-color: #e9ecef;\n}\n\n.custom-control-label {\n position: relative;\n margin-bottom: 0;\n vertical-align: top;\n}\n\n.custom-control-label::before {\n position: absolute;\n top: 0.25rem;\n left: -1.5rem;\n display: block;\n width: 1rem;\n height: 1rem;\n pointer-events: none;\n content: \"\";\n background-color: #fff;\n border: #adb5bd solid 1px;\n}\n\n.custom-control-label::after {\n position: absolute;\n top: 0.25rem;\n left: -1.5rem;\n display: block;\n width: 1rem;\n height: 1rem;\n content: \"\";\n background: no-repeat 50% / 50% 50%;\n}\n\n.custom-checkbox .custom-control-label::before {\n border-radius: 0.25rem;\n}\n\n.custom-checkbox .custom-control-input:checked ~ .custom-control-label::after {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3e%3c/svg%3e\");\n}\n\n.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::before {\n border-color: #007bff;\n background-color: #007bff;\n}\n\n.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::after {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 4'%3e%3cpath stroke='%23fff' d='M0 2h4'/%3e%3c/svg%3e\");\n}\n\n.custom-checkbox .custom-control-input:disabled:checked ~ .custom-control-label::before {\n background-color: rgba(0, 123, 255, 0.5);\n}\n\n.custom-checkbox .custom-control-input:disabled:indeterminate ~ .custom-control-label::before {\n background-color: rgba(0, 123, 255, 0.5);\n}\n\n.custom-radio .custom-control-label::before {\n border-radius: 50%;\n}\n\n.custom-radio .custom-control-input:checked ~ .custom-control-label::after {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e\");\n}\n\n.custom-radio .custom-control-input:disabled:checked ~ .custom-control-label::before {\n background-color: rgba(0, 123, 255, 0.5);\n}\n\n.custom-switch {\n padding-left: 2.25rem;\n}\n\n.custom-switch .custom-control-label::before {\n left: -2.25rem;\n width: 1.75rem;\n pointer-events: all;\n border-radius: 0.5rem;\n}\n\n.custom-switch .custom-control-label::after {\n top: calc(0.25rem + 2px);\n left: calc(-2.25rem + 2px);\n width: calc(1rem - 4px);\n height: calc(1rem - 4px);\n background-color: #adb5bd;\n border-radius: 0.5rem;\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, -webkit-transform 0.15s ease-in-out;\n transition: transform 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n transition: transform 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, -webkit-transform 0.15s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .custom-switch .custom-control-label::after {\n transition: none;\n }\n}\n\n.custom-switch .custom-control-input:checked ~ .custom-control-label::after {\n background-color: #fff;\n -webkit-transform: translateX(0.75rem);\n transform: translateX(0.75rem);\n}\n\n.custom-switch .custom-control-input:disabled:checked ~ .custom-control-label::before {\n background-color: rgba(0, 123, 255, 0.5);\n}\n\n.custom-select {\n display: inline-block;\n width: 100%;\n height: calc(1.5em + 0.75rem + 2px);\n padding: 0.375rem 1.75rem 0.375rem 0.75rem;\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: #495057;\n vertical-align: middle;\n background: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e\") no-repeat right 0.75rem center/8px 10px;\n background-color: #fff;\n border: 1px solid #ced4da;\n border-radius: 0.25rem;\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n}\n\n.custom-select:focus {\n border-color: #80bdff;\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-select:focus::-ms-value {\n color: #495057;\n background-color: #fff;\n}\n\n.custom-select[multiple], .custom-select[size]:not([size=\"1\"]) {\n height: auto;\n padding-right: 0.75rem;\n background-image: none;\n}\n\n.custom-select:disabled {\n color: #6c757d;\n background-color: #e9ecef;\n}\n\n.custom-select::-ms-expand {\n display: none;\n}\n\n.custom-select-sm {\n height: calc(1.5em + 0.5rem + 2px);\n padding-top: 0.25rem;\n padding-bottom: 0.25rem;\n padding-left: 0.5rem;\n font-size: 0.875rem;\n}\n\n.custom-select-lg {\n height: calc(1.5em + 1rem + 2px);\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n padding-left: 1rem;\n font-size: 1.25rem;\n}\n\n.custom-file {\n position: relative;\n display: inline-block;\n width: 100%;\n height: calc(1.5em + 0.75rem + 2px);\n margin-bottom: 0;\n}\n\n.custom-file-input {\n position: relative;\n z-index: 2;\n width: 100%;\n height: calc(1.5em + 0.75rem + 2px);\n margin: 0;\n opacity: 0;\n}\n\n.custom-file-input:focus ~ .custom-file-label {\n border-color: #80bdff;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-file-input:disabled ~ .custom-file-label {\n background-color: #e9ecef;\n}\n\n.custom-file-input:lang(en) ~ .custom-file-label::after {\n content: \"Browse\";\n}\n\n.custom-file-input ~ .custom-file-label[data-browse]::after {\n content: attr(data-browse);\n}\n\n.custom-file-label {\n position: absolute;\n top: 0;\n right: 0;\n left: 0;\n z-index: 1;\n height: calc(1.5em + 0.75rem + 2px);\n padding: 0.375rem 0.75rem;\n font-weight: 400;\n line-height: 1.5;\n color: #495057;\n background-color: #fff;\n border: 1px solid #ced4da;\n border-radius: 0.25rem;\n}\n\n.custom-file-label::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n z-index: 3;\n display: block;\n height: calc(1.5em + 0.75rem);\n padding: 0.375rem 0.75rem;\n line-height: 1.5;\n color: #495057;\n content: \"Browse\";\n background-color: #e9ecef;\n border-left: inherit;\n border-radius: 0 0.25rem 0.25rem 0;\n}\n\n.custom-range {\n width: 100%;\n height: calc(1rem + 0.4rem);\n padding: 0;\n background-color: transparent;\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n}\n\n.custom-range:focus {\n outline: none;\n}\n\n.custom-range:focus::-webkit-slider-thumb {\n box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-range:focus::-moz-range-thumb {\n box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-range:focus::-ms-thumb {\n box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-range::-moz-focus-outer {\n border: 0;\n}\n\n.custom-range::-webkit-slider-thumb {\n width: 1rem;\n height: 1rem;\n margin-top: -0.25rem;\n background-color: #007bff;\n border: 0;\n border-radius: 1rem;\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n -webkit-appearance: none;\n appearance: none;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .custom-range::-webkit-slider-thumb {\n transition: none;\n }\n}\n\n.custom-range::-webkit-slider-thumb:active {\n background-color: #b3d7ff;\n}\n\n.custom-range::-webkit-slider-runnable-track {\n width: 100%;\n height: 0.5rem;\n color: transparent;\n cursor: pointer;\n background-color: #dee2e6;\n border-color: transparent;\n border-radius: 1rem;\n}\n\n.custom-range::-moz-range-thumb {\n width: 1rem;\n height: 1rem;\n background-color: #007bff;\n border: 0;\n border-radius: 1rem;\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n -moz-appearance: none;\n appearance: none;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .custom-range::-moz-range-thumb {\n transition: none;\n }\n}\n\n.custom-range::-moz-range-thumb:active {\n background-color: #b3d7ff;\n}\n\n.custom-range::-moz-range-track {\n width: 100%;\n height: 0.5rem;\n color: transparent;\n cursor: pointer;\n background-color: #dee2e6;\n border-color: transparent;\n border-radius: 1rem;\n}\n\n.custom-range::-ms-thumb {\n width: 1rem;\n height: 1rem;\n margin-top: 0;\n margin-right: 0.2rem;\n margin-left: 0.2rem;\n background-color: #007bff;\n border: 0;\n border-radius: 1rem;\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n appearance: none;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .custom-range::-ms-thumb {\n transition: none;\n }\n}\n\n.custom-range::-ms-thumb:active {\n background-color: #b3d7ff;\n}\n\n.custom-range::-ms-track {\n width: 100%;\n height: 0.5rem;\n color: transparent;\n cursor: pointer;\n background-color: transparent;\n border-color: transparent;\n border-width: 0.5rem;\n}\n\n.custom-range::-ms-fill-lower {\n background-color: #dee2e6;\n border-radius: 1rem;\n}\n\n.custom-range::-ms-fill-upper {\n margin-right: 15px;\n background-color: #dee2e6;\n border-radius: 1rem;\n}\n\n.custom-range:disabled::-webkit-slider-thumb {\n background-color: #adb5bd;\n}\n\n.custom-range:disabled::-webkit-slider-runnable-track {\n cursor: default;\n}\n\n.custom-range:disabled::-moz-range-thumb {\n background-color: #adb5bd;\n}\n\n.custom-range:disabled::-moz-range-track {\n cursor: default;\n}\n\n.custom-range:disabled::-ms-thumb {\n background-color: #adb5bd;\n}\n\n.custom-control-label::before,\n.custom-file-label,\n.custom-select {\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .custom-control-label::before,\n .custom-file-label,\n .custom-select {\n transition: none;\n }\n}\n\n.nav {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n padding-left: 0;\n margin-bottom: 0;\n list-style: none;\n}\n\n.nav-link {\n display: block;\n padding: 0.5rem 1rem;\n}\n\n.nav-link:hover, .nav-link:focus {\n text-decoration: none;\n}\n\n.nav-link.disabled {\n color: #6c757d;\n pointer-events: none;\n cursor: default;\n}\n\n.nav-tabs {\n border-bottom: 1px solid #dee2e6;\n}\n\n.nav-tabs .nav-item {\n margin-bottom: -1px;\n}\n\n.nav-tabs .nav-link {\n border: 1px solid transparent;\n border-top-left-radius: 0.25rem;\n border-top-right-radius: 0.25rem;\n}\n\n.nav-tabs .nav-link:hover, .nav-tabs .nav-link:focus {\n border-color: #e9ecef #e9ecef #dee2e6;\n}\n\n.nav-tabs .nav-link.disabled {\n color: #6c757d;\n background-color: transparent;\n border-color: transparent;\n}\n\n.nav-tabs .nav-link.active,\n.nav-tabs .nav-item.show .nav-link {\n color: #495057;\n background-color: #fff;\n border-color: #dee2e6 #dee2e6 #fff;\n}\n\n.nav-tabs .dropdown-menu {\n margin-top: -1px;\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n}\n\n.nav-pills .nav-link {\n border-radius: 0.25rem;\n}\n\n.nav-pills .nav-link.active,\n.nav-pills .show > .nav-link {\n color: #fff;\n background-color: #007bff;\n}\n\n.nav-fill .nav-item {\n -ms-flex: 1 1 auto;\n flex: 1 1 auto;\n text-align: center;\n}\n\n.nav-justified .nav-item {\n -ms-flex-preferred-size: 0;\n flex-basis: 0;\n -ms-flex-positive: 1;\n flex-grow: 1;\n text-align: center;\n}\n\n.tab-content > .tab-pane {\n display: none;\n}\n\n.tab-content > .active {\n display: block;\n}\n\n.navbar {\n position: relative;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n -ms-flex-align: center;\n align-items: center;\n -ms-flex-pack: justify;\n justify-content: space-between;\n padding: 0.5rem 1rem;\n}\n\n.navbar > .container,\n.navbar > .container-fluid {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n -ms-flex-align: center;\n align-items: center;\n -ms-flex-pack: justify;\n justify-content: space-between;\n}\n\n.navbar-brand {\n display: inline-block;\n padding-top: 0.3125rem;\n padding-bottom: 0.3125rem;\n margin-right: 1rem;\n font-size: 1.25rem;\n line-height: inherit;\n white-space: nowrap;\n}\n\n.navbar-brand:hover, .navbar-brand:focus {\n text-decoration: none;\n}\n\n.navbar-nav {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-direction: column;\n flex-direction: column;\n padding-left: 0;\n margin-bottom: 0;\n list-style: none;\n}\n\n.navbar-nav .nav-link {\n padding-right: 0;\n padding-left: 0;\n}\n\n.navbar-nav .dropdown-menu {\n position: static;\n float: none;\n}\n\n.navbar-text {\n display: inline-block;\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n}\n\n.navbar-collapse {\n -ms-flex-preferred-size: 100%;\n flex-basis: 100%;\n -ms-flex-positive: 1;\n flex-grow: 1;\n -ms-flex-align: center;\n align-items: center;\n}\n\n.navbar-toggler {\n padding: 0.25rem 0.75rem;\n font-size: 1.25rem;\n line-height: 1;\n background-color: transparent;\n border: 1px solid transparent;\n border-radius: 0.25rem;\n}\n\n.navbar-toggler:hover, .navbar-toggler:focus {\n text-decoration: none;\n}\n\n.navbar-toggler-icon {\n display: inline-block;\n width: 1.5em;\n height: 1.5em;\n vertical-align: middle;\n content: \"\";\n background: no-repeat center center;\n background-size: 100% 100%;\n}\n\n@media (max-width: 575.98px) {\n .navbar-expand-sm > .container,\n .navbar-expand-sm > .container-fluid {\n padding-right: 0;\n padding-left: 0;\n }\n}\n\n@media (min-width: 576px) {\n .navbar-expand-sm {\n -ms-flex-flow: row nowrap;\n flex-flow: row nowrap;\n -ms-flex-pack: start;\n justify-content: flex-start;\n }\n .navbar-expand-sm .navbar-nav {\n -ms-flex-direction: row;\n flex-direction: row;\n }\n .navbar-expand-sm .navbar-nav .dropdown-menu {\n position: absolute;\n }\n .navbar-expand-sm .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n }\n .navbar-expand-sm > .container,\n .navbar-expand-sm > .container-fluid {\n -ms-flex-wrap: nowrap;\n flex-wrap: nowrap;\n }\n .navbar-expand-sm .navbar-collapse {\n display: -ms-flexbox !important;\n display: flex !important;\n -ms-flex-preferred-size: auto;\n flex-basis: auto;\n }\n .navbar-expand-sm .navbar-toggler {\n display: none;\n }\n}\n\n@media (max-width: 767.98px) {\n .navbar-expand-md > .container,\n .navbar-expand-md > .container-fluid {\n padding-right: 0;\n padding-left: 0;\n }\n}\n\n@media (min-width: 768px) {\n .navbar-expand-md {\n -ms-flex-flow: row nowrap;\n flex-flow: row nowrap;\n -ms-flex-pack: start;\n justify-content: flex-start;\n }\n .navbar-expand-md .navbar-nav {\n -ms-flex-direction: row;\n flex-direction: row;\n }\n .navbar-expand-md .navbar-nav .dropdown-menu {\n position: absolute;\n }\n .navbar-expand-md .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n }\n .navbar-expand-md > .container,\n .navbar-expand-md > .container-fluid {\n -ms-flex-wrap: nowrap;\n flex-wrap: nowrap;\n }\n .navbar-expand-md .navbar-collapse {\n display: -ms-flexbox !important;\n display: flex !important;\n -ms-flex-preferred-size: auto;\n flex-basis: auto;\n }\n .navbar-expand-md .navbar-toggler {\n display: none;\n }\n}\n\n@media (max-width: 991.98px) {\n .navbar-expand-lg > .container,\n .navbar-expand-lg > .container-fluid {\n padding-right: 0;\n padding-left: 0;\n }\n}\n\n@media (min-width: 992px) {\n .navbar-expand-lg {\n -ms-flex-flow: row nowrap;\n flex-flow: row nowrap;\n -ms-flex-pack: start;\n justify-content: flex-start;\n }\n .navbar-expand-lg .navbar-nav {\n -ms-flex-direction: row;\n flex-direction: row;\n }\n .navbar-expand-lg .navbar-nav .dropdown-menu {\n position: absolute;\n }\n .navbar-expand-lg .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n }\n .navbar-expand-lg > .container,\n .navbar-expand-lg > .container-fluid {\n -ms-flex-wrap: nowrap;\n flex-wrap: nowrap;\n }\n .navbar-expand-lg .navbar-collapse {\n display: -ms-flexbox !important;\n display: flex !important;\n -ms-flex-preferred-size: auto;\n flex-basis: auto;\n }\n .navbar-expand-lg .navbar-toggler {\n display: none;\n }\n}\n\n@media (max-width: 1199.98px) {\n .navbar-expand-xl > .container,\n .navbar-expand-xl > .container-fluid {\n padding-right: 0;\n padding-left: 0;\n }\n}\n\n@media (min-width: 1200px) {\n .navbar-expand-xl {\n -ms-flex-flow: row nowrap;\n flex-flow: row nowrap;\n -ms-flex-pack: start;\n justify-content: flex-start;\n }\n .navbar-expand-xl .navbar-nav {\n -ms-flex-direction: row;\n flex-direction: row;\n }\n .navbar-expand-xl .navbar-nav .dropdown-menu {\n position: absolute;\n }\n .navbar-expand-xl .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n }\n .navbar-expand-xl > .container,\n .navbar-expand-xl > .container-fluid {\n -ms-flex-wrap: nowrap;\n flex-wrap: nowrap;\n }\n .navbar-expand-xl .navbar-collapse {\n display: -ms-flexbox !important;\n display: flex !important;\n -ms-flex-preferred-size: auto;\n flex-basis: auto;\n }\n .navbar-expand-xl .navbar-toggler {\n display: none;\n }\n}\n\n.navbar-expand {\n -ms-flex-flow: row nowrap;\n flex-flow: row nowrap;\n -ms-flex-pack: start;\n justify-content: flex-start;\n}\n\n.navbar-expand > .container,\n.navbar-expand > .container-fluid {\n padding-right: 0;\n padding-left: 0;\n}\n\n.navbar-expand .navbar-nav {\n -ms-flex-direction: row;\n flex-direction: row;\n}\n\n.navbar-expand .navbar-nav .dropdown-menu {\n position: absolute;\n}\n\n.navbar-expand .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n}\n\n.navbar-expand > .container,\n.navbar-expand > .container-fluid {\n -ms-flex-wrap: nowrap;\n flex-wrap: nowrap;\n}\n\n.navbar-expand .navbar-collapse {\n display: -ms-flexbox !important;\n display: flex !important;\n -ms-flex-preferred-size: auto;\n flex-basis: auto;\n}\n\n.navbar-expand .navbar-toggler {\n display: none;\n}\n\n.navbar-light .navbar-brand {\n color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-light .navbar-brand:hover, .navbar-light .navbar-brand:focus {\n color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-light .navbar-nav .nav-link {\n color: rgba(0, 0, 0, 0.5);\n}\n\n.navbar-light .navbar-nav .nav-link:hover, .navbar-light .navbar-nav .nav-link:focus {\n color: rgba(0, 0, 0, 0.7);\n}\n\n.navbar-light .navbar-nav .nav-link.disabled {\n color: rgba(0, 0, 0, 0.3);\n}\n\n.navbar-light .navbar-nav .show > .nav-link,\n.navbar-light .navbar-nav .active > .nav-link,\n.navbar-light .navbar-nav .nav-link.show,\n.navbar-light .navbar-nav .nav-link.active {\n color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-light .navbar-toggler {\n color: rgba(0, 0, 0, 0.5);\n border-color: rgba(0, 0, 0, 0.1);\n}\n\n.navbar-light .navbar-toggler-icon {\n background-image: url(\"data:image/svg+xml,%3csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3e%3cpath stroke='rgba(0, 0, 0, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e\");\n}\n\n.navbar-light .navbar-text {\n color: rgba(0, 0, 0, 0.5);\n}\n\n.navbar-light .navbar-text a {\n color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-light .navbar-text a:hover, .navbar-light .navbar-text a:focus {\n color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-dark .navbar-brand {\n color: #fff;\n}\n\n.navbar-dark .navbar-brand:hover, .navbar-dark .navbar-brand:focus {\n color: #fff;\n}\n\n.navbar-dark .navbar-nav .nav-link {\n color: rgba(255, 255, 255, 0.5);\n}\n\n.navbar-dark .navbar-nav .nav-link:hover, .navbar-dark .navbar-nav .nav-link:focus {\n color: rgba(255, 255, 255, 0.75);\n}\n\n.navbar-dark .navbar-nav .nav-link.disabled {\n color: rgba(255, 255, 255, 0.25);\n}\n\n.navbar-dark .navbar-nav .show > .nav-link,\n.navbar-dark .navbar-nav .active > .nav-link,\n.navbar-dark .navbar-nav .nav-link.show,\n.navbar-dark .navbar-nav .nav-link.active {\n color: #fff;\n}\n\n.navbar-dark .navbar-toggler {\n color: rgba(255, 255, 255, 0.5);\n border-color: rgba(255, 255, 255, 0.1);\n}\n\n.navbar-dark .navbar-toggler-icon {\n background-image: url(\"data:image/svg+xml,%3csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3e%3cpath stroke='rgba(255, 255, 255, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e\");\n}\n\n.navbar-dark .navbar-text {\n color: rgba(255, 255, 255, 0.5);\n}\n\n.navbar-dark .navbar-text a {\n color: #fff;\n}\n\n.navbar-dark .navbar-text a:hover, .navbar-dark .navbar-text a:focus {\n color: #fff;\n}\n\n.card {\n position: relative;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-direction: column;\n flex-direction: column;\n min-width: 0;\n word-wrap: break-word;\n background-color: #fff;\n background-clip: border-box;\n border: 1px solid rgba(0, 0, 0, 0.125);\n border-radius: 0.25rem;\n}\n\n.card > hr {\n margin-right: 0;\n margin-left: 0;\n}\n\n.card > .list-group:first-child .list-group-item:first-child {\n border-top-left-radius: 0.25rem;\n border-top-right-radius: 0.25rem;\n}\n\n.card > .list-group:last-child .list-group-item:last-child {\n border-bottom-right-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem;\n}\n\n.card-body {\n -ms-flex: 1 1 auto;\n flex: 1 1 auto;\n padding: 1.25rem;\n}\n\n.card-title {\n margin-bottom: 0.75rem;\n}\n\n.card-subtitle {\n margin-top: -0.375rem;\n margin-bottom: 0;\n}\n\n.card-text:last-child {\n margin-bottom: 0;\n}\n\n.card-link:hover {\n text-decoration: none;\n}\n\n.card-link + .card-link {\n margin-left: 1.25rem;\n}\n\n.card-header {\n padding: 0.75rem 1.25rem;\n margin-bottom: 0;\n background-color: rgba(0, 0, 0, 0.03);\n border-bottom: 1px solid rgba(0, 0, 0, 0.125);\n}\n\n.card-header:first-child {\n border-radius: calc(0.25rem - 1px) calc(0.25rem - 1px) 0 0;\n}\n\n.card-header + .list-group .list-group-item:first-child {\n border-top: 0;\n}\n\n.card-footer {\n padding: 0.75rem 1.25rem;\n background-color: rgba(0, 0, 0, 0.03);\n border-top: 1px solid rgba(0, 0, 0, 0.125);\n}\n\n.card-footer:last-child {\n border-radius: 0 0 calc(0.25rem - 1px) calc(0.25rem - 1px);\n}\n\n.card-header-tabs {\n margin-right: -0.625rem;\n margin-bottom: -0.75rem;\n margin-left: -0.625rem;\n border-bottom: 0;\n}\n\n.card-header-pills {\n margin-right: -0.625rem;\n margin-left: -0.625rem;\n}\n\n.card-img-overlay {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n padding: 1.25rem;\n}\n\n.card-img {\n width: 100%;\n border-radius: calc(0.25rem - 1px);\n}\n\n.card-img-top {\n width: 100%;\n border-top-left-radius: calc(0.25rem - 1px);\n border-top-right-radius: calc(0.25rem - 1px);\n}\n\n.card-img-bottom {\n width: 100%;\n border-bottom-right-radius: calc(0.25rem - 1px);\n border-bottom-left-radius: calc(0.25rem - 1px);\n}\n\n.card-deck {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-direction: column;\n flex-direction: column;\n}\n\n.card-deck .card {\n margin-bottom: 15px;\n}\n\n@media (min-width: 576px) {\n .card-deck {\n -ms-flex-flow: row wrap;\n flex-flow: row wrap;\n margin-right: -15px;\n margin-left: -15px;\n }\n .card-deck .card {\n display: -ms-flexbox;\n display: flex;\n -ms-flex: 1 0 0%;\n flex: 1 0 0%;\n -ms-flex-direction: column;\n flex-direction: column;\n margin-right: 15px;\n margin-bottom: 0;\n margin-left: 15px;\n }\n}\n\n.card-group {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-direction: column;\n flex-direction: column;\n}\n\n.card-group > .card {\n margin-bottom: 15px;\n}\n\n@media (min-width: 576px) {\n .card-group {\n -ms-flex-flow: row wrap;\n flex-flow: row wrap;\n }\n .card-group > .card {\n -ms-flex: 1 0 0%;\n flex: 1 0 0%;\n margin-bottom: 0;\n }\n .card-group > .card + .card {\n margin-left: 0;\n border-left: 0;\n }\n .card-group > .card:not(:last-child) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n }\n .card-group > .card:not(:last-child) .card-img-top,\n .card-group > .card:not(:last-child) .card-header {\n border-top-right-radius: 0;\n }\n .card-group > .card:not(:last-child) .card-img-bottom,\n .card-group > .card:not(:last-child) .card-footer {\n border-bottom-right-radius: 0;\n }\n .card-group > .card:not(:first-child) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n }\n .card-group > .card:not(:first-child) .card-img-top,\n .card-group > .card:not(:first-child) .card-header {\n border-top-left-radius: 0;\n }\n .card-group > .card:not(:first-child) .card-img-bottom,\n .card-group > .card:not(:first-child) .card-footer {\n border-bottom-left-radius: 0;\n }\n}\n\n.card-columns .card {\n margin-bottom: 0.75rem;\n}\n\n@media (min-width: 576px) {\n .card-columns {\n -webkit-column-count: 3;\n -moz-column-count: 3;\n column-count: 3;\n -webkit-column-gap: 1.25rem;\n -moz-column-gap: 1.25rem;\n column-gap: 1.25rem;\n orphans: 1;\n widows: 1;\n }\n .card-columns .card {\n display: inline-block;\n width: 100%;\n }\n}\n\n.accordion > .card {\n overflow: hidden;\n}\n\n.accordion > .card:not(:first-of-type) .card-header:first-child {\n border-radius: 0;\n}\n\n.accordion > .card:not(:first-of-type):not(:last-of-type) {\n border-bottom: 0;\n border-radius: 0;\n}\n\n.accordion > .card:first-of-type {\n border-bottom: 0;\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.accordion > .card:last-of-type {\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n}\n\n.accordion > .card .card-header {\n margin-bottom: -1px;\n}\n\n.breadcrumb {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n padding: 0.75rem 1rem;\n margin-bottom: 1rem;\n list-style: none;\n background-color: #e9ecef;\n border-radius: 0.25rem;\n}\n\n.breadcrumb-item + .breadcrumb-item {\n padding-left: 0.5rem;\n}\n\n.breadcrumb-item + .breadcrumb-item::before {\n display: inline-block;\n padding-right: 0.5rem;\n color: #6c757d;\n content: \"/\";\n}\n\n.breadcrumb-item + .breadcrumb-item:hover::before {\n text-decoration: underline;\n}\n\n.breadcrumb-item + .breadcrumb-item:hover::before {\n text-decoration: none;\n}\n\n.breadcrumb-item.active {\n color: #6c757d;\n}\n\n.pagination {\n display: -ms-flexbox;\n display: flex;\n padding-left: 0;\n list-style: none;\n border-radius: 0.25rem;\n}\n\n.page-link {\n position: relative;\n display: block;\n padding: 0.5rem 0.75rem;\n margin-left: -1px;\n line-height: 1.25;\n color: #007bff;\n background-color: #fff;\n border: 1px solid #dee2e6;\n}\n\n.page-link:hover {\n z-index: 2;\n color: #0056b3;\n text-decoration: none;\n background-color: #e9ecef;\n border-color: #dee2e6;\n}\n\n.page-link:focus {\n z-index: 2;\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.page-item:first-child .page-link {\n margin-left: 0;\n border-top-left-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem;\n}\n\n.page-item:last-child .page-link {\n border-top-right-radius: 0.25rem;\n border-bottom-right-radius: 0.25rem;\n}\n\n.page-item.active .page-link {\n z-index: 1;\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.page-item.disabled .page-link {\n color: #6c757d;\n pointer-events: none;\n cursor: auto;\n background-color: #fff;\n border-color: #dee2e6;\n}\n\n.pagination-lg .page-link {\n padding: 0.75rem 1.5rem;\n font-size: 1.25rem;\n line-height: 1.5;\n}\n\n.pagination-lg .page-item:first-child .page-link {\n border-top-left-radius: 0.3rem;\n border-bottom-left-radius: 0.3rem;\n}\n\n.pagination-lg .page-item:last-child .page-link {\n border-top-right-radius: 0.3rem;\n border-bottom-right-radius: 0.3rem;\n}\n\n.pagination-sm .page-link {\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem;\n line-height: 1.5;\n}\n\n.pagination-sm .page-item:first-child .page-link {\n border-top-left-radius: 0.2rem;\n border-bottom-left-radius: 0.2rem;\n}\n\n.pagination-sm .page-item:last-child .page-link {\n border-top-right-radius: 0.2rem;\n border-bottom-right-radius: 0.2rem;\n}\n\n.badge {\n display: inline-block;\n padding: 0.25em 0.4em;\n font-size: 75%;\n font-weight: 700;\n line-height: 1;\n text-align: center;\n white-space: nowrap;\n vertical-align: baseline;\n border-radius: 0.25rem;\n transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .badge {\n transition: none;\n }\n}\n\na.badge:hover, a.badge:focus {\n text-decoration: none;\n}\n\n.badge:empty {\n display: none;\n}\n\n.btn .badge {\n position: relative;\n top: -1px;\n}\n\n.badge-pill {\n padding-right: 0.6em;\n padding-left: 0.6em;\n border-radius: 10rem;\n}\n\n.badge-primary {\n color: #fff;\n background-color: #007bff;\n}\n\na.badge-primary:hover, a.badge-primary:focus {\n color: #fff;\n background-color: #0062cc;\n}\n\na.badge-primary:focus, a.badge-primary.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5);\n}\n\n.badge-secondary {\n color: #fff;\n background-color: #6c757d;\n}\n\na.badge-secondary:hover, a.badge-secondary:focus {\n color: #fff;\n background-color: #545b62;\n}\n\na.badge-secondary:focus, a.badge-secondary.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5);\n}\n\n.badge-success {\n color: #fff;\n background-color: #28a745;\n}\n\na.badge-success:hover, a.badge-success:focus {\n color: #fff;\n background-color: #1e7e34;\n}\n\na.badge-success:focus, a.badge-success.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5);\n}\n\n.badge-info {\n color: #fff;\n background-color: #17a2b8;\n}\n\na.badge-info:hover, a.badge-info:focus {\n color: #fff;\n background-color: #117a8b;\n}\n\na.badge-info:focus, a.badge-info.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);\n}\n\n.badge-warning {\n color: #212529;\n background-color: #ffc107;\n}\n\na.badge-warning:hover, a.badge-warning:focus {\n color: #212529;\n background-color: #d39e00;\n}\n\na.badge-warning:focus, a.badge-warning.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);\n}\n\n.badge-danger {\n color: #fff;\n background-color: #dc3545;\n}\n\na.badge-danger:hover, a.badge-danger:focus {\n color: #fff;\n background-color: #bd2130;\n}\n\na.badge-danger:focus, a.badge-danger.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);\n}\n\n.badge-light {\n color: #212529;\n background-color: #f8f9fa;\n}\n\na.badge-light:hover, a.badge-light:focus {\n color: #212529;\n background-color: #dae0e5;\n}\n\na.badge-light:focus, a.badge-light.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);\n}\n\n.badge-dark {\n color: #fff;\n background-color: #343a40;\n}\n\na.badge-dark:hover, a.badge-dark:focus {\n color: #fff;\n background-color: #1d2124;\n}\n\na.badge-dark:focus, a.badge-dark.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);\n}\n\n.jumbotron {\n padding: 2rem 1rem;\n margin-bottom: 2rem;\n background-color: #e9ecef;\n border-radius: 0.3rem;\n}\n\n@media (min-width: 576px) {\n .jumbotron {\n padding: 4rem 2rem;\n }\n}\n\n.jumbotron-fluid {\n padding-right: 0;\n padding-left: 0;\n border-radius: 0;\n}\n\n.alert {\n position: relative;\n padding: 0.75rem 1.25rem;\n margin-bottom: 1rem;\n border: 1px solid transparent;\n border-radius: 0.25rem;\n}\n\n.alert-heading {\n color: inherit;\n}\n\n.alert-link {\n font-weight: 700;\n}\n\n.alert-dismissible {\n padding-right: 4rem;\n}\n\n.alert-dismissible .close {\n position: absolute;\n top: 0;\n right: 0;\n padding: 0.75rem 1.25rem;\n color: inherit;\n}\n\n.alert-primary {\n color: #004085;\n background-color: #cce5ff;\n border-color: #b8daff;\n}\n\n.alert-primary hr {\n border-top-color: #9fcdff;\n}\n\n.alert-primary .alert-link {\n color: #002752;\n}\n\n.alert-secondary {\n color: #383d41;\n background-color: #e2e3e5;\n border-color: #d6d8db;\n}\n\n.alert-secondary hr {\n border-top-color: #c8cbcf;\n}\n\n.alert-secondary .alert-link {\n color: #202326;\n}\n\n.alert-success {\n color: #155724;\n background-color: #d4edda;\n border-color: #c3e6cb;\n}\n\n.alert-success hr {\n border-top-color: #b1dfbb;\n}\n\n.alert-success .alert-link {\n color: #0b2e13;\n}\n\n.alert-info {\n color: #0c5460;\n background-color: #d1ecf1;\n border-color: #bee5eb;\n}\n\n.alert-info hr {\n border-top-color: #abdde5;\n}\n\n.alert-info .alert-link {\n color: #062c33;\n}\n\n.alert-warning {\n color: #856404;\n background-color: #fff3cd;\n border-color: #ffeeba;\n}\n\n.alert-warning hr {\n border-top-color: #ffe8a1;\n}\n\n.alert-warning .alert-link {\n color: #533f03;\n}\n\n.alert-danger {\n color: #721c24;\n background-color: #f8d7da;\n border-color: #f5c6cb;\n}\n\n.alert-danger hr {\n border-top-color: #f1b0b7;\n}\n\n.alert-danger .alert-link {\n color: #491217;\n}\n\n.alert-light {\n color: #818182;\n background-color: #fefefe;\n border-color: #fdfdfe;\n}\n\n.alert-light hr {\n border-top-color: #ececf6;\n}\n\n.alert-light .alert-link {\n color: #686868;\n}\n\n.alert-dark {\n color: #1b1e21;\n background-color: #d6d8d9;\n border-color: #c6c8ca;\n}\n\n.alert-dark hr {\n border-top-color: #b9bbbe;\n}\n\n.alert-dark .alert-link {\n color: #040505;\n}\n\n@-webkit-keyframes progress-bar-stripes {\n from {\n background-position: 1rem 0;\n }\n to {\n background-position: 0 0;\n }\n}\n\n@keyframes progress-bar-stripes {\n from {\n background-position: 1rem 0;\n }\n to {\n background-position: 0 0;\n }\n}\n\n.progress {\n display: -ms-flexbox;\n display: flex;\n height: 1rem;\n overflow: hidden;\n font-size: 0.75rem;\n background-color: #e9ecef;\n border-radius: 0.25rem;\n}\n\n.progress-bar {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-direction: column;\n flex-direction: column;\n -ms-flex-pack: center;\n justify-content: center;\n color: #fff;\n text-align: center;\n white-space: nowrap;\n background-color: #007bff;\n transition: width 0.6s ease;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .progress-bar {\n transition: none;\n }\n}\n\n.progress-bar-striped {\n background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-size: 1rem 1rem;\n}\n\n.progress-bar-animated {\n -webkit-animation: progress-bar-stripes 1s linear infinite;\n animation: progress-bar-stripes 1s linear infinite;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .progress-bar-animated {\n -webkit-animation: none;\n animation: none;\n }\n}\n\n.media {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-align: start;\n align-items: flex-start;\n}\n\n.media-body {\n -ms-flex: 1;\n flex: 1;\n}\n\n.list-group {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-direction: column;\n flex-direction: column;\n padding-left: 0;\n margin-bottom: 0;\n}\n\n.list-group-item-action {\n width: 100%;\n color: #495057;\n text-align: inherit;\n}\n\n.list-group-item-action:hover, .list-group-item-action:focus {\n z-index: 1;\n color: #495057;\n text-decoration: none;\n background-color: #f8f9fa;\n}\n\n.list-group-item-action:active {\n color: #212529;\n background-color: #e9ecef;\n}\n\n.list-group-item {\n position: relative;\n display: block;\n padding: 0.75rem 1.25rem;\n margin-bottom: -1px;\n background-color: #fff;\n border: 1px solid rgba(0, 0, 0, 0.125);\n}\n\n.list-group-item:first-child {\n border-top-left-radius: 0.25rem;\n border-top-right-radius: 0.25rem;\n}\n\n.list-group-item:last-child {\n margin-bottom: 0;\n border-bottom-right-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem;\n}\n\n.list-group-item.disabled, .list-group-item:disabled {\n color: #6c757d;\n pointer-events: none;\n background-color: #fff;\n}\n\n.list-group-item.active {\n z-index: 2;\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.list-group-horizontal {\n -ms-flex-direction: row;\n flex-direction: row;\n}\n\n.list-group-horizontal .list-group-item {\n margin-right: -1px;\n margin-bottom: 0;\n}\n\n.list-group-horizontal .list-group-item:first-child {\n border-top-left-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0;\n}\n\n.list-group-horizontal .list-group-item:last-child {\n margin-right: 0;\n border-top-right-radius: 0.25rem;\n border-bottom-right-radius: 0.25rem;\n border-bottom-left-radius: 0;\n}\n\n@media (min-width: 576px) {\n .list-group-horizontal-sm {\n -ms-flex-direction: row;\n flex-direction: row;\n }\n .list-group-horizontal-sm .list-group-item {\n margin-right: -1px;\n margin-bottom: 0;\n }\n .list-group-horizontal-sm .list-group-item:first-child {\n border-top-left-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0;\n }\n .list-group-horizontal-sm .list-group-item:last-child {\n margin-right: 0;\n border-top-right-radius: 0.25rem;\n border-bottom-right-radius: 0.25rem;\n border-bottom-left-radius: 0;\n }\n}\n\n@media (min-width: 768px) {\n .list-group-horizontal-md {\n -ms-flex-direction: row;\n flex-direction: row;\n }\n .list-group-horizontal-md .list-group-item {\n margin-right: -1px;\n margin-bottom: 0;\n }\n .list-group-horizontal-md .list-group-item:first-child {\n border-top-left-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0;\n }\n .list-group-horizontal-md .list-group-item:last-child {\n margin-right: 0;\n border-top-right-radius: 0.25rem;\n border-bottom-right-radius: 0.25rem;\n border-bottom-left-radius: 0;\n }\n}\n\n@media (min-width: 992px) {\n .list-group-horizontal-lg {\n -ms-flex-direction: row;\n flex-direction: row;\n }\n .list-group-horizontal-lg .list-group-item {\n margin-right: -1px;\n margin-bottom: 0;\n }\n .list-group-horizontal-lg .list-group-item:first-child {\n border-top-left-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0;\n }\n .list-group-horizontal-lg .list-group-item:last-child {\n margin-right: 0;\n border-top-right-radius: 0.25rem;\n border-bottom-right-radius: 0.25rem;\n border-bottom-left-radius: 0;\n }\n}\n\n@media (min-width: 1200px) {\n .list-group-horizontal-xl {\n -ms-flex-direction: row;\n flex-direction: row;\n }\n .list-group-horizontal-xl .list-group-item {\n margin-right: -1px;\n margin-bottom: 0;\n }\n .list-group-horizontal-xl .list-group-item:first-child {\n border-top-left-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0;\n }\n .list-group-horizontal-xl .list-group-item:last-child {\n margin-right: 0;\n border-top-right-radius: 0.25rem;\n border-bottom-right-radius: 0.25rem;\n border-bottom-left-radius: 0;\n }\n}\n\n.list-group-flush .list-group-item {\n border-right: 0;\n border-left: 0;\n border-radius: 0;\n}\n\n.list-group-flush .list-group-item:last-child {\n margin-bottom: -1px;\n}\n\n.list-group-flush:first-child .list-group-item:first-child {\n border-top: 0;\n}\n\n.list-group-flush:last-child .list-group-item:last-child {\n margin-bottom: 0;\n border-bottom: 0;\n}\n\n.list-group-item-primary {\n color: #004085;\n background-color: #b8daff;\n}\n\n.list-group-item-primary.list-group-item-action:hover, .list-group-item-primary.list-group-item-action:focus {\n color: #004085;\n background-color: #9fcdff;\n}\n\n.list-group-item-primary.list-group-item-action.active {\n color: #fff;\n background-color: #004085;\n border-color: #004085;\n}\n\n.list-group-item-secondary {\n color: #383d41;\n background-color: #d6d8db;\n}\n\n.list-group-item-secondary.list-group-item-action:hover, .list-group-item-secondary.list-group-item-action:focus {\n color: #383d41;\n background-color: #c8cbcf;\n}\n\n.list-group-item-secondary.list-group-item-action.active {\n color: #fff;\n background-color: #383d41;\n border-color: #383d41;\n}\n\n.list-group-item-success {\n color: #155724;\n background-color: #c3e6cb;\n}\n\n.list-group-item-success.list-group-item-action:hover, .list-group-item-success.list-group-item-action:focus {\n color: #155724;\n background-color: #b1dfbb;\n}\n\n.list-group-item-success.list-group-item-action.active {\n color: #fff;\n background-color: #155724;\n border-color: #155724;\n}\n\n.list-group-item-info {\n color: #0c5460;\n background-color: #bee5eb;\n}\n\n.list-group-item-info.list-group-item-action:hover, .list-group-item-info.list-group-item-action:focus {\n color: #0c5460;\n background-color: #abdde5;\n}\n\n.list-group-item-info.list-group-item-action.active {\n color: #fff;\n background-color: #0c5460;\n border-color: #0c5460;\n}\n\n.list-group-item-warning {\n color: #856404;\n background-color: #ffeeba;\n}\n\n.list-group-item-warning.list-group-item-action:hover, .list-group-item-warning.list-group-item-action:focus {\n color: #856404;\n background-color: #ffe8a1;\n}\n\n.list-group-item-warning.list-group-item-action.active {\n color: #fff;\n background-color: #856404;\n border-color: #856404;\n}\n\n.list-group-item-danger {\n color: #721c24;\n background-color: #f5c6cb;\n}\n\n.list-group-item-danger.list-group-item-action:hover, .list-group-item-danger.list-group-item-action:focus {\n color: #721c24;\n background-color: #f1b0b7;\n}\n\n.list-group-item-danger.list-group-item-action.active {\n color: #fff;\n background-color: #721c24;\n border-color: #721c24;\n}\n\n.list-group-item-light {\n color: #818182;\n background-color: #fdfdfe;\n}\n\n.list-group-item-light.list-group-item-action:hover, .list-group-item-light.list-group-item-action:focus {\n color: #818182;\n background-color: #ececf6;\n}\n\n.list-group-item-light.list-group-item-action.active {\n color: #fff;\n background-color: #818182;\n border-color: #818182;\n}\n\n.list-group-item-dark {\n color: #1b1e21;\n background-color: #c6c8ca;\n}\n\n.list-group-item-dark.list-group-item-action:hover, .list-group-item-dark.list-group-item-action:focus {\n color: #1b1e21;\n background-color: #b9bbbe;\n}\n\n.list-group-item-dark.list-group-item-action.active {\n color: #fff;\n background-color: #1b1e21;\n border-color: #1b1e21;\n}\n\n.close {\n float: right;\n font-size: 1.5rem;\n font-weight: 700;\n line-height: 1;\n color: #000;\n text-shadow: 0 1px 0 #fff;\n opacity: .5;\n}\n\n.close:hover {\n color: #000;\n text-decoration: none;\n}\n\n.close:not(:disabled):not(.disabled):hover, .close:not(:disabled):not(.disabled):focus {\n opacity: .75;\n}\n\nbutton.close {\n padding: 0;\n background-color: transparent;\n border: 0;\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n}\n\na.close.disabled {\n pointer-events: none;\n}\n\n.toast {\n max-width: 350px;\n overflow: hidden;\n font-size: 0.875rem;\n background-color: rgba(255, 255, 255, 0.85);\n background-clip: padding-box;\n border: 1px solid rgba(0, 0, 0, 0.1);\n box-shadow: 0 0.25rem 0.75rem rgba(0, 0, 0, 0.1);\n -webkit-backdrop-filter: blur(10px);\n backdrop-filter: blur(10px);\n opacity: 0;\n border-radius: 0.25rem;\n}\n\n.toast:not(:last-child) {\n margin-bottom: 0.75rem;\n}\n\n.toast.showing {\n opacity: 1;\n}\n\n.toast.show {\n display: block;\n opacity: 1;\n}\n\n.toast.hide {\n display: none;\n}\n\n.toast-header {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-align: center;\n align-items: center;\n padding: 0.25rem 0.75rem;\n color: #6c757d;\n background-color: rgba(255, 255, 255, 0.85);\n background-clip: padding-box;\n border-bottom: 1px solid rgba(0, 0, 0, 0.05);\n}\n\n.toast-body {\n padding: 0.75rem;\n}\n\n.modal-open {\n overflow: hidden;\n}\n\n.modal-open .modal {\n overflow-x: hidden;\n overflow-y: auto;\n}\n\n.modal {\n position: fixed;\n top: 0;\n left: 0;\n z-index: 1050;\n display: none;\n width: 100%;\n height: 100%;\n overflow: hidden;\n outline: 0;\n}\n\n.modal-dialog {\n position: relative;\n width: auto;\n margin: 0.5rem;\n pointer-events: none;\n}\n\n.modal.fade .modal-dialog {\n transition: -webkit-transform 0.3s ease-out;\n transition: transform 0.3s ease-out;\n transition: transform 0.3s ease-out, -webkit-transform 0.3s ease-out;\n -webkit-transform: translate(0, -50px);\n transform: translate(0, -50px);\n}\n\n@media (prefers-reduced-motion: reduce) {\n .modal.fade .modal-dialog {\n transition: none;\n }\n}\n\n.modal.show .modal-dialog {\n -webkit-transform: none;\n transform: none;\n}\n\n.modal-dialog-scrollable {\n display: -ms-flexbox;\n display: flex;\n max-height: calc(100% - 1rem);\n}\n\n.modal-dialog-scrollable .modal-content {\n max-height: calc(100vh - 1rem);\n overflow: hidden;\n}\n\n.modal-dialog-scrollable .modal-header,\n.modal-dialog-scrollable .modal-footer {\n -ms-flex-negative: 0;\n flex-shrink: 0;\n}\n\n.modal-dialog-scrollable .modal-body {\n overflow-y: auto;\n}\n\n.modal-dialog-centered {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-align: center;\n align-items: center;\n min-height: calc(100% - 1rem);\n}\n\n.modal-dialog-centered::before {\n display: block;\n height: calc(100vh - 1rem);\n content: \"\";\n}\n\n.modal-dialog-centered.modal-dialog-scrollable {\n -ms-flex-direction: column;\n flex-direction: column;\n -ms-flex-pack: center;\n justify-content: center;\n height: 100%;\n}\n\n.modal-dialog-centered.modal-dialog-scrollable .modal-content {\n max-height: none;\n}\n\n.modal-dialog-centered.modal-dialog-scrollable::before {\n content: none;\n}\n\n.modal-content {\n position: relative;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-direction: column;\n flex-direction: column;\n width: 100%;\n pointer-events: auto;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid rgba(0, 0, 0, 0.2);\n border-radius: 0.3rem;\n outline: 0;\n}\n\n.modal-backdrop {\n position: fixed;\n top: 0;\n left: 0;\n z-index: 1040;\n width: 100vw;\n height: 100vh;\n background-color: #000;\n}\n\n.modal-backdrop.fade {\n opacity: 0;\n}\n\n.modal-backdrop.show {\n opacity: 0.5;\n}\n\n.modal-header {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-align: start;\n align-items: flex-start;\n -ms-flex-pack: justify;\n justify-content: space-between;\n padding: 1rem 1rem;\n border-bottom: 1px solid #dee2e6;\n border-top-left-radius: 0.3rem;\n border-top-right-radius: 0.3rem;\n}\n\n.modal-header .close {\n padding: 1rem 1rem;\n margin: -1rem -1rem -1rem auto;\n}\n\n.modal-title {\n margin-bottom: 0;\n line-height: 1.5;\n}\n\n.modal-body {\n position: relative;\n -ms-flex: 1 1 auto;\n flex: 1 1 auto;\n padding: 1rem;\n}\n\n.modal-footer {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-align: center;\n align-items: center;\n -ms-flex-pack: end;\n justify-content: flex-end;\n padding: 1rem;\n border-top: 1px solid #dee2e6;\n border-bottom-right-radius: 0.3rem;\n border-bottom-left-radius: 0.3rem;\n}\n\n.modal-footer > :not(:first-child) {\n margin-left: .25rem;\n}\n\n.modal-footer > :not(:last-child) {\n margin-right: .25rem;\n}\n\n.modal-scrollbar-measure {\n position: absolute;\n top: -9999px;\n width: 50px;\n height: 50px;\n overflow: scroll;\n}\n\n@media (min-width: 576px) {\n .modal-dialog {\n max-width: 500px;\n margin: 1.75rem auto;\n }\n .modal-dialog-scrollable {\n max-height: calc(100% - 3.5rem);\n }\n .modal-dialog-scrollable .modal-content {\n max-height: calc(100vh - 3.5rem);\n }\n .modal-dialog-centered {\n min-height: calc(100% - 3.5rem);\n }\n .modal-dialog-centered::before {\n height: calc(100vh - 3.5rem);\n }\n .modal-sm {\n max-width: 300px;\n }\n}\n\n@media (min-width: 992px) {\n .modal-lg,\n .modal-xl {\n max-width: 800px;\n }\n}\n\n@media (min-width: 1200px) {\n .modal-xl {\n max-width: 1140px;\n }\n}\n\n.tooltip {\n position: absolute;\n z-index: 1070;\n display: block;\n margin: 0;\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n font-style: normal;\n font-weight: 400;\n line-height: 1.5;\n text-align: left;\n text-align: start;\n text-decoration: none;\n text-shadow: none;\n text-transform: none;\n letter-spacing: normal;\n word-break: normal;\n word-spacing: normal;\n white-space: normal;\n line-break: auto;\n font-size: 0.875rem;\n word-wrap: break-word;\n opacity: 0;\n}\n\n.tooltip.show {\n opacity: 0.9;\n}\n\n.tooltip .arrow {\n position: absolute;\n display: block;\n width: 0.8rem;\n height: 0.4rem;\n}\n\n.tooltip .arrow::before {\n position: absolute;\n content: \"\";\n border-color: transparent;\n border-style: solid;\n}\n\n.bs-tooltip-top, .bs-tooltip-auto[x-placement^=\"top\"] {\n padding: 0.4rem 0;\n}\n\n.bs-tooltip-top .arrow, .bs-tooltip-auto[x-placement^=\"top\"] .arrow {\n bottom: 0;\n}\n\n.bs-tooltip-top .arrow::before, .bs-tooltip-auto[x-placement^=\"top\"] .arrow::before {\n top: 0;\n border-width: 0.4rem 0.4rem 0;\n border-top-color: #000;\n}\n\n.bs-tooltip-right, .bs-tooltip-auto[x-placement^=\"right\"] {\n padding: 0 0.4rem;\n}\n\n.bs-tooltip-right .arrow, .bs-tooltip-auto[x-placement^=\"right\"] .arrow {\n left: 0;\n width: 0.4rem;\n height: 0.8rem;\n}\n\n.bs-tooltip-right .arrow::before, .bs-tooltip-auto[x-placement^=\"right\"] .arrow::before {\n right: 0;\n border-width: 0.4rem 0.4rem 0.4rem 0;\n border-right-color: #000;\n}\n\n.bs-tooltip-bottom, .bs-tooltip-auto[x-placement^=\"bottom\"] {\n padding: 0.4rem 0;\n}\n\n.bs-tooltip-bottom .arrow, .bs-tooltip-auto[x-placement^=\"bottom\"] .arrow {\n top: 0;\n}\n\n.bs-tooltip-bottom .arrow::before, .bs-tooltip-auto[x-placement^=\"bottom\"] .arrow::before {\n bottom: 0;\n border-width: 0 0.4rem 0.4rem;\n border-bottom-color: #000;\n}\n\n.bs-tooltip-left, .bs-tooltip-auto[x-placement^=\"left\"] {\n padding: 0 0.4rem;\n}\n\n.bs-tooltip-left .arrow, .bs-tooltip-auto[x-placement^=\"left\"] .arrow {\n right: 0;\n width: 0.4rem;\n height: 0.8rem;\n}\n\n.bs-tooltip-left .arrow::before, .bs-tooltip-auto[x-placement^=\"left\"] .arrow::before {\n left: 0;\n border-width: 0.4rem 0 0.4rem 0.4rem;\n border-left-color: #000;\n}\n\n.tooltip-inner {\n max-width: 200px;\n padding: 0.25rem 0.5rem;\n color: #fff;\n text-align: center;\n background-color: #000;\n border-radius: 0.25rem;\n}\n\n.popover {\n position: absolute;\n top: 0;\n left: 0;\n z-index: 1060;\n display: block;\n max-width: 276px;\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n font-style: normal;\n font-weight: 400;\n line-height: 1.5;\n text-align: left;\n text-align: start;\n text-decoration: none;\n text-shadow: none;\n text-transform: none;\n letter-spacing: normal;\n word-break: normal;\n word-spacing: normal;\n white-space: normal;\n line-break: auto;\n font-size: 0.875rem;\n word-wrap: break-word;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid rgba(0, 0, 0, 0.2);\n border-radius: 0.3rem;\n}\n\n.popover .arrow {\n position: absolute;\n display: block;\n width: 1rem;\n height: 0.5rem;\n margin: 0 0.3rem;\n}\n\n.popover .arrow::before, .popover .arrow::after {\n position: absolute;\n display: block;\n content: \"\";\n border-color: transparent;\n border-style: solid;\n}\n\n.bs-popover-top, .bs-popover-auto[x-placement^=\"top\"] {\n margin-bottom: 0.5rem;\n}\n\n.bs-popover-top > .arrow, .bs-popover-auto[x-placement^=\"top\"] > .arrow {\n bottom: calc((0.5rem + 1px) * -1);\n}\n\n.bs-popover-top > .arrow::before, .bs-popover-auto[x-placement^=\"top\"] > .arrow::before {\n bottom: 0;\n border-width: 0.5rem 0.5rem 0;\n border-top-color: rgba(0, 0, 0, 0.25);\n}\n\n.bs-popover-top > .arrow::after, .bs-popover-auto[x-placement^=\"top\"] > .arrow::after {\n bottom: 1px;\n border-width: 0.5rem 0.5rem 0;\n border-top-color: #fff;\n}\n\n.bs-popover-right, .bs-popover-auto[x-placement^=\"right\"] {\n margin-left: 0.5rem;\n}\n\n.bs-popover-right > .arrow, .bs-popover-auto[x-placement^=\"right\"] > .arrow {\n left: calc((0.5rem + 1px) * -1);\n width: 0.5rem;\n height: 1rem;\n margin: 0.3rem 0;\n}\n\n.bs-popover-right > .arrow::before, .bs-popover-auto[x-placement^=\"right\"] > .arrow::before {\n left: 0;\n border-width: 0.5rem 0.5rem 0.5rem 0;\n border-right-color: rgba(0, 0, 0, 0.25);\n}\n\n.bs-popover-right > .arrow::after, .bs-popover-auto[x-placement^=\"right\"] > .arrow::after {\n left: 1px;\n border-width: 0.5rem 0.5rem 0.5rem 0;\n border-right-color: #fff;\n}\n\n.bs-popover-bottom, .bs-popover-auto[x-placement^=\"bottom\"] {\n margin-top: 0.5rem;\n}\n\n.bs-popover-bottom > .arrow, .bs-popover-auto[x-placement^=\"bottom\"] > .arrow {\n top: calc((0.5rem + 1px) * -1);\n}\n\n.bs-popover-bottom > .arrow::before, .bs-popover-auto[x-placement^=\"bottom\"] > .arrow::before {\n top: 0;\n border-width: 0 0.5rem 0.5rem 0.5rem;\n border-bottom-color: rgba(0, 0, 0, 0.25);\n}\n\n.bs-popover-bottom > .arrow::after, .bs-popover-auto[x-placement^=\"bottom\"] > .arrow::after {\n top: 1px;\n border-width: 0 0.5rem 0.5rem 0.5rem;\n border-bottom-color: #fff;\n}\n\n.bs-popover-bottom .popover-header::before, .bs-popover-auto[x-placement^=\"bottom\"] .popover-header::before {\n position: absolute;\n top: 0;\n left: 50%;\n display: block;\n width: 1rem;\n margin-left: -0.5rem;\n content: \"\";\n border-bottom: 1px solid #f7f7f7;\n}\n\n.bs-popover-left, .bs-popover-auto[x-placement^=\"left\"] {\n margin-right: 0.5rem;\n}\n\n.bs-popover-left > .arrow, .bs-popover-auto[x-placement^=\"left\"] > .arrow {\n right: calc((0.5rem + 1px) * -1);\n width: 0.5rem;\n height: 1rem;\n margin: 0.3rem 0;\n}\n\n.bs-popover-left > .arrow::before, .bs-popover-auto[x-placement^=\"left\"] > .arrow::before {\n right: 0;\n border-width: 0.5rem 0 0.5rem 0.5rem;\n border-left-color: rgba(0, 0, 0, 0.25);\n}\n\n.bs-popover-left > .arrow::after, .bs-popover-auto[x-placement^=\"left\"] > .arrow::after {\n right: 1px;\n border-width: 0.5rem 0 0.5rem 0.5rem;\n border-left-color: #fff;\n}\n\n.popover-header {\n padding: 0.5rem 0.75rem;\n margin-bottom: 0;\n font-size: 1rem;\n background-color: #f7f7f7;\n border-bottom: 1px solid #ebebeb;\n border-top-left-radius: calc(0.3rem - 1px);\n border-top-right-radius: calc(0.3rem - 1px);\n}\n\n.popover-header:empty {\n display: none;\n}\n\n.popover-body {\n padding: 0.5rem 0.75rem;\n color: #212529;\n}\n\n.carousel {\n position: relative;\n}\n\n.carousel.pointer-event {\n -ms-touch-action: pan-y;\n touch-action: pan-y;\n}\n\n.carousel-inner {\n position: relative;\n width: 100%;\n overflow: hidden;\n}\n\n.carousel-inner::after {\n display: block;\n clear: both;\n content: \"\";\n}\n\n.carousel-item {\n position: relative;\n display: none;\n float: left;\n width: 100%;\n margin-right: -100%;\n -webkit-backface-visibility: hidden;\n backface-visibility: hidden;\n transition: -webkit-transform 0.6s ease-in-out;\n transition: transform 0.6s ease-in-out;\n transition: transform 0.6s ease-in-out, -webkit-transform 0.6s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .carousel-item {\n transition: none;\n }\n}\n\n.carousel-item.active,\n.carousel-item-next,\n.carousel-item-prev {\n display: block;\n}\n\n.carousel-item-next:not(.carousel-item-left),\n.active.carousel-item-right {\n -webkit-transform: translateX(100%);\n transform: translateX(100%);\n}\n\n.carousel-item-prev:not(.carousel-item-right),\n.active.carousel-item-left {\n -webkit-transform: translateX(-100%);\n transform: translateX(-100%);\n}\n\n.carousel-fade .carousel-item {\n opacity: 0;\n transition-property: opacity;\n -webkit-transform: none;\n transform: none;\n}\n\n.carousel-fade .carousel-item.active,\n.carousel-fade .carousel-item-next.carousel-item-left,\n.carousel-fade .carousel-item-prev.carousel-item-right {\n z-index: 1;\n opacity: 1;\n}\n\n.carousel-fade .active.carousel-item-left,\n.carousel-fade .active.carousel-item-right {\n z-index: 0;\n opacity: 0;\n transition: 0s 0.6s opacity;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .carousel-fade .active.carousel-item-left,\n .carousel-fade .active.carousel-item-right {\n transition: none;\n }\n}\n\n.carousel-control-prev,\n.carousel-control-next {\n position: absolute;\n top: 0;\n bottom: 0;\n z-index: 1;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-align: center;\n align-items: center;\n -ms-flex-pack: center;\n justify-content: center;\n width: 15%;\n color: #fff;\n text-align: center;\n opacity: 0.5;\n transition: opacity 0.15s ease;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .carousel-control-prev,\n .carousel-control-next {\n transition: none;\n }\n}\n\n.carousel-control-prev:hover, .carousel-control-prev:focus,\n.carousel-control-next:hover,\n.carousel-control-next:focus {\n color: #fff;\n text-decoration: none;\n outline: 0;\n opacity: 0.9;\n}\n\n.carousel-control-prev {\n left: 0;\n}\n\n.carousel-control-next {\n right: 0;\n}\n\n.carousel-control-prev-icon,\n.carousel-control-next-icon {\n display: inline-block;\n width: 20px;\n height: 20px;\n background: no-repeat 50% / 100% 100%;\n}\n\n.carousel-control-prev-icon {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3e%3cpath d='M5.25 0l-4 4 4 4 1.5-1.5-2.5-2.5 2.5-2.5-1.5-1.5z'/%3e%3c/svg%3e\");\n}\n\n.carousel-control-next-icon {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3e%3cpath d='M2.75 0l-1.5 1.5 2.5 2.5-2.5 2.5 1.5 1.5 4-4-4-4z'/%3e%3c/svg%3e\");\n}\n\n.carousel-indicators {\n position: absolute;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 15;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-pack: center;\n justify-content: center;\n padding-left: 0;\n margin-right: 15%;\n margin-left: 15%;\n list-style: none;\n}\n\n.carousel-indicators li {\n box-sizing: content-box;\n -ms-flex: 0 1 auto;\n flex: 0 1 auto;\n width: 30px;\n height: 3px;\n margin-right: 3px;\n margin-left: 3px;\n text-indent: -999px;\n cursor: pointer;\n background-color: #fff;\n background-clip: padding-box;\n border-top: 10px solid transparent;\n border-bottom: 10px solid transparent;\n opacity: .5;\n transition: opacity 0.6s ease;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .carousel-indicators li {\n transition: none;\n }\n}\n\n.carousel-indicators .active {\n opacity: 1;\n}\n\n.carousel-caption {\n position: absolute;\n right: 15%;\n bottom: 20px;\n left: 15%;\n z-index: 10;\n padding-top: 20px;\n padding-bottom: 20px;\n color: #fff;\n text-align: center;\n}\n\n@-webkit-keyframes spinner-border {\n to {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg);\n }\n}\n\n@keyframes spinner-border {\n to {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg);\n }\n}\n\n.spinner-border {\n display: inline-block;\n width: 2rem;\n height: 2rem;\n vertical-align: text-bottom;\n border: 0.25em solid currentColor;\n border-right-color: transparent;\n border-radius: 50%;\n -webkit-animation: spinner-border .75s linear infinite;\n animation: spinner-border .75s linear infinite;\n}\n\n.spinner-border-sm {\n width: 1rem;\n height: 1rem;\n border-width: 0.2em;\n}\n\n@-webkit-keyframes spinner-grow {\n 0% {\n -webkit-transform: scale(0);\n transform: scale(0);\n }\n 50% {\n opacity: 1;\n }\n}\n\n@keyframes spinner-grow {\n 0% {\n -webkit-transform: scale(0);\n transform: scale(0);\n }\n 50% {\n opacity: 1;\n }\n}\n\n.spinner-grow {\n display: inline-block;\n width: 2rem;\n height: 2rem;\n vertical-align: text-bottom;\n background-color: currentColor;\n border-radius: 50%;\n opacity: 0;\n -webkit-animation: spinner-grow .75s linear infinite;\n animation: spinner-grow .75s linear infinite;\n}\n\n.spinner-grow-sm {\n width: 1rem;\n height: 1rem;\n}\n\n.align-baseline {\n vertical-align: baseline !important;\n}\n\n.align-top {\n vertical-align: top !important;\n}\n\n.align-middle {\n vertical-align: middle !important;\n}\n\n.align-bottom {\n vertical-align: bottom !important;\n}\n\n.align-text-bottom {\n vertical-align: text-bottom !important;\n}\n\n.align-text-top {\n vertical-align: text-top !important;\n}\n\n.bg-primary {\n background-color: #007bff !important;\n}\n\na.bg-primary:hover, a.bg-primary:focus,\nbutton.bg-primary:hover,\nbutton.bg-primary:focus {\n background-color: #0062cc !important;\n}\n\n.bg-secondary {\n background-color: #6c757d !important;\n}\n\na.bg-secondary:hover, a.bg-secondary:focus,\nbutton.bg-secondary:hover,\nbutton.bg-secondary:focus {\n background-color: #545b62 !important;\n}\n\n.bg-success {\n background-color: #28a745 !important;\n}\n\na.bg-success:hover, a.bg-success:focus,\nbutton.bg-success:hover,\nbutton.bg-success:focus {\n background-color: #1e7e34 !important;\n}\n\n.bg-info {\n background-color: #17a2b8 !important;\n}\n\na.bg-info:hover, a.bg-info:focus,\nbutton.bg-info:hover,\nbutton.bg-info:focus {\n background-color: #117a8b !important;\n}\n\n.bg-warning {\n background-color: #ffc107 !important;\n}\n\na.bg-warning:hover, a.bg-warning:focus,\nbutton.bg-warning:hover,\nbutton.bg-warning:focus {\n background-color: #d39e00 !important;\n}\n\n.bg-danger {\n background-color: #dc3545 !important;\n}\n\na.bg-danger:hover, a.bg-danger:focus,\nbutton.bg-danger:hover,\nbutton.bg-danger:focus {\n background-color: #bd2130 !important;\n}\n\n.bg-light {\n background-color: #f8f9fa !important;\n}\n\na.bg-light:hover, a.bg-light:focus,\nbutton.bg-light:hover,\nbutton.bg-light:focus {\n background-color: #dae0e5 !important;\n}\n\n.bg-dark {\n background-color: #343a40 !important;\n}\n\na.bg-dark:hover, a.bg-dark:focus,\nbutton.bg-dark:hover,\nbutton.bg-dark:focus {\n background-color: #1d2124 !important;\n}\n\n.bg-white {\n background-color: #fff !important;\n}\n\n.bg-transparent {\n background-color: transparent !important;\n}\n\n.border {\n border: 1px solid #dee2e6 !important;\n}\n\n.border-top {\n border-top: 1px solid #dee2e6 !important;\n}\n\n.border-right {\n border-right: 1px solid #dee2e6 !important;\n}\n\n.border-bottom {\n border-bottom: 1px solid #dee2e6 !important;\n}\n\n.border-left {\n border-left: 1px solid #dee2e6 !important;\n}\n\n.border-0 {\n border: 0 !important;\n}\n\n.border-top-0 {\n border-top: 0 !important;\n}\n\n.border-right-0 {\n border-right: 0 !important;\n}\n\n.border-bottom-0 {\n border-bottom: 0 !important;\n}\n\n.border-left-0 {\n border-left: 0 !important;\n}\n\n.border-primary {\n border-color: #007bff !important;\n}\n\n.border-secondary {\n border-color: #6c757d !important;\n}\n\n.border-success {\n border-color: #28a745 !important;\n}\n\n.border-info {\n border-color: #17a2b8 !important;\n}\n\n.border-warning {\n border-color: #ffc107 !important;\n}\n\n.border-danger {\n border-color: #dc3545 !important;\n}\n\n.border-light {\n border-color: #f8f9fa !important;\n}\n\n.border-dark {\n border-color: #343a40 !important;\n}\n\n.border-white {\n border-color: #fff !important;\n}\n\n.rounded-sm {\n border-radius: 0.2rem !important;\n}\n\n.rounded {\n border-radius: 0.25rem !important;\n}\n\n.rounded-top {\n border-top-left-radius: 0.25rem !important;\n border-top-right-radius: 0.25rem !important;\n}\n\n.rounded-right {\n border-top-right-radius: 0.25rem !important;\n border-bottom-right-radius: 0.25rem !important;\n}\n\n.rounded-bottom {\n border-bottom-right-radius: 0.25rem !important;\n border-bottom-left-radius: 0.25rem !important;\n}\n\n.rounded-left {\n border-top-left-radius: 0.25rem !important;\n border-bottom-left-radius: 0.25rem !important;\n}\n\n.rounded-lg {\n border-radius: 0.3rem !important;\n}\n\n.rounded-circle {\n border-radius: 50% !important;\n}\n\n.rounded-pill {\n border-radius: 50rem !important;\n}\n\n.rounded-0 {\n border-radius: 0 !important;\n}\n\n.clearfix::after {\n display: block;\n clear: both;\n content: \"\";\n}\n\n.d-none {\n display: none !important;\n}\n\n.d-inline {\n display: inline !important;\n}\n\n.d-inline-block {\n display: inline-block !important;\n}\n\n.d-block {\n display: block !important;\n}\n\n.d-table {\n display: table !important;\n}\n\n.d-table-row {\n display: table-row !important;\n}\n\n.d-table-cell {\n display: table-cell !important;\n}\n\n.d-flex {\n display: -ms-flexbox !important;\n display: flex !important;\n}\n\n.d-inline-flex {\n display: -ms-inline-flexbox !important;\n display: inline-flex !important;\n}\n\n@media (min-width: 576px) {\n .d-sm-none {\n display: none !important;\n }\n .d-sm-inline {\n display: inline !important;\n }\n .d-sm-inline-block {\n display: inline-block !important;\n }\n .d-sm-block {\n display: block !important;\n }\n .d-sm-table {\n display: table !important;\n }\n .d-sm-table-row {\n display: table-row !important;\n }\n .d-sm-table-cell {\n display: table-cell !important;\n }\n .d-sm-flex {\n display: -ms-flexbox !important;\n display: flex !important;\n }\n .d-sm-inline-flex {\n display: -ms-inline-flexbox !important;\n display: inline-flex !important;\n }\n}\n\n@media (min-width: 768px) {\n .d-md-none {\n display: none !important;\n }\n .d-md-inline {\n display: inline !important;\n }\n .d-md-inline-block {\n display: inline-block !important;\n }\n .d-md-block {\n display: block !important;\n }\n .d-md-table {\n display: table !important;\n }\n .d-md-table-row {\n display: table-row !important;\n }\n .d-md-table-cell {\n display: table-cell !important;\n }\n .d-md-flex {\n display: -ms-flexbox !important;\n display: flex !important;\n }\n .d-md-inline-flex {\n display: -ms-inline-flexbox !important;\n display: inline-flex !important;\n }\n}\n\n@media (min-width: 992px) {\n .d-lg-none {\n display: none !important;\n }\n .d-lg-inline {\n display: inline !important;\n }\n .d-lg-inline-block {\n display: inline-block !important;\n }\n .d-lg-block {\n display: block !important;\n }\n .d-lg-table {\n display: table !important;\n }\n .d-lg-table-row {\n display: table-row !important;\n }\n .d-lg-table-cell {\n display: table-cell !important;\n }\n .d-lg-flex {\n display: -ms-flexbox !important;\n display: flex !important;\n }\n .d-lg-inline-flex {\n display: -ms-inline-flexbox !important;\n display: inline-flex !important;\n }\n}\n\n@media (min-width: 1200px) {\n .d-xl-none {\n display: none !important;\n }\n .d-xl-inline {\n display: inline !important;\n }\n .d-xl-inline-block {\n display: inline-block !important;\n }\n .d-xl-block {\n display: block !important;\n }\n .d-xl-table {\n display: table !important;\n }\n .d-xl-table-row {\n display: table-row !important;\n }\n .d-xl-table-cell {\n display: table-cell !important;\n }\n .d-xl-flex {\n display: -ms-flexbox !important;\n display: flex !important;\n }\n .d-xl-inline-flex {\n display: -ms-inline-flexbox !important;\n display: inline-flex !important;\n }\n}\n\n@media print {\n .d-print-none {\n display: none !important;\n }\n .d-print-inline {\n display: inline !important;\n }\n .d-print-inline-block {\n display: inline-block !important;\n }\n .d-print-block {\n display: block !important;\n }\n .d-print-table {\n display: table !important;\n }\n .d-print-table-row {\n display: table-row !important;\n }\n .d-print-table-cell {\n display: table-cell !important;\n }\n .d-print-flex {\n display: -ms-flexbox !important;\n display: flex !important;\n }\n .d-print-inline-flex {\n display: -ms-inline-flexbox !important;\n display: inline-flex !important;\n }\n}\n\n.embed-responsive {\n position: relative;\n display: block;\n width: 100%;\n padding: 0;\n overflow: hidden;\n}\n\n.embed-responsive::before {\n display: block;\n content: \"\";\n}\n\n.embed-responsive .embed-responsive-item,\n.embed-responsive iframe,\n.embed-responsive embed,\n.embed-responsive object,\n.embed-responsive video {\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n width: 100%;\n height: 100%;\n border: 0;\n}\n\n.embed-responsive-21by9::before {\n padding-top: 42.857143%;\n}\n\n.embed-responsive-16by9::before {\n padding-top: 56.25%;\n}\n\n.embed-responsive-4by3::before {\n padding-top: 75%;\n}\n\n.embed-responsive-1by1::before {\n padding-top: 100%;\n}\n\n.flex-row {\n -ms-flex-direction: row !important;\n flex-direction: row !important;\n}\n\n.flex-column {\n -ms-flex-direction: column !important;\n flex-direction: column !important;\n}\n\n.flex-row-reverse {\n -ms-flex-direction: row-reverse !important;\n flex-direction: row-reverse !important;\n}\n\n.flex-column-reverse {\n -ms-flex-direction: column-reverse !important;\n flex-direction: column-reverse !important;\n}\n\n.flex-wrap {\n -ms-flex-wrap: wrap !important;\n flex-wrap: wrap !important;\n}\n\n.flex-nowrap {\n -ms-flex-wrap: nowrap !important;\n flex-wrap: nowrap !important;\n}\n\n.flex-wrap-reverse {\n -ms-flex-wrap: wrap-reverse !important;\n flex-wrap: wrap-reverse !important;\n}\n\n.flex-fill {\n -ms-flex: 1 1 auto !important;\n flex: 1 1 auto !important;\n}\n\n.flex-grow-0 {\n -ms-flex-positive: 0 !important;\n flex-grow: 0 !important;\n}\n\n.flex-grow-1 {\n -ms-flex-positive: 1 !important;\n flex-grow: 1 !important;\n}\n\n.flex-shrink-0 {\n -ms-flex-negative: 0 !important;\n flex-shrink: 0 !important;\n}\n\n.flex-shrink-1 {\n -ms-flex-negative: 1 !important;\n flex-shrink: 1 !important;\n}\n\n.justify-content-start {\n -ms-flex-pack: start !important;\n justify-content: flex-start !important;\n}\n\n.justify-content-end {\n -ms-flex-pack: end !important;\n justify-content: flex-end !important;\n}\n\n.justify-content-center {\n -ms-flex-pack: center !important;\n justify-content: center !important;\n}\n\n.justify-content-between {\n -ms-flex-pack: justify !important;\n justify-content: space-between !important;\n}\n\n.justify-content-around {\n -ms-flex-pack: distribute !important;\n justify-content: space-around !important;\n}\n\n.align-items-start {\n -ms-flex-align: start !important;\n align-items: flex-start !important;\n}\n\n.align-items-end {\n -ms-flex-align: end !important;\n align-items: flex-end !important;\n}\n\n.align-items-center {\n -ms-flex-align: center !important;\n align-items: center !important;\n}\n\n.align-items-baseline {\n -ms-flex-align: baseline !important;\n align-items: baseline !important;\n}\n\n.align-items-stretch {\n -ms-flex-align: stretch !important;\n align-items: stretch !important;\n}\n\n.align-content-start {\n -ms-flex-line-pack: start !important;\n align-content: flex-start !important;\n}\n\n.align-content-end {\n -ms-flex-line-pack: end !important;\n align-content: flex-end !important;\n}\n\n.align-content-center {\n -ms-flex-line-pack: center !important;\n align-content: center !important;\n}\n\n.align-content-between {\n -ms-flex-line-pack: justify !important;\n align-content: space-between !important;\n}\n\n.align-content-around {\n -ms-flex-line-pack: distribute !important;\n align-content: space-around !important;\n}\n\n.align-content-stretch {\n -ms-flex-line-pack: stretch !important;\n align-content: stretch !important;\n}\n\n.align-self-auto {\n -ms-flex-item-align: auto !important;\n align-self: auto !important;\n}\n\n.align-self-start {\n -ms-flex-item-align: start !important;\n align-self: flex-start !important;\n}\n\n.align-self-end {\n -ms-flex-item-align: end !important;\n align-self: flex-end !important;\n}\n\n.align-self-center {\n -ms-flex-item-align: center !important;\n align-self: center !important;\n}\n\n.align-self-baseline {\n -ms-flex-item-align: baseline !important;\n align-self: baseline !important;\n}\n\n.align-self-stretch {\n -ms-flex-item-align: stretch !important;\n align-self: stretch !important;\n}\n\n@media (min-width: 576px) {\n .flex-sm-row {\n -ms-flex-direction: row !important;\n flex-direction: row !important;\n }\n .flex-sm-column {\n -ms-flex-direction: column !important;\n flex-direction: column !important;\n }\n .flex-sm-row-reverse {\n -ms-flex-direction: row-reverse !important;\n flex-direction: row-reverse !important;\n }\n .flex-sm-column-reverse {\n -ms-flex-direction: column-reverse !important;\n flex-direction: column-reverse !important;\n }\n .flex-sm-wrap {\n -ms-flex-wrap: wrap !important;\n flex-wrap: wrap !important;\n }\n .flex-sm-nowrap {\n -ms-flex-wrap: nowrap !important;\n flex-wrap: nowrap !important;\n }\n .flex-sm-wrap-reverse {\n -ms-flex-wrap: wrap-reverse !important;\n flex-wrap: wrap-reverse !important;\n }\n .flex-sm-fill {\n -ms-flex: 1 1 auto !important;\n flex: 1 1 auto !important;\n }\n .flex-sm-grow-0 {\n -ms-flex-positive: 0 !important;\n flex-grow: 0 !important;\n }\n .flex-sm-grow-1 {\n -ms-flex-positive: 1 !important;\n flex-grow: 1 !important;\n }\n .flex-sm-shrink-0 {\n -ms-flex-negative: 0 !important;\n flex-shrink: 0 !important;\n }\n .flex-sm-shrink-1 {\n -ms-flex-negative: 1 !important;\n flex-shrink: 1 !important;\n }\n .justify-content-sm-start {\n -ms-flex-pack: start !important;\n justify-content: flex-start !important;\n }\n .justify-content-sm-end {\n -ms-flex-pack: end !important;\n justify-content: flex-end !important;\n }\n .justify-content-sm-center {\n -ms-flex-pack: center !important;\n justify-content: center !important;\n }\n .justify-content-sm-between {\n -ms-flex-pack: justify !important;\n justify-content: space-between !important;\n }\n .justify-content-sm-around {\n -ms-flex-pack: distribute !important;\n justify-content: space-around !important;\n }\n .align-items-sm-start {\n -ms-flex-align: start !important;\n align-items: flex-start !important;\n }\n .align-items-sm-end {\n -ms-flex-align: end !important;\n align-items: flex-end !important;\n }\n .align-items-sm-center {\n -ms-flex-align: center !important;\n align-items: center !important;\n }\n .align-items-sm-baseline {\n -ms-flex-align: baseline !important;\n align-items: baseline !important;\n }\n .align-items-sm-stretch {\n -ms-flex-align: stretch !important;\n align-items: stretch !important;\n }\n .align-content-sm-start {\n -ms-flex-line-pack: start !important;\n align-content: flex-start !important;\n }\n .align-content-sm-end {\n -ms-flex-line-pack: end !important;\n align-content: flex-end !important;\n }\n .align-content-sm-center {\n -ms-flex-line-pack: center !important;\n align-content: center !important;\n }\n .align-content-sm-between {\n -ms-flex-line-pack: justify !important;\n align-content: space-between !important;\n }\n .align-content-sm-around {\n -ms-flex-line-pack: distribute !important;\n align-content: space-around !important;\n }\n .align-content-sm-stretch {\n -ms-flex-line-pack: stretch !important;\n align-content: stretch !important;\n }\n .align-self-sm-auto {\n -ms-flex-item-align: auto !important;\n align-self: auto !important;\n }\n .align-self-sm-start {\n -ms-flex-item-align: start !important;\n align-self: flex-start !important;\n }\n .align-self-sm-end {\n -ms-flex-item-align: end !important;\n align-self: flex-end !important;\n }\n .align-self-sm-center {\n -ms-flex-item-align: center !important;\n align-self: center !important;\n }\n .align-self-sm-baseline {\n -ms-flex-item-align: baseline !important;\n align-self: baseline !important;\n }\n .align-self-sm-stretch {\n -ms-flex-item-align: stretch !important;\n align-self: stretch !important;\n }\n}\n\n@media (min-width: 768px) {\n .flex-md-row {\n -ms-flex-direction: row !important;\n flex-direction: row !important;\n }\n .flex-md-column {\n -ms-flex-direction: column !important;\n flex-direction: column !important;\n }\n .flex-md-row-reverse {\n -ms-flex-direction: row-reverse !important;\n flex-direction: row-reverse !important;\n }\n .flex-md-column-reverse {\n -ms-flex-direction: column-reverse !important;\n flex-direction: column-reverse !important;\n }\n .flex-md-wrap {\n -ms-flex-wrap: wrap !important;\n flex-wrap: wrap !important;\n }\n .flex-md-nowrap {\n -ms-flex-wrap: nowrap !important;\n flex-wrap: nowrap !important;\n }\n .flex-md-wrap-reverse {\n -ms-flex-wrap: wrap-reverse !important;\n flex-wrap: wrap-reverse !important;\n }\n .flex-md-fill {\n -ms-flex: 1 1 auto !important;\n flex: 1 1 auto !important;\n }\n .flex-md-grow-0 {\n -ms-flex-positive: 0 !important;\n flex-grow: 0 !important;\n }\n .flex-md-grow-1 {\n -ms-flex-positive: 1 !important;\n flex-grow: 1 !important;\n }\n .flex-md-shrink-0 {\n -ms-flex-negative: 0 !important;\n flex-shrink: 0 !important;\n }\n .flex-md-shrink-1 {\n -ms-flex-negative: 1 !important;\n flex-shrink: 1 !important;\n }\n .justify-content-md-start {\n -ms-flex-pack: start !important;\n justify-content: flex-start !important;\n }\n .justify-content-md-end {\n -ms-flex-pack: end !important;\n justify-content: flex-end !important;\n }\n .justify-content-md-center {\n -ms-flex-pack: center !important;\n justify-content: center !important;\n }\n .justify-content-md-between {\n -ms-flex-pack: justify !important;\n justify-content: space-between !important;\n }\n .justify-content-md-around {\n -ms-flex-pack: distribute !important;\n justify-content: space-around !important;\n }\n .align-items-md-start {\n -ms-flex-align: start !important;\n align-items: flex-start !important;\n }\n .align-items-md-end {\n -ms-flex-align: end !important;\n align-items: flex-end !important;\n }\n .align-items-md-center {\n -ms-flex-align: center !important;\n align-items: center !important;\n }\n .align-items-md-baseline {\n -ms-flex-align: baseline !important;\n align-items: baseline !important;\n }\n .align-items-md-stretch {\n -ms-flex-align: stretch !important;\n align-items: stretch !important;\n }\n .align-content-md-start {\n -ms-flex-line-pack: start !important;\n align-content: flex-start !important;\n }\n .align-content-md-end {\n -ms-flex-line-pack: end !important;\n align-content: flex-end !important;\n }\n .align-content-md-center {\n -ms-flex-line-pack: center !important;\n align-content: center !important;\n }\n .align-content-md-between {\n -ms-flex-line-pack: justify !important;\n align-content: space-between !important;\n }\n .align-content-md-around {\n -ms-flex-line-pack: distribute !important;\n align-content: space-around !important;\n }\n .align-content-md-stretch {\n -ms-flex-line-pack: stretch !important;\n align-content: stretch !important;\n }\n .align-self-md-auto {\n -ms-flex-item-align: auto !important;\n align-self: auto !important;\n }\n .align-self-md-start {\n -ms-flex-item-align: start !important;\n align-self: flex-start !important;\n }\n .align-self-md-end {\n -ms-flex-item-align: end !important;\n align-self: flex-end !important;\n }\n .align-self-md-center {\n -ms-flex-item-align: center !important;\n align-self: center !important;\n }\n .align-self-md-baseline {\n -ms-flex-item-align: baseline !important;\n align-self: baseline !important;\n }\n .align-self-md-stretch {\n -ms-flex-item-align: stretch !important;\n align-self: stretch !important;\n }\n}\n\n@media (min-width: 992px) {\n .flex-lg-row {\n -ms-flex-direction: row !important;\n flex-direction: row !important;\n }\n .flex-lg-column {\n -ms-flex-direction: column !important;\n flex-direction: column !important;\n }\n .flex-lg-row-reverse {\n -ms-flex-direction: row-reverse !important;\n flex-direction: row-reverse !important;\n }\n .flex-lg-column-reverse {\n -ms-flex-direction: column-reverse !important;\n flex-direction: column-reverse !important;\n }\n .flex-lg-wrap {\n -ms-flex-wrap: wrap !important;\n flex-wrap: wrap !important;\n }\n .flex-lg-nowrap {\n -ms-flex-wrap: nowrap !important;\n flex-wrap: nowrap !important;\n }\n .flex-lg-wrap-reverse {\n -ms-flex-wrap: wrap-reverse !important;\n flex-wrap: wrap-reverse !important;\n }\n .flex-lg-fill {\n -ms-flex: 1 1 auto !important;\n flex: 1 1 auto !important;\n }\n .flex-lg-grow-0 {\n -ms-flex-positive: 0 !important;\n flex-grow: 0 !important;\n }\n .flex-lg-grow-1 {\n -ms-flex-positive: 1 !important;\n flex-grow: 1 !important;\n }\n .flex-lg-shrink-0 {\n -ms-flex-negative: 0 !important;\n flex-shrink: 0 !important;\n }\n .flex-lg-shrink-1 {\n -ms-flex-negative: 1 !important;\n flex-shrink: 1 !important;\n }\n .justify-content-lg-start {\n -ms-flex-pack: start !important;\n justify-content: flex-start !important;\n }\n .justify-content-lg-end {\n -ms-flex-pack: end !important;\n justify-content: flex-end !important;\n }\n .justify-content-lg-center {\n -ms-flex-pack: center !important;\n justify-content: center !important;\n }\n .justify-content-lg-between {\n -ms-flex-pack: justify !important;\n justify-content: space-between !important;\n }\n .justify-content-lg-around {\n -ms-flex-pack: distribute !important;\n justify-content: space-around !important;\n }\n .align-items-lg-start {\n -ms-flex-align: start !important;\n align-items: flex-start !important;\n }\n .align-items-lg-end {\n -ms-flex-align: end !important;\n align-items: flex-end !important;\n }\n .align-items-lg-center {\n -ms-flex-align: center !important;\n align-items: center !important;\n }\n .align-items-lg-baseline {\n -ms-flex-align: baseline !important;\n align-items: baseline !important;\n }\n .align-items-lg-stretch {\n -ms-flex-align: stretch !important;\n align-items: stretch !important;\n }\n .align-content-lg-start {\n -ms-flex-line-pack: start !important;\n align-content: flex-start !important;\n }\n .align-content-lg-end {\n -ms-flex-line-pack: end !important;\n align-content: flex-end !important;\n }\n .align-content-lg-center {\n -ms-flex-line-pack: center !important;\n align-content: center !important;\n }\n .align-content-lg-between {\n -ms-flex-line-pack: justify !important;\n align-content: space-between !important;\n }\n .align-content-lg-around {\n -ms-flex-line-pack: distribute !important;\n align-content: space-around !important;\n }\n .align-content-lg-stretch {\n -ms-flex-line-pack: stretch !important;\n align-content: stretch !important;\n }\n .align-self-lg-auto {\n -ms-flex-item-align: auto !important;\n align-self: auto !important;\n }\n .align-self-lg-start {\n -ms-flex-item-align: start !important;\n align-self: flex-start !important;\n }\n .align-self-lg-end {\n -ms-flex-item-align: end !important;\n align-self: flex-end !important;\n }\n .align-self-lg-center {\n -ms-flex-item-align: center !important;\n align-self: center !important;\n }\n .align-self-lg-baseline {\n -ms-flex-item-align: baseline !important;\n align-self: baseline !important;\n }\n .align-self-lg-stretch {\n -ms-flex-item-align: stretch !important;\n align-self: stretch !important;\n }\n}\n\n@media (min-width: 1200px) {\n .flex-xl-row {\n -ms-flex-direction: row !important;\n flex-direction: row !important;\n }\n .flex-xl-column {\n -ms-flex-direction: column !important;\n flex-direction: column !important;\n }\n .flex-xl-row-reverse {\n -ms-flex-direction: row-reverse !important;\n flex-direction: row-reverse !important;\n }\n .flex-xl-column-reverse {\n -ms-flex-direction: column-reverse !important;\n flex-direction: column-reverse !important;\n }\n .flex-xl-wrap {\n -ms-flex-wrap: wrap !important;\n flex-wrap: wrap !important;\n }\n .flex-xl-nowrap {\n -ms-flex-wrap: nowrap !important;\n flex-wrap: nowrap !important;\n }\n .flex-xl-wrap-reverse {\n -ms-flex-wrap: wrap-reverse !important;\n flex-wrap: wrap-reverse !important;\n }\n .flex-xl-fill {\n -ms-flex: 1 1 auto !important;\n flex: 1 1 auto !important;\n }\n .flex-xl-grow-0 {\n -ms-flex-positive: 0 !important;\n flex-grow: 0 !important;\n }\n .flex-xl-grow-1 {\n -ms-flex-positive: 1 !important;\n flex-grow: 1 !important;\n }\n .flex-xl-shrink-0 {\n -ms-flex-negative: 0 !important;\n flex-shrink: 0 !important;\n }\n .flex-xl-shrink-1 {\n -ms-flex-negative: 1 !important;\n flex-shrink: 1 !important;\n }\n .justify-content-xl-start {\n -ms-flex-pack: start !important;\n justify-content: flex-start !important;\n }\n .justify-content-xl-end {\n -ms-flex-pack: end !important;\n justify-content: flex-end !important;\n }\n .justify-content-xl-center {\n -ms-flex-pack: center !important;\n justify-content: center !important;\n }\n .justify-content-xl-between {\n -ms-flex-pack: justify !important;\n justify-content: space-between !important;\n }\n .justify-content-xl-around {\n -ms-flex-pack: distribute !important;\n justify-content: space-around !important;\n }\n .align-items-xl-start {\n -ms-flex-align: start !important;\n align-items: flex-start !important;\n }\n .align-items-xl-end {\n -ms-flex-align: end !important;\n align-items: flex-end !important;\n }\n .align-items-xl-center {\n -ms-flex-align: center !important;\n align-items: center !important;\n }\n .align-items-xl-baseline {\n -ms-flex-align: baseline !important;\n align-items: baseline !important;\n }\n .align-items-xl-stretch {\n -ms-flex-align: stretch !important;\n align-items: stretch !important;\n }\n .align-content-xl-start {\n -ms-flex-line-pack: start !important;\n align-content: flex-start !important;\n }\n .align-content-xl-end {\n -ms-flex-line-pack: end !important;\n align-content: flex-end !important;\n }\n .align-content-xl-center {\n -ms-flex-line-pack: center !important;\n align-content: center !important;\n }\n .align-content-xl-between {\n -ms-flex-line-pack: justify !important;\n align-content: space-between !important;\n }\n .align-content-xl-around {\n -ms-flex-line-pack: distribute !important;\n align-content: space-around !important;\n }\n .align-content-xl-stretch {\n -ms-flex-line-pack: stretch !important;\n align-content: stretch !important;\n }\n .align-self-xl-auto {\n -ms-flex-item-align: auto !important;\n align-self: auto !important;\n }\n .align-self-xl-start {\n -ms-flex-item-align: start !important;\n align-self: flex-start !important;\n }\n .align-self-xl-end {\n -ms-flex-item-align: end !important;\n align-self: flex-end !important;\n }\n .align-self-xl-center {\n -ms-flex-item-align: center !important;\n align-self: center !important;\n }\n .align-self-xl-baseline {\n -ms-flex-item-align: baseline !important;\n align-self: baseline !important;\n }\n .align-self-xl-stretch {\n -ms-flex-item-align: stretch !important;\n align-self: stretch !important;\n }\n}\n\n.float-left {\n float: left !important;\n}\n\n.float-right {\n float: right !important;\n}\n\n.float-none {\n float: none !important;\n}\n\n@media (min-width: 576px) {\n .float-sm-left {\n float: left !important;\n }\n .float-sm-right {\n float: right !important;\n }\n .float-sm-none {\n float: none !important;\n }\n}\n\n@media (min-width: 768px) {\n .float-md-left {\n float: left !important;\n }\n .float-md-right {\n float: right !important;\n }\n .float-md-none {\n float: none !important;\n }\n}\n\n@media (min-width: 992px) {\n .float-lg-left {\n float: left !important;\n }\n .float-lg-right {\n float: right !important;\n }\n .float-lg-none {\n float: none !important;\n }\n}\n\n@media (min-width: 1200px) {\n .float-xl-left {\n float: left !important;\n }\n .float-xl-right {\n float: right !important;\n }\n .float-xl-none {\n float: none !important;\n }\n}\n\n.overflow-auto {\n overflow: auto !important;\n}\n\n.overflow-hidden {\n overflow: hidden !important;\n}\n\n.position-static {\n position: static !important;\n}\n\n.position-relative {\n position: relative !important;\n}\n\n.position-absolute {\n position: absolute !important;\n}\n\n.position-fixed {\n position: fixed !important;\n}\n\n.position-sticky {\n position: -webkit-sticky !important;\n position: sticky !important;\n}\n\n.fixed-top {\n position: fixed;\n top: 0;\n right: 0;\n left: 0;\n z-index: 1030;\n}\n\n.fixed-bottom {\n position: fixed;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1030;\n}\n\n@supports ((position: -webkit-sticky) or (position: sticky)) {\n .sticky-top {\n position: -webkit-sticky;\n position: sticky;\n top: 0;\n z-index: 1020;\n }\n}\n\n.sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border: 0;\n}\n\n.sr-only-focusable:active, .sr-only-focusable:focus {\n position: static;\n width: auto;\n height: auto;\n overflow: visible;\n clip: auto;\n white-space: normal;\n}\n\n.shadow-sm {\n box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075) !important;\n}\n\n.shadow {\n box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15) !important;\n}\n\n.shadow-lg {\n box-shadow: 0 1rem 3rem rgba(0, 0, 0, 0.175) !important;\n}\n\n.shadow-none {\n box-shadow: none !important;\n}\n\n.w-25 {\n width: 25% !important;\n}\n\n.w-50 {\n width: 50% !important;\n}\n\n.w-75 {\n width: 75% !important;\n}\n\n.w-100 {\n width: 100% !important;\n}\n\n.w-auto {\n width: auto !important;\n}\n\n.h-25 {\n height: 25% !important;\n}\n\n.h-50 {\n height: 50% !important;\n}\n\n.h-75 {\n height: 75% !important;\n}\n\n.h-100 {\n height: 100% !important;\n}\n\n.h-auto {\n height: auto !important;\n}\n\n.mw-100 {\n max-width: 100% !important;\n}\n\n.mh-100 {\n max-height: 100% !important;\n}\n\n.min-vw-100 {\n min-width: 100vw !important;\n}\n\n.min-vh-100 {\n min-height: 100vh !important;\n}\n\n.vw-100 {\n width: 100vw !important;\n}\n\n.vh-100 {\n height: 100vh !important;\n}\n\n.stretched-link::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1;\n pointer-events: auto;\n content: \"\";\n background-color: rgba(0, 0, 0, 0);\n}\n\n.m-0 {\n margin: 0 !important;\n}\n\n.mt-0,\n.my-0 {\n margin-top: 0 !important;\n}\n\n.mr-0,\n.mx-0 {\n margin-right: 0 !important;\n}\n\n.mb-0,\n.my-0 {\n margin-bottom: 0 !important;\n}\n\n.ml-0,\n.mx-0 {\n margin-left: 0 !important;\n}\n\n.m-1 {\n margin: 0.25rem !important;\n}\n\n.mt-1,\n.my-1 {\n margin-top: 0.25rem !important;\n}\n\n.mr-1,\n.mx-1 {\n margin-right: 0.25rem !important;\n}\n\n.mb-1,\n.my-1 {\n margin-bottom: 0.25rem !important;\n}\n\n.ml-1,\n.mx-1 {\n margin-left: 0.25rem !important;\n}\n\n.m-2 {\n margin: 0.5rem !important;\n}\n\n.mt-2,\n.my-2 {\n margin-top: 0.5rem !important;\n}\n\n.mr-2,\n.mx-2 {\n margin-right: 0.5rem !important;\n}\n\n.mb-2,\n.my-2 {\n margin-bottom: 0.5rem !important;\n}\n\n.ml-2,\n.mx-2 {\n margin-left: 0.5rem !important;\n}\n\n.m-3 {\n margin: 1rem !important;\n}\n\n.mt-3,\n.my-3 {\n margin-top: 1rem !important;\n}\n\n.mr-3,\n.mx-3 {\n margin-right: 1rem !important;\n}\n\n.mb-3,\n.my-3 {\n margin-bottom: 1rem !important;\n}\n\n.ml-3,\n.mx-3 {\n margin-left: 1rem !important;\n}\n\n.m-4 {\n margin: 1.5rem !important;\n}\n\n.mt-4,\n.my-4 {\n margin-top: 1.5rem !important;\n}\n\n.mr-4,\n.mx-4 {\n margin-right: 1.5rem !important;\n}\n\n.mb-4,\n.my-4 {\n margin-bottom: 1.5rem !important;\n}\n\n.ml-4,\n.mx-4 {\n margin-left: 1.5rem !important;\n}\n\n.m-5 {\n margin: 3rem !important;\n}\n\n.mt-5,\n.my-5 {\n margin-top: 3rem !important;\n}\n\n.mr-5,\n.mx-5 {\n margin-right: 3rem !important;\n}\n\n.mb-5,\n.my-5 {\n margin-bottom: 3rem !important;\n}\n\n.ml-5,\n.mx-5 {\n margin-left: 3rem !important;\n}\n\n.p-0 {\n padding: 0 !important;\n}\n\n.pt-0,\n.py-0 {\n padding-top: 0 !important;\n}\n\n.pr-0,\n.px-0 {\n padding-right: 0 !important;\n}\n\n.pb-0,\n.py-0 {\n padding-bottom: 0 !important;\n}\n\n.pl-0,\n.px-0 {\n padding-left: 0 !important;\n}\n\n.p-1 {\n padding: 0.25rem !important;\n}\n\n.pt-1,\n.py-1 {\n padding-top: 0.25rem !important;\n}\n\n.pr-1,\n.px-1 {\n padding-right: 0.25rem !important;\n}\n\n.pb-1,\n.py-1 {\n padding-bottom: 0.25rem !important;\n}\n\n.pl-1,\n.px-1 {\n padding-left: 0.25rem !important;\n}\n\n.p-2 {\n padding: 0.5rem !important;\n}\n\n.pt-2,\n.py-2 {\n padding-top: 0.5rem !important;\n}\n\n.pr-2,\n.px-2 {\n padding-right: 0.5rem !important;\n}\n\n.pb-2,\n.py-2 {\n padding-bottom: 0.5rem !important;\n}\n\n.pl-2,\n.px-2 {\n padding-left: 0.5rem !important;\n}\n\n.p-3 {\n padding: 1rem !important;\n}\n\n.pt-3,\n.py-3 {\n padding-top: 1rem !important;\n}\n\n.pr-3,\n.px-3 {\n padding-right: 1rem !important;\n}\n\n.pb-3,\n.py-3 {\n padding-bottom: 1rem !important;\n}\n\n.pl-3,\n.px-3 {\n padding-left: 1rem !important;\n}\n\n.p-4 {\n padding: 1.5rem !important;\n}\n\n.pt-4,\n.py-4 {\n padding-top: 1.5rem !important;\n}\n\n.pr-4,\n.px-4 {\n padding-right: 1.5rem !important;\n}\n\n.pb-4,\n.py-4 {\n padding-bottom: 1.5rem !important;\n}\n\n.pl-4,\n.px-4 {\n padding-left: 1.5rem !important;\n}\n\n.p-5 {\n padding: 3rem !important;\n}\n\n.pt-5,\n.py-5 {\n padding-top: 3rem !important;\n}\n\n.pr-5,\n.px-5 {\n padding-right: 3rem !important;\n}\n\n.pb-5,\n.py-5 {\n padding-bottom: 3rem !important;\n}\n\n.pl-5,\n.px-5 {\n padding-left: 3rem !important;\n}\n\n.m-n1 {\n margin: -0.25rem !important;\n}\n\n.mt-n1,\n.my-n1 {\n margin-top: -0.25rem !important;\n}\n\n.mr-n1,\n.mx-n1 {\n margin-right: -0.25rem !important;\n}\n\n.mb-n1,\n.my-n1 {\n margin-bottom: -0.25rem !important;\n}\n\n.ml-n1,\n.mx-n1 {\n margin-left: -0.25rem !important;\n}\n\n.m-n2 {\n margin: -0.5rem !important;\n}\n\n.mt-n2,\n.my-n2 {\n margin-top: -0.5rem !important;\n}\n\n.mr-n2,\n.mx-n2 {\n margin-right: -0.5rem !important;\n}\n\n.mb-n2,\n.my-n2 {\n margin-bottom: -0.5rem !important;\n}\n\n.ml-n2,\n.mx-n2 {\n margin-left: -0.5rem !important;\n}\n\n.m-n3 {\n margin: -1rem !important;\n}\n\n.mt-n3,\n.my-n3 {\n margin-top: -1rem !important;\n}\n\n.mr-n3,\n.mx-n3 {\n margin-right: -1rem !important;\n}\n\n.mb-n3,\n.my-n3 {\n margin-bottom: -1rem !important;\n}\n\n.ml-n3,\n.mx-n3 {\n margin-left: -1rem !important;\n}\n\n.m-n4 {\n margin: -1.5rem !important;\n}\n\n.mt-n4,\n.my-n4 {\n margin-top: -1.5rem !important;\n}\n\n.mr-n4,\n.mx-n4 {\n margin-right: -1.5rem !important;\n}\n\n.mb-n4,\n.my-n4 {\n margin-bottom: -1.5rem !important;\n}\n\n.ml-n4,\n.mx-n4 {\n margin-left: -1.5rem !important;\n}\n\n.m-n5 {\n margin: -3rem !important;\n}\n\n.mt-n5,\n.my-n5 {\n margin-top: -3rem !important;\n}\n\n.mr-n5,\n.mx-n5 {\n margin-right: -3rem !important;\n}\n\n.mb-n5,\n.my-n5 {\n margin-bottom: -3rem !important;\n}\n\n.ml-n5,\n.mx-n5 {\n margin-left: -3rem !important;\n}\n\n.m-auto {\n margin: auto !important;\n}\n\n.mt-auto,\n.my-auto {\n margin-top: auto !important;\n}\n\n.mr-auto,\n.mx-auto {\n margin-right: auto !important;\n}\n\n.mb-auto,\n.my-auto {\n margin-bottom: auto !important;\n}\n\n.ml-auto,\n.mx-auto {\n margin-left: auto !important;\n}\n\n@media (min-width: 576px) {\n .m-sm-0 {\n margin: 0 !important;\n }\n .mt-sm-0,\n .my-sm-0 {\n margin-top: 0 !important;\n }\n .mr-sm-0,\n .mx-sm-0 {\n margin-right: 0 !important;\n }\n .mb-sm-0,\n .my-sm-0 {\n margin-bottom: 0 !important;\n }\n .ml-sm-0,\n .mx-sm-0 {\n margin-left: 0 !important;\n }\n .m-sm-1 {\n margin: 0.25rem !important;\n }\n .mt-sm-1,\n .my-sm-1 {\n margin-top: 0.25rem !important;\n }\n .mr-sm-1,\n .mx-sm-1 {\n margin-right: 0.25rem !important;\n }\n .mb-sm-1,\n .my-sm-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-sm-1,\n .mx-sm-1 {\n margin-left: 0.25rem !important;\n }\n .m-sm-2 {\n margin: 0.5rem !important;\n }\n .mt-sm-2,\n .my-sm-2 {\n margin-top: 0.5rem !important;\n }\n .mr-sm-2,\n .mx-sm-2 {\n margin-right: 0.5rem !important;\n }\n .mb-sm-2,\n .my-sm-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-sm-2,\n .mx-sm-2 {\n margin-left: 0.5rem !important;\n }\n .m-sm-3 {\n margin: 1rem !important;\n }\n .mt-sm-3,\n .my-sm-3 {\n margin-top: 1rem !important;\n }\n .mr-sm-3,\n .mx-sm-3 {\n margin-right: 1rem !important;\n }\n .mb-sm-3,\n .my-sm-3 {\n margin-bottom: 1rem !important;\n }\n .ml-sm-3,\n .mx-sm-3 {\n margin-left: 1rem !important;\n }\n .m-sm-4 {\n margin: 1.5rem !important;\n }\n .mt-sm-4,\n .my-sm-4 {\n margin-top: 1.5rem !important;\n }\n .mr-sm-4,\n .mx-sm-4 {\n margin-right: 1.5rem !important;\n }\n .mb-sm-4,\n .my-sm-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-sm-4,\n .mx-sm-4 {\n margin-left: 1.5rem !important;\n }\n .m-sm-5 {\n margin: 3rem !important;\n }\n .mt-sm-5,\n .my-sm-5 {\n margin-top: 3rem !important;\n }\n .mr-sm-5,\n .mx-sm-5 {\n margin-right: 3rem !important;\n }\n .mb-sm-5,\n .my-sm-5 {\n margin-bottom: 3rem !important;\n }\n .ml-sm-5,\n .mx-sm-5 {\n margin-left: 3rem !important;\n }\n .p-sm-0 {\n padding: 0 !important;\n }\n .pt-sm-0,\n .py-sm-0 {\n padding-top: 0 !important;\n }\n .pr-sm-0,\n .px-sm-0 {\n padding-right: 0 !important;\n }\n .pb-sm-0,\n .py-sm-0 {\n padding-bottom: 0 !important;\n }\n .pl-sm-0,\n .px-sm-0 {\n padding-left: 0 !important;\n }\n .p-sm-1 {\n padding: 0.25rem !important;\n }\n .pt-sm-1,\n .py-sm-1 {\n padding-top: 0.25rem !important;\n }\n .pr-sm-1,\n .px-sm-1 {\n padding-right: 0.25rem !important;\n }\n .pb-sm-1,\n .py-sm-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-sm-1,\n .px-sm-1 {\n padding-left: 0.25rem !important;\n }\n .p-sm-2 {\n padding: 0.5rem !important;\n }\n .pt-sm-2,\n .py-sm-2 {\n padding-top: 0.5rem !important;\n }\n .pr-sm-2,\n .px-sm-2 {\n padding-right: 0.5rem !important;\n }\n .pb-sm-2,\n .py-sm-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-sm-2,\n .px-sm-2 {\n padding-left: 0.5rem !important;\n }\n .p-sm-3 {\n padding: 1rem !important;\n }\n .pt-sm-3,\n .py-sm-3 {\n padding-top: 1rem !important;\n }\n .pr-sm-3,\n .px-sm-3 {\n padding-right: 1rem !important;\n }\n .pb-sm-3,\n .py-sm-3 {\n padding-bottom: 1rem !important;\n }\n .pl-sm-3,\n .px-sm-3 {\n padding-left: 1rem !important;\n }\n .p-sm-4 {\n padding: 1.5rem !important;\n }\n .pt-sm-4,\n .py-sm-4 {\n padding-top: 1.5rem !important;\n }\n .pr-sm-4,\n .px-sm-4 {\n padding-right: 1.5rem !important;\n }\n .pb-sm-4,\n .py-sm-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-sm-4,\n .px-sm-4 {\n padding-left: 1.5rem !important;\n }\n .p-sm-5 {\n padding: 3rem !important;\n }\n .pt-sm-5,\n .py-sm-5 {\n padding-top: 3rem !important;\n }\n .pr-sm-5,\n .px-sm-5 {\n padding-right: 3rem !important;\n }\n .pb-sm-5,\n .py-sm-5 {\n padding-bottom: 3rem !important;\n }\n .pl-sm-5,\n .px-sm-5 {\n padding-left: 3rem !important;\n }\n .m-sm-n1 {\n margin: -0.25rem !important;\n }\n .mt-sm-n1,\n .my-sm-n1 {\n margin-top: -0.25rem !important;\n }\n .mr-sm-n1,\n .mx-sm-n1 {\n margin-right: -0.25rem !important;\n }\n .mb-sm-n1,\n .my-sm-n1 {\n margin-bottom: -0.25rem !important;\n }\n .ml-sm-n1,\n .mx-sm-n1 {\n margin-left: -0.25rem !important;\n }\n .m-sm-n2 {\n margin: -0.5rem !important;\n }\n .mt-sm-n2,\n .my-sm-n2 {\n margin-top: -0.5rem !important;\n }\n .mr-sm-n2,\n .mx-sm-n2 {\n margin-right: -0.5rem !important;\n }\n .mb-sm-n2,\n .my-sm-n2 {\n margin-bottom: -0.5rem !important;\n }\n .ml-sm-n2,\n .mx-sm-n2 {\n margin-left: -0.5rem !important;\n }\n .m-sm-n3 {\n margin: -1rem !important;\n }\n .mt-sm-n3,\n .my-sm-n3 {\n margin-top: -1rem !important;\n }\n .mr-sm-n3,\n .mx-sm-n3 {\n margin-right: -1rem !important;\n }\n .mb-sm-n3,\n .my-sm-n3 {\n margin-bottom: -1rem !important;\n }\n .ml-sm-n3,\n .mx-sm-n3 {\n margin-left: -1rem !important;\n }\n .m-sm-n4 {\n margin: -1.5rem !important;\n }\n .mt-sm-n4,\n .my-sm-n4 {\n margin-top: -1.5rem !important;\n }\n .mr-sm-n4,\n .mx-sm-n4 {\n margin-right: -1.5rem !important;\n }\n .mb-sm-n4,\n .my-sm-n4 {\n margin-bottom: -1.5rem !important;\n }\n .ml-sm-n4,\n .mx-sm-n4 {\n margin-left: -1.5rem !important;\n }\n .m-sm-n5 {\n margin: -3rem !important;\n }\n .mt-sm-n5,\n .my-sm-n5 {\n margin-top: -3rem !important;\n }\n .mr-sm-n5,\n .mx-sm-n5 {\n margin-right: -3rem !important;\n }\n .mb-sm-n5,\n .my-sm-n5 {\n margin-bottom: -3rem !important;\n }\n .ml-sm-n5,\n .mx-sm-n5 {\n margin-left: -3rem !important;\n }\n .m-sm-auto {\n margin: auto !important;\n }\n .mt-sm-auto,\n .my-sm-auto {\n margin-top: auto !important;\n }\n .mr-sm-auto,\n .mx-sm-auto {\n margin-right: auto !important;\n }\n .mb-sm-auto,\n .my-sm-auto {\n margin-bottom: auto !important;\n }\n .ml-sm-auto,\n .mx-sm-auto {\n margin-left: auto !important;\n }\n}\n\n@media (min-width: 768px) {\n .m-md-0 {\n margin: 0 !important;\n }\n .mt-md-0,\n .my-md-0 {\n margin-top: 0 !important;\n }\n .mr-md-0,\n .mx-md-0 {\n margin-right: 0 !important;\n }\n .mb-md-0,\n .my-md-0 {\n margin-bottom: 0 !important;\n }\n .ml-md-0,\n .mx-md-0 {\n margin-left: 0 !important;\n }\n .m-md-1 {\n margin: 0.25rem !important;\n }\n .mt-md-1,\n .my-md-1 {\n margin-top: 0.25rem !important;\n }\n .mr-md-1,\n .mx-md-1 {\n margin-right: 0.25rem !important;\n }\n .mb-md-1,\n .my-md-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-md-1,\n .mx-md-1 {\n margin-left: 0.25rem !important;\n }\n .m-md-2 {\n margin: 0.5rem !important;\n }\n .mt-md-2,\n .my-md-2 {\n margin-top: 0.5rem !important;\n }\n .mr-md-2,\n .mx-md-2 {\n margin-right: 0.5rem !important;\n }\n .mb-md-2,\n .my-md-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-md-2,\n .mx-md-2 {\n margin-left: 0.5rem !important;\n }\n .m-md-3 {\n margin: 1rem !important;\n }\n .mt-md-3,\n .my-md-3 {\n margin-top: 1rem !important;\n }\n .mr-md-3,\n .mx-md-3 {\n margin-right: 1rem !important;\n }\n .mb-md-3,\n .my-md-3 {\n margin-bottom: 1rem !important;\n }\n .ml-md-3,\n .mx-md-3 {\n margin-left: 1rem !important;\n }\n .m-md-4 {\n margin: 1.5rem !important;\n }\n .mt-md-4,\n .my-md-4 {\n margin-top: 1.5rem !important;\n }\n .mr-md-4,\n .mx-md-4 {\n margin-right: 1.5rem !important;\n }\n .mb-md-4,\n .my-md-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-md-4,\n .mx-md-4 {\n margin-left: 1.5rem !important;\n }\n .m-md-5 {\n margin: 3rem !important;\n }\n .mt-md-5,\n .my-md-5 {\n margin-top: 3rem !important;\n }\n .mr-md-5,\n .mx-md-5 {\n margin-right: 3rem !important;\n }\n .mb-md-5,\n .my-md-5 {\n margin-bottom: 3rem !important;\n }\n .ml-md-5,\n .mx-md-5 {\n margin-left: 3rem !important;\n }\n .p-md-0 {\n padding: 0 !important;\n }\n .pt-md-0,\n .py-md-0 {\n padding-top: 0 !important;\n }\n .pr-md-0,\n .px-md-0 {\n padding-right: 0 !important;\n }\n .pb-md-0,\n .py-md-0 {\n padding-bottom: 0 !important;\n }\n .pl-md-0,\n .px-md-0 {\n padding-left: 0 !important;\n }\n .p-md-1 {\n padding: 0.25rem !important;\n }\n .pt-md-1,\n .py-md-1 {\n padding-top: 0.25rem !important;\n }\n .pr-md-1,\n .px-md-1 {\n padding-right: 0.25rem !important;\n }\n .pb-md-1,\n .py-md-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-md-1,\n .px-md-1 {\n padding-left: 0.25rem !important;\n }\n .p-md-2 {\n padding: 0.5rem !important;\n }\n .pt-md-2,\n .py-md-2 {\n padding-top: 0.5rem !important;\n }\n .pr-md-2,\n .px-md-2 {\n padding-right: 0.5rem !important;\n }\n .pb-md-2,\n .py-md-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-md-2,\n .px-md-2 {\n padding-left: 0.5rem !important;\n }\n .p-md-3 {\n padding: 1rem !important;\n }\n .pt-md-3,\n .py-md-3 {\n padding-top: 1rem !important;\n }\n .pr-md-3,\n .px-md-3 {\n padding-right: 1rem !important;\n }\n .pb-md-3,\n .py-md-3 {\n padding-bottom: 1rem !important;\n }\n .pl-md-3,\n .px-md-3 {\n padding-left: 1rem !important;\n }\n .p-md-4 {\n padding: 1.5rem !important;\n }\n .pt-md-4,\n .py-md-4 {\n padding-top: 1.5rem !important;\n }\n .pr-md-4,\n .px-md-4 {\n padding-right: 1.5rem !important;\n }\n .pb-md-4,\n .py-md-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-md-4,\n .px-md-4 {\n padding-left: 1.5rem !important;\n }\n .p-md-5 {\n padding: 3rem !important;\n }\n .pt-md-5,\n .py-md-5 {\n padding-top: 3rem !important;\n }\n .pr-md-5,\n .px-md-5 {\n padding-right: 3rem !important;\n }\n .pb-md-5,\n .py-md-5 {\n padding-bottom: 3rem !important;\n }\n .pl-md-5,\n .px-md-5 {\n padding-left: 3rem !important;\n }\n .m-md-n1 {\n margin: -0.25rem !important;\n }\n .mt-md-n1,\n .my-md-n1 {\n margin-top: -0.25rem !important;\n }\n .mr-md-n1,\n .mx-md-n1 {\n margin-right: -0.25rem !important;\n }\n .mb-md-n1,\n .my-md-n1 {\n margin-bottom: -0.25rem !important;\n }\n .ml-md-n1,\n .mx-md-n1 {\n margin-left: -0.25rem !important;\n }\n .m-md-n2 {\n margin: -0.5rem !important;\n }\n .mt-md-n2,\n .my-md-n2 {\n margin-top: -0.5rem !important;\n }\n .mr-md-n2,\n .mx-md-n2 {\n margin-right: -0.5rem !important;\n }\n .mb-md-n2,\n .my-md-n2 {\n margin-bottom: -0.5rem !important;\n }\n .ml-md-n2,\n .mx-md-n2 {\n margin-left: -0.5rem !important;\n }\n .m-md-n3 {\n margin: -1rem !important;\n }\n .mt-md-n3,\n .my-md-n3 {\n margin-top: -1rem !important;\n }\n .mr-md-n3,\n .mx-md-n3 {\n margin-right: -1rem !important;\n }\n .mb-md-n3,\n .my-md-n3 {\n margin-bottom: -1rem !important;\n }\n .ml-md-n3,\n .mx-md-n3 {\n margin-left: -1rem !important;\n }\n .m-md-n4 {\n margin: -1.5rem !important;\n }\n .mt-md-n4,\n .my-md-n4 {\n margin-top: -1.5rem !important;\n }\n .mr-md-n4,\n .mx-md-n4 {\n margin-right: -1.5rem !important;\n }\n .mb-md-n4,\n .my-md-n4 {\n margin-bottom: -1.5rem !important;\n }\n .ml-md-n4,\n .mx-md-n4 {\n margin-left: -1.5rem !important;\n }\n .m-md-n5 {\n margin: -3rem !important;\n }\n .mt-md-n5,\n .my-md-n5 {\n margin-top: -3rem !important;\n }\n .mr-md-n5,\n .mx-md-n5 {\n margin-right: -3rem !important;\n }\n .mb-md-n5,\n .my-md-n5 {\n margin-bottom: -3rem !important;\n }\n .ml-md-n5,\n .mx-md-n5 {\n margin-left: -3rem !important;\n }\n .m-md-auto {\n margin: auto !important;\n }\n .mt-md-auto,\n .my-md-auto {\n margin-top: auto !important;\n }\n .mr-md-auto,\n .mx-md-auto {\n margin-right: auto !important;\n }\n .mb-md-auto,\n .my-md-auto {\n margin-bottom: auto !important;\n }\n .ml-md-auto,\n .mx-md-auto {\n margin-left: auto !important;\n }\n}\n\n@media (min-width: 992px) {\n .m-lg-0 {\n margin: 0 !important;\n }\n .mt-lg-0,\n .my-lg-0 {\n margin-top: 0 !important;\n }\n .mr-lg-0,\n .mx-lg-0 {\n margin-right: 0 !important;\n }\n .mb-lg-0,\n .my-lg-0 {\n margin-bottom: 0 !important;\n }\n .ml-lg-0,\n .mx-lg-0 {\n margin-left: 0 !important;\n }\n .m-lg-1 {\n margin: 0.25rem !important;\n }\n .mt-lg-1,\n .my-lg-1 {\n margin-top: 0.25rem !important;\n }\n .mr-lg-1,\n .mx-lg-1 {\n margin-right: 0.25rem !important;\n }\n .mb-lg-1,\n .my-lg-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-lg-1,\n .mx-lg-1 {\n margin-left: 0.25rem !important;\n }\n .m-lg-2 {\n margin: 0.5rem !important;\n }\n .mt-lg-2,\n .my-lg-2 {\n margin-top: 0.5rem !important;\n }\n .mr-lg-2,\n .mx-lg-2 {\n margin-right: 0.5rem !important;\n }\n .mb-lg-2,\n .my-lg-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-lg-2,\n .mx-lg-2 {\n margin-left: 0.5rem !important;\n }\n .m-lg-3 {\n margin: 1rem !important;\n }\n .mt-lg-3,\n .my-lg-3 {\n margin-top: 1rem !important;\n }\n .mr-lg-3,\n .mx-lg-3 {\n margin-right: 1rem !important;\n }\n .mb-lg-3,\n .my-lg-3 {\n margin-bottom: 1rem !important;\n }\n .ml-lg-3,\n .mx-lg-3 {\n margin-left: 1rem !important;\n }\n .m-lg-4 {\n margin: 1.5rem !important;\n }\n .mt-lg-4,\n .my-lg-4 {\n margin-top: 1.5rem !important;\n }\n .mr-lg-4,\n .mx-lg-4 {\n margin-right: 1.5rem !important;\n }\n .mb-lg-4,\n .my-lg-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-lg-4,\n .mx-lg-4 {\n margin-left: 1.5rem !important;\n }\n .m-lg-5 {\n margin: 3rem !important;\n }\n .mt-lg-5,\n .my-lg-5 {\n margin-top: 3rem !important;\n }\n .mr-lg-5,\n .mx-lg-5 {\n margin-right: 3rem !important;\n }\n .mb-lg-5,\n .my-lg-5 {\n margin-bottom: 3rem !important;\n }\n .ml-lg-5,\n .mx-lg-5 {\n margin-left: 3rem !important;\n }\n .p-lg-0 {\n padding: 0 !important;\n }\n .pt-lg-0,\n .py-lg-0 {\n padding-top: 0 !important;\n }\n .pr-lg-0,\n .px-lg-0 {\n padding-right: 0 !important;\n }\n .pb-lg-0,\n .py-lg-0 {\n padding-bottom: 0 !important;\n }\n .pl-lg-0,\n .px-lg-0 {\n padding-left: 0 !important;\n }\n .p-lg-1 {\n padding: 0.25rem !important;\n }\n .pt-lg-1,\n .py-lg-1 {\n padding-top: 0.25rem !important;\n }\n .pr-lg-1,\n .px-lg-1 {\n padding-right: 0.25rem !important;\n }\n .pb-lg-1,\n .py-lg-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-lg-1,\n .px-lg-1 {\n padding-left: 0.25rem !important;\n }\n .p-lg-2 {\n padding: 0.5rem !important;\n }\n .pt-lg-2,\n .py-lg-2 {\n padding-top: 0.5rem !important;\n }\n .pr-lg-2,\n .px-lg-2 {\n padding-right: 0.5rem !important;\n }\n .pb-lg-2,\n .py-lg-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-lg-2,\n .px-lg-2 {\n padding-left: 0.5rem !important;\n }\n .p-lg-3 {\n padding: 1rem !important;\n }\n .pt-lg-3,\n .py-lg-3 {\n padding-top: 1rem !important;\n }\n .pr-lg-3,\n .px-lg-3 {\n padding-right: 1rem !important;\n }\n .pb-lg-3,\n .py-lg-3 {\n padding-bottom: 1rem !important;\n }\n .pl-lg-3,\n .px-lg-3 {\n padding-left: 1rem !important;\n }\n .p-lg-4 {\n padding: 1.5rem !important;\n }\n .pt-lg-4,\n .py-lg-4 {\n padding-top: 1.5rem !important;\n }\n .pr-lg-4,\n .px-lg-4 {\n padding-right: 1.5rem !important;\n }\n .pb-lg-4,\n .py-lg-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-lg-4,\n .px-lg-4 {\n padding-left: 1.5rem !important;\n }\n .p-lg-5 {\n padding: 3rem !important;\n }\n .pt-lg-5,\n .py-lg-5 {\n padding-top: 3rem !important;\n }\n .pr-lg-5,\n .px-lg-5 {\n padding-right: 3rem !important;\n }\n .pb-lg-5,\n .py-lg-5 {\n padding-bottom: 3rem !important;\n }\n .pl-lg-5,\n .px-lg-5 {\n padding-left: 3rem !important;\n }\n .m-lg-n1 {\n margin: -0.25rem !important;\n }\n .mt-lg-n1,\n .my-lg-n1 {\n margin-top: -0.25rem !important;\n }\n .mr-lg-n1,\n .mx-lg-n1 {\n margin-right: -0.25rem !important;\n }\n .mb-lg-n1,\n .my-lg-n1 {\n margin-bottom: -0.25rem !important;\n }\n .ml-lg-n1,\n .mx-lg-n1 {\n margin-left: -0.25rem !important;\n }\n .m-lg-n2 {\n margin: -0.5rem !important;\n }\n .mt-lg-n2,\n .my-lg-n2 {\n margin-top: -0.5rem !important;\n }\n .mr-lg-n2,\n .mx-lg-n2 {\n margin-right: -0.5rem !important;\n }\n .mb-lg-n2,\n .my-lg-n2 {\n margin-bottom: -0.5rem !important;\n }\n .ml-lg-n2,\n .mx-lg-n2 {\n margin-left: -0.5rem !important;\n }\n .m-lg-n3 {\n margin: -1rem !important;\n }\n .mt-lg-n3,\n .my-lg-n3 {\n margin-top: -1rem !important;\n }\n .mr-lg-n3,\n .mx-lg-n3 {\n margin-right: -1rem !important;\n }\n .mb-lg-n3,\n .my-lg-n3 {\n margin-bottom: -1rem !important;\n }\n .ml-lg-n3,\n .mx-lg-n3 {\n margin-left: -1rem !important;\n }\n .m-lg-n4 {\n margin: -1.5rem !important;\n }\n .mt-lg-n4,\n .my-lg-n4 {\n margin-top: -1.5rem !important;\n }\n .mr-lg-n4,\n .mx-lg-n4 {\n margin-right: -1.5rem !important;\n }\n .mb-lg-n4,\n .my-lg-n4 {\n margin-bottom: -1.5rem !important;\n }\n .ml-lg-n4,\n .mx-lg-n4 {\n margin-left: -1.5rem !important;\n }\n .m-lg-n5 {\n margin: -3rem !important;\n }\n .mt-lg-n5,\n .my-lg-n5 {\n margin-top: -3rem !important;\n }\n .mr-lg-n5,\n .mx-lg-n5 {\n margin-right: -3rem !important;\n }\n .mb-lg-n5,\n .my-lg-n5 {\n margin-bottom: -3rem !important;\n }\n .ml-lg-n5,\n .mx-lg-n5 {\n margin-left: -3rem !important;\n }\n .m-lg-auto {\n margin: auto !important;\n }\n .mt-lg-auto,\n .my-lg-auto {\n margin-top: auto !important;\n }\n .mr-lg-auto,\n .mx-lg-auto {\n margin-right: auto !important;\n }\n .mb-lg-auto,\n .my-lg-auto {\n margin-bottom: auto !important;\n }\n .ml-lg-auto,\n .mx-lg-auto {\n margin-left: auto !important;\n }\n}\n\n@media (min-width: 1200px) {\n .m-xl-0 {\n margin: 0 !important;\n }\n .mt-xl-0,\n .my-xl-0 {\n margin-top: 0 !important;\n }\n .mr-xl-0,\n .mx-xl-0 {\n margin-right: 0 !important;\n }\n .mb-xl-0,\n .my-xl-0 {\n margin-bottom: 0 !important;\n }\n .ml-xl-0,\n .mx-xl-0 {\n margin-left: 0 !important;\n }\n .m-xl-1 {\n margin: 0.25rem !important;\n }\n .mt-xl-1,\n .my-xl-1 {\n margin-top: 0.25rem !important;\n }\n .mr-xl-1,\n .mx-xl-1 {\n margin-right: 0.25rem !important;\n }\n .mb-xl-1,\n .my-xl-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-xl-1,\n .mx-xl-1 {\n margin-left: 0.25rem !important;\n }\n .m-xl-2 {\n margin: 0.5rem !important;\n }\n .mt-xl-2,\n .my-xl-2 {\n margin-top: 0.5rem !important;\n }\n .mr-xl-2,\n .mx-xl-2 {\n margin-right: 0.5rem !important;\n }\n .mb-xl-2,\n .my-xl-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-xl-2,\n .mx-xl-2 {\n margin-left: 0.5rem !important;\n }\n .m-xl-3 {\n margin: 1rem !important;\n }\n .mt-xl-3,\n .my-xl-3 {\n margin-top: 1rem !important;\n }\n .mr-xl-3,\n .mx-xl-3 {\n margin-right: 1rem !important;\n }\n .mb-xl-3,\n .my-xl-3 {\n margin-bottom: 1rem !important;\n }\n .ml-xl-3,\n .mx-xl-3 {\n margin-left: 1rem !important;\n }\n .m-xl-4 {\n margin: 1.5rem !important;\n }\n .mt-xl-4,\n .my-xl-4 {\n margin-top: 1.5rem !important;\n }\n .mr-xl-4,\n .mx-xl-4 {\n margin-right: 1.5rem !important;\n }\n .mb-xl-4,\n .my-xl-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-xl-4,\n .mx-xl-4 {\n margin-left: 1.5rem !important;\n }\n .m-xl-5 {\n margin: 3rem !important;\n }\n .mt-xl-5,\n .my-xl-5 {\n margin-top: 3rem !important;\n }\n .mr-xl-5,\n .mx-xl-5 {\n margin-right: 3rem !important;\n }\n .mb-xl-5,\n .my-xl-5 {\n margin-bottom: 3rem !important;\n }\n .ml-xl-5,\n .mx-xl-5 {\n margin-left: 3rem !important;\n }\n .p-xl-0 {\n padding: 0 !important;\n }\n .pt-xl-0,\n .py-xl-0 {\n padding-top: 0 !important;\n }\n .pr-xl-0,\n .px-xl-0 {\n padding-right: 0 !important;\n }\n .pb-xl-0,\n .py-xl-0 {\n padding-bottom: 0 !important;\n }\n .pl-xl-0,\n .px-xl-0 {\n padding-left: 0 !important;\n }\n .p-xl-1 {\n padding: 0.25rem !important;\n }\n .pt-xl-1,\n .py-xl-1 {\n padding-top: 0.25rem !important;\n }\n .pr-xl-1,\n .px-xl-1 {\n padding-right: 0.25rem !important;\n }\n .pb-xl-1,\n .py-xl-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-xl-1,\n .px-xl-1 {\n padding-left: 0.25rem !important;\n }\n .p-xl-2 {\n padding: 0.5rem !important;\n }\n .pt-xl-2,\n .py-xl-2 {\n padding-top: 0.5rem !important;\n }\n .pr-xl-2,\n .px-xl-2 {\n padding-right: 0.5rem !important;\n }\n .pb-xl-2,\n .py-xl-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-xl-2,\n .px-xl-2 {\n padding-left: 0.5rem !important;\n }\n .p-xl-3 {\n padding: 1rem !important;\n }\n .pt-xl-3,\n .py-xl-3 {\n padding-top: 1rem !important;\n }\n .pr-xl-3,\n .px-xl-3 {\n padding-right: 1rem !important;\n }\n .pb-xl-3,\n .py-xl-3 {\n padding-bottom: 1rem !important;\n }\n .pl-xl-3,\n .px-xl-3 {\n padding-left: 1rem !important;\n }\n .p-xl-4 {\n padding: 1.5rem !important;\n }\n .pt-xl-4,\n .py-xl-4 {\n padding-top: 1.5rem !important;\n }\n .pr-xl-4,\n .px-xl-4 {\n padding-right: 1.5rem !important;\n }\n .pb-xl-4,\n .py-xl-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-xl-4,\n .px-xl-4 {\n padding-left: 1.5rem !important;\n }\n .p-xl-5 {\n padding: 3rem !important;\n }\n .pt-xl-5,\n .py-xl-5 {\n padding-top: 3rem !important;\n }\n .pr-xl-5,\n .px-xl-5 {\n padding-right: 3rem !important;\n }\n .pb-xl-5,\n .py-xl-5 {\n padding-bottom: 3rem !important;\n }\n .pl-xl-5,\n .px-xl-5 {\n padding-left: 3rem !important;\n }\n .m-xl-n1 {\n margin: -0.25rem !important;\n }\n .mt-xl-n1,\n .my-xl-n1 {\n margin-top: -0.25rem !important;\n }\n .mr-xl-n1,\n .mx-xl-n1 {\n margin-right: -0.25rem !important;\n }\n .mb-xl-n1,\n .my-xl-n1 {\n margin-bottom: -0.25rem !important;\n }\n .ml-xl-n1,\n .mx-xl-n1 {\n margin-left: -0.25rem !important;\n }\n .m-xl-n2 {\n margin: -0.5rem !important;\n }\n .mt-xl-n2,\n .my-xl-n2 {\n margin-top: -0.5rem !important;\n }\n .mr-xl-n2,\n .mx-xl-n2 {\n margin-right: -0.5rem !important;\n }\n .mb-xl-n2,\n .my-xl-n2 {\n margin-bottom: -0.5rem !important;\n }\n .ml-xl-n2,\n .mx-xl-n2 {\n margin-left: -0.5rem !important;\n }\n .m-xl-n3 {\n margin: -1rem !important;\n }\n .mt-xl-n3,\n .my-xl-n3 {\n margin-top: -1rem !important;\n }\n .mr-xl-n3,\n .mx-xl-n3 {\n margin-right: -1rem !important;\n }\n .mb-xl-n3,\n .my-xl-n3 {\n margin-bottom: -1rem !important;\n }\n .ml-xl-n3,\n .mx-xl-n3 {\n margin-left: -1rem !important;\n }\n .m-xl-n4 {\n margin: -1.5rem !important;\n }\n .mt-xl-n4,\n .my-xl-n4 {\n margin-top: -1.5rem !important;\n }\n .mr-xl-n4,\n .mx-xl-n4 {\n margin-right: -1.5rem !important;\n }\n .mb-xl-n4,\n .my-xl-n4 {\n margin-bottom: -1.5rem !important;\n }\n .ml-xl-n4,\n .mx-xl-n4 {\n margin-left: -1.5rem !important;\n }\n .m-xl-n5 {\n margin: -3rem !important;\n }\n .mt-xl-n5,\n .my-xl-n5 {\n margin-top: -3rem !important;\n }\n .mr-xl-n5,\n .mx-xl-n5 {\n margin-right: -3rem !important;\n }\n .mb-xl-n5,\n .my-xl-n5 {\n margin-bottom: -3rem !important;\n }\n .ml-xl-n5,\n .mx-xl-n5 {\n margin-left: -3rem !important;\n }\n .m-xl-auto {\n margin: auto !important;\n }\n .mt-xl-auto,\n .my-xl-auto {\n margin-top: auto !important;\n }\n .mr-xl-auto,\n .mx-xl-auto {\n margin-right: auto !important;\n }\n .mb-xl-auto,\n .my-xl-auto {\n margin-bottom: auto !important;\n }\n .ml-xl-auto,\n .mx-xl-auto {\n margin-left: auto !important;\n }\n}\n\n.text-monospace {\n font-family: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace !important;\n}\n\n.text-justify {\n text-align: justify !important;\n}\n\n.text-wrap {\n white-space: normal !important;\n}\n\n.text-nowrap {\n white-space: nowrap !important;\n}\n\n.text-truncate {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.text-left {\n text-align: left !important;\n}\n\n.text-right {\n text-align: right !important;\n}\n\n.text-center {\n text-align: center !important;\n}\n\n@media (min-width: 576px) {\n .text-sm-left {\n text-align: left !important;\n }\n .text-sm-right {\n text-align: right !important;\n }\n .text-sm-center {\n text-align: center !important;\n }\n}\n\n@media (min-width: 768px) {\n .text-md-left {\n text-align: left !important;\n }\n .text-md-right {\n text-align: right !important;\n }\n .text-md-center {\n text-align: center !important;\n }\n}\n\n@media (min-width: 992px) {\n .text-lg-left {\n text-align: left !important;\n }\n .text-lg-right {\n text-align: right !important;\n }\n .text-lg-center {\n text-align: center !important;\n }\n}\n\n@media (min-width: 1200px) {\n .text-xl-left {\n text-align: left !important;\n }\n .text-xl-right {\n text-align: right !important;\n }\n .text-xl-center {\n text-align: center !important;\n }\n}\n\n.text-lowercase {\n text-transform: lowercase !important;\n}\n\n.text-uppercase {\n text-transform: uppercase !important;\n}\n\n.text-capitalize {\n text-transform: capitalize !important;\n}\n\n.font-weight-light {\n font-weight: 300 !important;\n}\n\n.font-weight-lighter {\n font-weight: lighter !important;\n}\n\n.font-weight-normal {\n font-weight: 400 !important;\n}\n\n.font-weight-bold {\n font-weight: 700 !important;\n}\n\n.font-weight-bolder {\n font-weight: bolder !important;\n}\n\n.font-italic {\n font-style: italic !important;\n}\n\n.text-white {\n color: #fff !important;\n}\n\n.text-primary {\n color: #007bff !important;\n}\n\na.text-primary:hover, a.text-primary:focus {\n color: #0056b3 !important;\n}\n\n.text-secondary {\n color: #6c757d !important;\n}\n\na.text-secondary:hover, a.text-secondary:focus {\n color: #494f54 !important;\n}\n\n.text-success {\n color: #28a745 !important;\n}\n\na.text-success:hover, a.text-success:focus {\n color: #19692c !important;\n}\n\n.text-info {\n color: #17a2b8 !important;\n}\n\na.text-info:hover, a.text-info:focus {\n color: #0f6674 !important;\n}\n\n.text-warning {\n color: #ffc107 !important;\n}\n\na.text-warning:hover, a.text-warning:focus {\n color: #ba8b00 !important;\n}\n\n.text-danger {\n color: #dc3545 !important;\n}\n\na.text-danger:hover, a.text-danger:focus {\n color: #a71d2a !important;\n}\n\n.text-light {\n color: #f8f9fa !important;\n}\n\na.text-light:hover, a.text-light:focus {\n color: #cbd3da !important;\n}\n\n.text-dark {\n color: #343a40 !important;\n}\n\na.text-dark:hover, a.text-dark:focus {\n color: #121416 !important;\n}\n\n.text-body {\n color: #212529 !important;\n}\n\n.text-muted {\n color: #6c757d !important;\n}\n\n.text-black-50 {\n color: rgba(0, 0, 0, 0.5) !important;\n}\n\n.text-white-50 {\n color: rgba(255, 255, 255, 0.5) !important;\n}\n\n.text-hide {\n font: 0/0 a;\n color: transparent;\n text-shadow: none;\n background-color: transparent;\n border: 0;\n}\n\n.text-decoration-none {\n text-decoration: none !important;\n}\n\n.text-break {\n word-break: break-word !important;\n overflow-wrap: break-word !important;\n}\n\n.text-reset {\n color: inherit !important;\n}\n\n.visible {\n visibility: visible !important;\n}\n\n.invisible {\n visibility: hidden !important;\n}\n\n@media print {\n *,\n *::before,\n *::after {\n text-shadow: none !important;\n box-shadow: none !important;\n }\n a:not(.btn) {\n text-decoration: underline;\n }\n abbr[title]::after {\n content: \" (\" attr(title) \")\";\n }\n pre {\n white-space: pre-wrap !important;\n }\n pre,\n blockquote {\n border: 1px solid #adb5bd;\n page-break-inside: avoid;\n }\n thead {\n display: table-header-group;\n }\n tr,\n img {\n page-break-inside: avoid;\n }\n p,\n h2,\n h3 {\n orphans: 3;\n widows: 3;\n }\n h2,\n h3 {\n page-break-after: avoid;\n }\n @page {\n size: a3;\n }\n body {\n min-width: 992px !important;\n }\n .container {\n min-width: 992px !important;\n }\n .navbar {\n display: none;\n }\n .badge {\n border: 1px solid #000;\n }\n .table {\n border-collapse: collapse !important;\n }\n .table td,\n .table th {\n background-color: #fff !important;\n }\n .table-bordered th,\n .table-bordered td {\n border: 1px solid #dee2e6 !important;\n }\n .table-dark {\n color: inherit;\n }\n .table-dark th,\n .table-dark td,\n .table-dark thead th,\n .table-dark tbody + tbody {\n border-color: #dee2e6;\n }\n .table .thead-dark th {\n color: inherit;\n border-color: #dee2e6;\n }\n}\n/*# sourceMappingURL=bootstrap.css.map */","// stylelint-disable property-blacklist, scss/dollar-variable-default\n\n// SCSS RFS mixin\n//\n// Automated font-resizing\n//\n// See https://github.com/twbs/rfs\n\n// Configuration\n\n// Base font size\n$rfs-base-font-size: 1.25rem !default;\n$rfs-font-size-unit: rem !default;\n\n// Breakpoint at where font-size starts decreasing if screen width is smaller\n$rfs-breakpoint: 1200px !default;\n$rfs-breakpoint-unit: px !default;\n\n// Resize font-size based on screen height and width\n$rfs-two-dimensional: false !default;\n\n// Factor of decrease\n$rfs-factor: 10 !default;\n\n@if type-of($rfs-factor) != \"number\" or $rfs-factor <= 1 {\n @error \"`#{$rfs-factor}` is not a valid $rfs-factor, it must be greater than 1.\";\n}\n\n// Generate enable or disable classes. Possibilities: false, \"enable\" or \"disable\"\n$rfs-class: false !default;\n\n// 1 rem = $rfs-rem-value px\n$rfs-rem-value: 16 !default;\n\n// Safari iframe resize bug: https://github.com/twbs/rfs/issues/14\n$rfs-safari-iframe-resize-bug-fix: false !default;\n\n// Disable RFS by setting $enable-responsive-font-sizes to false\n$enable-responsive-font-sizes: true !default;\n\n// Cache $rfs-base-font-size unit\n$rfs-base-font-size-unit: unit($rfs-base-font-size);\n\n// Remove px-unit from $rfs-base-font-size for calculations\n@if $rfs-base-font-size-unit == \"px\" {\n $rfs-base-font-size: $rfs-base-font-size / ($rfs-base-font-size * 0 + 1);\n}\n@else if $rfs-base-font-size-unit == \"rem\" {\n $rfs-base-font-size: $rfs-base-font-size / ($rfs-base-font-size * 0 + 1 / $rfs-rem-value);\n}\n\n// Cache $rfs-breakpoint unit to prevent multiple calls\n$rfs-breakpoint-unit-cache: unit($rfs-breakpoint);\n\n// Remove unit from $rfs-breakpoint for calculations\n@if $rfs-breakpoint-unit-cache == \"px\" {\n $rfs-breakpoint: $rfs-breakpoint / ($rfs-breakpoint * 0 + 1);\n}\n@else if $rfs-breakpoint-unit-cache == \"rem\" or $rfs-breakpoint-unit-cache == \"em\" {\n $rfs-breakpoint: $rfs-breakpoint / ($rfs-breakpoint * 0 + 1 / $rfs-rem-value);\n}\n\n// Responsive font-size mixin\n@mixin rfs($fs, $important: false) {\n // Cache $fs unit\n $fs-unit: if(type-of($fs) == \"number\", unit($fs), false);\n\n // Add !important suffix if needed\n $rfs-suffix: if($important, \" !important\", \"\");\n\n // If $fs isn't a number (like inherit) or $fs has a unit (not px or rem, like 1.5em) or $ is 0, just print the value\n @if not $fs-unit or $fs-unit != \"\" and $fs-unit != \"px\" and $fs-unit != \"rem\" or $fs == 0 {\n font-size: #{$fs}#{$rfs-suffix};\n }\n @else {\n // Variables for storing static and fluid rescaling\n $rfs-static: null;\n $rfs-fluid: null;\n\n // Remove px-unit from $fs for calculations\n @if $fs-unit == \"px\" {\n $fs: $fs / ($fs * 0 + 1);\n }\n @else if $fs-unit == \"rem\" {\n $fs: $fs / ($fs * 0 + 1 / $rfs-rem-value);\n }\n\n // Set default font-size\n @if $rfs-font-size-unit == rem {\n $rfs-static: #{$fs / $rfs-rem-value}rem#{$rfs-suffix};\n }\n @else if $rfs-font-size-unit == px {\n $rfs-static: #{$fs}px#{$rfs-suffix};\n }\n @else {\n @error \"`#{$rfs-font-size-unit}` is not a valid unit for $rfs-font-size-unit. Use `px` or `rem`.\";\n }\n\n // Only add media query if font-size is bigger as the minimum font-size\n // If $rfs-factor == 1, no rescaling will take place\n @if $fs > $rfs-base-font-size and $enable-responsive-font-sizes {\n $min-width: null;\n $variable-unit: null;\n\n // Calculate minimum font-size for given font-size\n $fs-min: $rfs-base-font-size + ($fs - $rfs-base-font-size) / $rfs-factor;\n\n // Calculate difference between given font-size and minimum font-size for given font-size\n $fs-diff: $fs - $fs-min;\n\n // Base font-size formatting\n // No need to check if the unit is valid, because we did that before\n $min-width: if($rfs-font-size-unit == rem, #{$fs-min / $rfs-rem-value}rem, #{$fs-min}px);\n\n // If two-dimensional, use smallest of screen width and height\n $variable-unit: if($rfs-two-dimensional, vmin, vw);\n\n // Calculate the variable width between 0 and $rfs-breakpoint\n $variable-width: #{$fs-diff * 100 / $rfs-breakpoint}#{$variable-unit};\n\n // Set the calculated font-size.\n $rfs-fluid: calc(#{$min-width} + #{$variable-width}) #{$rfs-suffix};\n }\n\n // Rendering\n @if $rfs-fluid == null {\n // Only render static font-size if no fluid font-size is available\n font-size: $rfs-static;\n }\n @else {\n $mq-value: null;\n\n // RFS breakpoint formatting\n @if $rfs-breakpoint-unit == em or $rfs-breakpoint-unit == rem {\n $mq-value: #{$rfs-breakpoint / $rfs-rem-value}#{$rfs-breakpoint-unit};\n }\n @else if $rfs-breakpoint-unit == px {\n $mq-value: #{$rfs-breakpoint}px;\n }\n @else {\n @error \"`#{$rfs-breakpoint-unit}` is not a valid unit for $rfs-breakpoint-unit. Use `px`, `em` or `rem`.\";\n }\n\n @if $rfs-class == \"disable\" {\n // Adding an extra class increases specificity,\n // which prevents the media query to override the font size\n &,\n .disable-responsive-font-size &,\n &.disable-responsive-font-size {\n font-size: $rfs-static;\n }\n }\n @else {\n font-size: $rfs-static;\n }\n\n @if $rfs-two-dimensional {\n @media (max-width: #{$mq-value}), (max-height: #{$mq-value}) {\n @if $rfs-class == \"enable\" {\n .enable-responsive-font-size &,\n &.enable-responsive-font-size {\n font-size: $rfs-fluid;\n }\n }\n @else {\n font-size: $rfs-fluid;\n }\n\n @if $rfs-safari-iframe-resize-bug-fix {\n // stylelint-disable-next-line length-zero-no-unit\n min-width: 0vw;\n }\n }\n }\n @else {\n @media (max-width: #{$mq-value}) {\n @if $rfs-class == \"enable\" {\n .enable-responsive-font-size &,\n &.enable-responsive-font-size {\n font-size: $rfs-fluid;\n }\n }\n @else {\n font-size: $rfs-fluid;\n }\n\n @if $rfs-safari-iframe-resize-bug-fix {\n // stylelint-disable-next-line length-zero-no-unit\n min-width: 0vw;\n }\n }\n }\n }\n }\n}\n\n// The font-size & responsive-font-size mixin uses RFS to rescale font sizes\n@mixin font-size($fs, $important: false) {\n @include rfs($fs, $important);\n}\n\n@mixin responsive-font-size($fs, $important: false) {\n @include rfs($fs, $important);\n}\n","/*!\n * Bootstrap v4.3.1 (https://getbootstrap.com/)\n * Copyright 2011-2019 The Bootstrap Authors\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */\n:root {\n --blue: #007bff;\n --indigo: #6610f2;\n --purple: #6f42c1;\n --pink: #e83e8c;\n --red: #dc3545;\n --orange: #fd7e14;\n --yellow: #ffc107;\n --green: #28a745;\n --teal: #20c997;\n --cyan: #17a2b8;\n --white: #fff;\n --gray: #6c757d;\n --gray-dark: #343a40;\n --primary: #007bff;\n --secondary: #6c757d;\n --success: #28a745;\n --info: #17a2b8;\n --warning: #ffc107;\n --danger: #dc3545;\n --light: #f8f9fa;\n --dark: #343a40;\n --breakpoint-xs: 0;\n --breakpoint-sm: 576px;\n --breakpoint-md: 768px;\n --breakpoint-lg: 992px;\n --breakpoint-xl: 1200px;\n --font-family-sans-serif: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n --font-family-monospace: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n}\n\n*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\nhtml {\n font-family: sans-serif;\n line-height: 1.15;\n -webkit-text-size-adjust: 100%;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n}\n\narticle, aside, figcaption, figure, footer, header, hgroup, main, nav, section {\n display: block;\n}\n\nbody {\n margin: 0;\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: #212529;\n text-align: left;\n background-color: #fff;\n}\n\n[tabindex=\"-1\"]:focus {\n outline: 0 !important;\n}\n\nhr {\n box-sizing: content-box;\n height: 0;\n overflow: visible;\n}\n\nh1, h2, h3, h4, h5, h6 {\n margin-top: 0;\n margin-bottom: 0.5rem;\n}\n\np {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nabbr[title],\nabbr[data-original-title] {\n text-decoration: underline;\n text-decoration: underline dotted;\n cursor: help;\n border-bottom: 0;\n text-decoration-skip-ink: none;\n}\n\naddress {\n margin-bottom: 1rem;\n font-style: normal;\n line-height: inherit;\n}\n\nol,\nul,\ndl {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nol ol,\nul ul,\nol ul,\nul ol {\n margin-bottom: 0;\n}\n\ndt {\n font-weight: 700;\n}\n\ndd {\n margin-bottom: .5rem;\n margin-left: 0;\n}\n\nblockquote {\n margin: 0 0 1rem;\n}\n\nb,\nstrong {\n font-weight: bolder;\n}\n\nsmall {\n font-size: 80%;\n}\n\nsub,\nsup {\n position: relative;\n font-size: 75%;\n line-height: 0;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -.25em;\n}\n\nsup {\n top: -.5em;\n}\n\na {\n color: #007bff;\n text-decoration: none;\n background-color: transparent;\n}\n\na:hover {\n color: #0056b3;\n text-decoration: underline;\n}\n\na:not([href]):not([tabindex]) {\n color: inherit;\n text-decoration: none;\n}\n\na:not([href]):not([tabindex]):hover, a:not([href]):not([tabindex]):focus {\n color: inherit;\n text-decoration: none;\n}\n\na:not([href]):not([tabindex]):focus {\n outline: 0;\n}\n\npre,\ncode,\nkbd,\nsamp {\n font-family: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n font-size: 1em;\n}\n\npre {\n margin-top: 0;\n margin-bottom: 1rem;\n overflow: auto;\n}\n\nfigure {\n margin: 0 0 1rem;\n}\n\nimg {\n vertical-align: middle;\n border-style: none;\n}\n\nsvg {\n overflow: hidden;\n vertical-align: middle;\n}\n\ntable {\n border-collapse: collapse;\n}\n\ncaption {\n padding-top: 0.75rem;\n padding-bottom: 0.75rem;\n color: #6c757d;\n text-align: left;\n caption-side: bottom;\n}\n\nth {\n text-align: inherit;\n}\n\nlabel {\n display: inline-block;\n margin-bottom: 0.5rem;\n}\n\nbutton {\n border-radius: 0;\n}\n\nbutton:focus {\n outline: 1px dotted;\n outline: 5px auto -webkit-focus-ring-color;\n}\n\ninput,\nbutton,\nselect,\noptgroup,\ntextarea {\n margin: 0;\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n}\n\nbutton,\ninput {\n overflow: visible;\n}\n\nbutton,\nselect {\n text-transform: none;\n}\n\nselect {\n word-wrap: normal;\n}\n\nbutton,\n[type=\"button\"],\n[type=\"reset\"],\n[type=\"submit\"] {\n -webkit-appearance: button;\n}\n\nbutton:not(:disabled),\n[type=\"button\"]:not(:disabled),\n[type=\"reset\"]:not(:disabled),\n[type=\"submit\"]:not(:disabled) {\n cursor: pointer;\n}\n\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n padding: 0;\n border-style: none;\n}\n\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n box-sizing: border-box;\n padding: 0;\n}\n\ninput[type=\"date\"],\ninput[type=\"time\"],\ninput[type=\"datetime-local\"],\ninput[type=\"month\"] {\n -webkit-appearance: listbox;\n}\n\ntextarea {\n overflow: auto;\n resize: vertical;\n}\n\nfieldset {\n min-width: 0;\n padding: 0;\n margin: 0;\n border: 0;\n}\n\nlegend {\n display: block;\n width: 100%;\n max-width: 100%;\n padding: 0;\n margin-bottom: .5rem;\n font-size: 1.5rem;\n line-height: inherit;\n color: inherit;\n white-space: normal;\n}\n\nprogress {\n vertical-align: baseline;\n}\n\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n[type=\"search\"] {\n outline-offset: -2px;\n -webkit-appearance: none;\n}\n\n[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n::-webkit-file-upload-button {\n font: inherit;\n -webkit-appearance: button;\n}\n\noutput {\n display: inline-block;\n}\n\nsummary {\n display: list-item;\n cursor: pointer;\n}\n\ntemplate {\n display: none;\n}\n\n[hidden] {\n display: none !important;\n}\n\nh1, h2, h3, h4, h5, h6,\n.h1, .h2, .h3, .h4, .h5, .h6 {\n margin-bottom: 0.5rem;\n font-weight: 500;\n line-height: 1.2;\n}\n\nh1, .h1 {\n font-size: 2.5rem;\n}\n\nh2, .h2 {\n font-size: 2rem;\n}\n\nh3, .h3 {\n font-size: 1.75rem;\n}\n\nh4, .h4 {\n font-size: 1.5rem;\n}\n\nh5, .h5 {\n font-size: 1.25rem;\n}\n\nh6, .h6 {\n font-size: 1rem;\n}\n\n.lead {\n font-size: 1.25rem;\n font-weight: 300;\n}\n\n.display-1 {\n font-size: 6rem;\n font-weight: 300;\n line-height: 1.2;\n}\n\n.display-2 {\n font-size: 5.5rem;\n font-weight: 300;\n line-height: 1.2;\n}\n\n.display-3 {\n font-size: 4.5rem;\n font-weight: 300;\n line-height: 1.2;\n}\n\n.display-4 {\n font-size: 3.5rem;\n font-weight: 300;\n line-height: 1.2;\n}\n\nhr {\n margin-top: 1rem;\n margin-bottom: 1rem;\n border: 0;\n border-top: 1px solid rgba(0, 0, 0, 0.1);\n}\n\nsmall,\n.small {\n font-size: 80%;\n font-weight: 400;\n}\n\nmark,\n.mark {\n padding: 0.2em;\n background-color: #fcf8e3;\n}\n\n.list-unstyled {\n padding-left: 0;\n list-style: none;\n}\n\n.list-inline {\n padding-left: 0;\n list-style: none;\n}\n\n.list-inline-item {\n display: inline-block;\n}\n\n.list-inline-item:not(:last-child) {\n margin-right: 0.5rem;\n}\n\n.initialism {\n font-size: 90%;\n text-transform: uppercase;\n}\n\n.blockquote {\n margin-bottom: 1rem;\n font-size: 1.25rem;\n}\n\n.blockquote-footer {\n display: block;\n font-size: 80%;\n color: #6c757d;\n}\n\n.blockquote-footer::before {\n content: \"\\2014\\00A0\";\n}\n\n.img-fluid {\n max-width: 100%;\n height: auto;\n}\n\n.img-thumbnail {\n padding: 0.25rem;\n background-color: #fff;\n border: 1px solid #dee2e6;\n border-radius: 0.25rem;\n max-width: 100%;\n height: auto;\n}\n\n.figure {\n display: inline-block;\n}\n\n.figure-img {\n margin-bottom: 0.5rem;\n line-height: 1;\n}\n\n.figure-caption {\n font-size: 90%;\n color: #6c757d;\n}\n\ncode {\n font-size: 87.5%;\n color: #e83e8c;\n word-break: break-word;\n}\n\na > code {\n color: inherit;\n}\n\nkbd {\n padding: 0.2rem 0.4rem;\n font-size: 87.5%;\n color: #fff;\n background-color: #212529;\n border-radius: 0.2rem;\n}\n\nkbd kbd {\n padding: 0;\n font-size: 100%;\n font-weight: 700;\n}\n\npre {\n display: block;\n font-size: 87.5%;\n color: #212529;\n}\n\npre code {\n font-size: inherit;\n color: inherit;\n word-break: normal;\n}\n\n.pre-scrollable {\n max-height: 340px;\n overflow-y: scroll;\n}\n\n.container {\n width: 100%;\n padding-right: 15px;\n padding-left: 15px;\n margin-right: auto;\n margin-left: auto;\n}\n\n@media (min-width: 576px) {\n .container {\n max-width: 540px;\n }\n}\n\n@media (min-width: 768px) {\n .container {\n max-width: 720px;\n }\n}\n\n@media (min-width: 992px) {\n .container {\n max-width: 960px;\n }\n}\n\n@media (min-width: 1200px) {\n .container {\n max-width: 1140px;\n }\n}\n\n.container-fluid {\n width: 100%;\n padding-right: 15px;\n padding-left: 15px;\n margin-right: auto;\n margin-left: auto;\n}\n\n.row {\n display: flex;\n flex-wrap: wrap;\n margin-right: -15px;\n margin-left: -15px;\n}\n\n.no-gutters {\n margin-right: 0;\n margin-left: 0;\n}\n\n.no-gutters > .col,\n.no-gutters > [class*=\"col-\"] {\n padding-right: 0;\n padding-left: 0;\n}\n\n.col-1, .col-2, .col-3, .col-4, .col-5, .col-6, .col-7, .col-8, .col-9, .col-10, .col-11, .col-12, .col,\n.col-auto, .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12, .col-sm,\n.col-sm-auto, .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12, .col-md,\n.col-md-auto, .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12, .col-lg,\n.col-lg-auto, .col-xl-1, .col-xl-2, .col-xl-3, .col-xl-4, .col-xl-5, .col-xl-6, .col-xl-7, .col-xl-8, .col-xl-9, .col-xl-10, .col-xl-11, .col-xl-12, .col-xl,\n.col-xl-auto {\n position: relative;\n width: 100%;\n padding-right: 15px;\n padding-left: 15px;\n}\n\n.col {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n}\n\n.col-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n}\n\n.col-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n}\n\n.col-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n}\n\n.col-3 {\n flex: 0 0 25%;\n max-width: 25%;\n}\n\n.col-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n}\n\n.col-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n}\n\n.col-6 {\n flex: 0 0 50%;\n max-width: 50%;\n}\n\n.col-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n}\n\n.col-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n}\n\n.col-9 {\n flex: 0 0 75%;\n max-width: 75%;\n}\n\n.col-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n}\n\n.col-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n}\n\n.col-12 {\n flex: 0 0 100%;\n max-width: 100%;\n}\n\n.order-first {\n order: -1;\n}\n\n.order-last {\n order: 13;\n}\n\n.order-0 {\n order: 0;\n}\n\n.order-1 {\n order: 1;\n}\n\n.order-2 {\n order: 2;\n}\n\n.order-3 {\n order: 3;\n}\n\n.order-4 {\n order: 4;\n}\n\n.order-5 {\n order: 5;\n}\n\n.order-6 {\n order: 6;\n}\n\n.order-7 {\n order: 7;\n}\n\n.order-8 {\n order: 8;\n}\n\n.order-9 {\n order: 9;\n}\n\n.order-10 {\n order: 10;\n}\n\n.order-11 {\n order: 11;\n}\n\n.order-12 {\n order: 12;\n}\n\n.offset-1 {\n margin-left: 8.333333%;\n}\n\n.offset-2 {\n margin-left: 16.666667%;\n}\n\n.offset-3 {\n margin-left: 25%;\n}\n\n.offset-4 {\n margin-left: 33.333333%;\n}\n\n.offset-5 {\n margin-left: 41.666667%;\n}\n\n.offset-6 {\n margin-left: 50%;\n}\n\n.offset-7 {\n margin-left: 58.333333%;\n}\n\n.offset-8 {\n margin-left: 66.666667%;\n}\n\n.offset-9 {\n margin-left: 75%;\n}\n\n.offset-10 {\n margin-left: 83.333333%;\n}\n\n.offset-11 {\n margin-left: 91.666667%;\n}\n\n@media (min-width: 576px) {\n .col-sm {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .col-sm-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-sm-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-sm-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-sm-3 {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-sm-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-sm-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-sm-6 {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-sm-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-sm-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-sm-9 {\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-sm-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-sm-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-sm-12 {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-sm-first {\n order: -1;\n }\n .order-sm-last {\n order: 13;\n }\n .order-sm-0 {\n order: 0;\n }\n .order-sm-1 {\n order: 1;\n }\n .order-sm-2 {\n order: 2;\n }\n .order-sm-3 {\n order: 3;\n }\n .order-sm-4 {\n order: 4;\n }\n .order-sm-5 {\n order: 5;\n }\n .order-sm-6 {\n order: 6;\n }\n .order-sm-7 {\n order: 7;\n }\n .order-sm-8 {\n order: 8;\n }\n .order-sm-9 {\n order: 9;\n }\n .order-sm-10 {\n order: 10;\n }\n .order-sm-11 {\n order: 11;\n }\n .order-sm-12 {\n order: 12;\n }\n .offset-sm-0 {\n margin-left: 0;\n }\n .offset-sm-1 {\n margin-left: 8.333333%;\n }\n .offset-sm-2 {\n margin-left: 16.666667%;\n }\n .offset-sm-3 {\n margin-left: 25%;\n }\n .offset-sm-4 {\n margin-left: 33.333333%;\n }\n .offset-sm-5 {\n margin-left: 41.666667%;\n }\n .offset-sm-6 {\n margin-left: 50%;\n }\n .offset-sm-7 {\n margin-left: 58.333333%;\n }\n .offset-sm-8 {\n margin-left: 66.666667%;\n }\n .offset-sm-9 {\n margin-left: 75%;\n }\n .offset-sm-10 {\n margin-left: 83.333333%;\n }\n .offset-sm-11 {\n margin-left: 91.666667%;\n }\n}\n\n@media (min-width: 768px) {\n .col-md {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .col-md-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-md-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-md-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-md-3 {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-md-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-md-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-md-6 {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-md-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-md-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-md-9 {\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-md-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-md-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-md-12 {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-md-first {\n order: -1;\n }\n .order-md-last {\n order: 13;\n }\n .order-md-0 {\n order: 0;\n }\n .order-md-1 {\n order: 1;\n }\n .order-md-2 {\n order: 2;\n }\n .order-md-3 {\n order: 3;\n }\n .order-md-4 {\n order: 4;\n }\n .order-md-5 {\n order: 5;\n }\n .order-md-6 {\n order: 6;\n }\n .order-md-7 {\n order: 7;\n }\n .order-md-8 {\n order: 8;\n }\n .order-md-9 {\n order: 9;\n }\n .order-md-10 {\n order: 10;\n }\n .order-md-11 {\n order: 11;\n }\n .order-md-12 {\n order: 12;\n }\n .offset-md-0 {\n margin-left: 0;\n }\n .offset-md-1 {\n margin-left: 8.333333%;\n }\n .offset-md-2 {\n margin-left: 16.666667%;\n }\n .offset-md-3 {\n margin-left: 25%;\n }\n .offset-md-4 {\n margin-left: 33.333333%;\n }\n .offset-md-5 {\n margin-left: 41.666667%;\n }\n .offset-md-6 {\n margin-left: 50%;\n }\n .offset-md-7 {\n margin-left: 58.333333%;\n }\n .offset-md-8 {\n margin-left: 66.666667%;\n }\n .offset-md-9 {\n margin-left: 75%;\n }\n .offset-md-10 {\n margin-left: 83.333333%;\n }\n .offset-md-11 {\n margin-left: 91.666667%;\n }\n}\n\n@media (min-width: 992px) {\n .col-lg {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .col-lg-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-lg-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-lg-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-lg-3 {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-lg-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-lg-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-lg-6 {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-lg-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-lg-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-lg-9 {\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-lg-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-lg-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-lg-12 {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-lg-first {\n order: -1;\n }\n .order-lg-last {\n order: 13;\n }\n .order-lg-0 {\n order: 0;\n }\n .order-lg-1 {\n order: 1;\n }\n .order-lg-2 {\n order: 2;\n }\n .order-lg-3 {\n order: 3;\n }\n .order-lg-4 {\n order: 4;\n }\n .order-lg-5 {\n order: 5;\n }\n .order-lg-6 {\n order: 6;\n }\n .order-lg-7 {\n order: 7;\n }\n .order-lg-8 {\n order: 8;\n }\n .order-lg-9 {\n order: 9;\n }\n .order-lg-10 {\n order: 10;\n }\n .order-lg-11 {\n order: 11;\n }\n .order-lg-12 {\n order: 12;\n }\n .offset-lg-0 {\n margin-left: 0;\n }\n .offset-lg-1 {\n margin-left: 8.333333%;\n }\n .offset-lg-2 {\n margin-left: 16.666667%;\n }\n .offset-lg-3 {\n margin-left: 25%;\n }\n .offset-lg-4 {\n margin-left: 33.333333%;\n }\n .offset-lg-5 {\n margin-left: 41.666667%;\n }\n .offset-lg-6 {\n margin-left: 50%;\n }\n .offset-lg-7 {\n margin-left: 58.333333%;\n }\n .offset-lg-8 {\n margin-left: 66.666667%;\n }\n .offset-lg-9 {\n margin-left: 75%;\n }\n .offset-lg-10 {\n margin-left: 83.333333%;\n }\n .offset-lg-11 {\n margin-left: 91.666667%;\n }\n}\n\n@media (min-width: 1200px) {\n .col-xl {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .col-xl-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-xl-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-xl-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-xl-3 {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-xl-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-xl-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-xl-6 {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-xl-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-xl-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-xl-9 {\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-xl-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-xl-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-xl-12 {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-xl-first {\n order: -1;\n }\n .order-xl-last {\n order: 13;\n }\n .order-xl-0 {\n order: 0;\n }\n .order-xl-1 {\n order: 1;\n }\n .order-xl-2 {\n order: 2;\n }\n .order-xl-3 {\n order: 3;\n }\n .order-xl-4 {\n order: 4;\n }\n .order-xl-5 {\n order: 5;\n }\n .order-xl-6 {\n order: 6;\n }\n .order-xl-7 {\n order: 7;\n }\n .order-xl-8 {\n order: 8;\n }\n .order-xl-9 {\n order: 9;\n }\n .order-xl-10 {\n order: 10;\n }\n .order-xl-11 {\n order: 11;\n }\n .order-xl-12 {\n order: 12;\n }\n .offset-xl-0 {\n margin-left: 0;\n }\n .offset-xl-1 {\n margin-left: 8.333333%;\n }\n .offset-xl-2 {\n margin-left: 16.666667%;\n }\n .offset-xl-3 {\n margin-left: 25%;\n }\n .offset-xl-4 {\n margin-left: 33.333333%;\n }\n .offset-xl-5 {\n margin-left: 41.666667%;\n }\n .offset-xl-6 {\n margin-left: 50%;\n }\n .offset-xl-7 {\n margin-left: 58.333333%;\n }\n .offset-xl-8 {\n margin-left: 66.666667%;\n }\n .offset-xl-9 {\n margin-left: 75%;\n }\n .offset-xl-10 {\n margin-left: 83.333333%;\n }\n .offset-xl-11 {\n margin-left: 91.666667%;\n }\n}\n\n.table {\n width: 100%;\n margin-bottom: 1rem;\n color: #212529;\n}\n\n.table th,\n.table td {\n padding: 0.75rem;\n vertical-align: top;\n border-top: 1px solid #dee2e6;\n}\n\n.table thead th {\n vertical-align: bottom;\n border-bottom: 2px solid #dee2e6;\n}\n\n.table tbody + tbody {\n border-top: 2px solid #dee2e6;\n}\n\n.table-sm th,\n.table-sm td {\n padding: 0.3rem;\n}\n\n.table-bordered {\n border: 1px solid #dee2e6;\n}\n\n.table-bordered th,\n.table-bordered td {\n border: 1px solid #dee2e6;\n}\n\n.table-bordered thead th,\n.table-bordered thead td {\n border-bottom-width: 2px;\n}\n\n.table-borderless th,\n.table-borderless td,\n.table-borderless thead th,\n.table-borderless tbody + tbody {\n border: 0;\n}\n\n.table-striped tbody tr:nth-of-type(odd) {\n background-color: rgba(0, 0, 0, 0.05);\n}\n\n.table-hover tbody tr:hover {\n color: #212529;\n background-color: rgba(0, 0, 0, 0.075);\n}\n\n.table-primary,\n.table-primary > th,\n.table-primary > td {\n background-color: #b8daff;\n}\n\n.table-primary th,\n.table-primary td,\n.table-primary thead th,\n.table-primary tbody + tbody {\n border-color: #7abaff;\n}\n\n.table-hover .table-primary:hover {\n background-color: #9fcdff;\n}\n\n.table-hover .table-primary:hover > td,\n.table-hover .table-primary:hover > th {\n background-color: #9fcdff;\n}\n\n.table-secondary,\n.table-secondary > th,\n.table-secondary > td {\n background-color: #d6d8db;\n}\n\n.table-secondary th,\n.table-secondary td,\n.table-secondary thead th,\n.table-secondary tbody + tbody {\n border-color: #b3b7bb;\n}\n\n.table-hover .table-secondary:hover {\n background-color: #c8cbcf;\n}\n\n.table-hover .table-secondary:hover > td,\n.table-hover .table-secondary:hover > th {\n background-color: #c8cbcf;\n}\n\n.table-success,\n.table-success > th,\n.table-success > td {\n background-color: #c3e6cb;\n}\n\n.table-success th,\n.table-success td,\n.table-success thead th,\n.table-success tbody + tbody {\n border-color: #8fd19e;\n}\n\n.table-hover .table-success:hover {\n background-color: #b1dfbb;\n}\n\n.table-hover .table-success:hover > td,\n.table-hover .table-success:hover > th {\n background-color: #b1dfbb;\n}\n\n.table-info,\n.table-info > th,\n.table-info > td {\n background-color: #bee5eb;\n}\n\n.table-info th,\n.table-info td,\n.table-info thead th,\n.table-info tbody + tbody {\n border-color: #86cfda;\n}\n\n.table-hover .table-info:hover {\n background-color: #abdde5;\n}\n\n.table-hover .table-info:hover > td,\n.table-hover .table-info:hover > th {\n background-color: #abdde5;\n}\n\n.table-warning,\n.table-warning > th,\n.table-warning > td {\n background-color: #ffeeba;\n}\n\n.table-warning th,\n.table-warning td,\n.table-warning thead th,\n.table-warning tbody + tbody {\n border-color: #ffdf7e;\n}\n\n.table-hover .table-warning:hover {\n background-color: #ffe8a1;\n}\n\n.table-hover .table-warning:hover > td,\n.table-hover .table-warning:hover > th {\n background-color: #ffe8a1;\n}\n\n.table-danger,\n.table-danger > th,\n.table-danger > td {\n background-color: #f5c6cb;\n}\n\n.table-danger th,\n.table-danger td,\n.table-danger thead th,\n.table-danger tbody + tbody {\n border-color: #ed969e;\n}\n\n.table-hover .table-danger:hover {\n background-color: #f1b0b7;\n}\n\n.table-hover .table-danger:hover > td,\n.table-hover .table-danger:hover > th {\n background-color: #f1b0b7;\n}\n\n.table-light,\n.table-light > th,\n.table-light > td {\n background-color: #fdfdfe;\n}\n\n.table-light th,\n.table-light td,\n.table-light thead th,\n.table-light tbody + tbody {\n border-color: #fbfcfc;\n}\n\n.table-hover .table-light:hover {\n background-color: #ececf6;\n}\n\n.table-hover .table-light:hover > td,\n.table-hover .table-light:hover > th {\n background-color: #ececf6;\n}\n\n.table-dark,\n.table-dark > th,\n.table-dark > td {\n background-color: #c6c8ca;\n}\n\n.table-dark th,\n.table-dark td,\n.table-dark thead th,\n.table-dark tbody + tbody {\n border-color: #95999c;\n}\n\n.table-hover .table-dark:hover {\n background-color: #b9bbbe;\n}\n\n.table-hover .table-dark:hover > td,\n.table-hover .table-dark:hover > th {\n background-color: #b9bbbe;\n}\n\n.table-active,\n.table-active > th,\n.table-active > td {\n background-color: rgba(0, 0, 0, 0.075);\n}\n\n.table-hover .table-active:hover {\n background-color: rgba(0, 0, 0, 0.075);\n}\n\n.table-hover .table-active:hover > td,\n.table-hover .table-active:hover > th {\n background-color: rgba(0, 0, 0, 0.075);\n}\n\n.table .thead-dark th {\n color: #fff;\n background-color: #343a40;\n border-color: #454d55;\n}\n\n.table .thead-light th {\n color: #495057;\n background-color: #e9ecef;\n border-color: #dee2e6;\n}\n\n.table-dark {\n color: #fff;\n background-color: #343a40;\n}\n\n.table-dark th,\n.table-dark td,\n.table-dark thead th {\n border-color: #454d55;\n}\n\n.table-dark.table-bordered {\n border: 0;\n}\n\n.table-dark.table-striped tbody tr:nth-of-type(odd) {\n background-color: rgba(255, 255, 255, 0.05);\n}\n\n.table-dark.table-hover tbody tr:hover {\n color: #fff;\n background-color: rgba(255, 255, 255, 0.075);\n}\n\n@media (max-width: 575.98px) {\n .table-responsive-sm {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n }\n .table-responsive-sm > .table-bordered {\n border: 0;\n }\n}\n\n@media (max-width: 767.98px) {\n .table-responsive-md {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n }\n .table-responsive-md > .table-bordered {\n border: 0;\n }\n}\n\n@media (max-width: 991.98px) {\n .table-responsive-lg {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n }\n .table-responsive-lg > .table-bordered {\n border: 0;\n }\n}\n\n@media (max-width: 1199.98px) {\n .table-responsive-xl {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n }\n .table-responsive-xl > .table-bordered {\n border: 0;\n }\n}\n\n.table-responsive {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n}\n\n.table-responsive > .table-bordered {\n border: 0;\n}\n\n.form-control {\n display: block;\n width: 100%;\n height: calc(1.5em + 0.75rem + 2px);\n padding: 0.375rem 0.75rem;\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: #495057;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid #ced4da;\n border-radius: 0.25rem;\n transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .form-control {\n transition: none;\n }\n}\n\n.form-control::-ms-expand {\n background-color: transparent;\n border: 0;\n}\n\n.form-control:focus {\n color: #495057;\n background-color: #fff;\n border-color: #80bdff;\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.form-control::placeholder {\n color: #6c757d;\n opacity: 1;\n}\n\n.form-control:disabled, .form-control[readonly] {\n background-color: #e9ecef;\n opacity: 1;\n}\n\nselect.form-control:focus::-ms-value {\n color: #495057;\n background-color: #fff;\n}\n\n.form-control-file,\n.form-control-range {\n display: block;\n width: 100%;\n}\n\n.col-form-label {\n padding-top: calc(0.375rem + 1px);\n padding-bottom: calc(0.375rem + 1px);\n margin-bottom: 0;\n font-size: inherit;\n line-height: 1.5;\n}\n\n.col-form-label-lg {\n padding-top: calc(0.5rem + 1px);\n padding-bottom: calc(0.5rem + 1px);\n font-size: 1.25rem;\n line-height: 1.5;\n}\n\n.col-form-label-sm {\n padding-top: calc(0.25rem + 1px);\n padding-bottom: calc(0.25rem + 1px);\n font-size: 0.875rem;\n line-height: 1.5;\n}\n\n.form-control-plaintext {\n display: block;\n width: 100%;\n padding-top: 0.375rem;\n padding-bottom: 0.375rem;\n margin-bottom: 0;\n line-height: 1.5;\n color: #212529;\n background-color: transparent;\n border: solid transparent;\n border-width: 1px 0;\n}\n\n.form-control-plaintext.form-control-sm, .form-control-plaintext.form-control-lg {\n padding-right: 0;\n padding-left: 0;\n}\n\n.form-control-sm {\n height: calc(1.5em + 0.5rem + 2px);\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem;\n line-height: 1.5;\n border-radius: 0.2rem;\n}\n\n.form-control-lg {\n height: calc(1.5em + 1rem + 2px);\n padding: 0.5rem 1rem;\n font-size: 1.25rem;\n line-height: 1.5;\n border-radius: 0.3rem;\n}\n\nselect.form-control[size], select.form-control[multiple] {\n height: auto;\n}\n\ntextarea.form-control {\n height: auto;\n}\n\n.form-group {\n margin-bottom: 1rem;\n}\n\n.form-text {\n display: block;\n margin-top: 0.25rem;\n}\n\n.form-row {\n display: flex;\n flex-wrap: wrap;\n margin-right: -5px;\n margin-left: -5px;\n}\n\n.form-row > .col,\n.form-row > [class*=\"col-\"] {\n padding-right: 5px;\n padding-left: 5px;\n}\n\n.form-check {\n position: relative;\n display: block;\n padding-left: 1.25rem;\n}\n\n.form-check-input {\n position: absolute;\n margin-top: 0.3rem;\n margin-left: -1.25rem;\n}\n\n.form-check-input:disabled ~ .form-check-label {\n color: #6c757d;\n}\n\n.form-check-label {\n margin-bottom: 0;\n}\n\n.form-check-inline {\n display: inline-flex;\n align-items: center;\n padding-left: 0;\n margin-right: 0.75rem;\n}\n\n.form-check-inline .form-check-input {\n position: static;\n margin-top: 0;\n margin-right: 0.3125rem;\n margin-left: 0;\n}\n\n.valid-feedback {\n display: none;\n width: 100%;\n margin-top: 0.25rem;\n font-size: 80%;\n color: #28a745;\n}\n\n.valid-tooltip {\n position: absolute;\n top: 100%;\n z-index: 5;\n display: none;\n max-width: 100%;\n padding: 0.25rem 0.5rem;\n margin-top: .1rem;\n font-size: 0.875rem;\n line-height: 1.5;\n color: #fff;\n background-color: rgba(40, 167, 69, 0.9);\n border-radius: 0.25rem;\n}\n\n.was-validated .form-control:valid, .form-control.is-valid {\n border-color: #28a745;\n padding-right: calc(1.5em + 0.75rem);\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e\");\n background-repeat: no-repeat;\n background-position: center right calc(0.375em + 0.1875rem);\n background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);\n}\n\n.was-validated .form-control:valid:focus, .form-control.is-valid:focus {\n border-color: #28a745;\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);\n}\n\n.was-validated .form-control:valid ~ .valid-feedback,\n.was-validated .form-control:valid ~ .valid-tooltip, .form-control.is-valid ~ .valid-feedback,\n.form-control.is-valid ~ .valid-tooltip {\n display: block;\n}\n\n.was-validated textarea.form-control:valid, textarea.form-control.is-valid {\n padding-right: calc(1.5em + 0.75rem);\n background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem);\n}\n\n.was-validated .custom-select:valid, .custom-select.is-valid {\n border-color: #28a745;\n padding-right: calc((1em + 0.75rem) * 3 / 4 + 1.75rem);\n background: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e\") no-repeat right 0.75rem center/8px 10px, url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e\") #fff no-repeat center right 1.75rem/calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);\n}\n\n.was-validated .custom-select:valid:focus, .custom-select.is-valid:focus {\n border-color: #28a745;\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);\n}\n\n.was-validated .custom-select:valid ~ .valid-feedback,\n.was-validated .custom-select:valid ~ .valid-tooltip, .custom-select.is-valid ~ .valid-feedback,\n.custom-select.is-valid ~ .valid-tooltip {\n display: block;\n}\n\n.was-validated .form-control-file:valid ~ .valid-feedback,\n.was-validated .form-control-file:valid ~ .valid-tooltip, .form-control-file.is-valid ~ .valid-feedback,\n.form-control-file.is-valid ~ .valid-tooltip {\n display: block;\n}\n\n.was-validated .form-check-input:valid ~ .form-check-label, .form-check-input.is-valid ~ .form-check-label {\n color: #28a745;\n}\n\n.was-validated .form-check-input:valid ~ .valid-feedback,\n.was-validated .form-check-input:valid ~ .valid-tooltip, .form-check-input.is-valid ~ .valid-feedback,\n.form-check-input.is-valid ~ .valid-tooltip {\n display: block;\n}\n\n.was-validated .custom-control-input:valid ~ .custom-control-label, .custom-control-input.is-valid ~ .custom-control-label {\n color: #28a745;\n}\n\n.was-validated .custom-control-input:valid ~ .custom-control-label::before, .custom-control-input.is-valid ~ .custom-control-label::before {\n border-color: #28a745;\n}\n\n.was-validated .custom-control-input:valid ~ .valid-feedback,\n.was-validated .custom-control-input:valid ~ .valid-tooltip, .custom-control-input.is-valid ~ .valid-feedback,\n.custom-control-input.is-valid ~ .valid-tooltip {\n display: block;\n}\n\n.was-validated .custom-control-input:valid:checked ~ .custom-control-label::before, .custom-control-input.is-valid:checked ~ .custom-control-label::before {\n border-color: #34ce57;\n background-color: #34ce57;\n}\n\n.was-validated .custom-control-input:valid:focus ~ .custom-control-label::before, .custom-control-input.is-valid:focus ~ .custom-control-label::before {\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);\n}\n\n.was-validated .custom-control-input:valid:focus:not(:checked) ~ .custom-control-label::before, .custom-control-input.is-valid:focus:not(:checked) ~ .custom-control-label::before {\n border-color: #28a745;\n}\n\n.was-validated .custom-file-input:valid ~ .custom-file-label, .custom-file-input.is-valid ~ .custom-file-label {\n border-color: #28a745;\n}\n\n.was-validated .custom-file-input:valid ~ .valid-feedback,\n.was-validated .custom-file-input:valid ~ .valid-tooltip, .custom-file-input.is-valid ~ .valid-feedback,\n.custom-file-input.is-valid ~ .valid-tooltip {\n display: block;\n}\n\n.was-validated .custom-file-input:valid:focus ~ .custom-file-label, .custom-file-input.is-valid:focus ~ .custom-file-label {\n border-color: #28a745;\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);\n}\n\n.invalid-feedback {\n display: none;\n width: 100%;\n margin-top: 0.25rem;\n font-size: 80%;\n color: #dc3545;\n}\n\n.invalid-tooltip {\n position: absolute;\n top: 100%;\n z-index: 5;\n display: none;\n max-width: 100%;\n padding: 0.25rem 0.5rem;\n margin-top: .1rem;\n font-size: 0.875rem;\n line-height: 1.5;\n color: #fff;\n background-color: rgba(220, 53, 69, 0.9);\n border-radius: 0.25rem;\n}\n\n.was-validated .form-control:invalid, .form-control.is-invalid {\n border-color: #dc3545;\n padding-right: calc(1.5em + 0.75rem);\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23dc3545' viewBox='-2 -2 7 7'%3e%3cpath stroke='%23dc3545' d='M0 0l3 3m0-3L0 3'/%3e%3ccircle r='.5'/%3e%3ccircle cx='3' r='.5'/%3e%3ccircle cy='3' r='.5'/%3e%3ccircle cx='3' cy='3' r='.5'/%3e%3c/svg%3E\");\n background-repeat: no-repeat;\n background-position: center right calc(0.375em + 0.1875rem);\n background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);\n}\n\n.was-validated .form-control:invalid:focus, .form-control.is-invalid:focus {\n border-color: #dc3545;\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);\n}\n\n.was-validated .form-control:invalid ~ .invalid-feedback,\n.was-validated .form-control:invalid ~ .invalid-tooltip, .form-control.is-invalid ~ .invalid-feedback,\n.form-control.is-invalid ~ .invalid-tooltip {\n display: block;\n}\n\n.was-validated textarea.form-control:invalid, textarea.form-control.is-invalid {\n padding-right: calc(1.5em + 0.75rem);\n background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem);\n}\n\n.was-validated .custom-select:invalid, .custom-select.is-invalid {\n border-color: #dc3545;\n padding-right: calc((1em + 0.75rem) * 3 / 4 + 1.75rem);\n background: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e\") no-repeat right 0.75rem center/8px 10px, url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23dc3545' viewBox='-2 -2 7 7'%3e%3cpath stroke='%23dc3545' d='M0 0l3 3m0-3L0 3'/%3e%3ccircle r='.5'/%3e%3ccircle cx='3' r='.5'/%3e%3ccircle cy='3' r='.5'/%3e%3ccircle cx='3' cy='3' r='.5'/%3e%3c/svg%3E\") #fff no-repeat center right 1.75rem/calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);\n}\n\n.was-validated .custom-select:invalid:focus, .custom-select.is-invalid:focus {\n border-color: #dc3545;\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);\n}\n\n.was-validated .custom-select:invalid ~ .invalid-feedback,\n.was-validated .custom-select:invalid ~ .invalid-tooltip, .custom-select.is-invalid ~ .invalid-feedback,\n.custom-select.is-invalid ~ .invalid-tooltip {\n display: block;\n}\n\n.was-validated .form-control-file:invalid ~ .invalid-feedback,\n.was-validated .form-control-file:invalid ~ .invalid-tooltip, .form-control-file.is-invalid ~ .invalid-feedback,\n.form-control-file.is-invalid ~ .invalid-tooltip {\n display: block;\n}\n\n.was-validated .form-check-input:invalid ~ .form-check-label, .form-check-input.is-invalid ~ .form-check-label {\n color: #dc3545;\n}\n\n.was-validated .form-check-input:invalid ~ .invalid-feedback,\n.was-validated .form-check-input:invalid ~ .invalid-tooltip, .form-check-input.is-invalid ~ .invalid-feedback,\n.form-check-input.is-invalid ~ .invalid-tooltip {\n display: block;\n}\n\n.was-validated .custom-control-input:invalid ~ .custom-control-label, .custom-control-input.is-invalid ~ .custom-control-label {\n color: #dc3545;\n}\n\n.was-validated .custom-control-input:invalid ~ .custom-control-label::before, .custom-control-input.is-invalid ~ .custom-control-label::before {\n border-color: #dc3545;\n}\n\n.was-validated .custom-control-input:invalid ~ .invalid-feedback,\n.was-validated .custom-control-input:invalid ~ .invalid-tooltip, .custom-control-input.is-invalid ~ .invalid-feedback,\n.custom-control-input.is-invalid ~ .invalid-tooltip {\n display: block;\n}\n\n.was-validated .custom-control-input:invalid:checked ~ .custom-control-label::before, .custom-control-input.is-invalid:checked ~ .custom-control-label::before {\n border-color: #e4606d;\n background-color: #e4606d;\n}\n\n.was-validated .custom-control-input:invalid:focus ~ .custom-control-label::before, .custom-control-input.is-invalid:focus ~ .custom-control-label::before {\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);\n}\n\n.was-validated .custom-control-input:invalid:focus:not(:checked) ~ .custom-control-label::before, .custom-control-input.is-invalid:focus:not(:checked) ~ .custom-control-label::before {\n border-color: #dc3545;\n}\n\n.was-validated .custom-file-input:invalid ~ .custom-file-label, .custom-file-input.is-invalid ~ .custom-file-label {\n border-color: #dc3545;\n}\n\n.was-validated .custom-file-input:invalid ~ .invalid-feedback,\n.was-validated .custom-file-input:invalid ~ .invalid-tooltip, .custom-file-input.is-invalid ~ .invalid-feedback,\n.custom-file-input.is-invalid ~ .invalid-tooltip {\n display: block;\n}\n\n.was-validated .custom-file-input:invalid:focus ~ .custom-file-label, .custom-file-input.is-invalid:focus ~ .custom-file-label {\n border-color: #dc3545;\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);\n}\n\n.form-inline {\n display: flex;\n flex-flow: row wrap;\n align-items: center;\n}\n\n.form-inline .form-check {\n width: 100%;\n}\n\n@media (min-width: 576px) {\n .form-inline label {\n display: flex;\n align-items: center;\n justify-content: center;\n margin-bottom: 0;\n }\n .form-inline .form-group {\n display: flex;\n flex: 0 0 auto;\n flex-flow: row wrap;\n align-items: center;\n margin-bottom: 0;\n }\n .form-inline .form-control {\n display: inline-block;\n width: auto;\n vertical-align: middle;\n }\n .form-inline .form-control-plaintext {\n display: inline-block;\n }\n .form-inline .input-group,\n .form-inline .custom-select {\n width: auto;\n }\n .form-inline .form-check {\n display: flex;\n align-items: center;\n justify-content: center;\n width: auto;\n padding-left: 0;\n }\n .form-inline .form-check-input {\n position: relative;\n flex-shrink: 0;\n margin-top: 0;\n margin-right: 0.25rem;\n margin-left: 0;\n }\n .form-inline .custom-control {\n align-items: center;\n justify-content: center;\n }\n .form-inline .custom-control-label {\n margin-bottom: 0;\n }\n}\n\n.btn {\n display: inline-block;\n font-weight: 400;\n color: #212529;\n text-align: center;\n vertical-align: middle;\n user-select: none;\n background-color: transparent;\n border: 1px solid transparent;\n padding: 0.375rem 0.75rem;\n font-size: 1rem;\n line-height: 1.5;\n border-radius: 0.25rem;\n transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .btn {\n transition: none;\n }\n}\n\n.btn:hover {\n color: #212529;\n text-decoration: none;\n}\n\n.btn:focus, .btn.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.btn.disabled, .btn:disabled {\n opacity: 0.65;\n}\n\na.btn.disabled,\nfieldset:disabled a.btn {\n pointer-events: none;\n}\n\n.btn-primary {\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.btn-primary:hover {\n color: #fff;\n background-color: #0069d9;\n border-color: #0062cc;\n}\n\n.btn-primary:focus, .btn-primary.focus {\n box-shadow: 0 0 0 0.2rem rgba(38, 143, 255, 0.5);\n}\n\n.btn-primary.disabled, .btn-primary:disabled {\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.btn-primary:not(:disabled):not(.disabled):active, .btn-primary:not(:disabled):not(.disabled).active,\n.show > .btn-primary.dropdown-toggle {\n color: #fff;\n background-color: #0062cc;\n border-color: #005cbf;\n}\n\n.btn-primary:not(:disabled):not(.disabled):active:focus, .btn-primary:not(:disabled):not(.disabled).active:focus,\n.show > .btn-primary.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(38, 143, 255, 0.5);\n}\n\n.btn-secondary {\n color: #fff;\n background-color: #6c757d;\n border-color: #6c757d;\n}\n\n.btn-secondary:hover {\n color: #fff;\n background-color: #5a6268;\n border-color: #545b62;\n}\n\n.btn-secondary:focus, .btn-secondary.focus {\n box-shadow: 0 0 0 0.2rem rgba(130, 138, 145, 0.5);\n}\n\n.btn-secondary.disabled, .btn-secondary:disabled {\n color: #fff;\n background-color: #6c757d;\n border-color: #6c757d;\n}\n\n.btn-secondary:not(:disabled):not(.disabled):active, .btn-secondary:not(:disabled):not(.disabled).active,\n.show > .btn-secondary.dropdown-toggle {\n color: #fff;\n background-color: #545b62;\n border-color: #4e555b;\n}\n\n.btn-secondary:not(:disabled):not(.disabled):active:focus, .btn-secondary:not(:disabled):not(.disabled).active:focus,\n.show > .btn-secondary.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(130, 138, 145, 0.5);\n}\n\n.btn-success {\n color: #fff;\n background-color: #28a745;\n border-color: #28a745;\n}\n\n.btn-success:hover {\n color: #fff;\n background-color: #218838;\n border-color: #1e7e34;\n}\n\n.btn-success:focus, .btn-success.focus {\n box-shadow: 0 0 0 0.2rem rgba(72, 180, 97, 0.5);\n}\n\n.btn-success.disabled, .btn-success:disabled {\n color: #fff;\n background-color: #28a745;\n border-color: #28a745;\n}\n\n.btn-success:not(:disabled):not(.disabled):active, .btn-success:not(:disabled):not(.disabled).active,\n.show > .btn-success.dropdown-toggle {\n color: #fff;\n background-color: #1e7e34;\n border-color: #1c7430;\n}\n\n.btn-success:not(:disabled):not(.disabled):active:focus, .btn-success:not(:disabled):not(.disabled).active:focus,\n.show > .btn-success.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(72, 180, 97, 0.5);\n}\n\n.btn-info {\n color: #fff;\n background-color: #17a2b8;\n border-color: #17a2b8;\n}\n\n.btn-info:hover {\n color: #fff;\n background-color: #138496;\n border-color: #117a8b;\n}\n\n.btn-info:focus, .btn-info.focus {\n box-shadow: 0 0 0 0.2rem rgba(58, 176, 195, 0.5);\n}\n\n.btn-info.disabled, .btn-info:disabled {\n color: #fff;\n background-color: #17a2b8;\n border-color: #17a2b8;\n}\n\n.btn-info:not(:disabled):not(.disabled):active, .btn-info:not(:disabled):not(.disabled).active,\n.show > .btn-info.dropdown-toggle {\n color: #fff;\n background-color: #117a8b;\n border-color: #10707f;\n}\n\n.btn-info:not(:disabled):not(.disabled):active:focus, .btn-info:not(:disabled):not(.disabled).active:focus,\n.show > .btn-info.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(58, 176, 195, 0.5);\n}\n\n.btn-warning {\n color: #212529;\n background-color: #ffc107;\n border-color: #ffc107;\n}\n\n.btn-warning:hover {\n color: #212529;\n background-color: #e0a800;\n border-color: #d39e00;\n}\n\n.btn-warning:focus, .btn-warning.focus {\n box-shadow: 0 0 0 0.2rem rgba(222, 170, 12, 0.5);\n}\n\n.btn-warning.disabled, .btn-warning:disabled {\n color: #212529;\n background-color: #ffc107;\n border-color: #ffc107;\n}\n\n.btn-warning:not(:disabled):not(.disabled):active, .btn-warning:not(:disabled):not(.disabled).active,\n.show > .btn-warning.dropdown-toggle {\n color: #212529;\n background-color: #d39e00;\n border-color: #c69500;\n}\n\n.btn-warning:not(:disabled):not(.disabled):active:focus, .btn-warning:not(:disabled):not(.disabled).active:focus,\n.show > .btn-warning.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(222, 170, 12, 0.5);\n}\n\n.btn-danger {\n color: #fff;\n background-color: #dc3545;\n border-color: #dc3545;\n}\n\n.btn-danger:hover {\n color: #fff;\n background-color: #c82333;\n border-color: #bd2130;\n}\n\n.btn-danger:focus, .btn-danger.focus {\n box-shadow: 0 0 0 0.2rem rgba(225, 83, 97, 0.5);\n}\n\n.btn-danger.disabled, .btn-danger:disabled {\n color: #fff;\n background-color: #dc3545;\n border-color: #dc3545;\n}\n\n.btn-danger:not(:disabled):not(.disabled):active, .btn-danger:not(:disabled):not(.disabled).active,\n.show > .btn-danger.dropdown-toggle {\n color: #fff;\n background-color: #bd2130;\n border-color: #b21f2d;\n}\n\n.btn-danger:not(:disabled):not(.disabled):active:focus, .btn-danger:not(:disabled):not(.disabled).active:focus,\n.show > .btn-danger.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(225, 83, 97, 0.5);\n}\n\n.btn-light {\n color: #212529;\n background-color: #f8f9fa;\n border-color: #f8f9fa;\n}\n\n.btn-light:hover {\n color: #212529;\n background-color: #e2e6ea;\n border-color: #dae0e5;\n}\n\n.btn-light:focus, .btn-light.focus {\n box-shadow: 0 0 0 0.2rem rgba(216, 217, 219, 0.5);\n}\n\n.btn-light.disabled, .btn-light:disabled {\n color: #212529;\n background-color: #f8f9fa;\n border-color: #f8f9fa;\n}\n\n.btn-light:not(:disabled):not(.disabled):active, .btn-light:not(:disabled):not(.disabled).active,\n.show > .btn-light.dropdown-toggle {\n color: #212529;\n background-color: #dae0e5;\n border-color: #d3d9df;\n}\n\n.btn-light:not(:disabled):not(.disabled):active:focus, .btn-light:not(:disabled):not(.disabled).active:focus,\n.show > .btn-light.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(216, 217, 219, 0.5);\n}\n\n.btn-dark {\n color: #fff;\n background-color: #343a40;\n border-color: #343a40;\n}\n\n.btn-dark:hover {\n color: #fff;\n background-color: #23272b;\n border-color: #1d2124;\n}\n\n.btn-dark:focus, .btn-dark.focus {\n box-shadow: 0 0 0 0.2rem rgba(82, 88, 93, 0.5);\n}\n\n.btn-dark.disabled, .btn-dark:disabled {\n color: #fff;\n background-color: #343a40;\n border-color: #343a40;\n}\n\n.btn-dark:not(:disabled):not(.disabled):active, .btn-dark:not(:disabled):not(.disabled).active,\n.show > .btn-dark.dropdown-toggle {\n color: #fff;\n background-color: #1d2124;\n border-color: #171a1d;\n}\n\n.btn-dark:not(:disabled):not(.disabled):active:focus, .btn-dark:not(:disabled):not(.disabled).active:focus,\n.show > .btn-dark.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(82, 88, 93, 0.5);\n}\n\n.btn-outline-primary {\n color: #007bff;\n border-color: #007bff;\n}\n\n.btn-outline-primary:hover {\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.btn-outline-primary:focus, .btn-outline-primary.focus {\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5);\n}\n\n.btn-outline-primary.disabled, .btn-outline-primary:disabled {\n color: #007bff;\n background-color: transparent;\n}\n\n.btn-outline-primary:not(:disabled):not(.disabled):active, .btn-outline-primary:not(:disabled):not(.disabled).active,\n.show > .btn-outline-primary.dropdown-toggle {\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.btn-outline-primary:not(:disabled):not(.disabled):active:focus, .btn-outline-primary:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-primary.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5);\n}\n\n.btn-outline-secondary {\n color: #6c757d;\n border-color: #6c757d;\n}\n\n.btn-outline-secondary:hover {\n color: #fff;\n background-color: #6c757d;\n border-color: #6c757d;\n}\n\n.btn-outline-secondary:focus, .btn-outline-secondary.focus {\n box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5);\n}\n\n.btn-outline-secondary.disabled, .btn-outline-secondary:disabled {\n color: #6c757d;\n background-color: transparent;\n}\n\n.btn-outline-secondary:not(:disabled):not(.disabled):active, .btn-outline-secondary:not(:disabled):not(.disabled).active,\n.show > .btn-outline-secondary.dropdown-toggle {\n color: #fff;\n background-color: #6c757d;\n border-color: #6c757d;\n}\n\n.btn-outline-secondary:not(:disabled):not(.disabled):active:focus, .btn-outline-secondary:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-secondary.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5);\n}\n\n.btn-outline-success {\n color: #28a745;\n border-color: #28a745;\n}\n\n.btn-outline-success:hover {\n color: #fff;\n background-color: #28a745;\n border-color: #28a745;\n}\n\n.btn-outline-success:focus, .btn-outline-success.focus {\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5);\n}\n\n.btn-outline-success.disabled, .btn-outline-success:disabled {\n color: #28a745;\n background-color: transparent;\n}\n\n.btn-outline-success:not(:disabled):not(.disabled):active, .btn-outline-success:not(:disabled):not(.disabled).active,\n.show > .btn-outline-success.dropdown-toggle {\n color: #fff;\n background-color: #28a745;\n border-color: #28a745;\n}\n\n.btn-outline-success:not(:disabled):not(.disabled):active:focus, .btn-outline-success:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-success.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5);\n}\n\n.btn-outline-info {\n color: #17a2b8;\n border-color: #17a2b8;\n}\n\n.btn-outline-info:hover {\n color: #fff;\n background-color: #17a2b8;\n border-color: #17a2b8;\n}\n\n.btn-outline-info:focus, .btn-outline-info.focus {\n box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);\n}\n\n.btn-outline-info.disabled, .btn-outline-info:disabled {\n color: #17a2b8;\n background-color: transparent;\n}\n\n.btn-outline-info:not(:disabled):not(.disabled):active, .btn-outline-info:not(:disabled):not(.disabled).active,\n.show > .btn-outline-info.dropdown-toggle {\n color: #fff;\n background-color: #17a2b8;\n border-color: #17a2b8;\n}\n\n.btn-outline-info:not(:disabled):not(.disabled):active:focus, .btn-outline-info:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-info.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);\n}\n\n.btn-outline-warning {\n color: #ffc107;\n border-color: #ffc107;\n}\n\n.btn-outline-warning:hover {\n color: #212529;\n background-color: #ffc107;\n border-color: #ffc107;\n}\n\n.btn-outline-warning:focus, .btn-outline-warning.focus {\n box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);\n}\n\n.btn-outline-warning.disabled, .btn-outline-warning:disabled {\n color: #ffc107;\n background-color: transparent;\n}\n\n.btn-outline-warning:not(:disabled):not(.disabled):active, .btn-outline-warning:not(:disabled):not(.disabled).active,\n.show > .btn-outline-warning.dropdown-toggle {\n color: #212529;\n background-color: #ffc107;\n border-color: #ffc107;\n}\n\n.btn-outline-warning:not(:disabled):not(.disabled):active:focus, .btn-outline-warning:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-warning.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);\n}\n\n.btn-outline-danger {\n color: #dc3545;\n border-color: #dc3545;\n}\n\n.btn-outline-danger:hover {\n color: #fff;\n background-color: #dc3545;\n border-color: #dc3545;\n}\n\n.btn-outline-danger:focus, .btn-outline-danger.focus {\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);\n}\n\n.btn-outline-danger.disabled, .btn-outline-danger:disabled {\n color: #dc3545;\n background-color: transparent;\n}\n\n.btn-outline-danger:not(:disabled):not(.disabled):active, .btn-outline-danger:not(:disabled):not(.disabled).active,\n.show > .btn-outline-danger.dropdown-toggle {\n color: #fff;\n background-color: #dc3545;\n border-color: #dc3545;\n}\n\n.btn-outline-danger:not(:disabled):not(.disabled):active:focus, .btn-outline-danger:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-danger.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);\n}\n\n.btn-outline-light {\n color: #f8f9fa;\n border-color: #f8f9fa;\n}\n\n.btn-outline-light:hover {\n color: #212529;\n background-color: #f8f9fa;\n border-color: #f8f9fa;\n}\n\n.btn-outline-light:focus, .btn-outline-light.focus {\n box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);\n}\n\n.btn-outline-light.disabled, .btn-outline-light:disabled {\n color: #f8f9fa;\n background-color: transparent;\n}\n\n.btn-outline-light:not(:disabled):not(.disabled):active, .btn-outline-light:not(:disabled):not(.disabled).active,\n.show > .btn-outline-light.dropdown-toggle {\n color: #212529;\n background-color: #f8f9fa;\n border-color: #f8f9fa;\n}\n\n.btn-outline-light:not(:disabled):not(.disabled):active:focus, .btn-outline-light:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-light.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);\n}\n\n.btn-outline-dark {\n color: #343a40;\n border-color: #343a40;\n}\n\n.btn-outline-dark:hover {\n color: #fff;\n background-color: #343a40;\n border-color: #343a40;\n}\n\n.btn-outline-dark:focus, .btn-outline-dark.focus {\n box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);\n}\n\n.btn-outline-dark.disabled, .btn-outline-dark:disabled {\n color: #343a40;\n background-color: transparent;\n}\n\n.btn-outline-dark:not(:disabled):not(.disabled):active, .btn-outline-dark:not(:disabled):not(.disabled).active,\n.show > .btn-outline-dark.dropdown-toggle {\n color: #fff;\n background-color: #343a40;\n border-color: #343a40;\n}\n\n.btn-outline-dark:not(:disabled):not(.disabled):active:focus, .btn-outline-dark:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-dark.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);\n}\n\n.btn-link {\n font-weight: 400;\n color: #007bff;\n text-decoration: none;\n}\n\n.btn-link:hover {\n color: #0056b3;\n text-decoration: underline;\n}\n\n.btn-link:focus, .btn-link.focus {\n text-decoration: underline;\n box-shadow: none;\n}\n\n.btn-link:disabled, .btn-link.disabled {\n color: #6c757d;\n pointer-events: none;\n}\n\n.btn-lg, .btn-group-lg > .btn {\n padding: 0.5rem 1rem;\n font-size: 1.25rem;\n line-height: 1.5;\n border-radius: 0.3rem;\n}\n\n.btn-sm, .btn-group-sm > .btn {\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem;\n line-height: 1.5;\n border-radius: 0.2rem;\n}\n\n.btn-block {\n display: block;\n width: 100%;\n}\n\n.btn-block + .btn-block {\n margin-top: 0.5rem;\n}\n\ninput[type=\"submit\"].btn-block,\ninput[type=\"reset\"].btn-block,\ninput[type=\"button\"].btn-block {\n width: 100%;\n}\n\n.fade {\n transition: opacity 0.15s linear;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .fade {\n transition: none;\n }\n}\n\n.fade:not(.show) {\n opacity: 0;\n}\n\n.collapse:not(.show) {\n display: none;\n}\n\n.collapsing {\n position: relative;\n height: 0;\n overflow: hidden;\n transition: height 0.35s ease;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .collapsing {\n transition: none;\n }\n}\n\n.dropup,\n.dropright,\n.dropdown,\n.dropleft {\n position: relative;\n}\n\n.dropdown-toggle {\n white-space: nowrap;\n}\n\n.dropdown-toggle::after {\n display: inline-block;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n border-top: 0.3em solid;\n border-right: 0.3em solid transparent;\n border-bottom: 0;\n border-left: 0.3em solid transparent;\n}\n\n.dropdown-toggle:empty::after {\n margin-left: 0;\n}\n\n.dropdown-menu {\n position: absolute;\n top: 100%;\n left: 0;\n z-index: 1000;\n display: none;\n float: left;\n min-width: 10rem;\n padding: 0.5rem 0;\n margin: 0.125rem 0 0;\n font-size: 1rem;\n color: #212529;\n text-align: left;\n list-style: none;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid rgba(0, 0, 0, 0.15);\n border-radius: 0.25rem;\n}\n\n.dropdown-menu-left {\n right: auto;\n left: 0;\n}\n\n.dropdown-menu-right {\n right: 0;\n left: auto;\n}\n\n@media (min-width: 576px) {\n .dropdown-menu-sm-left {\n right: auto;\n left: 0;\n }\n .dropdown-menu-sm-right {\n right: 0;\n left: auto;\n }\n}\n\n@media (min-width: 768px) {\n .dropdown-menu-md-left {\n right: auto;\n left: 0;\n }\n .dropdown-menu-md-right {\n right: 0;\n left: auto;\n }\n}\n\n@media (min-width: 992px) {\n .dropdown-menu-lg-left {\n right: auto;\n left: 0;\n }\n .dropdown-menu-lg-right {\n right: 0;\n left: auto;\n }\n}\n\n@media (min-width: 1200px) {\n .dropdown-menu-xl-left {\n right: auto;\n left: 0;\n }\n .dropdown-menu-xl-right {\n right: 0;\n left: auto;\n }\n}\n\n.dropup .dropdown-menu {\n top: auto;\n bottom: 100%;\n margin-top: 0;\n margin-bottom: 0.125rem;\n}\n\n.dropup .dropdown-toggle::after {\n display: inline-block;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n border-top: 0;\n border-right: 0.3em solid transparent;\n border-bottom: 0.3em solid;\n border-left: 0.3em solid transparent;\n}\n\n.dropup .dropdown-toggle:empty::after {\n margin-left: 0;\n}\n\n.dropright .dropdown-menu {\n top: 0;\n right: auto;\n left: 100%;\n margin-top: 0;\n margin-left: 0.125rem;\n}\n\n.dropright .dropdown-toggle::after {\n display: inline-block;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n border-top: 0.3em solid transparent;\n border-right: 0;\n border-bottom: 0.3em solid transparent;\n border-left: 0.3em solid;\n}\n\n.dropright .dropdown-toggle:empty::after {\n margin-left: 0;\n}\n\n.dropright .dropdown-toggle::after {\n vertical-align: 0;\n}\n\n.dropleft .dropdown-menu {\n top: 0;\n right: 100%;\n left: auto;\n margin-top: 0;\n margin-right: 0.125rem;\n}\n\n.dropleft .dropdown-toggle::after {\n display: inline-block;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n}\n\n.dropleft .dropdown-toggle::after {\n display: none;\n}\n\n.dropleft .dropdown-toggle::before {\n display: inline-block;\n margin-right: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n border-top: 0.3em solid transparent;\n border-right: 0.3em solid;\n border-bottom: 0.3em solid transparent;\n}\n\n.dropleft .dropdown-toggle:empty::after {\n margin-left: 0;\n}\n\n.dropleft .dropdown-toggle::before {\n vertical-align: 0;\n}\n\n.dropdown-menu[x-placement^=\"top\"], .dropdown-menu[x-placement^=\"right\"], .dropdown-menu[x-placement^=\"bottom\"], .dropdown-menu[x-placement^=\"left\"] {\n right: auto;\n bottom: auto;\n}\n\n.dropdown-divider {\n height: 0;\n margin: 0.5rem 0;\n overflow: hidden;\n border-top: 1px solid #e9ecef;\n}\n\n.dropdown-item {\n display: block;\n width: 100%;\n padding: 0.25rem 1.5rem;\n clear: both;\n font-weight: 400;\n color: #212529;\n text-align: inherit;\n white-space: nowrap;\n background-color: transparent;\n border: 0;\n}\n\n.dropdown-item:hover, .dropdown-item:focus {\n color: #16181b;\n text-decoration: none;\n background-color: #f8f9fa;\n}\n\n.dropdown-item.active, .dropdown-item:active {\n color: #fff;\n text-decoration: none;\n background-color: #007bff;\n}\n\n.dropdown-item.disabled, .dropdown-item:disabled {\n color: #6c757d;\n pointer-events: none;\n background-color: transparent;\n}\n\n.dropdown-menu.show {\n display: block;\n}\n\n.dropdown-header {\n display: block;\n padding: 0.5rem 1.5rem;\n margin-bottom: 0;\n font-size: 0.875rem;\n color: #6c757d;\n white-space: nowrap;\n}\n\n.dropdown-item-text {\n display: block;\n padding: 0.25rem 1.5rem;\n color: #212529;\n}\n\n.btn-group,\n.btn-group-vertical {\n position: relative;\n display: inline-flex;\n vertical-align: middle;\n}\n\n.btn-group > .btn,\n.btn-group-vertical > .btn {\n position: relative;\n flex: 1 1 auto;\n}\n\n.btn-group > .btn:hover,\n.btn-group-vertical > .btn:hover {\n z-index: 1;\n}\n\n.btn-group > .btn:focus, .btn-group > .btn:active, .btn-group > .btn.active,\n.btn-group-vertical > .btn:focus,\n.btn-group-vertical > .btn:active,\n.btn-group-vertical > .btn.active {\n z-index: 1;\n}\n\n.btn-toolbar {\n display: flex;\n flex-wrap: wrap;\n justify-content: flex-start;\n}\n\n.btn-toolbar .input-group {\n width: auto;\n}\n\n.btn-group > .btn:not(:first-child),\n.btn-group > .btn-group:not(:first-child) {\n margin-left: -1px;\n}\n\n.btn-group > .btn:not(:last-child):not(.dropdown-toggle),\n.btn-group > .btn-group:not(:last-child) > .btn {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n\n.btn-group > .btn:not(:first-child),\n.btn-group > .btn-group:not(:first-child) > .btn {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.dropdown-toggle-split {\n padding-right: 0.5625rem;\n padding-left: 0.5625rem;\n}\n\n.dropdown-toggle-split::after,\n.dropup .dropdown-toggle-split::after,\n.dropright .dropdown-toggle-split::after {\n margin-left: 0;\n}\n\n.dropleft .dropdown-toggle-split::before {\n margin-right: 0;\n}\n\n.btn-sm + .dropdown-toggle-split, .btn-group-sm > .btn + .dropdown-toggle-split {\n padding-right: 0.375rem;\n padding-left: 0.375rem;\n}\n\n.btn-lg + .dropdown-toggle-split, .btn-group-lg > .btn + .dropdown-toggle-split {\n padding-right: 0.75rem;\n padding-left: 0.75rem;\n}\n\n.btn-group-vertical {\n flex-direction: column;\n align-items: flex-start;\n justify-content: center;\n}\n\n.btn-group-vertical > .btn,\n.btn-group-vertical > .btn-group {\n width: 100%;\n}\n\n.btn-group-vertical > .btn:not(:first-child),\n.btn-group-vertical > .btn-group:not(:first-child) {\n margin-top: -1px;\n}\n\n.btn-group-vertical > .btn:not(:last-child):not(.dropdown-toggle),\n.btn-group-vertical > .btn-group:not(:last-child) > .btn {\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.btn-group-vertical > .btn:not(:first-child),\n.btn-group-vertical > .btn-group:not(:first-child) > .btn {\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n}\n\n.btn-group-toggle > .btn,\n.btn-group-toggle > .btn-group > .btn {\n margin-bottom: 0;\n}\n\n.btn-group-toggle > .btn input[type=\"radio\"],\n.btn-group-toggle > .btn input[type=\"checkbox\"],\n.btn-group-toggle > .btn-group > .btn input[type=\"radio\"],\n.btn-group-toggle > .btn-group > .btn input[type=\"checkbox\"] {\n position: absolute;\n clip: rect(0, 0, 0, 0);\n pointer-events: none;\n}\n\n.input-group {\n position: relative;\n display: flex;\n flex-wrap: wrap;\n align-items: stretch;\n width: 100%;\n}\n\n.input-group > .form-control,\n.input-group > .form-control-plaintext,\n.input-group > .custom-select,\n.input-group > .custom-file {\n position: relative;\n flex: 1 1 auto;\n width: 1%;\n margin-bottom: 0;\n}\n\n.input-group > .form-control + .form-control,\n.input-group > .form-control + .custom-select,\n.input-group > .form-control + .custom-file,\n.input-group > .form-control-plaintext + .form-control,\n.input-group > .form-control-plaintext + .custom-select,\n.input-group > .form-control-plaintext + .custom-file,\n.input-group > .custom-select + .form-control,\n.input-group > .custom-select + .custom-select,\n.input-group > .custom-select + .custom-file,\n.input-group > .custom-file + .form-control,\n.input-group > .custom-file + .custom-select,\n.input-group > .custom-file + .custom-file {\n margin-left: -1px;\n}\n\n.input-group > .form-control:focus,\n.input-group > .custom-select:focus,\n.input-group > .custom-file .custom-file-input:focus ~ .custom-file-label {\n z-index: 3;\n}\n\n.input-group > .custom-file .custom-file-input:focus {\n z-index: 4;\n}\n\n.input-group > .form-control:not(:last-child),\n.input-group > .custom-select:not(:last-child) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n\n.input-group > .form-control:not(:first-child),\n.input-group > .custom-select:not(:first-child) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.input-group > .custom-file {\n display: flex;\n align-items: center;\n}\n\n.input-group > .custom-file:not(:last-child) .custom-file-label,\n.input-group > .custom-file:not(:last-child) .custom-file-label::after {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n\n.input-group > .custom-file:not(:first-child) .custom-file-label {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.input-group-prepend,\n.input-group-append {\n display: flex;\n}\n\n.input-group-prepend .btn,\n.input-group-append .btn {\n position: relative;\n z-index: 2;\n}\n\n.input-group-prepend .btn:focus,\n.input-group-append .btn:focus {\n z-index: 3;\n}\n\n.input-group-prepend .btn + .btn,\n.input-group-prepend .btn + .input-group-text,\n.input-group-prepend .input-group-text + .input-group-text,\n.input-group-prepend .input-group-text + .btn,\n.input-group-append .btn + .btn,\n.input-group-append .btn + .input-group-text,\n.input-group-append .input-group-text + .input-group-text,\n.input-group-append .input-group-text + .btn {\n margin-left: -1px;\n}\n\n.input-group-prepend {\n margin-right: -1px;\n}\n\n.input-group-append {\n margin-left: -1px;\n}\n\n.input-group-text {\n display: flex;\n align-items: center;\n padding: 0.375rem 0.75rem;\n margin-bottom: 0;\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: #495057;\n text-align: center;\n white-space: nowrap;\n background-color: #e9ecef;\n border: 1px solid #ced4da;\n border-radius: 0.25rem;\n}\n\n.input-group-text input[type=\"radio\"],\n.input-group-text input[type=\"checkbox\"] {\n margin-top: 0;\n}\n\n.input-group-lg > .form-control:not(textarea),\n.input-group-lg > .custom-select {\n height: calc(1.5em + 1rem + 2px);\n}\n\n.input-group-lg > .form-control,\n.input-group-lg > .custom-select,\n.input-group-lg > .input-group-prepend > .input-group-text,\n.input-group-lg > .input-group-append > .input-group-text,\n.input-group-lg > .input-group-prepend > .btn,\n.input-group-lg > .input-group-append > .btn {\n padding: 0.5rem 1rem;\n font-size: 1.25rem;\n line-height: 1.5;\n border-radius: 0.3rem;\n}\n\n.input-group-sm > .form-control:not(textarea),\n.input-group-sm > .custom-select {\n height: calc(1.5em + 0.5rem + 2px);\n}\n\n.input-group-sm > .form-control,\n.input-group-sm > .custom-select,\n.input-group-sm > .input-group-prepend > .input-group-text,\n.input-group-sm > .input-group-append > .input-group-text,\n.input-group-sm > .input-group-prepend > .btn,\n.input-group-sm > .input-group-append > .btn {\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem;\n line-height: 1.5;\n border-radius: 0.2rem;\n}\n\n.input-group-lg > .custom-select,\n.input-group-sm > .custom-select {\n padding-right: 1.75rem;\n}\n\n.input-group > .input-group-prepend > .btn,\n.input-group > .input-group-prepend > .input-group-text,\n.input-group > .input-group-append:not(:last-child) > .btn,\n.input-group > .input-group-append:not(:last-child) > .input-group-text,\n.input-group > .input-group-append:last-child > .btn:not(:last-child):not(.dropdown-toggle),\n.input-group > .input-group-append:last-child > .input-group-text:not(:last-child) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n\n.input-group > .input-group-append > .btn,\n.input-group > .input-group-append > .input-group-text,\n.input-group > .input-group-prepend:not(:first-child) > .btn,\n.input-group > .input-group-prepend:not(:first-child) > .input-group-text,\n.input-group > .input-group-prepend:first-child > .btn:not(:first-child),\n.input-group > .input-group-prepend:first-child > .input-group-text:not(:first-child) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.custom-control {\n position: relative;\n display: block;\n min-height: 1.5rem;\n padding-left: 1.5rem;\n}\n\n.custom-control-inline {\n display: inline-flex;\n margin-right: 1rem;\n}\n\n.custom-control-input {\n position: absolute;\n z-index: -1;\n opacity: 0;\n}\n\n.custom-control-input:checked ~ .custom-control-label::before {\n color: #fff;\n border-color: #007bff;\n background-color: #007bff;\n}\n\n.custom-control-input:focus ~ .custom-control-label::before {\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-control-input:focus:not(:checked) ~ .custom-control-label::before {\n border-color: #80bdff;\n}\n\n.custom-control-input:not(:disabled):active ~ .custom-control-label::before {\n color: #fff;\n background-color: #b3d7ff;\n border-color: #b3d7ff;\n}\n\n.custom-control-input:disabled ~ .custom-control-label {\n color: #6c757d;\n}\n\n.custom-control-input:disabled ~ .custom-control-label::before {\n background-color: #e9ecef;\n}\n\n.custom-control-label {\n position: relative;\n margin-bottom: 0;\n vertical-align: top;\n}\n\n.custom-control-label::before {\n position: absolute;\n top: 0.25rem;\n left: -1.5rem;\n display: block;\n width: 1rem;\n height: 1rem;\n pointer-events: none;\n content: \"\";\n background-color: #fff;\n border: #adb5bd solid 1px;\n}\n\n.custom-control-label::after {\n position: absolute;\n top: 0.25rem;\n left: -1.5rem;\n display: block;\n width: 1rem;\n height: 1rem;\n content: \"\";\n background: no-repeat 50% / 50% 50%;\n}\n\n.custom-checkbox .custom-control-label::before {\n border-radius: 0.25rem;\n}\n\n.custom-checkbox .custom-control-input:checked ~ .custom-control-label::after {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3e%3c/svg%3e\");\n}\n\n.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::before {\n border-color: #007bff;\n background-color: #007bff;\n}\n\n.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::after {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 4'%3e%3cpath stroke='%23fff' d='M0 2h4'/%3e%3c/svg%3e\");\n}\n\n.custom-checkbox .custom-control-input:disabled:checked ~ .custom-control-label::before {\n background-color: rgba(0, 123, 255, 0.5);\n}\n\n.custom-checkbox .custom-control-input:disabled:indeterminate ~ .custom-control-label::before {\n background-color: rgba(0, 123, 255, 0.5);\n}\n\n.custom-radio .custom-control-label::before {\n border-radius: 50%;\n}\n\n.custom-radio .custom-control-input:checked ~ .custom-control-label::after {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e\");\n}\n\n.custom-radio .custom-control-input:disabled:checked ~ .custom-control-label::before {\n background-color: rgba(0, 123, 255, 0.5);\n}\n\n.custom-switch {\n padding-left: 2.25rem;\n}\n\n.custom-switch .custom-control-label::before {\n left: -2.25rem;\n width: 1.75rem;\n pointer-events: all;\n border-radius: 0.5rem;\n}\n\n.custom-switch .custom-control-label::after {\n top: calc(0.25rem + 2px);\n left: calc(-2.25rem + 2px);\n width: calc(1rem - 4px);\n height: calc(1rem - 4px);\n background-color: #adb5bd;\n border-radius: 0.5rem;\n transition: transform 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .custom-switch .custom-control-label::after {\n transition: none;\n }\n}\n\n.custom-switch .custom-control-input:checked ~ .custom-control-label::after {\n background-color: #fff;\n transform: translateX(0.75rem);\n}\n\n.custom-switch .custom-control-input:disabled:checked ~ .custom-control-label::before {\n background-color: rgba(0, 123, 255, 0.5);\n}\n\n.custom-select {\n display: inline-block;\n width: 100%;\n height: calc(1.5em + 0.75rem + 2px);\n padding: 0.375rem 1.75rem 0.375rem 0.75rem;\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: #495057;\n vertical-align: middle;\n background: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e\") no-repeat right 0.75rem center/8px 10px;\n background-color: #fff;\n border: 1px solid #ced4da;\n border-radius: 0.25rem;\n appearance: none;\n}\n\n.custom-select:focus {\n border-color: #80bdff;\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-select:focus::-ms-value {\n color: #495057;\n background-color: #fff;\n}\n\n.custom-select[multiple], .custom-select[size]:not([size=\"1\"]) {\n height: auto;\n padding-right: 0.75rem;\n background-image: none;\n}\n\n.custom-select:disabled {\n color: #6c757d;\n background-color: #e9ecef;\n}\n\n.custom-select::-ms-expand {\n display: none;\n}\n\n.custom-select-sm {\n height: calc(1.5em + 0.5rem + 2px);\n padding-top: 0.25rem;\n padding-bottom: 0.25rem;\n padding-left: 0.5rem;\n font-size: 0.875rem;\n}\n\n.custom-select-lg {\n height: calc(1.5em + 1rem + 2px);\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n padding-left: 1rem;\n font-size: 1.25rem;\n}\n\n.custom-file {\n position: relative;\n display: inline-block;\n width: 100%;\n height: calc(1.5em + 0.75rem + 2px);\n margin-bottom: 0;\n}\n\n.custom-file-input {\n position: relative;\n z-index: 2;\n width: 100%;\n height: calc(1.5em + 0.75rem + 2px);\n margin: 0;\n opacity: 0;\n}\n\n.custom-file-input:focus ~ .custom-file-label {\n border-color: #80bdff;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-file-input:disabled ~ .custom-file-label {\n background-color: #e9ecef;\n}\n\n.custom-file-input:lang(en) ~ .custom-file-label::after {\n content: \"Browse\";\n}\n\n.custom-file-input ~ .custom-file-label[data-browse]::after {\n content: attr(data-browse);\n}\n\n.custom-file-label {\n position: absolute;\n top: 0;\n right: 0;\n left: 0;\n z-index: 1;\n height: calc(1.5em + 0.75rem + 2px);\n padding: 0.375rem 0.75rem;\n font-weight: 400;\n line-height: 1.5;\n color: #495057;\n background-color: #fff;\n border: 1px solid #ced4da;\n border-radius: 0.25rem;\n}\n\n.custom-file-label::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n z-index: 3;\n display: block;\n height: calc(1.5em + 0.75rem);\n padding: 0.375rem 0.75rem;\n line-height: 1.5;\n color: #495057;\n content: \"Browse\";\n background-color: #e9ecef;\n border-left: inherit;\n border-radius: 0 0.25rem 0.25rem 0;\n}\n\n.custom-range {\n width: 100%;\n height: calc(1rem + 0.4rem);\n padding: 0;\n background-color: transparent;\n appearance: none;\n}\n\n.custom-range:focus {\n outline: none;\n}\n\n.custom-range:focus::-webkit-slider-thumb {\n box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-range:focus::-moz-range-thumb {\n box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-range:focus::-ms-thumb {\n box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-range::-moz-focus-outer {\n border: 0;\n}\n\n.custom-range::-webkit-slider-thumb {\n width: 1rem;\n height: 1rem;\n margin-top: -0.25rem;\n background-color: #007bff;\n border: 0;\n border-radius: 1rem;\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n appearance: none;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .custom-range::-webkit-slider-thumb {\n transition: none;\n }\n}\n\n.custom-range::-webkit-slider-thumb:active {\n background-color: #b3d7ff;\n}\n\n.custom-range::-webkit-slider-runnable-track {\n width: 100%;\n height: 0.5rem;\n color: transparent;\n cursor: pointer;\n background-color: #dee2e6;\n border-color: transparent;\n border-radius: 1rem;\n}\n\n.custom-range::-moz-range-thumb {\n width: 1rem;\n height: 1rem;\n background-color: #007bff;\n border: 0;\n border-radius: 1rem;\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n appearance: none;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .custom-range::-moz-range-thumb {\n transition: none;\n }\n}\n\n.custom-range::-moz-range-thumb:active {\n background-color: #b3d7ff;\n}\n\n.custom-range::-moz-range-track {\n width: 100%;\n height: 0.5rem;\n color: transparent;\n cursor: pointer;\n background-color: #dee2e6;\n border-color: transparent;\n border-radius: 1rem;\n}\n\n.custom-range::-ms-thumb {\n width: 1rem;\n height: 1rem;\n margin-top: 0;\n margin-right: 0.2rem;\n margin-left: 0.2rem;\n background-color: #007bff;\n border: 0;\n border-radius: 1rem;\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n appearance: none;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .custom-range::-ms-thumb {\n transition: none;\n }\n}\n\n.custom-range::-ms-thumb:active {\n background-color: #b3d7ff;\n}\n\n.custom-range::-ms-track {\n width: 100%;\n height: 0.5rem;\n color: transparent;\n cursor: pointer;\n background-color: transparent;\n border-color: transparent;\n border-width: 0.5rem;\n}\n\n.custom-range::-ms-fill-lower {\n background-color: #dee2e6;\n border-radius: 1rem;\n}\n\n.custom-range::-ms-fill-upper {\n margin-right: 15px;\n background-color: #dee2e6;\n border-radius: 1rem;\n}\n\n.custom-range:disabled::-webkit-slider-thumb {\n background-color: #adb5bd;\n}\n\n.custom-range:disabled::-webkit-slider-runnable-track {\n cursor: default;\n}\n\n.custom-range:disabled::-moz-range-thumb {\n background-color: #adb5bd;\n}\n\n.custom-range:disabled::-moz-range-track {\n cursor: default;\n}\n\n.custom-range:disabled::-ms-thumb {\n background-color: #adb5bd;\n}\n\n.custom-control-label::before,\n.custom-file-label,\n.custom-select {\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .custom-control-label::before,\n .custom-file-label,\n .custom-select {\n transition: none;\n }\n}\n\n.nav {\n display: flex;\n flex-wrap: wrap;\n padding-left: 0;\n margin-bottom: 0;\n list-style: none;\n}\n\n.nav-link {\n display: block;\n padding: 0.5rem 1rem;\n}\n\n.nav-link:hover, .nav-link:focus {\n text-decoration: none;\n}\n\n.nav-link.disabled {\n color: #6c757d;\n pointer-events: none;\n cursor: default;\n}\n\n.nav-tabs {\n border-bottom: 1px solid #dee2e6;\n}\n\n.nav-tabs .nav-item {\n margin-bottom: -1px;\n}\n\n.nav-tabs .nav-link {\n border: 1px solid transparent;\n border-top-left-radius: 0.25rem;\n border-top-right-radius: 0.25rem;\n}\n\n.nav-tabs .nav-link:hover, .nav-tabs .nav-link:focus {\n border-color: #e9ecef #e9ecef #dee2e6;\n}\n\n.nav-tabs .nav-link.disabled {\n color: #6c757d;\n background-color: transparent;\n border-color: transparent;\n}\n\n.nav-tabs .nav-link.active,\n.nav-tabs .nav-item.show .nav-link {\n color: #495057;\n background-color: #fff;\n border-color: #dee2e6 #dee2e6 #fff;\n}\n\n.nav-tabs .dropdown-menu {\n margin-top: -1px;\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n}\n\n.nav-pills .nav-link {\n border-radius: 0.25rem;\n}\n\n.nav-pills .nav-link.active,\n.nav-pills .show > .nav-link {\n color: #fff;\n background-color: #007bff;\n}\n\n.nav-fill .nav-item {\n flex: 1 1 auto;\n text-align: center;\n}\n\n.nav-justified .nav-item {\n flex-basis: 0;\n flex-grow: 1;\n text-align: center;\n}\n\n.tab-content > .tab-pane {\n display: none;\n}\n\n.tab-content > .active {\n display: block;\n}\n\n.navbar {\n position: relative;\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n justify-content: space-between;\n padding: 0.5rem 1rem;\n}\n\n.navbar > .container,\n.navbar > .container-fluid {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n justify-content: space-between;\n}\n\n.navbar-brand {\n display: inline-block;\n padding-top: 0.3125rem;\n padding-bottom: 0.3125rem;\n margin-right: 1rem;\n font-size: 1.25rem;\n line-height: inherit;\n white-space: nowrap;\n}\n\n.navbar-brand:hover, .navbar-brand:focus {\n text-decoration: none;\n}\n\n.navbar-nav {\n display: flex;\n flex-direction: column;\n padding-left: 0;\n margin-bottom: 0;\n list-style: none;\n}\n\n.navbar-nav .nav-link {\n padding-right: 0;\n padding-left: 0;\n}\n\n.navbar-nav .dropdown-menu {\n position: static;\n float: none;\n}\n\n.navbar-text {\n display: inline-block;\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n}\n\n.navbar-collapse {\n flex-basis: 100%;\n flex-grow: 1;\n align-items: center;\n}\n\n.navbar-toggler {\n padding: 0.25rem 0.75rem;\n font-size: 1.25rem;\n line-height: 1;\n background-color: transparent;\n border: 1px solid transparent;\n border-radius: 0.25rem;\n}\n\n.navbar-toggler:hover, .navbar-toggler:focus {\n text-decoration: none;\n}\n\n.navbar-toggler-icon {\n display: inline-block;\n width: 1.5em;\n height: 1.5em;\n vertical-align: middle;\n content: \"\";\n background: no-repeat center center;\n background-size: 100% 100%;\n}\n\n@media (max-width: 575.98px) {\n .navbar-expand-sm > .container,\n .navbar-expand-sm > .container-fluid {\n padding-right: 0;\n padding-left: 0;\n }\n}\n\n@media (min-width: 576px) {\n .navbar-expand-sm {\n flex-flow: row nowrap;\n justify-content: flex-start;\n }\n .navbar-expand-sm .navbar-nav {\n flex-direction: row;\n }\n .navbar-expand-sm .navbar-nav .dropdown-menu {\n position: absolute;\n }\n .navbar-expand-sm .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n }\n .navbar-expand-sm > .container,\n .navbar-expand-sm > .container-fluid {\n flex-wrap: nowrap;\n }\n .navbar-expand-sm .navbar-collapse {\n display: flex !important;\n flex-basis: auto;\n }\n .navbar-expand-sm .navbar-toggler {\n display: none;\n }\n}\n\n@media (max-width: 767.98px) {\n .navbar-expand-md > .container,\n .navbar-expand-md > .container-fluid {\n padding-right: 0;\n padding-left: 0;\n }\n}\n\n@media (min-width: 768px) {\n .navbar-expand-md {\n flex-flow: row nowrap;\n justify-content: flex-start;\n }\n .navbar-expand-md .navbar-nav {\n flex-direction: row;\n }\n .navbar-expand-md .navbar-nav .dropdown-menu {\n position: absolute;\n }\n .navbar-expand-md .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n }\n .navbar-expand-md > .container,\n .navbar-expand-md > .container-fluid {\n flex-wrap: nowrap;\n }\n .navbar-expand-md .navbar-collapse {\n display: flex !important;\n flex-basis: auto;\n }\n .navbar-expand-md .navbar-toggler {\n display: none;\n }\n}\n\n@media (max-width: 991.98px) {\n .navbar-expand-lg > .container,\n .navbar-expand-lg > .container-fluid {\n padding-right: 0;\n padding-left: 0;\n }\n}\n\n@media (min-width: 992px) {\n .navbar-expand-lg {\n flex-flow: row nowrap;\n justify-content: flex-start;\n }\n .navbar-expand-lg .navbar-nav {\n flex-direction: row;\n }\n .navbar-expand-lg .navbar-nav .dropdown-menu {\n position: absolute;\n }\n .navbar-expand-lg .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n }\n .navbar-expand-lg > .container,\n .navbar-expand-lg > .container-fluid {\n flex-wrap: nowrap;\n }\n .navbar-expand-lg .navbar-collapse {\n display: flex !important;\n flex-basis: auto;\n }\n .navbar-expand-lg .navbar-toggler {\n display: none;\n }\n}\n\n@media (max-width: 1199.98px) {\n .navbar-expand-xl > .container,\n .navbar-expand-xl > .container-fluid {\n padding-right: 0;\n padding-left: 0;\n }\n}\n\n@media (min-width: 1200px) {\n .navbar-expand-xl {\n flex-flow: row nowrap;\n justify-content: flex-start;\n }\n .navbar-expand-xl .navbar-nav {\n flex-direction: row;\n }\n .navbar-expand-xl .navbar-nav .dropdown-menu {\n position: absolute;\n }\n .navbar-expand-xl .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n }\n .navbar-expand-xl > .container,\n .navbar-expand-xl > .container-fluid {\n flex-wrap: nowrap;\n }\n .navbar-expand-xl .navbar-collapse {\n display: flex !important;\n flex-basis: auto;\n }\n .navbar-expand-xl .navbar-toggler {\n display: none;\n }\n}\n\n.navbar-expand {\n flex-flow: row nowrap;\n justify-content: flex-start;\n}\n\n.navbar-expand > .container,\n.navbar-expand > .container-fluid {\n padding-right: 0;\n padding-left: 0;\n}\n\n.navbar-expand .navbar-nav {\n flex-direction: row;\n}\n\n.navbar-expand .navbar-nav .dropdown-menu {\n position: absolute;\n}\n\n.navbar-expand .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n}\n\n.navbar-expand > .container,\n.navbar-expand > .container-fluid {\n flex-wrap: nowrap;\n}\n\n.navbar-expand .navbar-collapse {\n display: flex !important;\n flex-basis: auto;\n}\n\n.navbar-expand .navbar-toggler {\n display: none;\n}\n\n.navbar-light .navbar-brand {\n color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-light .navbar-brand:hover, .navbar-light .navbar-brand:focus {\n color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-light .navbar-nav .nav-link {\n color: rgba(0, 0, 0, 0.5);\n}\n\n.navbar-light .navbar-nav .nav-link:hover, .navbar-light .navbar-nav .nav-link:focus {\n color: rgba(0, 0, 0, 0.7);\n}\n\n.navbar-light .navbar-nav .nav-link.disabled {\n color: rgba(0, 0, 0, 0.3);\n}\n\n.navbar-light .navbar-nav .show > .nav-link,\n.navbar-light .navbar-nav .active > .nav-link,\n.navbar-light .navbar-nav .nav-link.show,\n.navbar-light .navbar-nav .nav-link.active {\n color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-light .navbar-toggler {\n color: rgba(0, 0, 0, 0.5);\n border-color: rgba(0, 0, 0, 0.1);\n}\n\n.navbar-light .navbar-toggler-icon {\n background-image: url(\"data:image/svg+xml,%3csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3e%3cpath stroke='rgba(0, 0, 0, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e\");\n}\n\n.navbar-light .navbar-text {\n color: rgba(0, 0, 0, 0.5);\n}\n\n.navbar-light .navbar-text a {\n color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-light .navbar-text a:hover, .navbar-light .navbar-text a:focus {\n color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-dark .navbar-brand {\n color: #fff;\n}\n\n.navbar-dark .navbar-brand:hover, .navbar-dark .navbar-brand:focus {\n color: #fff;\n}\n\n.navbar-dark .navbar-nav .nav-link {\n color: rgba(255, 255, 255, 0.5);\n}\n\n.navbar-dark .navbar-nav .nav-link:hover, .navbar-dark .navbar-nav .nav-link:focus {\n color: rgba(255, 255, 255, 0.75);\n}\n\n.navbar-dark .navbar-nav .nav-link.disabled {\n color: rgba(255, 255, 255, 0.25);\n}\n\n.navbar-dark .navbar-nav .show > .nav-link,\n.navbar-dark .navbar-nav .active > .nav-link,\n.navbar-dark .navbar-nav .nav-link.show,\n.navbar-dark .navbar-nav .nav-link.active {\n color: #fff;\n}\n\n.navbar-dark .navbar-toggler {\n color: rgba(255, 255, 255, 0.5);\n border-color: rgba(255, 255, 255, 0.1);\n}\n\n.navbar-dark .navbar-toggler-icon {\n background-image: url(\"data:image/svg+xml,%3csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3e%3cpath stroke='rgba(255, 255, 255, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e\");\n}\n\n.navbar-dark .navbar-text {\n color: rgba(255, 255, 255, 0.5);\n}\n\n.navbar-dark .navbar-text a {\n color: #fff;\n}\n\n.navbar-dark .navbar-text a:hover, .navbar-dark .navbar-text a:focus {\n color: #fff;\n}\n\n.card {\n position: relative;\n display: flex;\n flex-direction: column;\n min-width: 0;\n word-wrap: break-word;\n background-color: #fff;\n background-clip: border-box;\n border: 1px solid rgba(0, 0, 0, 0.125);\n border-radius: 0.25rem;\n}\n\n.card > hr {\n margin-right: 0;\n margin-left: 0;\n}\n\n.card > .list-group:first-child .list-group-item:first-child {\n border-top-left-radius: 0.25rem;\n border-top-right-radius: 0.25rem;\n}\n\n.card > .list-group:last-child .list-group-item:last-child {\n border-bottom-right-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem;\n}\n\n.card-body {\n flex: 1 1 auto;\n padding: 1.25rem;\n}\n\n.card-title {\n margin-bottom: 0.75rem;\n}\n\n.card-subtitle {\n margin-top: -0.375rem;\n margin-bottom: 0;\n}\n\n.card-text:last-child {\n margin-bottom: 0;\n}\n\n.card-link:hover {\n text-decoration: none;\n}\n\n.card-link + .card-link {\n margin-left: 1.25rem;\n}\n\n.card-header {\n padding: 0.75rem 1.25rem;\n margin-bottom: 0;\n background-color: rgba(0, 0, 0, 0.03);\n border-bottom: 1px solid rgba(0, 0, 0, 0.125);\n}\n\n.card-header:first-child {\n border-radius: calc(0.25rem - 1px) calc(0.25rem - 1px) 0 0;\n}\n\n.card-header + .list-group .list-group-item:first-child {\n border-top: 0;\n}\n\n.card-footer {\n padding: 0.75rem 1.25rem;\n background-color: rgba(0, 0, 0, 0.03);\n border-top: 1px solid rgba(0, 0, 0, 0.125);\n}\n\n.card-footer:last-child {\n border-radius: 0 0 calc(0.25rem - 1px) calc(0.25rem - 1px);\n}\n\n.card-header-tabs {\n margin-right: -0.625rem;\n margin-bottom: -0.75rem;\n margin-left: -0.625rem;\n border-bottom: 0;\n}\n\n.card-header-pills {\n margin-right: -0.625rem;\n margin-left: -0.625rem;\n}\n\n.card-img-overlay {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n padding: 1.25rem;\n}\n\n.card-img {\n width: 100%;\n border-radius: calc(0.25rem - 1px);\n}\n\n.card-img-top {\n width: 100%;\n border-top-left-radius: calc(0.25rem - 1px);\n border-top-right-radius: calc(0.25rem - 1px);\n}\n\n.card-img-bottom {\n width: 100%;\n border-bottom-right-radius: calc(0.25rem - 1px);\n border-bottom-left-radius: calc(0.25rem - 1px);\n}\n\n.card-deck {\n display: flex;\n flex-direction: column;\n}\n\n.card-deck .card {\n margin-bottom: 15px;\n}\n\n@media (min-width: 576px) {\n .card-deck {\n flex-flow: row wrap;\n margin-right: -15px;\n margin-left: -15px;\n }\n .card-deck .card {\n display: flex;\n flex: 1 0 0%;\n flex-direction: column;\n margin-right: 15px;\n margin-bottom: 0;\n margin-left: 15px;\n }\n}\n\n.card-group {\n display: flex;\n flex-direction: column;\n}\n\n.card-group > .card {\n margin-bottom: 15px;\n}\n\n@media (min-width: 576px) {\n .card-group {\n flex-flow: row wrap;\n }\n .card-group > .card {\n flex: 1 0 0%;\n margin-bottom: 0;\n }\n .card-group > .card + .card {\n margin-left: 0;\n border-left: 0;\n }\n .card-group > .card:not(:last-child) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n }\n .card-group > .card:not(:last-child) .card-img-top,\n .card-group > .card:not(:last-child) .card-header {\n border-top-right-radius: 0;\n }\n .card-group > .card:not(:last-child) .card-img-bottom,\n .card-group > .card:not(:last-child) .card-footer {\n border-bottom-right-radius: 0;\n }\n .card-group > .card:not(:first-child) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n }\n .card-group > .card:not(:first-child) .card-img-top,\n .card-group > .card:not(:first-child) .card-header {\n border-top-left-radius: 0;\n }\n .card-group > .card:not(:first-child) .card-img-bottom,\n .card-group > .card:not(:first-child) .card-footer {\n border-bottom-left-radius: 0;\n }\n}\n\n.card-columns .card {\n margin-bottom: 0.75rem;\n}\n\n@media (min-width: 576px) {\n .card-columns {\n column-count: 3;\n column-gap: 1.25rem;\n orphans: 1;\n widows: 1;\n }\n .card-columns .card {\n display: inline-block;\n width: 100%;\n }\n}\n\n.accordion > .card {\n overflow: hidden;\n}\n\n.accordion > .card:not(:first-of-type) .card-header:first-child {\n border-radius: 0;\n}\n\n.accordion > .card:not(:first-of-type):not(:last-of-type) {\n border-bottom: 0;\n border-radius: 0;\n}\n\n.accordion > .card:first-of-type {\n border-bottom: 0;\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.accordion > .card:last-of-type {\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n}\n\n.accordion > .card .card-header {\n margin-bottom: -1px;\n}\n\n.breadcrumb {\n display: flex;\n flex-wrap: wrap;\n padding: 0.75rem 1rem;\n margin-bottom: 1rem;\n list-style: none;\n background-color: #e9ecef;\n border-radius: 0.25rem;\n}\n\n.breadcrumb-item + .breadcrumb-item {\n padding-left: 0.5rem;\n}\n\n.breadcrumb-item + .breadcrumb-item::before {\n display: inline-block;\n padding-right: 0.5rem;\n color: #6c757d;\n content: \"/\";\n}\n\n.breadcrumb-item + .breadcrumb-item:hover::before {\n text-decoration: underline;\n}\n\n.breadcrumb-item + .breadcrumb-item:hover::before {\n text-decoration: none;\n}\n\n.breadcrumb-item.active {\n color: #6c757d;\n}\n\n.pagination {\n display: flex;\n padding-left: 0;\n list-style: none;\n border-radius: 0.25rem;\n}\n\n.page-link {\n position: relative;\n display: block;\n padding: 0.5rem 0.75rem;\n margin-left: -1px;\n line-height: 1.25;\n color: #007bff;\n background-color: #fff;\n border: 1px solid #dee2e6;\n}\n\n.page-link:hover {\n z-index: 2;\n color: #0056b3;\n text-decoration: none;\n background-color: #e9ecef;\n border-color: #dee2e6;\n}\n\n.page-link:focus {\n z-index: 2;\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.page-item:first-child .page-link {\n margin-left: 0;\n border-top-left-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem;\n}\n\n.page-item:last-child .page-link {\n border-top-right-radius: 0.25rem;\n border-bottom-right-radius: 0.25rem;\n}\n\n.page-item.active .page-link {\n z-index: 1;\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.page-item.disabled .page-link {\n color: #6c757d;\n pointer-events: none;\n cursor: auto;\n background-color: #fff;\n border-color: #dee2e6;\n}\n\n.pagination-lg .page-link {\n padding: 0.75rem 1.5rem;\n font-size: 1.25rem;\n line-height: 1.5;\n}\n\n.pagination-lg .page-item:first-child .page-link {\n border-top-left-radius: 0.3rem;\n border-bottom-left-radius: 0.3rem;\n}\n\n.pagination-lg .page-item:last-child .page-link {\n border-top-right-radius: 0.3rem;\n border-bottom-right-radius: 0.3rem;\n}\n\n.pagination-sm .page-link {\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem;\n line-height: 1.5;\n}\n\n.pagination-sm .page-item:first-child .page-link {\n border-top-left-radius: 0.2rem;\n border-bottom-left-radius: 0.2rem;\n}\n\n.pagination-sm .page-item:last-child .page-link {\n border-top-right-radius: 0.2rem;\n border-bottom-right-radius: 0.2rem;\n}\n\n.badge {\n display: inline-block;\n padding: 0.25em 0.4em;\n font-size: 75%;\n font-weight: 700;\n line-height: 1;\n text-align: center;\n white-space: nowrap;\n vertical-align: baseline;\n border-radius: 0.25rem;\n transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .badge {\n transition: none;\n }\n}\n\na.badge:hover, a.badge:focus {\n text-decoration: none;\n}\n\n.badge:empty {\n display: none;\n}\n\n.btn .badge {\n position: relative;\n top: -1px;\n}\n\n.badge-pill {\n padding-right: 0.6em;\n padding-left: 0.6em;\n border-radius: 10rem;\n}\n\n.badge-primary {\n color: #fff;\n background-color: #007bff;\n}\n\na.badge-primary:hover, a.badge-primary:focus {\n color: #fff;\n background-color: #0062cc;\n}\n\na.badge-primary:focus, a.badge-primary.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5);\n}\n\n.badge-secondary {\n color: #fff;\n background-color: #6c757d;\n}\n\na.badge-secondary:hover, a.badge-secondary:focus {\n color: #fff;\n background-color: #545b62;\n}\n\na.badge-secondary:focus, a.badge-secondary.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5);\n}\n\n.badge-success {\n color: #fff;\n background-color: #28a745;\n}\n\na.badge-success:hover, a.badge-success:focus {\n color: #fff;\n background-color: #1e7e34;\n}\n\na.badge-success:focus, a.badge-success.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5);\n}\n\n.badge-info {\n color: #fff;\n background-color: #17a2b8;\n}\n\na.badge-info:hover, a.badge-info:focus {\n color: #fff;\n background-color: #117a8b;\n}\n\na.badge-info:focus, a.badge-info.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);\n}\n\n.badge-warning {\n color: #212529;\n background-color: #ffc107;\n}\n\na.badge-warning:hover, a.badge-warning:focus {\n color: #212529;\n background-color: #d39e00;\n}\n\na.badge-warning:focus, a.badge-warning.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);\n}\n\n.badge-danger {\n color: #fff;\n background-color: #dc3545;\n}\n\na.badge-danger:hover, a.badge-danger:focus {\n color: #fff;\n background-color: #bd2130;\n}\n\na.badge-danger:focus, a.badge-danger.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);\n}\n\n.badge-light {\n color: #212529;\n background-color: #f8f9fa;\n}\n\na.badge-light:hover, a.badge-light:focus {\n color: #212529;\n background-color: #dae0e5;\n}\n\na.badge-light:focus, a.badge-light.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);\n}\n\n.badge-dark {\n color: #fff;\n background-color: #343a40;\n}\n\na.badge-dark:hover, a.badge-dark:focus {\n color: #fff;\n background-color: #1d2124;\n}\n\na.badge-dark:focus, a.badge-dark.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);\n}\n\n.jumbotron {\n padding: 2rem 1rem;\n margin-bottom: 2rem;\n background-color: #e9ecef;\n border-radius: 0.3rem;\n}\n\n@media (min-width: 576px) {\n .jumbotron {\n padding: 4rem 2rem;\n }\n}\n\n.jumbotron-fluid {\n padding-right: 0;\n padding-left: 0;\n border-radius: 0;\n}\n\n.alert {\n position: relative;\n padding: 0.75rem 1.25rem;\n margin-bottom: 1rem;\n border: 1px solid transparent;\n border-radius: 0.25rem;\n}\n\n.alert-heading {\n color: inherit;\n}\n\n.alert-link {\n font-weight: 700;\n}\n\n.alert-dismissible {\n padding-right: 4rem;\n}\n\n.alert-dismissible .close {\n position: absolute;\n top: 0;\n right: 0;\n padding: 0.75rem 1.25rem;\n color: inherit;\n}\n\n.alert-primary {\n color: #004085;\n background-color: #cce5ff;\n border-color: #b8daff;\n}\n\n.alert-primary hr {\n border-top-color: #9fcdff;\n}\n\n.alert-primary .alert-link {\n color: #002752;\n}\n\n.alert-secondary {\n color: #383d41;\n background-color: #e2e3e5;\n border-color: #d6d8db;\n}\n\n.alert-secondary hr {\n border-top-color: #c8cbcf;\n}\n\n.alert-secondary .alert-link {\n color: #202326;\n}\n\n.alert-success {\n color: #155724;\n background-color: #d4edda;\n border-color: #c3e6cb;\n}\n\n.alert-success hr {\n border-top-color: #b1dfbb;\n}\n\n.alert-success .alert-link {\n color: #0b2e13;\n}\n\n.alert-info {\n color: #0c5460;\n background-color: #d1ecf1;\n border-color: #bee5eb;\n}\n\n.alert-info hr {\n border-top-color: #abdde5;\n}\n\n.alert-info .alert-link {\n color: #062c33;\n}\n\n.alert-warning {\n color: #856404;\n background-color: #fff3cd;\n border-color: #ffeeba;\n}\n\n.alert-warning hr {\n border-top-color: #ffe8a1;\n}\n\n.alert-warning .alert-link {\n color: #533f03;\n}\n\n.alert-danger {\n color: #721c24;\n background-color: #f8d7da;\n border-color: #f5c6cb;\n}\n\n.alert-danger hr {\n border-top-color: #f1b0b7;\n}\n\n.alert-danger .alert-link {\n color: #491217;\n}\n\n.alert-light {\n color: #818182;\n background-color: #fefefe;\n border-color: #fdfdfe;\n}\n\n.alert-light hr {\n border-top-color: #ececf6;\n}\n\n.alert-light .alert-link {\n color: #686868;\n}\n\n.alert-dark {\n color: #1b1e21;\n background-color: #d6d8d9;\n border-color: #c6c8ca;\n}\n\n.alert-dark hr {\n border-top-color: #b9bbbe;\n}\n\n.alert-dark .alert-link {\n color: #040505;\n}\n\n@keyframes progress-bar-stripes {\n from {\n background-position: 1rem 0;\n }\n to {\n background-position: 0 0;\n }\n}\n\n.progress {\n display: flex;\n height: 1rem;\n overflow: hidden;\n font-size: 0.75rem;\n background-color: #e9ecef;\n border-radius: 0.25rem;\n}\n\n.progress-bar {\n display: flex;\n flex-direction: column;\n justify-content: center;\n color: #fff;\n text-align: center;\n white-space: nowrap;\n background-color: #007bff;\n transition: width 0.6s ease;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .progress-bar {\n transition: none;\n }\n}\n\n.progress-bar-striped {\n background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-size: 1rem 1rem;\n}\n\n.progress-bar-animated {\n animation: progress-bar-stripes 1s linear infinite;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .progress-bar-animated {\n animation: none;\n }\n}\n\n.media {\n display: flex;\n align-items: flex-start;\n}\n\n.media-body {\n flex: 1;\n}\n\n.list-group {\n display: flex;\n flex-direction: column;\n padding-left: 0;\n margin-bottom: 0;\n}\n\n.list-group-item-action {\n width: 100%;\n color: #495057;\n text-align: inherit;\n}\n\n.list-group-item-action:hover, .list-group-item-action:focus {\n z-index: 1;\n color: #495057;\n text-decoration: none;\n background-color: #f8f9fa;\n}\n\n.list-group-item-action:active {\n color: #212529;\n background-color: #e9ecef;\n}\n\n.list-group-item {\n position: relative;\n display: block;\n padding: 0.75rem 1.25rem;\n margin-bottom: -1px;\n background-color: #fff;\n border: 1px solid rgba(0, 0, 0, 0.125);\n}\n\n.list-group-item:first-child {\n border-top-left-radius: 0.25rem;\n border-top-right-radius: 0.25rem;\n}\n\n.list-group-item:last-child {\n margin-bottom: 0;\n border-bottom-right-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem;\n}\n\n.list-group-item.disabled, .list-group-item:disabled {\n color: #6c757d;\n pointer-events: none;\n background-color: #fff;\n}\n\n.list-group-item.active {\n z-index: 2;\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.list-group-horizontal {\n flex-direction: row;\n}\n\n.list-group-horizontal .list-group-item {\n margin-right: -1px;\n margin-bottom: 0;\n}\n\n.list-group-horizontal .list-group-item:first-child {\n border-top-left-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0;\n}\n\n.list-group-horizontal .list-group-item:last-child {\n margin-right: 0;\n border-top-right-radius: 0.25rem;\n border-bottom-right-radius: 0.25rem;\n border-bottom-left-radius: 0;\n}\n\n@media (min-width: 576px) {\n .list-group-horizontal-sm {\n flex-direction: row;\n }\n .list-group-horizontal-sm .list-group-item {\n margin-right: -1px;\n margin-bottom: 0;\n }\n .list-group-horizontal-sm .list-group-item:first-child {\n border-top-left-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0;\n }\n .list-group-horizontal-sm .list-group-item:last-child {\n margin-right: 0;\n border-top-right-radius: 0.25rem;\n border-bottom-right-radius: 0.25rem;\n border-bottom-left-radius: 0;\n }\n}\n\n@media (min-width: 768px) {\n .list-group-horizontal-md {\n flex-direction: row;\n }\n .list-group-horizontal-md .list-group-item {\n margin-right: -1px;\n margin-bottom: 0;\n }\n .list-group-horizontal-md .list-group-item:first-child {\n border-top-left-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0;\n }\n .list-group-horizontal-md .list-group-item:last-child {\n margin-right: 0;\n border-top-right-radius: 0.25rem;\n border-bottom-right-radius: 0.25rem;\n border-bottom-left-radius: 0;\n }\n}\n\n@media (min-width: 992px) {\n .list-group-horizontal-lg {\n flex-direction: row;\n }\n .list-group-horizontal-lg .list-group-item {\n margin-right: -1px;\n margin-bottom: 0;\n }\n .list-group-horizontal-lg .list-group-item:first-child {\n border-top-left-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0;\n }\n .list-group-horizontal-lg .list-group-item:last-child {\n margin-right: 0;\n border-top-right-radius: 0.25rem;\n border-bottom-right-radius: 0.25rem;\n border-bottom-left-radius: 0;\n }\n}\n\n@media (min-width: 1200px) {\n .list-group-horizontal-xl {\n flex-direction: row;\n }\n .list-group-horizontal-xl .list-group-item {\n margin-right: -1px;\n margin-bottom: 0;\n }\n .list-group-horizontal-xl .list-group-item:first-child {\n border-top-left-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0;\n }\n .list-group-horizontal-xl .list-group-item:last-child {\n margin-right: 0;\n border-top-right-radius: 0.25rem;\n border-bottom-right-radius: 0.25rem;\n border-bottom-left-radius: 0;\n }\n}\n\n.list-group-flush .list-group-item {\n border-right: 0;\n border-left: 0;\n border-radius: 0;\n}\n\n.list-group-flush .list-group-item:last-child {\n margin-bottom: -1px;\n}\n\n.list-group-flush:first-child .list-group-item:first-child {\n border-top: 0;\n}\n\n.list-group-flush:last-child .list-group-item:last-child {\n margin-bottom: 0;\n border-bottom: 0;\n}\n\n.list-group-item-primary {\n color: #004085;\n background-color: #b8daff;\n}\n\n.list-group-item-primary.list-group-item-action:hover, .list-group-item-primary.list-group-item-action:focus {\n color: #004085;\n background-color: #9fcdff;\n}\n\n.list-group-item-primary.list-group-item-action.active {\n color: #fff;\n background-color: #004085;\n border-color: #004085;\n}\n\n.list-group-item-secondary {\n color: #383d41;\n background-color: #d6d8db;\n}\n\n.list-group-item-secondary.list-group-item-action:hover, .list-group-item-secondary.list-group-item-action:focus {\n color: #383d41;\n background-color: #c8cbcf;\n}\n\n.list-group-item-secondary.list-group-item-action.active {\n color: #fff;\n background-color: #383d41;\n border-color: #383d41;\n}\n\n.list-group-item-success {\n color: #155724;\n background-color: #c3e6cb;\n}\n\n.list-group-item-success.list-group-item-action:hover, .list-group-item-success.list-group-item-action:focus {\n color: #155724;\n background-color: #b1dfbb;\n}\n\n.list-group-item-success.list-group-item-action.active {\n color: #fff;\n background-color: #155724;\n border-color: #155724;\n}\n\n.list-group-item-info {\n color: #0c5460;\n background-color: #bee5eb;\n}\n\n.list-group-item-info.list-group-item-action:hover, .list-group-item-info.list-group-item-action:focus {\n color: #0c5460;\n background-color: #abdde5;\n}\n\n.list-group-item-info.list-group-item-action.active {\n color: #fff;\n background-color: #0c5460;\n border-color: #0c5460;\n}\n\n.list-group-item-warning {\n color: #856404;\n background-color: #ffeeba;\n}\n\n.list-group-item-warning.list-group-item-action:hover, .list-group-item-warning.list-group-item-action:focus {\n color: #856404;\n background-color: #ffe8a1;\n}\n\n.list-group-item-warning.list-group-item-action.active {\n color: #fff;\n background-color: #856404;\n border-color: #856404;\n}\n\n.list-group-item-danger {\n color: #721c24;\n background-color: #f5c6cb;\n}\n\n.list-group-item-danger.list-group-item-action:hover, .list-group-item-danger.list-group-item-action:focus {\n color: #721c24;\n background-color: #f1b0b7;\n}\n\n.list-group-item-danger.list-group-item-action.active {\n color: #fff;\n background-color: #721c24;\n border-color: #721c24;\n}\n\n.list-group-item-light {\n color: #818182;\n background-color: #fdfdfe;\n}\n\n.list-group-item-light.list-group-item-action:hover, .list-group-item-light.list-group-item-action:focus {\n color: #818182;\n background-color: #ececf6;\n}\n\n.list-group-item-light.list-group-item-action.active {\n color: #fff;\n background-color: #818182;\n border-color: #818182;\n}\n\n.list-group-item-dark {\n color: #1b1e21;\n background-color: #c6c8ca;\n}\n\n.list-group-item-dark.list-group-item-action:hover, .list-group-item-dark.list-group-item-action:focus {\n color: #1b1e21;\n background-color: #b9bbbe;\n}\n\n.list-group-item-dark.list-group-item-action.active {\n color: #fff;\n background-color: #1b1e21;\n border-color: #1b1e21;\n}\n\n.close {\n float: right;\n font-size: 1.5rem;\n font-weight: 700;\n line-height: 1;\n color: #000;\n text-shadow: 0 1px 0 #fff;\n opacity: .5;\n}\n\n.close:hover {\n color: #000;\n text-decoration: none;\n}\n\n.close:not(:disabled):not(.disabled):hover, .close:not(:disabled):not(.disabled):focus {\n opacity: .75;\n}\n\nbutton.close {\n padding: 0;\n background-color: transparent;\n border: 0;\n appearance: none;\n}\n\na.close.disabled {\n pointer-events: none;\n}\n\n.toast {\n max-width: 350px;\n overflow: hidden;\n font-size: 0.875rem;\n background-color: rgba(255, 255, 255, 0.85);\n background-clip: padding-box;\n border: 1px solid rgba(0, 0, 0, 0.1);\n box-shadow: 0 0.25rem 0.75rem rgba(0, 0, 0, 0.1);\n backdrop-filter: blur(10px);\n opacity: 0;\n border-radius: 0.25rem;\n}\n\n.toast:not(:last-child) {\n margin-bottom: 0.75rem;\n}\n\n.toast.showing {\n opacity: 1;\n}\n\n.toast.show {\n display: block;\n opacity: 1;\n}\n\n.toast.hide {\n display: none;\n}\n\n.toast-header {\n display: flex;\n align-items: center;\n padding: 0.25rem 0.75rem;\n color: #6c757d;\n background-color: rgba(255, 255, 255, 0.85);\n background-clip: padding-box;\n border-bottom: 1px solid rgba(0, 0, 0, 0.05);\n}\n\n.toast-body {\n padding: 0.75rem;\n}\n\n.modal-open {\n overflow: hidden;\n}\n\n.modal-open .modal {\n overflow-x: hidden;\n overflow-y: auto;\n}\n\n.modal {\n position: fixed;\n top: 0;\n left: 0;\n z-index: 1050;\n display: none;\n width: 100%;\n height: 100%;\n overflow: hidden;\n outline: 0;\n}\n\n.modal-dialog {\n position: relative;\n width: auto;\n margin: 0.5rem;\n pointer-events: none;\n}\n\n.modal.fade .modal-dialog {\n transition: transform 0.3s ease-out;\n transform: translate(0, -50px);\n}\n\n@media (prefers-reduced-motion: reduce) {\n .modal.fade .modal-dialog {\n transition: none;\n }\n}\n\n.modal.show .modal-dialog {\n transform: none;\n}\n\n.modal-dialog-scrollable {\n display: flex;\n max-height: calc(100% - 1rem);\n}\n\n.modal-dialog-scrollable .modal-content {\n max-height: calc(100vh - 1rem);\n overflow: hidden;\n}\n\n.modal-dialog-scrollable .modal-header,\n.modal-dialog-scrollable .modal-footer {\n flex-shrink: 0;\n}\n\n.modal-dialog-scrollable .modal-body {\n overflow-y: auto;\n}\n\n.modal-dialog-centered {\n display: flex;\n align-items: center;\n min-height: calc(100% - 1rem);\n}\n\n.modal-dialog-centered::before {\n display: block;\n height: calc(100vh - 1rem);\n content: \"\";\n}\n\n.modal-dialog-centered.modal-dialog-scrollable {\n flex-direction: column;\n justify-content: center;\n height: 100%;\n}\n\n.modal-dialog-centered.modal-dialog-scrollable .modal-content {\n max-height: none;\n}\n\n.modal-dialog-centered.modal-dialog-scrollable::before {\n content: none;\n}\n\n.modal-content {\n position: relative;\n display: flex;\n flex-direction: column;\n width: 100%;\n pointer-events: auto;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid rgba(0, 0, 0, 0.2);\n border-radius: 0.3rem;\n outline: 0;\n}\n\n.modal-backdrop {\n position: fixed;\n top: 0;\n left: 0;\n z-index: 1040;\n width: 100vw;\n height: 100vh;\n background-color: #000;\n}\n\n.modal-backdrop.fade {\n opacity: 0;\n}\n\n.modal-backdrop.show {\n opacity: 0.5;\n}\n\n.modal-header {\n display: flex;\n align-items: flex-start;\n justify-content: space-between;\n padding: 1rem 1rem;\n border-bottom: 1px solid #dee2e6;\n border-top-left-radius: 0.3rem;\n border-top-right-radius: 0.3rem;\n}\n\n.modal-header .close {\n padding: 1rem 1rem;\n margin: -1rem -1rem -1rem auto;\n}\n\n.modal-title {\n margin-bottom: 0;\n line-height: 1.5;\n}\n\n.modal-body {\n position: relative;\n flex: 1 1 auto;\n padding: 1rem;\n}\n\n.modal-footer {\n display: flex;\n align-items: center;\n justify-content: flex-end;\n padding: 1rem;\n border-top: 1px solid #dee2e6;\n border-bottom-right-radius: 0.3rem;\n border-bottom-left-radius: 0.3rem;\n}\n\n.modal-footer > :not(:first-child) {\n margin-left: .25rem;\n}\n\n.modal-footer > :not(:last-child) {\n margin-right: .25rem;\n}\n\n.modal-scrollbar-measure {\n position: absolute;\n top: -9999px;\n width: 50px;\n height: 50px;\n overflow: scroll;\n}\n\n@media (min-width: 576px) {\n .modal-dialog {\n max-width: 500px;\n margin: 1.75rem auto;\n }\n .modal-dialog-scrollable {\n max-height: calc(100% - 3.5rem);\n }\n .modal-dialog-scrollable .modal-content {\n max-height: calc(100vh - 3.5rem);\n }\n .modal-dialog-centered {\n min-height: calc(100% - 3.5rem);\n }\n .modal-dialog-centered::before {\n height: calc(100vh - 3.5rem);\n }\n .modal-sm {\n max-width: 300px;\n }\n}\n\n@media (min-width: 992px) {\n .modal-lg,\n .modal-xl {\n max-width: 800px;\n }\n}\n\n@media (min-width: 1200px) {\n .modal-xl {\n max-width: 1140px;\n }\n}\n\n.tooltip {\n position: absolute;\n z-index: 1070;\n display: block;\n margin: 0;\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n font-style: normal;\n font-weight: 400;\n line-height: 1.5;\n text-align: left;\n text-align: start;\n text-decoration: none;\n text-shadow: none;\n text-transform: none;\n letter-spacing: normal;\n word-break: normal;\n word-spacing: normal;\n white-space: normal;\n line-break: auto;\n font-size: 0.875rem;\n word-wrap: break-word;\n opacity: 0;\n}\n\n.tooltip.show {\n opacity: 0.9;\n}\n\n.tooltip .arrow {\n position: absolute;\n display: block;\n width: 0.8rem;\n height: 0.4rem;\n}\n\n.tooltip .arrow::before {\n position: absolute;\n content: \"\";\n border-color: transparent;\n border-style: solid;\n}\n\n.bs-tooltip-top, .bs-tooltip-auto[x-placement^=\"top\"] {\n padding: 0.4rem 0;\n}\n\n.bs-tooltip-top .arrow, .bs-tooltip-auto[x-placement^=\"top\"] .arrow {\n bottom: 0;\n}\n\n.bs-tooltip-top .arrow::before, .bs-tooltip-auto[x-placement^=\"top\"] .arrow::before {\n top: 0;\n border-width: 0.4rem 0.4rem 0;\n border-top-color: #000;\n}\n\n.bs-tooltip-right, .bs-tooltip-auto[x-placement^=\"right\"] {\n padding: 0 0.4rem;\n}\n\n.bs-tooltip-right .arrow, .bs-tooltip-auto[x-placement^=\"right\"] .arrow {\n left: 0;\n width: 0.4rem;\n height: 0.8rem;\n}\n\n.bs-tooltip-right .arrow::before, .bs-tooltip-auto[x-placement^=\"right\"] .arrow::before {\n right: 0;\n border-width: 0.4rem 0.4rem 0.4rem 0;\n border-right-color: #000;\n}\n\n.bs-tooltip-bottom, .bs-tooltip-auto[x-placement^=\"bottom\"] {\n padding: 0.4rem 0;\n}\n\n.bs-tooltip-bottom .arrow, .bs-tooltip-auto[x-placement^=\"bottom\"] .arrow {\n top: 0;\n}\n\n.bs-tooltip-bottom .arrow::before, .bs-tooltip-auto[x-placement^=\"bottom\"] .arrow::before {\n bottom: 0;\n border-width: 0 0.4rem 0.4rem;\n border-bottom-color: #000;\n}\n\n.bs-tooltip-left, .bs-tooltip-auto[x-placement^=\"left\"] {\n padding: 0 0.4rem;\n}\n\n.bs-tooltip-left .arrow, .bs-tooltip-auto[x-placement^=\"left\"] .arrow {\n right: 0;\n width: 0.4rem;\n height: 0.8rem;\n}\n\n.bs-tooltip-left .arrow::before, .bs-tooltip-auto[x-placement^=\"left\"] .arrow::before {\n left: 0;\n border-width: 0.4rem 0 0.4rem 0.4rem;\n border-left-color: #000;\n}\n\n.tooltip-inner {\n max-width: 200px;\n padding: 0.25rem 0.5rem;\n color: #fff;\n text-align: center;\n background-color: #000;\n border-radius: 0.25rem;\n}\n\n.popover {\n position: absolute;\n top: 0;\n left: 0;\n z-index: 1060;\n display: block;\n max-width: 276px;\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n font-style: normal;\n font-weight: 400;\n line-height: 1.5;\n text-align: left;\n text-align: start;\n text-decoration: none;\n text-shadow: none;\n text-transform: none;\n letter-spacing: normal;\n word-break: normal;\n word-spacing: normal;\n white-space: normal;\n line-break: auto;\n font-size: 0.875rem;\n word-wrap: break-word;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid rgba(0, 0, 0, 0.2);\n border-radius: 0.3rem;\n}\n\n.popover .arrow {\n position: absolute;\n display: block;\n width: 1rem;\n height: 0.5rem;\n margin: 0 0.3rem;\n}\n\n.popover .arrow::before, .popover .arrow::after {\n position: absolute;\n display: block;\n content: \"\";\n border-color: transparent;\n border-style: solid;\n}\n\n.bs-popover-top, .bs-popover-auto[x-placement^=\"top\"] {\n margin-bottom: 0.5rem;\n}\n\n.bs-popover-top > .arrow, .bs-popover-auto[x-placement^=\"top\"] > .arrow {\n bottom: calc((0.5rem + 1px) * -1);\n}\n\n.bs-popover-top > .arrow::before, .bs-popover-auto[x-placement^=\"top\"] > .arrow::before {\n bottom: 0;\n border-width: 0.5rem 0.5rem 0;\n border-top-color: rgba(0, 0, 0, 0.25);\n}\n\n.bs-popover-top > .arrow::after, .bs-popover-auto[x-placement^=\"top\"] > .arrow::after {\n bottom: 1px;\n border-width: 0.5rem 0.5rem 0;\n border-top-color: #fff;\n}\n\n.bs-popover-right, .bs-popover-auto[x-placement^=\"right\"] {\n margin-left: 0.5rem;\n}\n\n.bs-popover-right > .arrow, .bs-popover-auto[x-placement^=\"right\"] > .arrow {\n left: calc((0.5rem + 1px) * -1);\n width: 0.5rem;\n height: 1rem;\n margin: 0.3rem 0;\n}\n\n.bs-popover-right > .arrow::before, .bs-popover-auto[x-placement^=\"right\"] > .arrow::before {\n left: 0;\n border-width: 0.5rem 0.5rem 0.5rem 0;\n border-right-color: rgba(0, 0, 0, 0.25);\n}\n\n.bs-popover-right > .arrow::after, .bs-popover-auto[x-placement^=\"right\"] > .arrow::after {\n left: 1px;\n border-width: 0.5rem 0.5rem 0.5rem 0;\n border-right-color: #fff;\n}\n\n.bs-popover-bottom, .bs-popover-auto[x-placement^=\"bottom\"] {\n margin-top: 0.5rem;\n}\n\n.bs-popover-bottom > .arrow, .bs-popover-auto[x-placement^=\"bottom\"] > .arrow {\n top: calc((0.5rem + 1px) * -1);\n}\n\n.bs-popover-bottom > .arrow::before, .bs-popover-auto[x-placement^=\"bottom\"] > .arrow::before {\n top: 0;\n border-width: 0 0.5rem 0.5rem 0.5rem;\n border-bottom-color: rgba(0, 0, 0, 0.25);\n}\n\n.bs-popover-bottom > .arrow::after, .bs-popover-auto[x-placement^=\"bottom\"] > .arrow::after {\n top: 1px;\n border-width: 0 0.5rem 0.5rem 0.5rem;\n border-bottom-color: #fff;\n}\n\n.bs-popover-bottom .popover-header::before, .bs-popover-auto[x-placement^=\"bottom\"] .popover-header::before {\n position: absolute;\n top: 0;\n left: 50%;\n display: block;\n width: 1rem;\n margin-left: -0.5rem;\n content: \"\";\n border-bottom: 1px solid #f7f7f7;\n}\n\n.bs-popover-left, .bs-popover-auto[x-placement^=\"left\"] {\n margin-right: 0.5rem;\n}\n\n.bs-popover-left > .arrow, .bs-popover-auto[x-placement^=\"left\"] > .arrow {\n right: calc((0.5rem + 1px) * -1);\n width: 0.5rem;\n height: 1rem;\n margin: 0.3rem 0;\n}\n\n.bs-popover-left > .arrow::before, .bs-popover-auto[x-placement^=\"left\"] > .arrow::before {\n right: 0;\n border-width: 0.5rem 0 0.5rem 0.5rem;\n border-left-color: rgba(0, 0, 0, 0.25);\n}\n\n.bs-popover-left > .arrow::after, .bs-popover-auto[x-placement^=\"left\"] > .arrow::after {\n right: 1px;\n border-width: 0.5rem 0 0.5rem 0.5rem;\n border-left-color: #fff;\n}\n\n.popover-header {\n padding: 0.5rem 0.75rem;\n margin-bottom: 0;\n font-size: 1rem;\n background-color: #f7f7f7;\n border-bottom: 1px solid #ebebeb;\n border-top-left-radius: calc(0.3rem - 1px);\n border-top-right-radius: calc(0.3rem - 1px);\n}\n\n.popover-header:empty {\n display: none;\n}\n\n.popover-body {\n padding: 0.5rem 0.75rem;\n color: #212529;\n}\n\n.carousel {\n position: relative;\n}\n\n.carousel.pointer-event {\n touch-action: pan-y;\n}\n\n.carousel-inner {\n position: relative;\n width: 100%;\n overflow: hidden;\n}\n\n.carousel-inner::after {\n display: block;\n clear: both;\n content: \"\";\n}\n\n.carousel-item {\n position: relative;\n display: none;\n float: left;\n width: 100%;\n margin-right: -100%;\n backface-visibility: hidden;\n transition: transform 0.6s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .carousel-item {\n transition: none;\n }\n}\n\n.carousel-item.active,\n.carousel-item-next,\n.carousel-item-prev {\n display: block;\n}\n\n.carousel-item-next:not(.carousel-item-left),\n.active.carousel-item-right {\n transform: translateX(100%);\n}\n\n.carousel-item-prev:not(.carousel-item-right),\n.active.carousel-item-left {\n transform: translateX(-100%);\n}\n\n.carousel-fade .carousel-item {\n opacity: 0;\n transition-property: opacity;\n transform: none;\n}\n\n.carousel-fade .carousel-item.active,\n.carousel-fade .carousel-item-next.carousel-item-left,\n.carousel-fade .carousel-item-prev.carousel-item-right {\n z-index: 1;\n opacity: 1;\n}\n\n.carousel-fade .active.carousel-item-left,\n.carousel-fade .active.carousel-item-right {\n z-index: 0;\n opacity: 0;\n transition: 0s 0.6s opacity;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .carousel-fade .active.carousel-item-left,\n .carousel-fade .active.carousel-item-right {\n transition: none;\n }\n}\n\n.carousel-control-prev,\n.carousel-control-next {\n position: absolute;\n top: 0;\n bottom: 0;\n z-index: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 15%;\n color: #fff;\n text-align: center;\n opacity: 0.5;\n transition: opacity 0.15s ease;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .carousel-control-prev,\n .carousel-control-next {\n transition: none;\n }\n}\n\n.carousel-control-prev:hover, .carousel-control-prev:focus,\n.carousel-control-next:hover,\n.carousel-control-next:focus {\n color: #fff;\n text-decoration: none;\n outline: 0;\n opacity: 0.9;\n}\n\n.carousel-control-prev {\n left: 0;\n}\n\n.carousel-control-next {\n right: 0;\n}\n\n.carousel-control-prev-icon,\n.carousel-control-next-icon {\n display: inline-block;\n width: 20px;\n height: 20px;\n background: no-repeat 50% / 100% 100%;\n}\n\n.carousel-control-prev-icon {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3e%3cpath d='M5.25 0l-4 4 4 4 1.5-1.5-2.5-2.5 2.5-2.5-1.5-1.5z'/%3e%3c/svg%3e\");\n}\n\n.carousel-control-next-icon {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3e%3cpath d='M2.75 0l-1.5 1.5 2.5 2.5-2.5 2.5 1.5 1.5 4-4-4-4z'/%3e%3c/svg%3e\");\n}\n\n.carousel-indicators {\n position: absolute;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 15;\n display: flex;\n justify-content: center;\n padding-left: 0;\n margin-right: 15%;\n margin-left: 15%;\n list-style: none;\n}\n\n.carousel-indicators li {\n box-sizing: content-box;\n flex: 0 1 auto;\n width: 30px;\n height: 3px;\n margin-right: 3px;\n margin-left: 3px;\n text-indent: -999px;\n cursor: pointer;\n background-color: #fff;\n background-clip: padding-box;\n border-top: 10px solid transparent;\n border-bottom: 10px solid transparent;\n opacity: .5;\n transition: opacity 0.6s ease;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .carousel-indicators li {\n transition: none;\n }\n}\n\n.carousel-indicators .active {\n opacity: 1;\n}\n\n.carousel-caption {\n position: absolute;\n right: 15%;\n bottom: 20px;\n left: 15%;\n z-index: 10;\n padding-top: 20px;\n padding-bottom: 20px;\n color: #fff;\n text-align: center;\n}\n\n@keyframes spinner-border {\n to {\n transform: rotate(360deg);\n }\n}\n\n.spinner-border {\n display: inline-block;\n width: 2rem;\n height: 2rem;\n vertical-align: text-bottom;\n border: 0.25em solid currentColor;\n border-right-color: transparent;\n border-radius: 50%;\n animation: spinner-border .75s linear infinite;\n}\n\n.spinner-border-sm {\n width: 1rem;\n height: 1rem;\n border-width: 0.2em;\n}\n\n@keyframes spinner-grow {\n 0% {\n transform: scale(0);\n }\n 50% {\n opacity: 1;\n }\n}\n\n.spinner-grow {\n display: inline-block;\n width: 2rem;\n height: 2rem;\n vertical-align: text-bottom;\n background-color: currentColor;\n border-radius: 50%;\n opacity: 0;\n animation: spinner-grow .75s linear infinite;\n}\n\n.spinner-grow-sm {\n width: 1rem;\n height: 1rem;\n}\n\n.align-baseline {\n vertical-align: baseline !important;\n}\n\n.align-top {\n vertical-align: top !important;\n}\n\n.align-middle {\n vertical-align: middle !important;\n}\n\n.align-bottom {\n vertical-align: bottom !important;\n}\n\n.align-text-bottom {\n vertical-align: text-bottom !important;\n}\n\n.align-text-top {\n vertical-align: text-top !important;\n}\n\n.bg-primary {\n background-color: #007bff !important;\n}\n\na.bg-primary:hover, a.bg-primary:focus,\nbutton.bg-primary:hover,\nbutton.bg-primary:focus {\n background-color: #0062cc !important;\n}\n\n.bg-secondary {\n background-color: #6c757d !important;\n}\n\na.bg-secondary:hover, a.bg-secondary:focus,\nbutton.bg-secondary:hover,\nbutton.bg-secondary:focus {\n background-color: #545b62 !important;\n}\n\n.bg-success {\n background-color: #28a745 !important;\n}\n\na.bg-success:hover, a.bg-success:focus,\nbutton.bg-success:hover,\nbutton.bg-success:focus {\n background-color: #1e7e34 !important;\n}\n\n.bg-info {\n background-color: #17a2b8 !important;\n}\n\na.bg-info:hover, a.bg-info:focus,\nbutton.bg-info:hover,\nbutton.bg-info:focus {\n background-color: #117a8b !important;\n}\n\n.bg-warning {\n background-color: #ffc107 !important;\n}\n\na.bg-warning:hover, a.bg-warning:focus,\nbutton.bg-warning:hover,\nbutton.bg-warning:focus {\n background-color: #d39e00 !important;\n}\n\n.bg-danger {\n background-color: #dc3545 !important;\n}\n\na.bg-danger:hover, a.bg-danger:focus,\nbutton.bg-danger:hover,\nbutton.bg-danger:focus {\n background-color: #bd2130 !important;\n}\n\n.bg-light {\n background-color: #f8f9fa !important;\n}\n\na.bg-light:hover, a.bg-light:focus,\nbutton.bg-light:hover,\nbutton.bg-light:focus {\n background-color: #dae0e5 !important;\n}\n\n.bg-dark {\n background-color: #343a40 !important;\n}\n\na.bg-dark:hover, a.bg-dark:focus,\nbutton.bg-dark:hover,\nbutton.bg-dark:focus {\n background-color: #1d2124 !important;\n}\n\n.bg-white {\n background-color: #fff !important;\n}\n\n.bg-transparent {\n background-color: transparent !important;\n}\n\n.border {\n border: 1px solid #dee2e6 !important;\n}\n\n.border-top {\n border-top: 1px solid #dee2e6 !important;\n}\n\n.border-right {\n border-right: 1px solid #dee2e6 !important;\n}\n\n.border-bottom {\n border-bottom: 1px solid #dee2e6 !important;\n}\n\n.border-left {\n border-left: 1px solid #dee2e6 !important;\n}\n\n.border-0 {\n border: 0 !important;\n}\n\n.border-top-0 {\n border-top: 0 !important;\n}\n\n.border-right-0 {\n border-right: 0 !important;\n}\n\n.border-bottom-0 {\n border-bottom: 0 !important;\n}\n\n.border-left-0 {\n border-left: 0 !important;\n}\n\n.border-primary {\n border-color: #007bff !important;\n}\n\n.border-secondary {\n border-color: #6c757d !important;\n}\n\n.border-success {\n border-color: #28a745 !important;\n}\n\n.border-info {\n border-color: #17a2b8 !important;\n}\n\n.border-warning {\n border-color: #ffc107 !important;\n}\n\n.border-danger {\n border-color: #dc3545 !important;\n}\n\n.border-light {\n border-color: #f8f9fa !important;\n}\n\n.border-dark {\n border-color: #343a40 !important;\n}\n\n.border-white {\n border-color: #fff !important;\n}\n\n.rounded-sm {\n border-radius: 0.2rem !important;\n}\n\n.rounded {\n border-radius: 0.25rem !important;\n}\n\n.rounded-top {\n border-top-left-radius: 0.25rem !important;\n border-top-right-radius: 0.25rem !important;\n}\n\n.rounded-right {\n border-top-right-radius: 0.25rem !important;\n border-bottom-right-radius: 0.25rem !important;\n}\n\n.rounded-bottom {\n border-bottom-right-radius: 0.25rem !important;\n border-bottom-left-radius: 0.25rem !important;\n}\n\n.rounded-left {\n border-top-left-radius: 0.25rem !important;\n border-bottom-left-radius: 0.25rem !important;\n}\n\n.rounded-lg {\n border-radius: 0.3rem !important;\n}\n\n.rounded-circle {\n border-radius: 50% !important;\n}\n\n.rounded-pill {\n border-radius: 50rem !important;\n}\n\n.rounded-0 {\n border-radius: 0 !important;\n}\n\n.clearfix::after {\n display: block;\n clear: both;\n content: \"\";\n}\n\n.d-none {\n display: none !important;\n}\n\n.d-inline {\n display: inline !important;\n}\n\n.d-inline-block {\n display: inline-block !important;\n}\n\n.d-block {\n display: block !important;\n}\n\n.d-table {\n display: table !important;\n}\n\n.d-table-row {\n display: table-row !important;\n}\n\n.d-table-cell {\n display: table-cell !important;\n}\n\n.d-flex {\n display: flex !important;\n}\n\n.d-inline-flex {\n display: inline-flex !important;\n}\n\n@media (min-width: 576px) {\n .d-sm-none {\n display: none !important;\n }\n .d-sm-inline {\n display: inline !important;\n }\n .d-sm-inline-block {\n display: inline-block !important;\n }\n .d-sm-block {\n display: block !important;\n }\n .d-sm-table {\n display: table !important;\n }\n .d-sm-table-row {\n display: table-row !important;\n }\n .d-sm-table-cell {\n display: table-cell !important;\n }\n .d-sm-flex {\n display: flex !important;\n }\n .d-sm-inline-flex {\n display: inline-flex !important;\n }\n}\n\n@media (min-width: 768px) {\n .d-md-none {\n display: none !important;\n }\n .d-md-inline {\n display: inline !important;\n }\n .d-md-inline-block {\n display: inline-block !important;\n }\n .d-md-block {\n display: block !important;\n }\n .d-md-table {\n display: table !important;\n }\n .d-md-table-row {\n display: table-row !important;\n }\n .d-md-table-cell {\n display: table-cell !important;\n }\n .d-md-flex {\n display: flex !important;\n }\n .d-md-inline-flex {\n display: inline-flex !important;\n }\n}\n\n@media (min-width: 992px) {\n .d-lg-none {\n display: none !important;\n }\n .d-lg-inline {\n display: inline !important;\n }\n .d-lg-inline-block {\n display: inline-block !important;\n }\n .d-lg-block {\n display: block !important;\n }\n .d-lg-table {\n display: table !important;\n }\n .d-lg-table-row {\n display: table-row !important;\n }\n .d-lg-table-cell {\n display: table-cell !important;\n }\n .d-lg-flex {\n display: flex !important;\n }\n .d-lg-inline-flex {\n display: inline-flex !important;\n }\n}\n\n@media (min-width: 1200px) {\n .d-xl-none {\n display: none !important;\n }\n .d-xl-inline {\n display: inline !important;\n }\n .d-xl-inline-block {\n display: inline-block !important;\n }\n .d-xl-block {\n display: block !important;\n }\n .d-xl-table {\n display: table !important;\n }\n .d-xl-table-row {\n display: table-row !important;\n }\n .d-xl-table-cell {\n display: table-cell !important;\n }\n .d-xl-flex {\n display: flex !important;\n }\n .d-xl-inline-flex {\n display: inline-flex !important;\n }\n}\n\n@media print {\n .d-print-none {\n display: none !important;\n }\n .d-print-inline {\n display: inline !important;\n }\n .d-print-inline-block {\n display: inline-block !important;\n }\n .d-print-block {\n display: block !important;\n }\n .d-print-table {\n display: table !important;\n }\n .d-print-table-row {\n display: table-row !important;\n }\n .d-print-table-cell {\n display: table-cell !important;\n }\n .d-print-flex {\n display: flex !important;\n }\n .d-print-inline-flex {\n display: inline-flex !important;\n }\n}\n\n.embed-responsive {\n position: relative;\n display: block;\n width: 100%;\n padding: 0;\n overflow: hidden;\n}\n\n.embed-responsive::before {\n display: block;\n content: \"\";\n}\n\n.embed-responsive .embed-responsive-item,\n.embed-responsive iframe,\n.embed-responsive embed,\n.embed-responsive object,\n.embed-responsive video {\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n width: 100%;\n height: 100%;\n border: 0;\n}\n\n.embed-responsive-21by9::before {\n padding-top: 42.857143%;\n}\n\n.embed-responsive-16by9::before {\n padding-top: 56.25%;\n}\n\n.embed-responsive-4by3::before {\n padding-top: 75%;\n}\n\n.embed-responsive-1by1::before {\n padding-top: 100%;\n}\n\n.flex-row {\n flex-direction: row !important;\n}\n\n.flex-column {\n flex-direction: column !important;\n}\n\n.flex-row-reverse {\n flex-direction: row-reverse !important;\n}\n\n.flex-column-reverse {\n flex-direction: column-reverse !important;\n}\n\n.flex-wrap {\n flex-wrap: wrap !important;\n}\n\n.flex-nowrap {\n flex-wrap: nowrap !important;\n}\n\n.flex-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n}\n\n.flex-fill {\n flex: 1 1 auto !important;\n}\n\n.flex-grow-0 {\n flex-grow: 0 !important;\n}\n\n.flex-grow-1 {\n flex-grow: 1 !important;\n}\n\n.flex-shrink-0 {\n flex-shrink: 0 !important;\n}\n\n.flex-shrink-1 {\n flex-shrink: 1 !important;\n}\n\n.justify-content-start {\n justify-content: flex-start !important;\n}\n\n.justify-content-end {\n justify-content: flex-end !important;\n}\n\n.justify-content-center {\n justify-content: center !important;\n}\n\n.justify-content-between {\n justify-content: space-between !important;\n}\n\n.justify-content-around {\n justify-content: space-around !important;\n}\n\n.align-items-start {\n align-items: flex-start !important;\n}\n\n.align-items-end {\n align-items: flex-end !important;\n}\n\n.align-items-center {\n align-items: center !important;\n}\n\n.align-items-baseline {\n align-items: baseline !important;\n}\n\n.align-items-stretch {\n align-items: stretch !important;\n}\n\n.align-content-start {\n align-content: flex-start !important;\n}\n\n.align-content-end {\n align-content: flex-end !important;\n}\n\n.align-content-center {\n align-content: center !important;\n}\n\n.align-content-between {\n align-content: space-between !important;\n}\n\n.align-content-around {\n align-content: space-around !important;\n}\n\n.align-content-stretch {\n align-content: stretch !important;\n}\n\n.align-self-auto {\n align-self: auto !important;\n}\n\n.align-self-start {\n align-self: flex-start !important;\n}\n\n.align-self-end {\n align-self: flex-end !important;\n}\n\n.align-self-center {\n align-self: center !important;\n}\n\n.align-self-baseline {\n align-self: baseline !important;\n}\n\n.align-self-stretch {\n align-self: stretch !important;\n}\n\n@media (min-width: 576px) {\n .flex-sm-row {\n flex-direction: row !important;\n }\n .flex-sm-column {\n flex-direction: column !important;\n }\n .flex-sm-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-sm-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-sm-wrap {\n flex-wrap: wrap !important;\n }\n .flex-sm-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-sm-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .flex-sm-fill {\n flex: 1 1 auto !important;\n }\n .flex-sm-grow-0 {\n flex-grow: 0 !important;\n }\n .flex-sm-grow-1 {\n flex-grow: 1 !important;\n }\n .flex-sm-shrink-0 {\n flex-shrink: 0 !important;\n }\n .flex-sm-shrink-1 {\n flex-shrink: 1 !important;\n }\n .justify-content-sm-start {\n justify-content: flex-start !important;\n }\n .justify-content-sm-end {\n justify-content: flex-end !important;\n }\n .justify-content-sm-center {\n justify-content: center !important;\n }\n .justify-content-sm-between {\n justify-content: space-between !important;\n }\n .justify-content-sm-around {\n justify-content: space-around !important;\n }\n .align-items-sm-start {\n align-items: flex-start !important;\n }\n .align-items-sm-end {\n align-items: flex-end !important;\n }\n .align-items-sm-center {\n align-items: center !important;\n }\n .align-items-sm-baseline {\n align-items: baseline !important;\n }\n .align-items-sm-stretch {\n align-items: stretch !important;\n }\n .align-content-sm-start {\n align-content: flex-start !important;\n }\n .align-content-sm-end {\n align-content: flex-end !important;\n }\n .align-content-sm-center {\n align-content: center !important;\n }\n .align-content-sm-between {\n align-content: space-between !important;\n }\n .align-content-sm-around {\n align-content: space-around !important;\n }\n .align-content-sm-stretch {\n align-content: stretch !important;\n }\n .align-self-sm-auto {\n align-self: auto !important;\n }\n .align-self-sm-start {\n align-self: flex-start !important;\n }\n .align-self-sm-end {\n align-self: flex-end !important;\n }\n .align-self-sm-center {\n align-self: center !important;\n }\n .align-self-sm-baseline {\n align-self: baseline !important;\n }\n .align-self-sm-stretch {\n align-self: stretch !important;\n }\n}\n\n@media (min-width: 768px) {\n .flex-md-row {\n flex-direction: row !important;\n }\n .flex-md-column {\n flex-direction: column !important;\n }\n .flex-md-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-md-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-md-wrap {\n flex-wrap: wrap !important;\n }\n .flex-md-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-md-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .flex-md-fill {\n flex: 1 1 auto !important;\n }\n .flex-md-grow-0 {\n flex-grow: 0 !important;\n }\n .flex-md-grow-1 {\n flex-grow: 1 !important;\n }\n .flex-md-shrink-0 {\n flex-shrink: 0 !important;\n }\n .flex-md-shrink-1 {\n flex-shrink: 1 !important;\n }\n .justify-content-md-start {\n justify-content: flex-start !important;\n }\n .justify-content-md-end {\n justify-content: flex-end !important;\n }\n .justify-content-md-center {\n justify-content: center !important;\n }\n .justify-content-md-between {\n justify-content: space-between !important;\n }\n .justify-content-md-around {\n justify-content: space-around !important;\n }\n .align-items-md-start {\n align-items: flex-start !important;\n }\n .align-items-md-end {\n align-items: flex-end !important;\n }\n .align-items-md-center {\n align-items: center !important;\n }\n .align-items-md-baseline {\n align-items: baseline !important;\n }\n .align-items-md-stretch {\n align-items: stretch !important;\n }\n .align-content-md-start {\n align-content: flex-start !important;\n }\n .align-content-md-end {\n align-content: flex-end !important;\n }\n .align-content-md-center {\n align-content: center !important;\n }\n .align-content-md-between {\n align-content: space-between !important;\n }\n .align-content-md-around {\n align-content: space-around !important;\n }\n .align-content-md-stretch {\n align-content: stretch !important;\n }\n .align-self-md-auto {\n align-self: auto !important;\n }\n .align-self-md-start {\n align-self: flex-start !important;\n }\n .align-self-md-end {\n align-self: flex-end !important;\n }\n .align-self-md-center {\n align-self: center !important;\n }\n .align-self-md-baseline {\n align-self: baseline !important;\n }\n .align-self-md-stretch {\n align-self: stretch !important;\n }\n}\n\n@media (min-width: 992px) {\n .flex-lg-row {\n flex-direction: row !important;\n }\n .flex-lg-column {\n flex-direction: column !important;\n }\n .flex-lg-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-lg-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-lg-wrap {\n flex-wrap: wrap !important;\n }\n .flex-lg-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-lg-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .flex-lg-fill {\n flex: 1 1 auto !important;\n }\n .flex-lg-grow-0 {\n flex-grow: 0 !important;\n }\n .flex-lg-grow-1 {\n flex-grow: 1 !important;\n }\n .flex-lg-shrink-0 {\n flex-shrink: 0 !important;\n }\n .flex-lg-shrink-1 {\n flex-shrink: 1 !important;\n }\n .justify-content-lg-start {\n justify-content: flex-start !important;\n }\n .justify-content-lg-end {\n justify-content: flex-end !important;\n }\n .justify-content-lg-center {\n justify-content: center !important;\n }\n .justify-content-lg-between {\n justify-content: space-between !important;\n }\n .justify-content-lg-around {\n justify-content: space-around !important;\n }\n .align-items-lg-start {\n align-items: flex-start !important;\n }\n .align-items-lg-end {\n align-items: flex-end !important;\n }\n .align-items-lg-center {\n align-items: center !important;\n }\n .align-items-lg-baseline {\n align-items: baseline !important;\n }\n .align-items-lg-stretch {\n align-items: stretch !important;\n }\n .align-content-lg-start {\n align-content: flex-start !important;\n }\n .align-content-lg-end {\n align-content: flex-end !important;\n }\n .align-content-lg-center {\n align-content: center !important;\n }\n .align-content-lg-between {\n align-content: space-between !important;\n }\n .align-content-lg-around {\n align-content: space-around !important;\n }\n .align-content-lg-stretch {\n align-content: stretch !important;\n }\n .align-self-lg-auto {\n align-self: auto !important;\n }\n .align-self-lg-start {\n align-self: flex-start !important;\n }\n .align-self-lg-end {\n align-self: flex-end !important;\n }\n .align-self-lg-center {\n align-self: center !important;\n }\n .align-self-lg-baseline {\n align-self: baseline !important;\n }\n .align-self-lg-stretch {\n align-self: stretch !important;\n }\n}\n\n@media (min-width: 1200px) {\n .flex-xl-row {\n flex-direction: row !important;\n }\n .flex-xl-column {\n flex-direction: column !important;\n }\n .flex-xl-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-xl-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-xl-wrap {\n flex-wrap: wrap !important;\n }\n .flex-xl-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-xl-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .flex-xl-fill {\n flex: 1 1 auto !important;\n }\n .flex-xl-grow-0 {\n flex-grow: 0 !important;\n }\n .flex-xl-grow-1 {\n flex-grow: 1 !important;\n }\n .flex-xl-shrink-0 {\n flex-shrink: 0 !important;\n }\n .flex-xl-shrink-1 {\n flex-shrink: 1 !important;\n }\n .justify-content-xl-start {\n justify-content: flex-start !important;\n }\n .justify-content-xl-end {\n justify-content: flex-end !important;\n }\n .justify-content-xl-center {\n justify-content: center !important;\n }\n .justify-content-xl-between {\n justify-content: space-between !important;\n }\n .justify-content-xl-around {\n justify-content: space-around !important;\n }\n .align-items-xl-start {\n align-items: flex-start !important;\n }\n .align-items-xl-end {\n align-items: flex-end !important;\n }\n .align-items-xl-center {\n align-items: center !important;\n }\n .align-items-xl-baseline {\n align-items: baseline !important;\n }\n .align-items-xl-stretch {\n align-items: stretch !important;\n }\n .align-content-xl-start {\n align-content: flex-start !important;\n }\n .align-content-xl-end {\n align-content: flex-end !important;\n }\n .align-content-xl-center {\n align-content: center !important;\n }\n .align-content-xl-between {\n align-content: space-between !important;\n }\n .align-content-xl-around {\n align-content: space-around !important;\n }\n .align-content-xl-stretch {\n align-content: stretch !important;\n }\n .align-self-xl-auto {\n align-self: auto !important;\n }\n .align-self-xl-start {\n align-self: flex-start !important;\n }\n .align-self-xl-end {\n align-self: flex-end !important;\n }\n .align-self-xl-center {\n align-self: center !important;\n }\n .align-self-xl-baseline {\n align-self: baseline !important;\n }\n .align-self-xl-stretch {\n align-self: stretch !important;\n }\n}\n\n.float-left {\n float: left !important;\n}\n\n.float-right {\n float: right !important;\n}\n\n.float-none {\n float: none !important;\n}\n\n@media (min-width: 576px) {\n .float-sm-left {\n float: left !important;\n }\n .float-sm-right {\n float: right !important;\n }\n .float-sm-none {\n float: none !important;\n }\n}\n\n@media (min-width: 768px) {\n .float-md-left {\n float: left !important;\n }\n .float-md-right {\n float: right !important;\n }\n .float-md-none {\n float: none !important;\n }\n}\n\n@media (min-width: 992px) {\n .float-lg-left {\n float: left !important;\n }\n .float-lg-right {\n float: right !important;\n }\n .float-lg-none {\n float: none !important;\n }\n}\n\n@media (min-width: 1200px) {\n .float-xl-left {\n float: left !important;\n }\n .float-xl-right {\n float: right !important;\n }\n .float-xl-none {\n float: none !important;\n }\n}\n\n.overflow-auto {\n overflow: auto !important;\n}\n\n.overflow-hidden {\n overflow: hidden !important;\n}\n\n.position-static {\n position: static !important;\n}\n\n.position-relative {\n position: relative !important;\n}\n\n.position-absolute {\n position: absolute !important;\n}\n\n.position-fixed {\n position: fixed !important;\n}\n\n.position-sticky {\n position: sticky !important;\n}\n\n.fixed-top {\n position: fixed;\n top: 0;\n right: 0;\n left: 0;\n z-index: 1030;\n}\n\n.fixed-bottom {\n position: fixed;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1030;\n}\n\n@supports (position: sticky) {\n .sticky-top {\n position: sticky;\n top: 0;\n z-index: 1020;\n }\n}\n\n.sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border: 0;\n}\n\n.sr-only-focusable:active, .sr-only-focusable:focus {\n position: static;\n width: auto;\n height: auto;\n overflow: visible;\n clip: auto;\n white-space: normal;\n}\n\n.shadow-sm {\n box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075) !important;\n}\n\n.shadow {\n box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15) !important;\n}\n\n.shadow-lg {\n box-shadow: 0 1rem 3rem rgba(0, 0, 0, 0.175) !important;\n}\n\n.shadow-none {\n box-shadow: none !important;\n}\n\n.w-25 {\n width: 25% !important;\n}\n\n.w-50 {\n width: 50% !important;\n}\n\n.w-75 {\n width: 75% !important;\n}\n\n.w-100 {\n width: 100% !important;\n}\n\n.w-auto {\n width: auto !important;\n}\n\n.h-25 {\n height: 25% !important;\n}\n\n.h-50 {\n height: 50% !important;\n}\n\n.h-75 {\n height: 75% !important;\n}\n\n.h-100 {\n height: 100% !important;\n}\n\n.h-auto {\n height: auto !important;\n}\n\n.mw-100 {\n max-width: 100% !important;\n}\n\n.mh-100 {\n max-height: 100% !important;\n}\n\n.min-vw-100 {\n min-width: 100vw !important;\n}\n\n.min-vh-100 {\n min-height: 100vh !important;\n}\n\n.vw-100 {\n width: 100vw !important;\n}\n\n.vh-100 {\n height: 100vh !important;\n}\n\n.stretched-link::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1;\n pointer-events: auto;\n content: \"\";\n background-color: rgba(0, 0, 0, 0);\n}\n\n.m-0 {\n margin: 0 !important;\n}\n\n.mt-0,\n.my-0 {\n margin-top: 0 !important;\n}\n\n.mr-0,\n.mx-0 {\n margin-right: 0 !important;\n}\n\n.mb-0,\n.my-0 {\n margin-bottom: 0 !important;\n}\n\n.ml-0,\n.mx-0 {\n margin-left: 0 !important;\n}\n\n.m-1 {\n margin: 0.25rem !important;\n}\n\n.mt-1,\n.my-1 {\n margin-top: 0.25rem !important;\n}\n\n.mr-1,\n.mx-1 {\n margin-right: 0.25rem !important;\n}\n\n.mb-1,\n.my-1 {\n margin-bottom: 0.25rem !important;\n}\n\n.ml-1,\n.mx-1 {\n margin-left: 0.25rem !important;\n}\n\n.m-2 {\n margin: 0.5rem !important;\n}\n\n.mt-2,\n.my-2 {\n margin-top: 0.5rem !important;\n}\n\n.mr-2,\n.mx-2 {\n margin-right: 0.5rem !important;\n}\n\n.mb-2,\n.my-2 {\n margin-bottom: 0.5rem !important;\n}\n\n.ml-2,\n.mx-2 {\n margin-left: 0.5rem !important;\n}\n\n.m-3 {\n margin: 1rem !important;\n}\n\n.mt-3,\n.my-3 {\n margin-top: 1rem !important;\n}\n\n.mr-3,\n.mx-3 {\n margin-right: 1rem !important;\n}\n\n.mb-3,\n.my-3 {\n margin-bottom: 1rem !important;\n}\n\n.ml-3,\n.mx-3 {\n margin-left: 1rem !important;\n}\n\n.m-4 {\n margin: 1.5rem !important;\n}\n\n.mt-4,\n.my-4 {\n margin-top: 1.5rem !important;\n}\n\n.mr-4,\n.mx-4 {\n margin-right: 1.5rem !important;\n}\n\n.mb-4,\n.my-4 {\n margin-bottom: 1.5rem !important;\n}\n\n.ml-4,\n.mx-4 {\n margin-left: 1.5rem !important;\n}\n\n.m-5 {\n margin: 3rem !important;\n}\n\n.mt-5,\n.my-5 {\n margin-top: 3rem !important;\n}\n\n.mr-5,\n.mx-5 {\n margin-right: 3rem !important;\n}\n\n.mb-5,\n.my-5 {\n margin-bottom: 3rem !important;\n}\n\n.ml-5,\n.mx-5 {\n margin-left: 3rem !important;\n}\n\n.p-0 {\n padding: 0 !important;\n}\n\n.pt-0,\n.py-0 {\n padding-top: 0 !important;\n}\n\n.pr-0,\n.px-0 {\n padding-right: 0 !important;\n}\n\n.pb-0,\n.py-0 {\n padding-bottom: 0 !important;\n}\n\n.pl-0,\n.px-0 {\n padding-left: 0 !important;\n}\n\n.p-1 {\n padding: 0.25rem !important;\n}\n\n.pt-1,\n.py-1 {\n padding-top: 0.25rem !important;\n}\n\n.pr-1,\n.px-1 {\n padding-right: 0.25rem !important;\n}\n\n.pb-1,\n.py-1 {\n padding-bottom: 0.25rem !important;\n}\n\n.pl-1,\n.px-1 {\n padding-left: 0.25rem !important;\n}\n\n.p-2 {\n padding: 0.5rem !important;\n}\n\n.pt-2,\n.py-2 {\n padding-top: 0.5rem !important;\n}\n\n.pr-2,\n.px-2 {\n padding-right: 0.5rem !important;\n}\n\n.pb-2,\n.py-2 {\n padding-bottom: 0.5rem !important;\n}\n\n.pl-2,\n.px-2 {\n padding-left: 0.5rem !important;\n}\n\n.p-3 {\n padding: 1rem !important;\n}\n\n.pt-3,\n.py-3 {\n padding-top: 1rem !important;\n}\n\n.pr-3,\n.px-3 {\n padding-right: 1rem !important;\n}\n\n.pb-3,\n.py-3 {\n padding-bottom: 1rem !important;\n}\n\n.pl-3,\n.px-3 {\n padding-left: 1rem !important;\n}\n\n.p-4 {\n padding: 1.5rem !important;\n}\n\n.pt-4,\n.py-4 {\n padding-top: 1.5rem !important;\n}\n\n.pr-4,\n.px-4 {\n padding-right: 1.5rem !important;\n}\n\n.pb-4,\n.py-4 {\n padding-bottom: 1.5rem !important;\n}\n\n.pl-4,\n.px-4 {\n padding-left: 1.5rem !important;\n}\n\n.p-5 {\n padding: 3rem !important;\n}\n\n.pt-5,\n.py-5 {\n padding-top: 3rem !important;\n}\n\n.pr-5,\n.px-5 {\n padding-right: 3rem !important;\n}\n\n.pb-5,\n.py-5 {\n padding-bottom: 3rem !important;\n}\n\n.pl-5,\n.px-5 {\n padding-left: 3rem !important;\n}\n\n.m-n1 {\n margin: -0.25rem !important;\n}\n\n.mt-n1,\n.my-n1 {\n margin-top: -0.25rem !important;\n}\n\n.mr-n1,\n.mx-n1 {\n margin-right: -0.25rem !important;\n}\n\n.mb-n1,\n.my-n1 {\n margin-bottom: -0.25rem !important;\n}\n\n.ml-n1,\n.mx-n1 {\n margin-left: -0.25rem !important;\n}\n\n.m-n2 {\n margin: -0.5rem !important;\n}\n\n.mt-n2,\n.my-n2 {\n margin-top: -0.5rem !important;\n}\n\n.mr-n2,\n.mx-n2 {\n margin-right: -0.5rem !important;\n}\n\n.mb-n2,\n.my-n2 {\n margin-bottom: -0.5rem !important;\n}\n\n.ml-n2,\n.mx-n2 {\n margin-left: -0.5rem !important;\n}\n\n.m-n3 {\n margin: -1rem !important;\n}\n\n.mt-n3,\n.my-n3 {\n margin-top: -1rem !important;\n}\n\n.mr-n3,\n.mx-n3 {\n margin-right: -1rem !important;\n}\n\n.mb-n3,\n.my-n3 {\n margin-bottom: -1rem !important;\n}\n\n.ml-n3,\n.mx-n3 {\n margin-left: -1rem !important;\n}\n\n.m-n4 {\n margin: -1.5rem !important;\n}\n\n.mt-n4,\n.my-n4 {\n margin-top: -1.5rem !important;\n}\n\n.mr-n4,\n.mx-n4 {\n margin-right: -1.5rem !important;\n}\n\n.mb-n4,\n.my-n4 {\n margin-bottom: -1.5rem !important;\n}\n\n.ml-n4,\n.mx-n4 {\n margin-left: -1.5rem !important;\n}\n\n.m-n5 {\n margin: -3rem !important;\n}\n\n.mt-n5,\n.my-n5 {\n margin-top: -3rem !important;\n}\n\n.mr-n5,\n.mx-n5 {\n margin-right: -3rem !important;\n}\n\n.mb-n5,\n.my-n5 {\n margin-bottom: -3rem !important;\n}\n\n.ml-n5,\n.mx-n5 {\n margin-left: -3rem !important;\n}\n\n.m-auto {\n margin: auto !important;\n}\n\n.mt-auto,\n.my-auto {\n margin-top: auto !important;\n}\n\n.mr-auto,\n.mx-auto {\n margin-right: auto !important;\n}\n\n.mb-auto,\n.my-auto {\n margin-bottom: auto !important;\n}\n\n.ml-auto,\n.mx-auto {\n margin-left: auto !important;\n}\n\n@media (min-width: 576px) {\n .m-sm-0 {\n margin: 0 !important;\n }\n .mt-sm-0,\n .my-sm-0 {\n margin-top: 0 !important;\n }\n .mr-sm-0,\n .mx-sm-0 {\n margin-right: 0 !important;\n }\n .mb-sm-0,\n .my-sm-0 {\n margin-bottom: 0 !important;\n }\n .ml-sm-0,\n .mx-sm-0 {\n margin-left: 0 !important;\n }\n .m-sm-1 {\n margin: 0.25rem !important;\n }\n .mt-sm-1,\n .my-sm-1 {\n margin-top: 0.25rem !important;\n }\n .mr-sm-1,\n .mx-sm-1 {\n margin-right: 0.25rem !important;\n }\n .mb-sm-1,\n .my-sm-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-sm-1,\n .mx-sm-1 {\n margin-left: 0.25rem !important;\n }\n .m-sm-2 {\n margin: 0.5rem !important;\n }\n .mt-sm-2,\n .my-sm-2 {\n margin-top: 0.5rem !important;\n }\n .mr-sm-2,\n .mx-sm-2 {\n margin-right: 0.5rem !important;\n }\n .mb-sm-2,\n .my-sm-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-sm-2,\n .mx-sm-2 {\n margin-left: 0.5rem !important;\n }\n .m-sm-3 {\n margin: 1rem !important;\n }\n .mt-sm-3,\n .my-sm-3 {\n margin-top: 1rem !important;\n }\n .mr-sm-3,\n .mx-sm-3 {\n margin-right: 1rem !important;\n }\n .mb-sm-3,\n .my-sm-3 {\n margin-bottom: 1rem !important;\n }\n .ml-sm-3,\n .mx-sm-3 {\n margin-left: 1rem !important;\n }\n .m-sm-4 {\n margin: 1.5rem !important;\n }\n .mt-sm-4,\n .my-sm-4 {\n margin-top: 1.5rem !important;\n }\n .mr-sm-4,\n .mx-sm-4 {\n margin-right: 1.5rem !important;\n }\n .mb-sm-4,\n .my-sm-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-sm-4,\n .mx-sm-4 {\n margin-left: 1.5rem !important;\n }\n .m-sm-5 {\n margin: 3rem !important;\n }\n .mt-sm-5,\n .my-sm-5 {\n margin-top: 3rem !important;\n }\n .mr-sm-5,\n .mx-sm-5 {\n margin-right: 3rem !important;\n }\n .mb-sm-5,\n .my-sm-5 {\n margin-bottom: 3rem !important;\n }\n .ml-sm-5,\n .mx-sm-5 {\n margin-left: 3rem !important;\n }\n .p-sm-0 {\n padding: 0 !important;\n }\n .pt-sm-0,\n .py-sm-0 {\n padding-top: 0 !important;\n }\n .pr-sm-0,\n .px-sm-0 {\n padding-right: 0 !important;\n }\n .pb-sm-0,\n .py-sm-0 {\n padding-bottom: 0 !important;\n }\n .pl-sm-0,\n .px-sm-0 {\n padding-left: 0 !important;\n }\n .p-sm-1 {\n padding: 0.25rem !important;\n }\n .pt-sm-1,\n .py-sm-1 {\n padding-top: 0.25rem !important;\n }\n .pr-sm-1,\n .px-sm-1 {\n padding-right: 0.25rem !important;\n }\n .pb-sm-1,\n .py-sm-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-sm-1,\n .px-sm-1 {\n padding-left: 0.25rem !important;\n }\n .p-sm-2 {\n padding: 0.5rem !important;\n }\n .pt-sm-2,\n .py-sm-2 {\n padding-top: 0.5rem !important;\n }\n .pr-sm-2,\n .px-sm-2 {\n padding-right: 0.5rem !important;\n }\n .pb-sm-2,\n .py-sm-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-sm-2,\n .px-sm-2 {\n padding-left: 0.5rem !important;\n }\n .p-sm-3 {\n padding: 1rem !important;\n }\n .pt-sm-3,\n .py-sm-3 {\n padding-top: 1rem !important;\n }\n .pr-sm-3,\n .px-sm-3 {\n padding-right: 1rem !important;\n }\n .pb-sm-3,\n .py-sm-3 {\n padding-bottom: 1rem !important;\n }\n .pl-sm-3,\n .px-sm-3 {\n padding-left: 1rem !important;\n }\n .p-sm-4 {\n padding: 1.5rem !important;\n }\n .pt-sm-4,\n .py-sm-4 {\n padding-top: 1.5rem !important;\n }\n .pr-sm-4,\n .px-sm-4 {\n padding-right: 1.5rem !important;\n }\n .pb-sm-4,\n .py-sm-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-sm-4,\n .px-sm-4 {\n padding-left: 1.5rem !important;\n }\n .p-sm-5 {\n padding: 3rem !important;\n }\n .pt-sm-5,\n .py-sm-5 {\n padding-top: 3rem !important;\n }\n .pr-sm-5,\n .px-sm-5 {\n padding-right: 3rem !important;\n }\n .pb-sm-5,\n .py-sm-5 {\n padding-bottom: 3rem !important;\n }\n .pl-sm-5,\n .px-sm-5 {\n padding-left: 3rem !important;\n }\n .m-sm-n1 {\n margin: -0.25rem !important;\n }\n .mt-sm-n1,\n .my-sm-n1 {\n margin-top: -0.25rem !important;\n }\n .mr-sm-n1,\n .mx-sm-n1 {\n margin-right: -0.25rem !important;\n }\n .mb-sm-n1,\n .my-sm-n1 {\n margin-bottom: -0.25rem !important;\n }\n .ml-sm-n1,\n .mx-sm-n1 {\n margin-left: -0.25rem !important;\n }\n .m-sm-n2 {\n margin: -0.5rem !important;\n }\n .mt-sm-n2,\n .my-sm-n2 {\n margin-top: -0.5rem !important;\n }\n .mr-sm-n2,\n .mx-sm-n2 {\n margin-right: -0.5rem !important;\n }\n .mb-sm-n2,\n .my-sm-n2 {\n margin-bottom: -0.5rem !important;\n }\n .ml-sm-n2,\n .mx-sm-n2 {\n margin-left: -0.5rem !important;\n }\n .m-sm-n3 {\n margin: -1rem !important;\n }\n .mt-sm-n3,\n .my-sm-n3 {\n margin-top: -1rem !important;\n }\n .mr-sm-n3,\n .mx-sm-n3 {\n margin-right: -1rem !important;\n }\n .mb-sm-n3,\n .my-sm-n3 {\n margin-bottom: -1rem !important;\n }\n .ml-sm-n3,\n .mx-sm-n3 {\n margin-left: -1rem !important;\n }\n .m-sm-n4 {\n margin: -1.5rem !important;\n }\n .mt-sm-n4,\n .my-sm-n4 {\n margin-top: -1.5rem !important;\n }\n .mr-sm-n4,\n .mx-sm-n4 {\n margin-right: -1.5rem !important;\n }\n .mb-sm-n4,\n .my-sm-n4 {\n margin-bottom: -1.5rem !important;\n }\n .ml-sm-n4,\n .mx-sm-n4 {\n margin-left: -1.5rem !important;\n }\n .m-sm-n5 {\n margin: -3rem !important;\n }\n .mt-sm-n5,\n .my-sm-n5 {\n margin-top: -3rem !important;\n }\n .mr-sm-n5,\n .mx-sm-n5 {\n margin-right: -3rem !important;\n }\n .mb-sm-n5,\n .my-sm-n5 {\n margin-bottom: -3rem !important;\n }\n .ml-sm-n5,\n .mx-sm-n5 {\n margin-left: -3rem !important;\n }\n .m-sm-auto {\n margin: auto !important;\n }\n .mt-sm-auto,\n .my-sm-auto {\n margin-top: auto !important;\n }\n .mr-sm-auto,\n .mx-sm-auto {\n margin-right: auto !important;\n }\n .mb-sm-auto,\n .my-sm-auto {\n margin-bottom: auto !important;\n }\n .ml-sm-auto,\n .mx-sm-auto {\n margin-left: auto !important;\n }\n}\n\n@media (min-width: 768px) {\n .m-md-0 {\n margin: 0 !important;\n }\n .mt-md-0,\n .my-md-0 {\n margin-top: 0 !important;\n }\n .mr-md-0,\n .mx-md-0 {\n margin-right: 0 !important;\n }\n .mb-md-0,\n .my-md-0 {\n margin-bottom: 0 !important;\n }\n .ml-md-0,\n .mx-md-0 {\n margin-left: 0 !important;\n }\n .m-md-1 {\n margin: 0.25rem !important;\n }\n .mt-md-1,\n .my-md-1 {\n margin-top: 0.25rem !important;\n }\n .mr-md-1,\n .mx-md-1 {\n margin-right: 0.25rem !important;\n }\n .mb-md-1,\n .my-md-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-md-1,\n .mx-md-1 {\n margin-left: 0.25rem !important;\n }\n .m-md-2 {\n margin: 0.5rem !important;\n }\n .mt-md-2,\n .my-md-2 {\n margin-top: 0.5rem !important;\n }\n .mr-md-2,\n .mx-md-2 {\n margin-right: 0.5rem !important;\n }\n .mb-md-2,\n .my-md-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-md-2,\n .mx-md-2 {\n margin-left: 0.5rem !important;\n }\n .m-md-3 {\n margin: 1rem !important;\n }\n .mt-md-3,\n .my-md-3 {\n margin-top: 1rem !important;\n }\n .mr-md-3,\n .mx-md-3 {\n margin-right: 1rem !important;\n }\n .mb-md-3,\n .my-md-3 {\n margin-bottom: 1rem !important;\n }\n .ml-md-3,\n .mx-md-3 {\n margin-left: 1rem !important;\n }\n .m-md-4 {\n margin: 1.5rem !important;\n }\n .mt-md-4,\n .my-md-4 {\n margin-top: 1.5rem !important;\n }\n .mr-md-4,\n .mx-md-4 {\n margin-right: 1.5rem !important;\n }\n .mb-md-4,\n .my-md-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-md-4,\n .mx-md-4 {\n margin-left: 1.5rem !important;\n }\n .m-md-5 {\n margin: 3rem !important;\n }\n .mt-md-5,\n .my-md-5 {\n margin-top: 3rem !important;\n }\n .mr-md-5,\n .mx-md-5 {\n margin-right: 3rem !important;\n }\n .mb-md-5,\n .my-md-5 {\n margin-bottom: 3rem !important;\n }\n .ml-md-5,\n .mx-md-5 {\n margin-left: 3rem !important;\n }\n .p-md-0 {\n padding: 0 !important;\n }\n .pt-md-0,\n .py-md-0 {\n padding-top: 0 !important;\n }\n .pr-md-0,\n .px-md-0 {\n padding-right: 0 !important;\n }\n .pb-md-0,\n .py-md-0 {\n padding-bottom: 0 !important;\n }\n .pl-md-0,\n .px-md-0 {\n padding-left: 0 !important;\n }\n .p-md-1 {\n padding: 0.25rem !important;\n }\n .pt-md-1,\n .py-md-1 {\n padding-top: 0.25rem !important;\n }\n .pr-md-1,\n .px-md-1 {\n padding-right: 0.25rem !important;\n }\n .pb-md-1,\n .py-md-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-md-1,\n .px-md-1 {\n padding-left: 0.25rem !important;\n }\n .p-md-2 {\n padding: 0.5rem !important;\n }\n .pt-md-2,\n .py-md-2 {\n padding-top: 0.5rem !important;\n }\n .pr-md-2,\n .px-md-2 {\n padding-right: 0.5rem !important;\n }\n .pb-md-2,\n .py-md-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-md-2,\n .px-md-2 {\n padding-left: 0.5rem !important;\n }\n .p-md-3 {\n padding: 1rem !important;\n }\n .pt-md-3,\n .py-md-3 {\n padding-top: 1rem !important;\n }\n .pr-md-3,\n .px-md-3 {\n padding-right: 1rem !important;\n }\n .pb-md-3,\n .py-md-3 {\n padding-bottom: 1rem !important;\n }\n .pl-md-3,\n .px-md-3 {\n padding-left: 1rem !important;\n }\n .p-md-4 {\n padding: 1.5rem !important;\n }\n .pt-md-4,\n .py-md-4 {\n padding-top: 1.5rem !important;\n }\n .pr-md-4,\n .px-md-4 {\n padding-right: 1.5rem !important;\n }\n .pb-md-4,\n .py-md-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-md-4,\n .px-md-4 {\n padding-left: 1.5rem !important;\n }\n .p-md-5 {\n padding: 3rem !important;\n }\n .pt-md-5,\n .py-md-5 {\n padding-top: 3rem !important;\n }\n .pr-md-5,\n .px-md-5 {\n padding-right: 3rem !important;\n }\n .pb-md-5,\n .py-md-5 {\n padding-bottom: 3rem !important;\n }\n .pl-md-5,\n .px-md-5 {\n padding-left: 3rem !important;\n }\n .m-md-n1 {\n margin: -0.25rem !important;\n }\n .mt-md-n1,\n .my-md-n1 {\n margin-top: -0.25rem !important;\n }\n .mr-md-n1,\n .mx-md-n1 {\n margin-right: -0.25rem !important;\n }\n .mb-md-n1,\n .my-md-n1 {\n margin-bottom: -0.25rem !important;\n }\n .ml-md-n1,\n .mx-md-n1 {\n margin-left: -0.25rem !important;\n }\n .m-md-n2 {\n margin: -0.5rem !important;\n }\n .mt-md-n2,\n .my-md-n2 {\n margin-top: -0.5rem !important;\n }\n .mr-md-n2,\n .mx-md-n2 {\n margin-right: -0.5rem !important;\n }\n .mb-md-n2,\n .my-md-n2 {\n margin-bottom: -0.5rem !important;\n }\n .ml-md-n2,\n .mx-md-n2 {\n margin-left: -0.5rem !important;\n }\n .m-md-n3 {\n margin: -1rem !important;\n }\n .mt-md-n3,\n .my-md-n3 {\n margin-top: -1rem !important;\n }\n .mr-md-n3,\n .mx-md-n3 {\n margin-right: -1rem !important;\n }\n .mb-md-n3,\n .my-md-n3 {\n margin-bottom: -1rem !important;\n }\n .ml-md-n3,\n .mx-md-n3 {\n margin-left: -1rem !important;\n }\n .m-md-n4 {\n margin: -1.5rem !important;\n }\n .mt-md-n4,\n .my-md-n4 {\n margin-top: -1.5rem !important;\n }\n .mr-md-n4,\n .mx-md-n4 {\n margin-right: -1.5rem !important;\n }\n .mb-md-n4,\n .my-md-n4 {\n margin-bottom: -1.5rem !important;\n }\n .ml-md-n4,\n .mx-md-n4 {\n margin-left: -1.5rem !important;\n }\n .m-md-n5 {\n margin: -3rem !important;\n }\n .mt-md-n5,\n .my-md-n5 {\n margin-top: -3rem !important;\n }\n .mr-md-n5,\n .mx-md-n5 {\n margin-right: -3rem !important;\n }\n .mb-md-n5,\n .my-md-n5 {\n margin-bottom: -3rem !important;\n }\n .ml-md-n5,\n .mx-md-n5 {\n margin-left: -3rem !important;\n }\n .m-md-auto {\n margin: auto !important;\n }\n .mt-md-auto,\n .my-md-auto {\n margin-top: auto !important;\n }\n .mr-md-auto,\n .mx-md-auto {\n margin-right: auto !important;\n }\n .mb-md-auto,\n .my-md-auto {\n margin-bottom: auto !important;\n }\n .ml-md-auto,\n .mx-md-auto {\n margin-left: auto !important;\n }\n}\n\n@media (min-width: 992px) {\n .m-lg-0 {\n margin: 0 !important;\n }\n .mt-lg-0,\n .my-lg-0 {\n margin-top: 0 !important;\n }\n .mr-lg-0,\n .mx-lg-0 {\n margin-right: 0 !important;\n }\n .mb-lg-0,\n .my-lg-0 {\n margin-bottom: 0 !important;\n }\n .ml-lg-0,\n .mx-lg-0 {\n margin-left: 0 !important;\n }\n .m-lg-1 {\n margin: 0.25rem !important;\n }\n .mt-lg-1,\n .my-lg-1 {\n margin-top: 0.25rem !important;\n }\n .mr-lg-1,\n .mx-lg-1 {\n margin-right: 0.25rem !important;\n }\n .mb-lg-1,\n .my-lg-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-lg-1,\n .mx-lg-1 {\n margin-left: 0.25rem !important;\n }\n .m-lg-2 {\n margin: 0.5rem !important;\n }\n .mt-lg-2,\n .my-lg-2 {\n margin-top: 0.5rem !important;\n }\n .mr-lg-2,\n .mx-lg-2 {\n margin-right: 0.5rem !important;\n }\n .mb-lg-2,\n .my-lg-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-lg-2,\n .mx-lg-2 {\n margin-left: 0.5rem !important;\n }\n .m-lg-3 {\n margin: 1rem !important;\n }\n .mt-lg-3,\n .my-lg-3 {\n margin-top: 1rem !important;\n }\n .mr-lg-3,\n .mx-lg-3 {\n margin-right: 1rem !important;\n }\n .mb-lg-3,\n .my-lg-3 {\n margin-bottom: 1rem !important;\n }\n .ml-lg-3,\n .mx-lg-3 {\n margin-left: 1rem !important;\n }\n .m-lg-4 {\n margin: 1.5rem !important;\n }\n .mt-lg-4,\n .my-lg-4 {\n margin-top: 1.5rem !important;\n }\n .mr-lg-4,\n .mx-lg-4 {\n margin-right: 1.5rem !important;\n }\n .mb-lg-4,\n .my-lg-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-lg-4,\n .mx-lg-4 {\n margin-left: 1.5rem !important;\n }\n .m-lg-5 {\n margin: 3rem !important;\n }\n .mt-lg-5,\n .my-lg-5 {\n margin-top: 3rem !important;\n }\n .mr-lg-5,\n .mx-lg-5 {\n margin-right: 3rem !important;\n }\n .mb-lg-5,\n .my-lg-5 {\n margin-bottom: 3rem !important;\n }\n .ml-lg-5,\n .mx-lg-5 {\n margin-left: 3rem !important;\n }\n .p-lg-0 {\n padding: 0 !important;\n }\n .pt-lg-0,\n .py-lg-0 {\n padding-top: 0 !important;\n }\n .pr-lg-0,\n .px-lg-0 {\n padding-right: 0 !important;\n }\n .pb-lg-0,\n .py-lg-0 {\n padding-bottom: 0 !important;\n }\n .pl-lg-0,\n .px-lg-0 {\n padding-left: 0 !important;\n }\n .p-lg-1 {\n padding: 0.25rem !important;\n }\n .pt-lg-1,\n .py-lg-1 {\n padding-top: 0.25rem !important;\n }\n .pr-lg-1,\n .px-lg-1 {\n padding-right: 0.25rem !important;\n }\n .pb-lg-1,\n .py-lg-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-lg-1,\n .px-lg-1 {\n padding-left: 0.25rem !important;\n }\n .p-lg-2 {\n padding: 0.5rem !important;\n }\n .pt-lg-2,\n .py-lg-2 {\n padding-top: 0.5rem !important;\n }\n .pr-lg-2,\n .px-lg-2 {\n padding-right: 0.5rem !important;\n }\n .pb-lg-2,\n .py-lg-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-lg-2,\n .px-lg-2 {\n padding-left: 0.5rem !important;\n }\n .p-lg-3 {\n padding: 1rem !important;\n }\n .pt-lg-3,\n .py-lg-3 {\n padding-top: 1rem !important;\n }\n .pr-lg-3,\n .px-lg-3 {\n padding-right: 1rem !important;\n }\n .pb-lg-3,\n .py-lg-3 {\n padding-bottom: 1rem !important;\n }\n .pl-lg-3,\n .px-lg-3 {\n padding-left: 1rem !important;\n }\n .p-lg-4 {\n padding: 1.5rem !important;\n }\n .pt-lg-4,\n .py-lg-4 {\n padding-top: 1.5rem !important;\n }\n .pr-lg-4,\n .px-lg-4 {\n padding-right: 1.5rem !important;\n }\n .pb-lg-4,\n .py-lg-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-lg-4,\n .px-lg-4 {\n padding-left: 1.5rem !important;\n }\n .p-lg-5 {\n padding: 3rem !important;\n }\n .pt-lg-5,\n .py-lg-5 {\n padding-top: 3rem !important;\n }\n .pr-lg-5,\n .px-lg-5 {\n padding-right: 3rem !important;\n }\n .pb-lg-5,\n .py-lg-5 {\n padding-bottom: 3rem !important;\n }\n .pl-lg-5,\n .px-lg-5 {\n padding-left: 3rem !important;\n }\n .m-lg-n1 {\n margin: -0.25rem !important;\n }\n .mt-lg-n1,\n .my-lg-n1 {\n margin-top: -0.25rem !important;\n }\n .mr-lg-n1,\n .mx-lg-n1 {\n margin-right: -0.25rem !important;\n }\n .mb-lg-n1,\n .my-lg-n1 {\n margin-bottom: -0.25rem !important;\n }\n .ml-lg-n1,\n .mx-lg-n1 {\n margin-left: -0.25rem !important;\n }\n .m-lg-n2 {\n margin: -0.5rem !important;\n }\n .mt-lg-n2,\n .my-lg-n2 {\n margin-top: -0.5rem !important;\n }\n .mr-lg-n2,\n .mx-lg-n2 {\n margin-right: -0.5rem !important;\n }\n .mb-lg-n2,\n .my-lg-n2 {\n margin-bottom: -0.5rem !important;\n }\n .ml-lg-n2,\n .mx-lg-n2 {\n margin-left: -0.5rem !important;\n }\n .m-lg-n3 {\n margin: -1rem !important;\n }\n .mt-lg-n3,\n .my-lg-n3 {\n margin-top: -1rem !important;\n }\n .mr-lg-n3,\n .mx-lg-n3 {\n margin-right: -1rem !important;\n }\n .mb-lg-n3,\n .my-lg-n3 {\n margin-bottom: -1rem !important;\n }\n .ml-lg-n3,\n .mx-lg-n3 {\n margin-left: -1rem !important;\n }\n .m-lg-n4 {\n margin: -1.5rem !important;\n }\n .mt-lg-n4,\n .my-lg-n4 {\n margin-top: -1.5rem !important;\n }\n .mr-lg-n4,\n .mx-lg-n4 {\n margin-right: -1.5rem !important;\n }\n .mb-lg-n4,\n .my-lg-n4 {\n margin-bottom: -1.5rem !important;\n }\n .ml-lg-n4,\n .mx-lg-n4 {\n margin-left: -1.5rem !important;\n }\n .m-lg-n5 {\n margin: -3rem !important;\n }\n .mt-lg-n5,\n .my-lg-n5 {\n margin-top: -3rem !important;\n }\n .mr-lg-n5,\n .mx-lg-n5 {\n margin-right: -3rem !important;\n }\n .mb-lg-n5,\n .my-lg-n5 {\n margin-bottom: -3rem !important;\n }\n .ml-lg-n5,\n .mx-lg-n5 {\n margin-left: -3rem !important;\n }\n .m-lg-auto {\n margin: auto !important;\n }\n .mt-lg-auto,\n .my-lg-auto {\n margin-top: auto !important;\n }\n .mr-lg-auto,\n .mx-lg-auto {\n margin-right: auto !important;\n }\n .mb-lg-auto,\n .my-lg-auto {\n margin-bottom: auto !important;\n }\n .ml-lg-auto,\n .mx-lg-auto {\n margin-left: auto !important;\n }\n}\n\n@media (min-width: 1200px) {\n .m-xl-0 {\n margin: 0 !important;\n }\n .mt-xl-0,\n .my-xl-0 {\n margin-top: 0 !important;\n }\n .mr-xl-0,\n .mx-xl-0 {\n margin-right: 0 !important;\n }\n .mb-xl-0,\n .my-xl-0 {\n margin-bottom: 0 !important;\n }\n .ml-xl-0,\n .mx-xl-0 {\n margin-left: 0 !important;\n }\n .m-xl-1 {\n margin: 0.25rem !important;\n }\n .mt-xl-1,\n .my-xl-1 {\n margin-top: 0.25rem !important;\n }\n .mr-xl-1,\n .mx-xl-1 {\n margin-right: 0.25rem !important;\n }\n .mb-xl-1,\n .my-xl-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-xl-1,\n .mx-xl-1 {\n margin-left: 0.25rem !important;\n }\n .m-xl-2 {\n margin: 0.5rem !important;\n }\n .mt-xl-2,\n .my-xl-2 {\n margin-top: 0.5rem !important;\n }\n .mr-xl-2,\n .mx-xl-2 {\n margin-right: 0.5rem !important;\n }\n .mb-xl-2,\n .my-xl-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-xl-2,\n .mx-xl-2 {\n margin-left: 0.5rem !important;\n }\n .m-xl-3 {\n margin: 1rem !important;\n }\n .mt-xl-3,\n .my-xl-3 {\n margin-top: 1rem !important;\n }\n .mr-xl-3,\n .mx-xl-3 {\n margin-right: 1rem !important;\n }\n .mb-xl-3,\n .my-xl-3 {\n margin-bottom: 1rem !important;\n }\n .ml-xl-3,\n .mx-xl-3 {\n margin-left: 1rem !important;\n }\n .m-xl-4 {\n margin: 1.5rem !important;\n }\n .mt-xl-4,\n .my-xl-4 {\n margin-top: 1.5rem !important;\n }\n .mr-xl-4,\n .mx-xl-4 {\n margin-right: 1.5rem !important;\n }\n .mb-xl-4,\n .my-xl-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-xl-4,\n .mx-xl-4 {\n margin-left: 1.5rem !important;\n }\n .m-xl-5 {\n margin: 3rem !important;\n }\n .mt-xl-5,\n .my-xl-5 {\n margin-top: 3rem !important;\n }\n .mr-xl-5,\n .mx-xl-5 {\n margin-right: 3rem !important;\n }\n .mb-xl-5,\n .my-xl-5 {\n margin-bottom: 3rem !important;\n }\n .ml-xl-5,\n .mx-xl-5 {\n margin-left: 3rem !important;\n }\n .p-xl-0 {\n padding: 0 !important;\n }\n .pt-xl-0,\n .py-xl-0 {\n padding-top: 0 !important;\n }\n .pr-xl-0,\n .px-xl-0 {\n padding-right: 0 !important;\n }\n .pb-xl-0,\n .py-xl-0 {\n padding-bottom: 0 !important;\n }\n .pl-xl-0,\n .px-xl-0 {\n padding-left: 0 !important;\n }\n .p-xl-1 {\n padding: 0.25rem !important;\n }\n .pt-xl-1,\n .py-xl-1 {\n padding-top: 0.25rem !important;\n }\n .pr-xl-1,\n .px-xl-1 {\n padding-right: 0.25rem !important;\n }\n .pb-xl-1,\n .py-xl-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-xl-1,\n .px-xl-1 {\n padding-left: 0.25rem !important;\n }\n .p-xl-2 {\n padding: 0.5rem !important;\n }\n .pt-xl-2,\n .py-xl-2 {\n padding-top: 0.5rem !important;\n }\n .pr-xl-2,\n .px-xl-2 {\n padding-right: 0.5rem !important;\n }\n .pb-xl-2,\n .py-xl-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-xl-2,\n .px-xl-2 {\n padding-left: 0.5rem !important;\n }\n .p-xl-3 {\n padding: 1rem !important;\n }\n .pt-xl-3,\n .py-xl-3 {\n padding-top: 1rem !important;\n }\n .pr-xl-3,\n .px-xl-3 {\n padding-right: 1rem !important;\n }\n .pb-xl-3,\n .py-xl-3 {\n padding-bottom: 1rem !important;\n }\n .pl-xl-3,\n .px-xl-3 {\n padding-left: 1rem !important;\n }\n .p-xl-4 {\n padding: 1.5rem !important;\n }\n .pt-xl-4,\n .py-xl-4 {\n padding-top: 1.5rem !important;\n }\n .pr-xl-4,\n .px-xl-4 {\n padding-right: 1.5rem !important;\n }\n .pb-xl-4,\n .py-xl-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-xl-4,\n .px-xl-4 {\n padding-left: 1.5rem !important;\n }\n .p-xl-5 {\n padding: 3rem !important;\n }\n .pt-xl-5,\n .py-xl-5 {\n padding-top: 3rem !important;\n }\n .pr-xl-5,\n .px-xl-5 {\n padding-right: 3rem !important;\n }\n .pb-xl-5,\n .py-xl-5 {\n padding-bottom: 3rem !important;\n }\n .pl-xl-5,\n .px-xl-5 {\n padding-left: 3rem !important;\n }\n .m-xl-n1 {\n margin: -0.25rem !important;\n }\n .mt-xl-n1,\n .my-xl-n1 {\n margin-top: -0.25rem !important;\n }\n .mr-xl-n1,\n .mx-xl-n1 {\n margin-right: -0.25rem !important;\n }\n .mb-xl-n1,\n .my-xl-n1 {\n margin-bottom: -0.25rem !important;\n }\n .ml-xl-n1,\n .mx-xl-n1 {\n margin-left: -0.25rem !important;\n }\n .m-xl-n2 {\n margin: -0.5rem !important;\n }\n .mt-xl-n2,\n .my-xl-n2 {\n margin-top: -0.5rem !important;\n }\n .mr-xl-n2,\n .mx-xl-n2 {\n margin-right: -0.5rem !important;\n }\n .mb-xl-n2,\n .my-xl-n2 {\n margin-bottom: -0.5rem !important;\n }\n .ml-xl-n2,\n .mx-xl-n2 {\n margin-left: -0.5rem !important;\n }\n .m-xl-n3 {\n margin: -1rem !important;\n }\n .mt-xl-n3,\n .my-xl-n3 {\n margin-top: -1rem !important;\n }\n .mr-xl-n3,\n .mx-xl-n3 {\n margin-right: -1rem !important;\n }\n .mb-xl-n3,\n .my-xl-n3 {\n margin-bottom: -1rem !important;\n }\n .ml-xl-n3,\n .mx-xl-n3 {\n margin-left: -1rem !important;\n }\n .m-xl-n4 {\n margin: -1.5rem !important;\n }\n .mt-xl-n4,\n .my-xl-n4 {\n margin-top: -1.5rem !important;\n }\n .mr-xl-n4,\n .mx-xl-n4 {\n margin-right: -1.5rem !important;\n }\n .mb-xl-n4,\n .my-xl-n4 {\n margin-bottom: -1.5rem !important;\n }\n .ml-xl-n4,\n .mx-xl-n4 {\n margin-left: -1.5rem !important;\n }\n .m-xl-n5 {\n margin: -3rem !important;\n }\n .mt-xl-n5,\n .my-xl-n5 {\n margin-top: -3rem !important;\n }\n .mr-xl-n5,\n .mx-xl-n5 {\n margin-right: -3rem !important;\n }\n .mb-xl-n5,\n .my-xl-n5 {\n margin-bottom: -3rem !important;\n }\n .ml-xl-n5,\n .mx-xl-n5 {\n margin-left: -3rem !important;\n }\n .m-xl-auto {\n margin: auto !important;\n }\n .mt-xl-auto,\n .my-xl-auto {\n margin-top: auto !important;\n }\n .mr-xl-auto,\n .mx-xl-auto {\n margin-right: auto !important;\n }\n .mb-xl-auto,\n .my-xl-auto {\n margin-bottom: auto !important;\n }\n .ml-xl-auto,\n .mx-xl-auto {\n margin-left: auto !important;\n }\n}\n\n.text-monospace {\n font-family: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace !important;\n}\n\n.text-justify {\n text-align: justify !important;\n}\n\n.text-wrap {\n white-space: normal !important;\n}\n\n.text-nowrap {\n white-space: nowrap !important;\n}\n\n.text-truncate {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.text-left {\n text-align: left !important;\n}\n\n.text-right {\n text-align: right !important;\n}\n\n.text-center {\n text-align: center !important;\n}\n\n@media (min-width: 576px) {\n .text-sm-left {\n text-align: left !important;\n }\n .text-sm-right {\n text-align: right !important;\n }\n .text-sm-center {\n text-align: center !important;\n }\n}\n\n@media (min-width: 768px) {\n .text-md-left {\n text-align: left !important;\n }\n .text-md-right {\n text-align: right !important;\n }\n .text-md-center {\n text-align: center !important;\n }\n}\n\n@media (min-width: 992px) {\n .text-lg-left {\n text-align: left !important;\n }\n .text-lg-right {\n text-align: right !important;\n }\n .text-lg-center {\n text-align: center !important;\n }\n}\n\n@media (min-width: 1200px) {\n .text-xl-left {\n text-align: left !important;\n }\n .text-xl-right {\n text-align: right !important;\n }\n .text-xl-center {\n text-align: center !important;\n }\n}\n\n.text-lowercase {\n text-transform: lowercase !important;\n}\n\n.text-uppercase {\n text-transform: uppercase !important;\n}\n\n.text-capitalize {\n text-transform: capitalize !important;\n}\n\n.font-weight-light {\n font-weight: 300 !important;\n}\n\n.font-weight-lighter {\n font-weight: lighter !important;\n}\n\n.font-weight-normal {\n font-weight: 400 !important;\n}\n\n.font-weight-bold {\n font-weight: 700 !important;\n}\n\n.font-weight-bolder {\n font-weight: bolder !important;\n}\n\n.font-italic {\n font-style: italic !important;\n}\n\n.text-white {\n color: #fff !important;\n}\n\n.text-primary {\n color: #007bff !important;\n}\n\na.text-primary:hover, a.text-primary:focus {\n color: #0056b3 !important;\n}\n\n.text-secondary {\n color: #6c757d !important;\n}\n\na.text-secondary:hover, a.text-secondary:focus {\n color: #494f54 !important;\n}\n\n.text-success {\n color: #28a745 !important;\n}\n\na.text-success:hover, a.text-success:focus {\n color: #19692c !important;\n}\n\n.text-info {\n color: #17a2b8 !important;\n}\n\na.text-info:hover, a.text-info:focus {\n color: #0f6674 !important;\n}\n\n.text-warning {\n color: #ffc107 !important;\n}\n\na.text-warning:hover, a.text-warning:focus {\n color: #ba8b00 !important;\n}\n\n.text-danger {\n color: #dc3545 !important;\n}\n\na.text-danger:hover, a.text-danger:focus {\n color: #a71d2a !important;\n}\n\n.text-light {\n color: #f8f9fa !important;\n}\n\na.text-light:hover, a.text-light:focus {\n color: #cbd3da !important;\n}\n\n.text-dark {\n color: #343a40 !important;\n}\n\na.text-dark:hover, a.text-dark:focus {\n color: #121416 !important;\n}\n\n.text-body {\n color: #212529 !important;\n}\n\n.text-muted {\n color: #6c757d !important;\n}\n\n.text-black-50 {\n color: rgba(0, 0, 0, 0.5) !important;\n}\n\n.text-white-50 {\n color: rgba(255, 255, 255, 0.5) !important;\n}\n\n.text-hide {\n font: 0/0 a;\n color: transparent;\n text-shadow: none;\n background-color: transparent;\n border: 0;\n}\n\n.text-decoration-none {\n text-decoration: none !important;\n}\n\n.text-break {\n word-break: break-word !important;\n overflow-wrap: break-word !important;\n}\n\n.text-reset {\n color: inherit !important;\n}\n\n.visible {\n visibility: visible !important;\n}\n\n.invisible {\n visibility: hidden !important;\n}\n\n@media print {\n *,\n *::before,\n *::after {\n text-shadow: none !important;\n box-shadow: none !important;\n }\n a:not(.btn) {\n text-decoration: underline;\n }\n abbr[title]::after {\n content: \" (\" attr(title) \")\";\n }\n pre {\n white-space: pre-wrap !important;\n }\n pre,\n blockquote {\n border: 1px solid #adb5bd;\n page-break-inside: avoid;\n }\n thead {\n display: table-header-group;\n }\n tr,\n img {\n page-break-inside: avoid;\n }\n p,\n h2,\n h3 {\n orphans: 3;\n widows: 3;\n }\n h2,\n h3 {\n page-break-after: avoid;\n }\n @page {\n size: a3;\n }\n body {\n min-width: 992px !important;\n }\n .container {\n min-width: 992px !important;\n }\n .navbar {\n display: none;\n }\n .badge {\n border: 1px solid #000;\n }\n .table {\n border-collapse: collapse !important;\n }\n .table td,\n .table th {\n background-color: #fff !important;\n }\n .table-bordered th,\n .table-bordered td {\n border: 1px solid #dee2e6 !important;\n }\n .table-dark {\n color: inherit;\n }\n .table-dark th,\n .table-dark td,\n .table-dark thead th,\n .table-dark tbody + tbody {\n border-color: #dee2e6;\n }\n .table .thead-dark th {\n color: inherit;\n border-color: #dee2e6;\n }\n}\n\n/*# sourceMappingURL=bootstrap.css.map */","// Hover mixin and `$enable-hover-media-query` are deprecated.\n//\n// Originally added during our alphas and maintained during betas, this mixin was\n// designed to prevent `:hover` stickiness on iOS-an issue where hover styles\n// would persist after initial touch.\n//\n// For backward compatibility, we've kept these mixins and updated them to\n// always return their regular pseudo-classes instead of a shimmed media query.\n//\n// Issue: https://github.com/twbs/bootstrap/issues/25195\n\n@mixin hover {\n &:hover { @content; }\n}\n\n@mixin hover-focus {\n &:hover,\n &:focus {\n @content;\n }\n}\n\n@mixin plain-hover-focus {\n &,\n &:hover,\n &:focus {\n @content;\n }\n}\n\n@mixin hover-focus-active {\n &:hover,\n &:focus,\n &:active {\n @content;\n }\n}\n","// stylelint-disable declaration-no-important, selector-list-comma-newline-after\n\n//\n// Headings\n//\n\nh1, h2, h3, h4, h5, h6,\n.h1, .h2, .h3, .h4, .h5, .h6 {\n margin-bottom: $headings-margin-bottom;\n font-family: $headings-font-family;\n font-weight: $headings-font-weight;\n line-height: $headings-line-height;\n color: $headings-color;\n}\n\nh1, .h1 { @include font-size($h1-font-size); }\nh2, .h2 { @include font-size($h2-font-size); }\nh3, .h3 { @include font-size($h3-font-size); }\nh4, .h4 { @include font-size($h4-font-size); }\nh5, .h5 { @include font-size($h5-font-size); }\nh6, .h6 { @include font-size($h6-font-size); }\n\n.lead {\n @include font-size($lead-font-size);\n font-weight: $lead-font-weight;\n}\n\n// Type display classes\n.display-1 {\n @include font-size($display1-size);\n font-weight: $display1-weight;\n line-height: $display-line-height;\n}\n.display-2 {\n @include font-size($display2-size);\n font-weight: $display2-weight;\n line-height: $display-line-height;\n}\n.display-3 {\n @include font-size($display3-size);\n font-weight: $display3-weight;\n line-height: $display-line-height;\n}\n.display-4 {\n @include font-size($display4-size);\n font-weight: $display4-weight;\n line-height: $display-line-height;\n}\n\n\n//\n// Horizontal rules\n//\n\nhr {\n margin-top: $hr-margin-y;\n margin-bottom: $hr-margin-y;\n border: 0;\n border-top: $hr-border-width solid $hr-border-color;\n}\n\n\n//\n// Emphasis\n//\n\nsmall,\n.small {\n @include font-size($small-font-size);\n font-weight: $font-weight-normal;\n}\n\nmark,\n.mark {\n padding: $mark-padding;\n background-color: $mark-bg;\n}\n\n\n//\n// Lists\n//\n\n.list-unstyled {\n @include list-unstyled;\n}\n\n// Inline turns list items into inline-block\n.list-inline {\n @include list-unstyled;\n}\n.list-inline-item {\n display: inline-block;\n\n &:not(:last-child) {\n margin-right: $list-inline-padding;\n }\n}\n\n\n//\n// Misc\n//\n\n// Builds on `abbr`\n.initialism {\n @include font-size(90%);\n text-transform: uppercase;\n}\n\n// Blockquotes\n.blockquote {\n margin-bottom: $spacer;\n @include font-size($blockquote-font-size);\n}\n\n.blockquote-footer {\n display: block;\n @include font-size($blockquote-small-font-size);\n color: $blockquote-small-color;\n\n &::before {\n content: \"\\2014\\00A0\"; // em dash, nbsp\n }\n}\n","// Lists\n\n// Unstyled keeps list items block level, just removes default browser padding and list-style\n@mixin list-unstyled {\n padding-left: 0;\n list-style: none;\n}\n","// Responsive images (ensure images don't scale beyond their parents)\n//\n// This is purposefully opt-in via an explicit class rather than being the default for all ``s.\n// We previously tried the \"images are responsive by default\" approach in Bootstrap v2,\n// and abandoned it in Bootstrap v3 because it breaks lots of third-party widgets (including Google Maps)\n// which weren't expecting the images within themselves to be involuntarily resized.\n// See also https://github.com/twbs/bootstrap/issues/18178\n.img-fluid {\n @include img-fluid;\n}\n\n\n// Image thumbnails\n.img-thumbnail {\n padding: $thumbnail-padding;\n background-color: $thumbnail-bg;\n border: $thumbnail-border-width solid $thumbnail-border-color;\n @include border-radius($thumbnail-border-radius);\n @include box-shadow($thumbnail-box-shadow);\n\n // Keep them at most 100% wide\n @include img-fluid;\n}\n\n//\n// Figures\n//\n\n.figure {\n // Ensures the caption's text aligns with the image.\n display: inline-block;\n}\n\n.figure-img {\n margin-bottom: $spacer / 2;\n line-height: 1;\n}\n\n.figure-caption {\n @include font-size($figure-caption-font-size);\n color: $figure-caption-color;\n}\n","// Image Mixins\n// - Responsive image\n// - Retina image\n\n\n// Responsive image\n//\n// Keep images from scaling beyond the width of their parents.\n\n@mixin img-fluid {\n // Part 1: Set a maximum relative to the parent\n max-width: 100%;\n // Part 2: Override the height to auto, otherwise images will be stretched\n // when setting a width and height attribute on the img element.\n height: auto;\n}\n\n\n// Retina image\n//\n// Short retina mixin for setting background-image and -size.\n\n@mixin img-retina($file-1x, $file-2x, $width-1x, $height-1x) {\n background-image: url($file-1x);\n\n // Autoprefixer takes care of adding -webkit-min-device-pixel-ratio and -o-min-device-pixel-ratio,\n // but doesn't convert dppx=>dpi.\n // There's no such thing as unprefixed min-device-pixel-ratio since it's nonstandard.\n // Compatibility info: https://caniuse.com/#feat=css-media-resolution\n @media only screen and (min-resolution: 192dpi), // IE9-11 don't support dppx\n only screen and (min-resolution: 2dppx) { // Standardized\n background-image: url($file-2x);\n background-size: $width-1x $height-1x;\n }\n @include deprecate(\"`img-retina()`\", \"v4.3.0\", \"v5\");\n}\n","// stylelint-disable property-blacklist\n// Single side border-radius\n\n@mixin border-radius($radius: $border-radius, $fallback-border-radius: false) {\n @if $enable-rounded {\n border-radius: $radius;\n }\n @else if $fallback-border-radius != false {\n border-radius: $fallback-border-radius;\n }\n}\n\n@mixin border-top-radius($radius) {\n @if $enable-rounded {\n border-top-left-radius: $radius;\n border-top-right-radius: $radius;\n }\n}\n\n@mixin border-right-radius($radius) {\n @if $enable-rounded {\n border-top-right-radius: $radius;\n border-bottom-right-radius: $radius;\n }\n}\n\n@mixin border-bottom-radius($radius) {\n @if $enable-rounded {\n border-bottom-right-radius: $radius;\n border-bottom-left-radius: $radius;\n }\n}\n\n@mixin border-left-radius($radius) {\n @if $enable-rounded {\n border-top-left-radius: $radius;\n border-bottom-left-radius: $radius;\n }\n}\n\n@mixin border-top-left-radius($radius) {\n @if $enable-rounded {\n border-top-left-radius: $radius;\n }\n}\n\n@mixin border-top-right-radius($radius) {\n @if $enable-rounded {\n border-top-right-radius: $radius;\n }\n}\n\n@mixin border-bottom-right-radius($radius) {\n @if $enable-rounded {\n border-bottom-right-radius: $radius;\n }\n}\n\n@mixin border-bottom-left-radius($radius) {\n @if $enable-rounded {\n border-bottom-left-radius: $radius;\n }\n}\n","// Inline code\ncode {\n @include font-size($code-font-size);\n color: $code-color;\n word-break: break-word;\n\n // Streamline the style when inside anchors to avoid broken underline and more\n a > & {\n color: inherit;\n }\n}\n\n// User input typically entered via keyboard\nkbd {\n padding: $kbd-padding-y $kbd-padding-x;\n @include font-size($kbd-font-size);\n color: $kbd-color;\n background-color: $kbd-bg;\n @include border-radius($border-radius-sm);\n @include box-shadow($kbd-box-shadow);\n\n kbd {\n padding: 0;\n @include font-size(100%);\n font-weight: $nested-kbd-font-weight;\n @include box-shadow(none);\n }\n}\n\n// Blocks of code\npre {\n display: block;\n @include font-size($code-font-size);\n color: $pre-color;\n\n // Account for some code outputs that place code tags in pre tags\n code {\n @include font-size(inherit);\n color: inherit;\n word-break: normal;\n }\n}\n\n// Enable scrollable blocks of code\n.pre-scrollable {\n max-height: $pre-scrollable-max-height;\n overflow-y: scroll;\n}\n","// Container widths\n//\n// Set the container width, and override it for fixed navbars in media queries.\n\n@if $enable-grid-classes {\n .container {\n @include make-container();\n @include make-container-max-widths();\n }\n}\n\n// Fluid container\n//\n// Utilizes the mixin meant for fixed width containers, but with 100% width for\n// fluid, full width layouts.\n\n@if $enable-grid-classes {\n .container-fluid {\n @include make-container();\n }\n}\n\n// Row\n//\n// Rows contain and clear the floats of your columns.\n\n@if $enable-grid-classes {\n .row {\n @include make-row();\n }\n\n // Remove the negative margin from default .row, then the horizontal padding\n // from all immediate children columns (to prevent runaway style inheritance).\n .no-gutters {\n margin-right: 0;\n margin-left: 0;\n\n > .col,\n > [class*=\"col-\"] {\n padding-right: 0;\n padding-left: 0;\n }\n }\n}\n\n// Columns\n//\n// Common styles for small and large grid columns\n\n@if $enable-grid-classes {\n @include make-grid-columns();\n}\n","/// Grid system\n//\n// Generate semantic grid columns with these mixins.\n\n@mixin make-container($gutter: $grid-gutter-width) {\n width: 100%;\n padding-right: $gutter / 2;\n padding-left: $gutter / 2;\n margin-right: auto;\n margin-left: auto;\n}\n\n\n// For each breakpoint, define the maximum width of the container in a media query\n@mixin make-container-max-widths($max-widths: $container-max-widths, $breakpoints: $grid-breakpoints) {\n @each $breakpoint, $container-max-width in $max-widths {\n @include media-breakpoint-up($breakpoint, $breakpoints) {\n max-width: $container-max-width;\n }\n }\n}\n\n@mixin make-row($gutter: $grid-gutter-width) {\n display: flex;\n flex-wrap: wrap;\n margin-right: -$gutter / 2;\n margin-left: -$gutter / 2;\n}\n\n@mixin make-col-ready($gutter: $grid-gutter-width) {\n position: relative;\n // Prevent columns from becoming too narrow when at smaller grid tiers by\n // always setting `width: 100%;`. This works because we use `flex` values\n // later on to override this initial width.\n width: 100%;\n padding-right: $gutter / 2;\n padding-left: $gutter / 2;\n}\n\n@mixin make-col($size, $columns: $grid-columns) {\n flex: 0 0 percentage($size / $columns);\n // Add a `max-width` to ensure content within each column does not blow out\n // the width of the column. Applies to IE10+ and Firefox. Chrome and Safari\n // do not appear to require this.\n max-width: percentage($size / $columns);\n}\n\n@mixin make-col-offset($size, $columns: $grid-columns) {\n $num: $size / $columns;\n margin-left: if($num == 0, 0, percentage($num));\n}\n","// Breakpoint viewport sizes and media queries.\n//\n// Breakpoints are defined as a map of (name: minimum width), order from small to large:\n//\n// (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px)\n//\n// The map defined in the `$grid-breakpoints` global variable is used as the `$breakpoints` argument by default.\n\n// Name of the next breakpoint, or null for the last breakpoint.\n//\n// >> breakpoint-next(sm)\n// md\n// >> breakpoint-next(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// md\n// >> breakpoint-next(sm, $breakpoint-names: (xs sm md lg xl))\n// md\n@function breakpoint-next($name, $breakpoints: $grid-breakpoints, $breakpoint-names: map-keys($breakpoints)) {\n $n: index($breakpoint-names, $name);\n @return if($n != null and $n < length($breakpoint-names), nth($breakpoint-names, $n + 1), null);\n}\n\n// Minimum breakpoint width. Null for the smallest (first) breakpoint.\n//\n// >> breakpoint-min(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// 576px\n@function breakpoint-min($name, $breakpoints: $grid-breakpoints) {\n $min: map-get($breakpoints, $name);\n @return if($min != 0, $min, null);\n}\n\n// Maximum breakpoint width. Null for the largest (last) breakpoint.\n// The maximum value is calculated as the minimum of the next one less 0.02px\n// to work around the limitations of `min-` and `max-` prefixes and viewports with fractional widths.\n// See https://www.w3.org/TR/mediaqueries-4/#mq-min-max\n// Uses 0.02px rather than 0.01px to work around a current rounding bug in Safari.\n// See https://bugs.webkit.org/show_bug.cgi?id=178261\n//\n// >> breakpoint-max(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// 767.98px\n@function breakpoint-max($name, $breakpoints: $grid-breakpoints) {\n $next: breakpoint-next($name, $breakpoints);\n @return if($next, breakpoint-min($next, $breakpoints) - .02, null);\n}\n\n// Returns a blank string if smallest breakpoint, otherwise returns the name with a dash in front.\n// Useful for making responsive utilities.\n//\n// >> breakpoint-infix(xs, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// \"\" (Returns a blank string)\n// >> breakpoint-infix(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// \"-sm\"\n@function breakpoint-infix($name, $breakpoints: $grid-breakpoints) {\n @return if(breakpoint-min($name, $breakpoints) == null, \"\", \"-#{$name}\");\n}\n\n// Media of at least the minimum breakpoint width. No query for the smallest breakpoint.\n// Makes the @content apply to the given breakpoint and wider.\n@mixin media-breakpoint-up($name, $breakpoints: $grid-breakpoints) {\n $min: breakpoint-min($name, $breakpoints);\n @if $min {\n @media (min-width: $min) {\n @content;\n }\n } @else {\n @content;\n }\n}\n\n// Media of at most the maximum breakpoint width. No query for the largest breakpoint.\n// Makes the @content apply to the given breakpoint and narrower.\n@mixin media-breakpoint-down($name, $breakpoints: $grid-breakpoints) {\n $max: breakpoint-max($name, $breakpoints);\n @if $max {\n @media (max-width: $max) {\n @content;\n }\n } @else {\n @content;\n }\n}\n\n// Media that spans multiple breakpoint widths.\n// Makes the @content apply between the min and max breakpoints\n@mixin media-breakpoint-between($lower, $upper, $breakpoints: $grid-breakpoints) {\n $min: breakpoint-min($lower, $breakpoints);\n $max: breakpoint-max($upper, $breakpoints);\n\n @if $min != null and $max != null {\n @media (min-width: $min) and (max-width: $max) {\n @content;\n }\n } @else if $max == null {\n @include media-breakpoint-up($lower, $breakpoints) {\n @content;\n }\n } @else if $min == null {\n @include media-breakpoint-down($upper, $breakpoints) {\n @content;\n }\n }\n}\n\n// Media between the breakpoint's minimum and maximum widths.\n// No minimum for the smallest breakpoint, and no maximum for the largest one.\n// Makes the @content apply only to the given breakpoint, not viewports any wider or narrower.\n@mixin media-breakpoint-only($name, $breakpoints: $grid-breakpoints) {\n $min: breakpoint-min($name, $breakpoints);\n $max: breakpoint-max($name, $breakpoints);\n\n @if $min != null and $max != null {\n @media (min-width: $min) and (max-width: $max) {\n @content;\n }\n } @else if $max == null {\n @include media-breakpoint-up($name, $breakpoints) {\n @content;\n }\n } @else if $min == null {\n @include media-breakpoint-down($name, $breakpoints) {\n @content;\n }\n }\n}\n","// Framework grid generation\n//\n// Used only by Bootstrap to generate the correct number of grid classes given\n// any value of `$grid-columns`.\n\n@mixin make-grid-columns($columns: $grid-columns, $gutter: $grid-gutter-width, $breakpoints: $grid-breakpoints) {\n // Common properties for all breakpoints\n %grid-column {\n position: relative;\n width: 100%;\n padding-right: $gutter / 2;\n padding-left: $gutter / 2;\n }\n\n @each $breakpoint in map-keys($breakpoints) {\n $infix: breakpoint-infix($breakpoint, $breakpoints);\n\n // Allow columns to stretch full width below their breakpoints\n @for $i from 1 through $columns {\n .col#{$infix}-#{$i} {\n @extend %grid-column;\n }\n }\n .col#{$infix},\n .col#{$infix}-auto {\n @extend %grid-column;\n }\n\n @include media-breakpoint-up($breakpoint, $breakpoints) {\n // Provide basic `.col-{bp}` classes for equal-width flexbox columns\n .col#{$infix} {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .col#{$infix}-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%; // Reset earlier grid tiers\n }\n\n @for $i from 1 through $columns {\n .col#{$infix}-#{$i} {\n @include make-col($i, $columns);\n }\n }\n\n .order#{$infix}-first { order: -1; }\n\n .order#{$infix}-last { order: $columns + 1; }\n\n @for $i from 0 through $columns {\n .order#{$infix}-#{$i} { order: $i; }\n }\n\n // `$columns - 1` because offsetting by the width of an entire row isn't possible\n @for $i from 0 through ($columns - 1) {\n @if not ($infix == \"\" and $i == 0) { // Avoid emitting useless .offset-0\n .offset#{$infix}-#{$i} {\n @include make-col-offset($i, $columns);\n }\n }\n }\n }\n }\n}\n","//\n// Basic Bootstrap table\n//\n\n.table {\n width: 100%;\n margin-bottom: $spacer;\n color: $table-color;\n background-color: $table-bg; // Reset for nesting within parents with `background-color`.\n\n th,\n td {\n padding: $table-cell-padding;\n vertical-align: top;\n border-top: $table-border-width solid $table-border-color;\n }\n\n thead th {\n vertical-align: bottom;\n border-bottom: (2 * $table-border-width) solid $table-border-color;\n }\n\n tbody + tbody {\n border-top: (2 * $table-border-width) solid $table-border-color;\n }\n}\n\n\n//\n// Condensed table w/ half padding\n//\n\n.table-sm {\n th,\n td {\n padding: $table-cell-padding-sm;\n }\n}\n\n\n// Border versions\n//\n// Add or remove borders all around the table and between all the columns.\n\n.table-bordered {\n border: $table-border-width solid $table-border-color;\n\n th,\n td {\n border: $table-border-width solid $table-border-color;\n }\n\n thead {\n th,\n td {\n border-bottom-width: 2 * $table-border-width;\n }\n }\n}\n\n.table-borderless {\n th,\n td,\n thead th,\n tbody + tbody {\n border: 0;\n }\n}\n\n// Zebra-striping\n//\n// Default zebra-stripe styles (alternating gray and transparent backgrounds)\n\n.table-striped {\n tbody tr:nth-of-type(#{$table-striped-order}) {\n background-color: $table-accent-bg;\n }\n}\n\n\n// Hover effect\n//\n// Placed here since it has to come after the potential zebra striping\n\n.table-hover {\n tbody tr {\n @include hover {\n color: $table-hover-color;\n background-color: $table-hover-bg;\n }\n }\n}\n\n\n// Table backgrounds\n//\n// Exact selectors below required to override `.table-striped` and prevent\n// inheritance to nested tables.\n\n@each $color, $value in $theme-colors {\n @include table-row-variant($color, theme-color-level($color, $table-bg-level), theme-color-level($color, $table-border-level));\n}\n\n@include table-row-variant(active, $table-active-bg);\n\n\n// Dark styles\n//\n// Same table markup, but inverted color scheme: dark background and light text.\n\n// stylelint-disable-next-line no-duplicate-selectors\n.table {\n .thead-dark {\n th {\n color: $table-dark-color;\n background-color: $table-dark-bg;\n border-color: $table-dark-border-color;\n }\n }\n\n .thead-light {\n th {\n color: $table-head-color;\n background-color: $table-head-bg;\n border-color: $table-border-color;\n }\n }\n}\n\n.table-dark {\n color: $table-dark-color;\n background-color: $table-dark-bg;\n\n th,\n td,\n thead th {\n border-color: $table-dark-border-color;\n }\n\n &.table-bordered {\n border: 0;\n }\n\n &.table-striped {\n tbody tr:nth-of-type(odd) {\n background-color: $table-dark-accent-bg;\n }\n }\n\n &.table-hover {\n tbody tr {\n @include hover {\n color: $table-dark-hover-color;\n background-color: $table-dark-hover-bg;\n }\n }\n }\n}\n\n\n// Responsive tables\n//\n// Generate series of `.table-responsive-*` classes for configuring the screen\n// size of where your table will overflow.\n\n.table-responsive {\n @each $breakpoint in map-keys($grid-breakpoints) {\n $next: breakpoint-next($breakpoint, $grid-breakpoints);\n $infix: breakpoint-infix($next, $grid-breakpoints);\n\n &#{$infix} {\n @include media-breakpoint-down($breakpoint) {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n\n // Prevent double border on horizontal scroll due to use of `display: block;`\n > .table-bordered {\n border: 0;\n }\n }\n }\n }\n}\n","// Tables\n\n@mixin table-row-variant($state, $background, $border: null) {\n // Exact selectors below required to override `.table-striped` and prevent\n // inheritance to nested tables.\n .table-#{$state} {\n &,\n > th,\n > td {\n background-color: $background;\n }\n\n @if $border != null {\n th,\n td,\n thead th,\n tbody + tbody {\n border-color: $border;\n }\n }\n }\n\n // Hover states for `.table-hover`\n // Note: this is not available for cells or rows within `thead` or `tfoot`.\n .table-hover {\n $hover-background: darken($background, 5%);\n\n .table-#{$state} {\n @include hover {\n background-color: $hover-background;\n\n > td,\n > th {\n background-color: $hover-background;\n }\n }\n }\n }\n}\n","// stylelint-disable selector-no-qualifying-type\n\n//\n// Textual form controls\n//\n\n.form-control {\n display: block;\n width: 100%;\n height: $input-height;\n padding: $input-padding-y $input-padding-x;\n font-family: $input-font-family;\n @include font-size($input-font-size);\n font-weight: $input-font-weight;\n line-height: $input-line-height;\n color: $input-color;\n background-color: $input-bg;\n background-clip: padding-box;\n border: $input-border-width solid $input-border-color;\n\n // Note: This has no effect on `s in CSS.\n @include border-radius($input-border-radius, 0);\n\n @include box-shadow($input-box-shadow);\n @include transition($input-transition);\n\n // Unstyle the caret on ` receives focus\n // in IE and (under certain conditions) Edge, as it looks bad and cannot be made to\n // match the appearance of the native widget.\n // See https://github.com/twbs/bootstrap/issues/19398.\n color: $input-color;\n background-color: $input-bg;\n }\n}\n\n// Make file inputs better match text inputs by forcing them to new lines.\n.form-control-file,\n.form-control-range {\n display: block;\n width: 100%;\n}\n\n\n//\n// Labels\n//\n\n// For use with horizontal and inline forms, when you need the label (or legend)\n// text to align with the form controls.\n.col-form-label {\n padding-top: calc(#{$input-padding-y} + #{$input-border-width});\n padding-bottom: calc(#{$input-padding-y} + #{$input-border-width});\n margin-bottom: 0; // Override the `