html,body,div,span,applet,object,iframe,hr,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,dl,dd,dt,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{margin:0;padding:0;border:0;font-size:100%;font:inherit;vertical-align:baseline;box-sizing:border-box}article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block}body{line-height:1}a{color:inherit}ol,ul{list-style:none}blockquote,q{quotes:none}blockquote:before,blockquote:after,q:before,q:after{content:'';content:none}table{border-collapse:separate;border-spacing:0}th,td{vertical-align:top;text-align:left}a{text-decoration:none}input,textarea,button,select{margin:0}.main-wrapper{width:760px;max-width:92%;margin:0 auto}.body-wrapper{overflow:hidden}body{color:#444;line-height:32px;font-family:"Source Sans Pro", sans-serif}.post h1{font-family:"Source Sans Pro", sans-serif;font-size:48px;letter-spacing:-0.75px;margin-top:11px;margin-bottom:-11px;line-height:56px;padding-bottom:8px;padding-top:8px;color:#373737}.post h2{font-family:"Source Sans Pro", sans-serif;font-size:34px;letter-spacing:-0.75px;margin-top:12px;margin-bottom:-12px;line-height:48px;padding-bottom:8px;color:#373737}.post{padding-bottom:32px}.post header{padding:24px 0 48px 0}.post p{padding-top:8px;padding-bottom:8px}.post>p:first-child{padding-top:0}.post ul{padding-top:8px}.post strong{font-weight:bold}.post h1{padding-bottom:8px;font-weight:500;text-align:center}.post h2{padding-top:8px;padding-bottom:8px}.post h2 code{font-size:29px}.post h3{font-family:"Source Sans Pro", sans-serif;font-size:26px;letter-spacing:-0.6px;margin-top:11px;margin-bottom:-11px;line-height:40px;padding-top:8px;padding-bottom:8px}.post h3 code{font-size:23px}.post h2,.post h3,.post h4{color:#373737}.post ul,.post ol{padding-left:48px}.post p,.post ul,.post ol,.post blockquote{font-family:"Source Sans Pro", sans-serif;font-size:20px;letter-spacing:0;margin-top:9px;margin-bottom:-9px;line-height:32px}.post table tbody,.post table thead table tfoot{font-family:"Source Sans Pro", sans-serif;font-size:15px;letter-spacing:0;margin-top:13px;margin-bottom:-7px;line-height:22px}.post table:not(.rouge-table){margin-top:16px}.post img{max-width:100%}.post p code,.post li code,.post table code{white-space:nowrap;font-size:18px;background:#F5FFEF;padding:2px 6px;border:1px solid #DCF3D1;border-radius:5px;font-family:"SFMono-Regular", Monaco, Consolas, Inconsolata, monospace;margin-left:2px;margin-right:2px;white-space:nowrap}.post blockquote{font-style:italic;border-left:1px solid #8c8;padding-left:16px}.post pre.highlight{overflow-y:hidden;overflow-x:auto;padding-bottom:0px;margin-bottom:8px}.post pre.highlight::-webkit-scrollbar{-webkit-appearance:none;height:7px;transition:background 0.5s ease}.post pre.highlight::-webkit-scrollbar-thumb{border-radius:4px;background-color:rgba(0,0,0,0.09);box-shadow:0 0 1px rgba(255,255,255,0.25);transition:background 0.5s ease}.post pre.highlight::-webkit-scrollbar-track{border-radius:4px;background-color:rgba(0,0,0,0.03);transition:background 0.5s ease}.post pre.highlight:hover::-webkit-scrollbar-thumb{background-color:rgba(0,0,0,0.5);transition:background 0.5s ease}.post pre.highlight:hover::-webkit-scrollbar-track{background-color:rgba(0,0,0,0.15);transition:background 0.5s ease}.post pre{padding-top:8px;padding-bottom:8px}.post pre code{position:relative;padding:16px 0px;font-family:"Source Sans Pro", sans-serif;font-size:15px;letter-spacing:0;margin-top:13px;margin-bottom:-7px;line-height:22px;font-family:"SFMono-Regular", Monaco, Consolas, Inconsolata, monospace;display:block}.post pre code::before,.post pre code::after{content:"";position:absolute;width:100%;left:0}.post pre code::before{top:0}.post pre code::after{bottom:0}.post ul{list-style-type:square}.post ol{list-style-type:decimal}.post :target{background:#dfd}.post .footnotes{position:relative;padding-top:32px;padding-bottom:16px}.post .footnotes::before{height:1px;display:block;content:"";position:absolute;left:0px;top:16px;border-top:1px solid #bbb;width:100%}.post .footnotes p,.post .footnotes ul,.post .footnotes ol,.post .footnotes li{font-family:"Source Sans Pro", sans-serif;font-size:15px;letter-spacing:0;margin-top:13px;margin-bottom:-7px;line-height:22px}.post .footnotes ol li p{margin:0;padding:0}.post a[rel=footnote]{position:relative}.post a[rel=footnote]:before{content:'[';margin-left:8px}.post a[rel=footnote]:after{content:']';margin-right:8px}.highlight .c{color:#999988}.highlight .err{color:#a61717;background-color:#e3d2d2}.highlight .cm{color:#999988}.highlight .cp{color:#999999}.highlight .c1{color:#999988}.highlight .cs{color:#999999}.highlight .gd{color:#000000;background-color:#ffdddd}.highlight .gd .x{color:#000000;background-color:#ffaaaa}.highlight .gr{color:#aa0000}.highlight .gh{color:#999999}.highlight .gi{color:#000000;background-color:#ddffdd}.highlight .gi .x{color:#000000;background-color:#aaffaa}.highlight .go{color:#888888}.highlight .gp{color:#555555}.highlight .gu{color:#800080}.highlight .gt{color:#aa0000}.highlight .kt{color:#445588}.highlight .m{color:#009999}.highlight .s{color:#dd1144}.highlight .n{color:#333333}.highlight .na{color:teal}.highlight .nb{color:#0086b3}.highlight .nc{color:#445588}.highlight .no{color:teal}.highlight .ni{color:purple}.highlight .ne{color:#990000}.highlight .nf{color:#990000}.highlight .nn{color:#555555}.highlight .nt{color:navy}.highlight .nv{color:teal}.highlight .w{color:#bbbbbb}.highlight .mf{color:#009999}.highlight .mh{color:#009999}.highlight .mi{color:#009999}.highlight .mo{color:#009999}.highlight .sb{color:#dd1144}.highlight .sc{color:#dd1144}.highlight .sd{color:#dd1144}.highlight .s2{color:#dd1144}.highlight .se{color:#dd1144}.highlight .sh{color:#dd1144}.highlight .si{color:#dd1144}.highlight .sx{color:#dd1144}.highlight .sr{color:#009926}.highlight .s1{color:#dd1144}.highlight .ss{color:#990073}.highlight .bp{color:#999999}.highlight .vc{color:teal}.highlight .vg{color:teal}.highlight .vi{color:teal}.highlight .il{color:#009999}.highlight .gc{color:#999;background-color:#EAF2F5}.highlight .lineno{color:#93a1a1}.highlight .c{color:#93a1a1}.highlight .err{color:#586e75}.highlight .g{color:#586e75}.highlight .k{color:#859900}.highlight .l{color:#586e75}.highlight .n{color:#586e75}.highlight .o{color:#859900}.highlight .x{color:#cb4b16}.highlight .p{color:#586e75}.highlight .cm{color:#93a1a1}.highlight .cp{color:#859900}.highlight .c1{color:#93a1a1}.highlight .cs{color:#859900}.highlight .gd{color:#2aa198}.highlight .ge{color:#586e75}.highlight .gr{color:#dc322f}.highlight .gh{color:#cb4b16}.highlight .gi{color:#859900}.highlight .go{color:#586e75}.highlight .gp{color:#586e75}.highlight .gs{color:#586e75}.highlight .gu{color:#cb4b16}.highlight .gt{color:#586e75}.highlight .kc{color:#cb4b16}.highlight .kd{color:#268bd2}.highlight .kn{color:#859900}.highlight .kp{color:#859900}.highlight .kr{color:#268bd2}.highlight .kt{color:#dc322f}.highlight .ld{color:#586e75}.highlight .m{color:#2aa198}.highlight .s{color:#2aa198}.highlight .na{color:#586e75}.highlight .nb{color:#B58900}.highlight .nc{color:#268bd2}.highlight .no{color:#cb4b16}.highlight .nd{color:#268bd2}.highlight .ni{color:#cb4b16}.highlight .ne{color:#cb4b16}.highlight .nf{color:#268bd2}.highlight .nl{color:#586e75}.highlight .nn{color:#586e75}.highlight .nx{color:#586e75}.highlight .py{color:#586e75}.highlight .nt{color:#268bd2}.highlight .nv{color:#268bd2}.highlight .ow{color:#859900}.highlight .w{color:#586e75}.highlight .mf{color:#2aa198}.highlight .mh{color:#2aa198}.highlight .mi{color:#2aa198}.highlight .mo{color:#2aa198}.highlight .sb{color:#93a1a1}.highlight .sc{color:#2aa198}.highlight .sd{color:#586e75}.highlight .s2{color:#2aa198}.highlight .se{color:#cb4b16}.highlight .sh{color:#586e75}.highlight .si{color:#2aa198}.highlight .sx{color:#2aa198}.highlight .sr{color:#dc322f}.highlight .s1{color:#2aa198}.highlight .ss{color:#2aa198}.highlight .bp{color:#268bd2}.highlight .vc{color:#268bd2}.highlight .vg{color:#268bd2}.highlight .vi{color:#268bd2}.highlight .il{color:#2aa198}strong{font-style:bold;font-weight:700}em{font-style:italic;font-weight:400}a:link,a:visited{color:#62B81A;color:#19A600;text-decoration:none}a:hover,a:active{color:#519D2E;text-decoration:underline}pre,code{font-family:"SFMono-Regular", Monaco, Consolas, Inconsolata, monospace}table{border-collapse:collapse}table td,table th{padding:0 8px}table,th,td{border:1px solid #bbb}table thead,table th{font-weight:bold}table{border-collapse:collapse}th,td{padding:0}footer.footer{font-family:"Source Sans Pro", sans-serif;font-size:15px;letter-spacing:0;margin-top:13px;margin-bottom:-7px;line-height:22px;margin-bottom:32px}footer.footer .main-wrapper{padding-top:8px;padding-bottom:8px}footer.footer p{padding-top:8px;padding-bottom:8px}footer.footer a:link,footer.footer a:visited{text-decoration:underline}footer.footer h2{font-weight:normal;color:#fff}footer.footer a:hover,footer.footer a:active{color:#ccc;text-decoration:underline}.highlight .err{background:none}.meta__container{padding-bottom:8px;margin-bottom:8px;margin-top:32px}.meta__container::before{background-color:#F7FEF2;border-style:solid;border-width:1px;border-color:#E0F0C3}.meta__content{text-align:center}.stretch{position:relative}.stretch::before{content:'';position:absolute;left:-9999px;right:-9999px;top:0;bottom:0;z-index:-1}code table,code th,code td{border:none}.rouge-gutter{color:#999;user-select:none}.rouge-code{background:#FBFBFB;border-left:1px solid #ccc;width:100%}.rouge-code pre{width:100%;margin-left:4px}#disqus_thread{padding-top:64px;padding-bottom:32px}.post .toc__item{font-family:"Source Sans Pro", sans-serif;font-size:26px;letter-spacing:-0.6px;margin-top:11px;margin-bottom:-11px;line-height:40px}.post .toc__item-date{font-family:"Source Sans Pro", sans-serif;font-size:20px;letter-spacing:0;display:inline-block;width:110px}.about h1{color:inherit}.toc .date{padding-left:4px;color:#999;font-family:"Source Sans Pro", sans-serif;font-size:15px;letter-spacing:0}.dimmed{color:#797979}