*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html,body{margin:0;padding:0}html{font-family:helvetica neue,Helvetica,Arial,sans-serif;font-size:16px;line-height:1.5}@media(min-width:38em){html{font-size:20px}}body{color:#515151;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}a{color:var(--link-color);text-decoration:none}a:hover,a:focus{text-decoration:underline}h1,h2,h3,h4,h5,h6{margin-bottom:.5rem;font-weight:400;line-height:1.25;color:#313131;text-rendering:optimizeLegibility}h1{font-size:2rem}h2{margin-top:1rem;font-size:1.5rem}h3{margin-top:1.5rem;font-size:1.25rem}h4,h5,h6{margin-top:1rem;font-size:1rem}p{margin-top:0;margin-bottom:1rem}strong{color:#303030}ul,ol,dl{margin-top:0;margin-bottom:1rem}dt{font-weight:700}dd{margin-bottom:.5rem}hr{position:relative;margin:1.5rem 0;border:0;border-top:2px solid #ccc;border-bottom:1px solid #fff}abbr{font-size:85%;font-weight:700;color:#555;text-transform:uppercase}abbr[title]{cursor:help;border-bottom:1px dotted #e5e5e5}code,pre{font-family:Menlo,Monaco,courier new,monospace}code{padding:.25em .5em;font-size:85%;color:#bf616a;background-color:#f9f9f9;border-radius:3px}pre{display:block;margin-top:0;margin-bottom:1rem;padding:1rem;font-size:.8rem;line-height:1.4;white-space:pre;white-space:pre-wrap;word-break:break-all;word-wrap:break-word;background-color:#f9f9f9}pre code{padding:0;font-size:100%;color:inherit;background-color:transparent}.highlight{margin-bottom:1rem;border-radius:4px}.highlight pre{margin-bottom:0}blockquote{padding:.5rem 1rem;margin:.8rem 0;color:#7a7a7a;border-left:.25rem solid #e5e5e5}blockquote p:last-child{margin-bottom:0}@media(min-width:30em){blockquote{padding-right:5rem;padding-left:1.25rem}.container{margin-right:auto}}img{display:block;margin:0 0 1rem;border-radius:5px;max-width:100%;height:auto}.lead{font-size:1.25rem;font-weight:300}.message{margin-bottom:1rem;padding:1rem;color:#717171;background-color:#f9f9f9}.container{max-width:38rem;padding-left:1rem;padding-right:1rem}.masthead{padding-top:1rem;padding-bottom:1rem;margin-bottom:3rem}.masthead-title{margin-top:0;margin-bottom:0;color:#505050}.masthead-title a{color:#505050}.masthead-title small{font-size:75%;font-weight:400;color:silver;letter-spacing:0}.page,.post{margin-bottom:4em}.page-title,.post-title,.post-title a{color:#303030}.page-title,.post-title{margin-top:0}.post-date{display:block;margin-top:-.5rem;margin-bottom:1rem;color:#9a9a9a}.related{padding-top:2rem;padding-bottom:2rem;border-top:1px solid #eee}.related-posts{padding-left:0;list-style:none}.related-posts h3{margin-top:0}.related-posts li small{font-size:75%;color:#999}.related-posts li a:hover{color:#268bd2;text-decoration:none}.related-posts li a:hover small{color:inherit}.comments{margin-top:3em}.pagination{overflow:hidden;margin-left:-1rem;margin-right:-1rem;font-family:pt sans,Helvetica,Arial,sans-serif;color:#ccc;text-align:center}.pagination-item{display:block;padding:1rem;border:1px solid #eee}.pagination-item:first-child{margin-bottom:-1px}a.pagination-item:hover{background-color:#f5f5f5}@media(min-width:30em){.pagination{margin:3rem 0}.pagination-item{float:left;width:50%}.pagination-item:first-child{margin-bottom:0;border-top-left-radius:4px;border-bottom-left-radius:4px}.pagination-item:last-child{margin-left:-1px;border-top-right-radius:4px;border-bottom-right-radius:4px}}.copy-success{background:0 0;border:none;background-image:url(/icons/copy_success.svg);width:24px;height:24px;background-size:contain;background-repeat:no-repeat;background-position:50%;position:absolute;top:0;right:0;z-index:10}.copy-button{background:0 0;border:none;width:24px;height:24px;background-image:url(/icons/copy_content.svg);background-size:contain;background-repeat:no-repeat;background-position:50%;position:absolute;top:0;right:0;z-index:10;padding:10px;cursor:pointer;transition:opacity .3s ease}.copy-button:hover{opacity:.8}.copy-button:active{transform:scale(.95);opacity:.7}.code-container{position:relative;display:inline-block;width:100%}.hll{background-color:#ffc}.c{color:#999}.err{color:#a00;background-color:#faa}.k{color:#069}.o{color:#555}.cm{color:#09f;font-style:italic}.cp{color:#099}.c1{color:#999}.cs{color:#999}.gd{background-color:#fcc;border:1px solid #c00}.ge{font-style:italic}.gr{color:red}.gh{color:#030}.gi{background-color:#cfc;border:1px solid #0c0}.go{color:#aaa}.gp{color:#009}.gs{}.gu{color:#030}.gt{color:#9c6}.kc{color:#069}.kd{color:#069}.kn{color:#069}.kp{color:#069}.kr{color:#069}.kt{color:#078}.m{color:#f60}.s{color:#d44950}.na{color:#4f9fcf}.nb{color:#366}.nc{color:#0a8}.no{color:#360}.nd{color:#99f}.ni{color:#999}.ne{color:#c00}.nf{color:#c0f}.nl{color:#99f}.nn{color:#0cf}.nt{color:#2f6f9f}.nv{color:#033}.ow{color:#000}.w{color:#bbb}.mf{color:#f60}.mh{color:#f60}.mi{color:#f60}.mo{color:#f60}.sb{color:#c30}.sc{color:#c30}.sd{color:#c30;font-style:italic}.s2{color:#c30}.se{color:#c30}.sh{color:#c30}.si{color:#a00}.sx{color:#c30}.sr{color:#3aa}.s1{color:#c30}.ss{color:#fc3}.bp{color:#366}.vc{color:#033}.vg{color:#033}.vi{color:#033}.il{color:#f60}.css .o,.css .o+.nt,.css .nt+.nt{color:#999}html{font-family:fira sans,sans-serif;font-weight:300}@media(min-width:48em){html{font-size:16px}}@media(min-width:58em){html{font-size:20px}}pre{tab-size:4}.sidebar{text-align:center;padding:2rem 1rem;color:rgba(255,255,255,.5);flex-shrink:0}@media(min-width:48em){.sidebar{top:0;left:0;bottom:0;width:18rem;text-align:left;overflow-y:auto;scrollbar-width:thin;scrollbar-color:#464646 auto}::-webkit-scrollbar{width:7px}::-webkit-scrollbar-track{background:0 0;border-radius:10px}::-webkit-scrollbar-thumb{background-color:#464646;border-radius:10px}::-webkit-scrollbar-thumb:hover{background-color:#969696}}.sidebar a,li{color:var(--sidebar-a-color)}.sidebar-about{text-align:center;color:var(--sidebar-p-color)}.sidebar-about h1{color:var(--sidebar-h1-color);margin-top:0;font-weight:300;font-size:1.5em;font-family:abril fatface,serif}.sidebar-nav{margin-top:2rem;margin-bottom:2rem;padding-left:0;list-style:none}.subnav{list-style:none;padding-left:0}.sidebar-nav-item{display:block}a.sidebar-nav-item:hover,a.sidebar-nav-item:focus{text-decoration:underline}.sidebar-nav-item.active{font-weight:700}@media(min-width:48em){.sidebar-sticky{top:1rem;width:16rem}}.content{padding-top:2rem;padding-bottom:2rem}@media(min-width:48em){.content{max-width:38rem;margin-left:2rem;margin-right:1.75rem}}@media(min-width:64em){.content{max-width:44rem;margin-left:2rem;margin-right:1.75rem}}.footnote{font-size:.7em;margin-top:.5rem;color:var(--sidebar-p-color)}.go{color:#444}.badge{display:inline;vertical-align:bottom}.badges{float:right}.brand{font-size:4em;margin-bottom:0}@media(min-width:48em){.content{max-width:38rem;margin-left:1.75rem;margin-right:2rem}}@media(min-width:64em){.content{max-width:44rem;margin-left:1.75rem;margin-right:2rem}}.theme-base-08 .sidebar{background-color:#ac4142}.theme-base-08 .content a,.theme-base-08 .related-posts li a:hover{color:#ac4142}.theme-base-09 .sidebar{background-color:#d28445}.theme-base-09 .content a,.theme-base-09 .related-posts li a:hover{color:#d28445}.theme-base-0a .sidebar{background-color:#f4bf75}.theme-base-0a .content a,.theme-base-0a .related-posts li a:hover{color:#f4bf75}.theme-base-0b .sidebar{background-color:#90a959}.theme-base-0b .content a,.theme-base-0b .related-posts li a:hover{color:#90a959}.theme-base-0c .sidebar{background-color:#75b5aa}.theme-base-0c .content a,.theme-base-0c .related-posts li a:hover{color:#75b5aa}.theme-base-0d .sidebar{background-color:#6a9fb5}.theme-base-0d .content a,.theme-base-0d .related-posts li a:hover{color:#6a9fb5}.theme-base-0e .sidebar{background-color:#aa759f}.theme-base-0e .content a,.theme-base-0e .related-posts li a:hover{color:#aa759f}.theme-base-0f .sidebar{background-color:#8f5536}.theme-base-0f .content a,.theme-base-0f .related-posts li a:hover{color:#8f5536}body.layout-reverse .container.content{direction:rtl}body.layout-reverse .wrapper{justify-content:flex-end;flex-direction:row-reverse}.sub-heading{color:var(--sidebar-p-color)}@media(min-width:48em){.bullet{margin-left:1em;text-decoration-line:underline;text-decoration-style:dotted;text-decoration-thickness:1%}.sub-heading{margin-left:1em}.btn-light-dark svg{margin:auto;width:20px;height:20px;color:#000}.container.content{overflow-y:auto;padding-right:2rem;flex-grow:1}}@media(max-width:48em){body>.wrapper,body.layout-reverse .wrapper{flex-direction:column}body{overflow:auto!important;height:auto!important}.heading{font-weight:400}.entries{padding-left:0}.btn-light-dark svg{margin:auto;width:20px;height:20px;color:#000}}h1,h2,h3,h4,h5,strong{color:var(--text-color)}.content div,p,table{color:var(--text-color)}.page-title,.post-title,.post-title a{color:var(--post-title-color)}.content li,li>p{color:var(--list-color)}.content code{color:var(--code-color);background-color:var(--code-background-color)!important}.content a code{color:var(--link-color)}.content pre{color:var(--code-block-color);background-color:var(--code-block-background-color)!important}.content pre code{color:var(--code-block-color);background-color:transparent!important}.btn-light-dark .moon{color:var(--moon-sun-color)}.btn-light-dark .sun{color:var(--moon-sun-color)}.btn-light-dark{padding:0;margin:1em;border-radius:50%;border:none;cursor:pointer;text-align:center;width:40px;height:40px;background-color:var(--moon-sun-background-color)}body{overflow:hidden;height:100vh}body>.wrapper{display:flex;height:100%}.container.content{overflow-y:auto;flex-grow:1}.layout-reverse .container.content{padding-right:0;padding-left:2rem}.container.content::-webkit-scrollbar{width:3px}.container.content::-webkit-scrollbar-thumb{border-radius:1.5px}.container.content::-webkit-scrollbar-track{margin:5.5em 0}.sidebar{background-color:var(--sidebar-bg-color)}.lead{text-align:center;color:var(--sidebar-p-color)}.sidebar-about img{margin-left:auto;margin-right:auto;text-align:center;border:2px solid var(--sidebar-img-border-color);border-radius:50%;height:180px;width:180px}.social{margin-right:.5em;text-decoration:none!important;color:var(--sidebar-socials-color)!important}.heading{margin-top:1em}.post-date{display:inline-block;color:var(--date-color)}.info span{display:inline-block}.info ul{display:inline-block;float:right}.info ul li{margin-left:.5em}.headline{display:flex;justify-content:space-between;align-items:center;align-content:center}.reading-time{color:gray;font-style:italic}.newsletters .help-block-for-success{display:none;margin:.25rem 1rem .25rem 0;text-align:center;color:green}.newsletters .help-block-for-error{display:none;margin:.25rem 1rem .25rem 0;text-align:center;color:#de0928}.newsletters .help-block-show{display:block}.newsletters form{display:flex;align-content:center;justify-content:center;flex-flow:row wrap}.newsletters .email-subscription-form-hide{display:none}.newsletters label{margin:.25rem 1rem .25rem 0;text-align:center}.newsletters input{margin:.25rem 1rem .25rem 0;font-size:.75rem;padding:.25rem .5rem;border:1px solid var(--text-color);border-radius:.25rem}.newsletters input:focus-visible{outline:none}.newsletters button{background-color:transparent;color:var(--text-color);padding:.25rem .5rem;border-radius:.25rem;border:1px solid var(--text-color);font-family:inherit;font-size:.85rem;cursor:pointer;margin:.25rem 0}.tags{padding-left:0}.tags li{display:inline;text-decoration:none}.tags li a{color:var(--table-stripe-color);display:inline-block;padding:0 .7em;text-align:center;font-size:.7em;background-color:var(--list-color);border-radius:.2em}table{margin-bottom:1rem;width:100%;border:1px solid var(--table-border-color);border-collapse:collapse}td,th{padding:.25rem .5rem;border:1px solid var(--table-border-color)}tbody tr:nth-child(odd) td,tbody tr:nth-child(odd) th{background-color:var(--table-stripe-color)}.entries li{display:flex}.entries li .title{order:1}.entries li .published{order:3}.entries li::after{background-image:radial-gradient(circle,currentcolor 1px,transparent 1.5px);background-position:bottom;background-size:1ex 3.5px;background-repeat:space no-repeat;content:"";flex-grow:1;height:1.1em;order:2}.article-toc{display:none;font-size:.9em;width:20em;margin-top:5em;overflow-y:auto;line-height:1.4em;max-height:85%}.article-toc .toc-wrapper{position:fixed}.article-toc nav{margin-left:1em}.article-toc h4{margin-left:0}.article-toc ul{margin-bottom:0;padding:0}.article-toc li{list-style:none;margin-left:20px;margin-top:2px}.article-toc li a{color:var(--text-color);text-decoration:none}.article-toc li.active{font-weight:700}.article-toc li.inactive{font-weight:300}@media screen and (min-width:100em){.article-toc{display:block}}.next-post{text-align:right;float:right}.previous-post{float:left}.content pre code{white-space:pre}div.highlight pre{overflow-x:auto}#page-nav{text-align:center}#page-nav a{margin:0 .2em}#page-nav span{margin:0 .2em}.next{float:right;display:inline}.prev{float:left;display:inline}.current{color:var(--text-color)}@font-face{font-family:fira sans;font-style:normal;font-weight:300;src:local(''),url(/fonts/fira-sans-v16-latin-300.woff2)format('woff2'),url(/fonts/fira-sans-v16-latin-300.woff)format('woff')}@font-face{font-family:fira sans;font-style:italic;font-weight:300;src:local(''),url(/fonts/fira-sans-v16-latin-300italic.woff2)format('woff2'),url(/fonts/fira-sans-v16-latin-300italic.woff)format('woff')}@font-face{font-family:fira sans;font-style:normal;font-weight:400;src:local(''),url(/fonts/fira-sans-v16-latin-regular.woff2)format('woff2'),url(/fonts/fira-sans-v16-latin-regular.woff)format('woff')}@font-face{font-family:fira sans;font-style:italic;font-weight:400;src:local(''),url(/fonts/fira-sans-v16-latin-italic.woff2)format('woff2'),url(/fonts/fira-sans-v16-latin-italic.woff)format('woff')}@font-face{font-family:pt sans;font-style:normal;font-weight:400;src:local(''),url(/fonts/pt-sans-v17-latin-regular.woff2)format('woff2'),url(/fonts/pt-sans-v17-latin-regular.woff)format('woff')}@font-face{font-family:pt sans;font-style:italic;font-weight:400;src:local(''),url(/fonts/pt-sans-v17-latin-italic.woff2)format('woff2'),url(/fonts/pt-sans-v17-latin-italic.woff)format('woff')}@font-face{font-family:pt sans;font-style:normal;font-weight:700;src:local(''),url(/fonts/pt-sans-v17-latin-700.woff2)format('woff2'),url(/fonts/pt-sans-v17-latin-700.woff)format('woff')}@font-face{font-family:pt sans;font-style:italic;font-weight:700;src:local(''),url(/fonts/pt-sans-v17-latin-700italic.woff2)format('woff2'),url(/fonts/pt-sans-v17-latin-700italic.woff)format('woff')}@font-face{font-family:abril fatface;font-style:normal;font-weight:400;src:local(''),url(/fonts/abril-fatface-v19-latin-regular.woff2)format('woff2'),url(/fonts/abril-fatface-v19-latin-regular.woff)format('woff')}.entries li{font-size:18px}