.dont-break-out,.post{overflow-wrap:break-word;word-wrap:break-word;-webkit-hyphens:auto;-ms-hyphens:auto;-moz-hyphens:auto;hyphens:auto}/*! normalize.css v3.0.2 | MIT License | git.io/normalize */html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:rgba(0,0,0,0)}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:bold}dfn{font-style:italic}h1{font-size:2em;margin:.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{-moz-box-sizing:content-box;box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:bold}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}.box{box-sizing:border-box}.container{position:relative;width:100%;max-width:960px;margin:0 auto;padding:10px 10px;box-sizing:border-box;border:1px dashed #eee}.column,.columns{width:100%;float:right;box-sizing:border-box}@media(min-width: 401px){.container{width:100%;padding:64px 32px}}@media(min-width: 781px){.container{width:90%}.column,.columns{margin-right:4%}.column:first-child,.columns:first-child{margin-right:0}.one.column,.one.columns{width:4.6666666667%}.two.columns{width:13.3333333333%}.three.columns{width:22%}.four.columns{width:30.6666666667%}.five.columns{width:39.3333333333%}.six.columns{width:48%}.seven.columns{width:56.6666666667%}.eight.columns{width:65.3333333333%}.nine.columns{width:74%}.ten.columns{width:82.6666666667%}.eleven.columns{width:91.3333333333%}.twelve.columns{width:100%;margin-right:0}.one-third.column{width:30.6666666667%}.two-thirds.column{width:65.3333333333%}.one-half.column{width:48%}.offset-by-one.column,.offset-by-one.columns{margin-right:8.6666666667%}.offset-by-two.column,.offset-by-two.columns{margin-right:17.3333333333%}.offset-by-three.column,.offset-by-three.columns{margin-right:26%}.offset-by-four.column,.offset-by-four.columns{margin-right:34.6666666667%}.offset-by-five.column,.offset-by-five.columns{margin-right:43.3333333333%}.offset-by-six.column,.offset-by-six.columns{margin-right:52%}.offset-by-seven.column,.offset-by-seven.columns{margin-right:60.6666666667%}.offset-by-eight.column,.offset-by-eight.columns{margin-right:69.3333333333%}.offset-by-nine.column,.offset-by-nine.columns{margin-right:78%}.offset-by-ten.column,.offset-by-ten.columns{margin-right:86.6666666667%}.offset-by-eleven.column,.offset-by-eleven.columns{margin-right:95.3333333333%}.offset-by-one-third.column,.offset-by-one-third.columns{margin-right:34.6666666667%}.offset-by-two-thirds.column,.offset-by-two-thirds.columns{margin-right:69.3333333333%}.offset-by-one-half.column,.offset-by-one-half.columns{margin-right:52%}}@font-face{font-family:"Noto Sans";font-style:normal;font-weight:400;src:url("/blog/fonts/noto-sans-v25-latin-regular.eot");src:local(""),url("/blog/fonts/noto-sans-v25-latin-regular.eot?#iefix") format("embedded-opentype"),url("/blog/fonts/noto-sans-v25-latin-regular.woff2") format("woff2"),url("/blog/fonts/noto-sans-v25-latin-regular.woff") format("woff"),url("/blog/fonts/noto-sans-v25-latin-regular.ttf") format("truetype"),url("/blog/fonts/noto-sans-v25-latin-regular.svg#NotoSans") format("svg")}@font-face{font-family:"Noto Sans";font-style:italic;font-weight:400;src:url("/blog/fonts/noto-sans-v25-latin-italic.eot");src:local(""),url("/blog/fonts/noto-sans-v25-latin-italic.eot?#iefix") format("embedded-opentype"),url("/blog/fonts/noto-sans-v25-latin-italic.woff2") format("woff2"),url("/blog/fonts/noto-sans-v25-latin-italic.woff") format("woff"),url("/blog/fonts/noto-sans-v25-latin-italic.ttf") format("truetype"),url("/blog/fonts/noto-sans-v25-latin-italic.svg#NotoSans") format("svg")}@font-face{font-family:"Noto Sans";font-style:normal;font-weight:700;src:url("/blog/fonts/noto-sans-v25-latin-700.eot");src:local(""),url("/blog/fonts/noto-sans-v25-latin-700.eot?#iefix") format("embedded-opentype"),url("/blog/fonts/noto-sans-v25-latin-700.woff2") format("woff2"),url("/blog/fonts/noto-sans-v25-latin-700.woff") format("woff"),url("/blog/fonts/noto-sans-v25-latin-700.ttf") format("truetype"),url("/blog/fonts/noto-sans-v25-latin-700.svg#NotoSans") format("svg")}@font-face{font-family:"Noto Sans";font-style:italic;font-weight:700;src:url("/blog/fonts/noto-sans-v25-latin-700italic.eot");src:local(""),url("/blog/fonts/noto-sans-v25-latin-700italic.eot?#iefix") format("embedded-opentype"),url("/blog/fonts/noto-sans-v25-latin-700italic.woff2") format("woff2"),url("/blog/fonts/noto-sans-v25-latin-700italic.woff") format("woff"),url("/blog/fonts/noto-sans-v25-latin-700italic.ttf") format("truetype"),url("/blog/fonts/noto-sans-v25-latin-700italic.svg#NotoSans") format("svg")}@font-face{font-family:"Ubuntu Mono";font-style:normal;font-weight:400;src:url("/blog/fonts/ubuntu-mono-v14-latin-regular.eot");src:local(""),url("/blog/fonts/ubuntu-mono-v14-latin-regular.eot?#iefix") format("embedded-opentype"),url("/blog/fonts/ubuntu-mono-v14-latin-regular.woff2") format("woff2"),url("/blog/fonts/ubuntu-mono-v14-latin-regular.woff") format("woff"),url("/blog/fonts/ubuntu-mono-v14-latin-regular.ttf") format("truetype"),url("/blog/fonts/ubuntu-mono-v14-latin-regular.svg#UbuntuMono") format("svg")}@font-face{font-family:"Ubuntu Mono";font-style:italic;font-weight:400;src:url("/blog/fonts/ubuntu-mono-v14-latin-italic.eot");src:local(""),url("/blog/fonts/ubuntu-mono-v14-latin-italic.eot?#iefix") format("embedded-opentype"),url("/blog/fonts/ubuntu-mono-v14-latin-italic.woff2") format("woff2"),url("/blog/fonts/ubuntu-mono-v14-latin-italic.woff") format("woff"),url("/blog/fonts/ubuntu-mono-v14-latin-italic.ttf") format("truetype"),url("/blog/fonts/ubuntu-mono-v14-latin-italic.svg#UbuntuMono") format("svg")}@font-face{font-family:"Ubuntu Mono";font-style:italic;font-weight:700;src:url("/blog/fonts/ubuntu-mono-v14-latin-700italic.eot");src:local(""),url("/blog/fonts/ubuntu-mono-v14-latin-700italic.eot?#iefix") format("embedded-opentype"),url("/blog/fonts/ubuntu-mono-v14-latin-700italic.woff2") format("woff2"),url("/blog/fonts/ubuntu-mono-v14-latin-700italic.woff") format("woff"),url("/blog/fonts/ubuntu-mono-v14-latin-700italic.ttf") format("truetype"),url("/blog/fonts/ubuntu-mono-v14-latin-700italic.svg#UbuntuMono") format("svg")}@font-face{font-family:"Ubuntu Mono";font-style:normal;font-weight:700;src:url("/blog/fonts/ubuntu-mono-v14-latin-700.eot");src:local(""),url("/blog/fonts/ubuntu-mono-v14-latin-700.eot?#iefix") format("embedded-opentype"),url("/blog/fonts/ubuntu-mono-v14-latin-700.woff2") format("woff2"),url("/blog/fonts/ubuntu-mono-v14-latin-700.woff") format("woff"),url("/blog/fonts/ubuntu-mono-v14-latin-700.ttf") format("truetype"),url("/blog/fonts/ubuntu-mono-v14-latin-700.svg#UbuntuMono") format("svg")}html{font-size:62.5%}body{font-size:1.5em;line-height:1.6;font-weight:400;font-family:"Noto Sans","HelveticaNeue","Helvetica Neue",Helvetica,Arial,sans-serif;color:#222}h1,h2,h3,h4,h5,h6{margin-top:2rem;margin-bottom:2rem;font-weight:400}h1{font-size:2.2rem;line-height:1.2;letter-spacing:0rem}h2{font-size:2rem;line-height:1.25;letter-spacing:0rem}h3{font-size:1.7rem;line-height:1.3;letter-spacing:-0.1rem}h4{font-size:1.5rem;line-height:1.35;letter-spacing:-0.08rem}h5{font-size:1.3rem;line-height:1.5;letter-spacing:-0.05rem}h6{font-size:1.1rem;line-height:1.6;letter-spacing:0}@media(min-width: 550px){h1{font-size:2.4rem}h2{font-size:2.2rem}h3{font-size:2rem}h4{font-size:1.7rem}h5{font-size:1.4rem}h6{font-size:1.1rem}}p{margin-top:0}a{color:#222;text-decoration:none;-webkit-transition:color .4s;transition:color .4s}a:hover{color:#8e44ad;border-bottom:1px dotted #8e44ad}.read-more{border-bottom:1px dotted #8e44ad;text-decoration:none}.read-more:hover{color:#8e44ad;border-bottom:1px dotted #8e44ad;text-decoration:none}.button,button,input[type=submit],input[type=reset],input[type=button]{display:inline-block;height:38px;padding:0 30px;color:#555;text-align:center;font-size:11px;font-weight:600;line-height:38px;letter-spacing:.1rem;text-transform:uppercase;text-decoration:none;white-space:nowrap;background-color:rgba(0,0,0,0);border-radius:4px;border:1px solid #bbb;cursor:pointer;box-sizing:border-box}.button:hover,button:hover,input[type=submit]:hover,input[type=reset]:hover,input[type=button]:hover,.button:focus,button:focus,input[type=submit]:focus,input[type=reset]:focus,input[type=button]:focus{color:#333;border-color:#888;outline:0}.button.button-primary,button.button-primary,input[type=submit].button-primary,input[type=reset].button-primary,input[type=button].button-primary{color:#fff;background-color:#33c3f0;border-color:#33c3f0}.button.button-primary:hover,button.button-primary:hover,input[type=submit].button-primary:hover,input[type=reset].button-primary:hover,input[type=button].button-primary:hover,.button.button-primary:focus,button.button-primary:focus,input[type=submit].button-primary:focus,input[type=reset].button-primary:focus,input[type=button].button-primary:focus{color:#fff;background-color:#1eaedb;border-color:#1eaedb}input[type=email],input[type=number],input[type=search],input[type=text],input[type=tel],input[type=url],input[type=password],textarea,select{height:38px;padding:6px 10px;background-color:#fff;border:1px solid #d1d1d1;border-radius:4px;box-shadow:none;box-sizing:border-box}input[type=email],input[type=number],input[type=search],input[type=text],input[type=tel],input[type=url],input[type=password],textarea{-webkit-appearance:none;-moz-appearance:none;appearance:none}textarea{min-height:65px;padding-top:6px;padding-bottom:6px}input[type=email]:focus,input[type=number]:focus,input[type=search]:focus,input[type=text]:focus,input[type=tel]:focus,input[type=url]:focus,input[type=password]:focus,textarea:focus,select:focus{border:1px solid #33c3f0;outline:0}label,legend{display:block;margin-bottom:.5rem;font-weight:600}fieldset{padding:0;border-width:0}input[type=checkbox],input[type=radio]{display:inline}label>.label-body{display:inline-block;margin-left:.5rem;font-weight:normal}code{padding:.2rem .5rem;margin:0 .2rem;white-space:nowrap;background:#f1f1f1;border:1px solid #e1e1e1;font-family:"Ubuntu Mono",monospace;font-size:1.05em;border-radius:4px;white-space:pre-wrap;line-height:1.2}pre>code{max-height:500px;overflow:auto;display:block;padding:1rem 1.5rem}th,td{padding:12px 15px;text-align:left;border-bottom:1px solid #e1e1e1}th:first-child,td:first-child{padding-left:0}th:last-child,td:last-child{padding-right:0}p{margin-bottom:1.25rem}.u-full-width{width:100%;box-sizing:border-box}.u-max-full-width{max-width:100%;box-sizing:border-box}.u-pull-right{float:right}.u-pull-left{float:left}hr{margin-top:2rem;margin-bottom:2.5rem;border-width:0;border-top:1px solid #e1e1e1}.container:after,.row:after,.u-cf{content:"";display:table;clear:both}img{max-width:100%;vertical-align:middle}blockquote{margin:1.5rem 0;padding:0 0 0 10px;font-style:normal;font-size:100%;line-height:1.8rem;border-left:3px solid #bea3c9;color:#666}.logo a{-webkit-text-fill-color:rgba(0,0,0,0);-webkit-background-clip:text;background-image:-webkit-linear-gradient(225deg, #FF3CAC 0%, #784BA0 50%, #2B86C5 100%);background-image:linear-gradient(225deg, #FF3CAC 0%, #784BA0 50%, #2B86C5 100%);font-weight:bold;font-size:3.6rem;font-family:"Raleway",sans-serif;border-bottom:none}html{width:100vw;overflow-x:hidden}html,.container{position:relative;min-height:100%}body{min-height:100%;height:auto}.page-content{min-height:100%;box-sizing:border-box;height:auto;padding-bottom:140px}.site-footer{position:absolute;bottom:0;padding-bottom:0rem;width:100%;color:#99999a;background-color:pink;background-image:url(https://nns.ee/waves.svg),radial-gradient(farthest-corner at 45px 45px, pink 0%, #d1e6fa 100%);background-position:top left;background-size:cover;background-repeat:repeat-x}.site-footer .left a{color:#666;border-bottom:1px dotted;text-decoration:none}.site-footer .left a:hover{color:#8e44ad;border-bottom:1px dotted}@keyframes hue-rotation{0%{filter:hue-rotate(0)}100%{filter:hue-rotate(360deg)}}@media screen and (max-width: 780px){.site-nav{display:-webkit-box;display:-moz-box;display:-webkit-flex;display:-moz-flex;display:-ms-flexbox;display:flex;opacity:0;height:0;-webkit-transition:all .4s;transition:all .4s;-webkit-justify-content:center;justify-content:center}}@media screen and (max-width: 780px)and (max-width: 780px){.site-nav{border-top:1px solid #ddd;border-bottom:1px solid #ddd}}@media screen and (max-width: 780px){#menu-toggle:checked+.site-nav{opacity:1;height:auto}}input#menu-toggle{display:none}.nav .menu-icon{display:none;position:absolute;right:5%}@media screen and (max-width: 780px){.nav .menu-icon{top:67px;display:block;text-align:center}}@media screen and (max-width: 780px)and (max-width: 400px){.nav .menu-icon{top:13px}}@media screen and (max-width: 780px){.nav .menu-icon:hover>svg path{fill:#828282}.nav .menu-icon>svg{width:18px;height:15px}.nav .menu-icon>svg path{fill:#424242}}.site-header{text-align:right}@media screen and (max-width: 780px){.site-header{text-align:center;overflow:hidden}}.site-header nav a{font-weight:400}.read-more a{border-bottom:1px dotted #8e44ad;text-decoration:none}.read-more a:hover{color:#8e44ad;border-bottom:1px dotted #8e44ad}.post_excerpt a{border-bottom:1px dotted #8e44ad;text-decoration:none}.post_excerpt a:hover{color:#8e44ad;border-bottom:1px dotted #8e44ad}.post_header{margin-bottom:1rem}.post_title{margin-bottom:.5rem}.post_date{color:#888;font-size:1.4rem}.project_language{color:#888;font-size:1.4rem;margin-top:-1.5rem;margin-bottom:1rem}p.readmore{text-align:right}.post_meta .author_meta img{height:24px;width:24px}.article-content a{border-bottom:1px dotted #8e44ad;text-decoration:none}.article-content a:hover{color:#8e44ad;border-bottom:1px dotted #8e44ad}.article-footer{padding:2rem 0;border-top:1px solid #ddd;border-bottom:1px solid #ddd}.article-footer .share{text-align:center}.article-footer .share-link{text-decoration:underline;margin-left:8px}.sheet-description{color:#99999a}@media(max-width: 780px){.author{display:inline-block;text-align:center}}.authorimage{display:inline-block;width:90px;height:90px;border-radius:5%;-webkit-background-size:cover !important;background-size:cover !important;background-position:center center !important;margin-right:10px}@media(min-width: 781px){.authorimage{float:left}}.authorinfo .bio{color:#999}.footer{float:left}.left{text-align:center}@media(min-width: 780px){.left{text-align:left}}.right{text-align:center}@media(min-width: 780px){.right{text-align:right}}.icon{vertical-align:bottom}body.custom-background{background-image:url("/images/background.png");background-repeat:repeat;background-position:top left;background-attachment:scroll}.archive_list{margin-left:5%;width:90%;margin-bottom:3rem}.category-name{padding-top:20px;text-transform:lowercase;font-variant:small-caps}.category-name h2{letter-spacing:0;border-bottom:1px solid #ddd}div.post_title span.date{font-size:80%;color:#828282}.pagination{width:50%}.pagination.older-post{float:right;text-align:right}.small-font{font-size:14px}@keyframes blinking_underscore_frame{0%{-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";filter:alpha(opacity=0);opacity:0}50%{-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";filter:alpha(opacity=100);opacity:1}100%{-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";filter:alpha(opacity=0);opacity:0}}@-moz-keyframes blinking_underscore_frame{0%{filter:alpha(opacity=0);opacity:0}50%{filter:alpha(opacity=100);opacity:1}100%{filter:alpha(opacity=0);opacity:0}}@-webkit-keyframes blinking_underscore_frame{0%{filter:alpha(opacity=0);opacity:0}50%{filter:alpha(opacity=100);opacity:1}100%{filter:alpha(opacity=0);opacity:0}}@-ms-keyframes blinking_underscore_frame{0%{-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";filter:alpha(opacity=0);opacity:0}50%{-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";filter:alpha(opacity=100);opacity:1}100%{-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";filter:alpha(opacity=0);opacity:0}}@-o-keyframes blinking_underscore_frame{0%{filter:alpha(opacity=0);opacity:0}50%{filter:alpha(opacity=100);opacity:1}100%{filter:alpha(opacity=0);opacity:0}}.badge{color:#fff;display:inline-block;margin-right:.2em;vertical-align:.1em}.badgeContent{padding:2px 7px;border-radius:4px;font-weight:300;font-size:1.5rem;background-color:#8963ba;background-image:linear-gradient(to top right, #8963BA, #EF476F)}.article-header{padding-bottom:2rem}.article-header .badge{margin-bottom:14px}ul.page-link{list-style:none;padding-inline-start:0}.hotlink{float:right;color:#8963ba;font-size:small}.black{color:#111}.gray{color:#aaa}.silver{color:#ddd}.white{color:#fff}.aqua{color:#7fdbff}.blue{color:#0074d9}.navy{color:#001f3f}.teal{color:#39cccc}.green{color:#2ecc40}.olive{color:#3d9970}.lime{color:#01ff70}.yellow{color:#ffdc00}.orange{color:#ff851b}.red{color:#ff4136}.fuchsia{color:#f012be}.purple{color:#b10dc9}.maroon{color:#85144b}.highlight{color:#586e75}.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;font-style:italic}.highlight .gr{color:#dc322f}.highlight .gh{color:#cb4b16}.highlight .gi{color:#859900}.highlight .go{color:#586e75}.highlight .gp{color:#586e75}.highlight .gs{color:#586e75;font-weight:bold}.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}